Educational Resources
Below are some of the resources I have found most useful in honing my craft and expanding my knowledge.
How to Learn Programming Link to heading
- Pick a language to learn, I recomended Go
- Learn the basics at Go.Dev/Learn
- Jump down to Coding Challenges and pick something to code
- Code it!
- Throw that away and code it again from scratch
- Repeat with a new project and keep learning the language
- Start working on Data Structures and Algorithms. Front End Masters has a great set of courses
- As you feel more mastery in your language, start reading the CS books below.
- Feel you need more math? Khan Academy can help!
Almost all of those resources are free. The ones that cost money are more advanced and more about mastery than getting started. Also if you are not interested in Go then Free Code Camp linked below has a great set of courses for web development!
How come you only recommend a set of video tutorials? Link to heading
I am always leery of recomending online tutorials. Don’t get caught in tutorial hell. You should focus on using them as a starting point not an ending point. Build Your own stuff Don’t just follow along as other people build stuff.
The one I recomend from FE Masters has more to do with learning Algoritms which need to be taught.
The recomended CS books are also different. They will teach more advanced skills. Do not expect to sit down and just read them, you will need to study, re-read, refresh, and repeat.
Free Go Resources Link to heading
Code Challenges Link to heading
Go Specific Books Link to heading
CS Books Link to heading
These are books I have found helpful in my coding journey.
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin
- Clean Architecture: A Craftsman’s Guide to Software Structure and Design by Robert C. Martin
- The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas
- Code Complete: A Practical Handbook of Software Construction by Steve McConnell
- Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
- Refactoring: Improving the Design of Existing Code by Martin Fowler
- Working Effectively with Legacy Code by Michael C. Feathers
- Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans
Online Courses Link to heading
Articles Link to heading
Line of Sight in Code: a tl;dr version of clean code. I really feel this article sums up some of the best parts of clean code.
Align the happy path to the left; you should quickly be able to scan down one column to see the expected execution flow.
Put That Framework Down Before Someone Gets Hurt: Why a framework shouldn' be your first choise.
I’m not saying “Use the right tool for the job” Instead I’m saying: “Use the simplest tool for the job”