Skip to content

joielechong/professional-programming

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 

Repository files navigation

Table of Contents

Professional Programming

Give me six hours to chop down a tree and I will spend the first four sharpening the axe. (Abraham Lincoln)

A collection of full-stack resources for programmers.

The goal of this page is to make you a more proficient developer. You'll find only resources that I've found truly inspiring, or that have been become timeless classics.

Must read books

I've found these books incredibly inspiring:

There are some free books available, including:

Must-read articles

Other general material

  • The Imposter's Handbook - $30. From the author: "Don't have a CS Degree? Neither do I - That's why I wrote this book."

Topics

Algorithm and data structures

Let's be honest: algo can be a pretty dry topic. This quora question lists some funnier learning alternative, including:

Attitude, habits, mindset

Career growth

Characters sets

Coding

Computer science

Databases

Debugging

Design (visual, UX, UI)

I highly recommend reading The Non-Designer's Design Book. This is a pretty short book that will give you some very actionable design advices.

Design patterns & anti-patterns (OOP)

Here's a list of good books:

I maintain a list of antipatterns on another repo. This is a highly recommended read.

Dev environment & tools

Tools

Dotfiles

Articles

Editors & IDE

Incident response (alerting, outages, firefighting)

Internet

Interviewing

Learning

Learn how to learn!

Programming language

This is language-specific, for instance, checkout my professional Python education doc.

I'd recommend learning:

  • At least one dynamic language (Python, Ruby, JavaScript, etc.). Pretty useful for quick one-off automation scripts, and fastest to write for interviews.
  • At least one compiled language (Java, C, C++, etc.)
  • At least one more recent language to see where the industry is going (as of writing, Go, Swift, Rust, etc.)
  • At least one language that has first-class support for functional programming (Haskell, Scala, etc.)

A bit more reading:

FP vs. OOP

Reading

  • Papers we love: papers from the computer science community to read and discuss. Can be a good source of inspiration of solving your design problems.

Releasing & deploying

Security

Shell

Resources

System architecture

Scalability

  • I already mentioned the book Scalability rules above, but there's also a presentation about it.

Stability

  • I already mentioned the book Release it! above. There's also a presentation from the author.

Resiliency

Testing

Version control (Git)

Webdesign

Writing for performance

Concepts

Glossary

About

A collection of full-stack resources for programmers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published