Hi, I'm Gregory Brown.
My goal is to help software developers get better at what they do, whether they've been at it for five weeks or fifty years.
(he/him)
This is an excellent post, thanks so much for writing it.
The only area that I'd offer a counterbalancing point to is that while you definitely should get to understand the fundamental constructs in your target language as early as possible, it is something you can do in iterative passes. You don't need to know those things perfectly, just well enough so that you have basic literacy in reading and writing code.
Then as you read and write more code, you will start to realize there is still a lot more you don't know, and you can keep coming back and filling in the gaps, refining your understanding further.
Also, I'm a strong believer in pairing rigorous practice on fundamentals with study and casual exploration of realistic examples. This helps establish some bookends in your space of study, and keeps a connection between theory and practice.
(That's mostly covered by your "Make it Fun" suggestion, but I've seen enough people stay too abstract, too long to want to call that out specifically--especially because more than a few learning resources only provide contrived examples)
Thanks again for this article! Really solid advice here.
I totally agree that the fundamentals can and should be learned in iterative passes - 'master' was probably poor word choice on my part! I just hate seeing new devs jump straight to React without learning how JavaScript works, or how a .map() function works.
I think you've discovered something I took for granted, which is that learners should always be writing code and building projects (however small!) as they learn. This is such an essential part of my learning framework (and learning theory!) that I took it for granted and didn't actually say so! Staying abstract is a great way to grow bored and frustrated with any subject, but code especially.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
This is an excellent post, thanks so much for writing it.
The only area that I'd offer a counterbalancing point to is that while you definitely should get to understand the fundamental constructs in your target language as early as possible, it is something you can do in iterative passes. You don't need to know those things perfectly, just well enough so that you have basic literacy in reading and writing code.
Then as you read and write more code, you will start to realize there is still a lot more you don't know, and you can keep coming back and filling in the gaps, refining your understanding further.
Also, I'm a strong believer in pairing rigorous practice on fundamentals with study and casual exploration of realistic examples. This helps establish some bookends in your space of study, and keeps a connection between theory and practice.
(That's mostly covered by your "Make it Fun" suggestion, but I've seen enough people stay too abstract, too long to want to call that out specifically--especially because more than a few learning resources only provide contrived examples)
Thanks again for this article! Really solid advice here.
Thanks so much for the thoughtful comment!
I totally agree that the fundamentals can and should be learned in iterative passes - 'master' was probably poor word choice on my part! I just hate seeing new devs jump straight to React without learning how JavaScript works, or how a .map() function works.
I think you've discovered something I took for granted, which is that learners should always be writing code and building projects (however small!) as they learn. This is such an essential part of my learning framework (and learning theory!) that I took it for granted and didn't actually say so! Staying abstract is a great way to grow bored and frustrated with any subject, but code especially.