Maximizing Daily Code Study
On most weekdays, I try to set aside about an hour to learn new coding topics and concepts. I don’t always reach that goal, but I’m able to come close most days.
I sat down recently to reflect on how I have been using this time, and about what changes I could make in order for this study time to have an even greater effect.
The point of this post is really just personal reflection, but in case it helps someone else in a similar spot, I thought I would share it publicly.
How I currently use my hour of study
Typically I spend the first 15-20 minutes reviewing simple JavaScript code exercises and practice interview questions. I’ll find a JavaScript interview prep resource, slowly work through it, and add any good questions/exercises to my spaced repetition flashcard program (currently I use Mochi). In 15 minutes I can usually review a handful of flashcards of past problems and attempt one or two new problems.
For the next 40-45 minutes, I’ll slowly work through (including code along line-by-line) a long-form course/tutorial about a subject I’m interested in. Typically these are from Frontend Masters, Udemy, Level Up Tutorials , and similar.
This system has generally worked well for me, but it increasingly feels like it’s not as effective as it possibly could be.
- There’s nothing immediately tangible & demonstrable to show for for this time. For instance, I’ll finish the Level Up Tuts course and know a bit more about React Hooks… but no one else knows that I know more about the topic. That feels like a wasted opportunity.
- Fewer and fewer courses seem worth the time investment required to code along with from start-to-finish. For instance, say a course takes 6-10 hours for me to watch while coding along. Unless the topic is very new to me, it usually doesn’t feel like I got 6-10 hours worth of value from it. Maybe a few concepts have been solidified, and a few items were brand new to me, but usually it feels like I could have gotten the same amount of knowledge in just an hour or two of focused learning, rather than following a course. (There are caveats to this… more about that later).
Ideas for Improvement
Transition to using Egghead as my primary source for educational coding content.
The Egghead style of video is fast, concise, and with extremely little fluff. Initially I found it off-putting, but since learning from Joel Hooks that they are not meant to be coded along with, its helped a bit. Still, I haven’t made the full transition to really using Egghead content.
I am so used to the long-form style of courses/tutorials that really switching to Egghead is going to take some deliberate effort & practice. But it’s probably time to do so.
When learning a new topic, have my goal be to build something with it, rather than to just finish a course.
For example, say I feel a bit fuzzy about some of the aspects of the useEffect hook in React. My current response to that has been to go find a course on React Hooks.
For more beneficial would be to build something that uses the useEffect hook extensively (a CodeSandbox demo, a simple demo app, or even a blog post or YouTube video).
In this sense, a course is simply a tool to help me build something new. I’m free to use courses as needed, but only as long as they are helping me toward the real goal of creating something.
This type of learning would be far more targeted, and has the major added benefit of producing something that publicly demonstrates my knowledge of a subject, which completing a course does not do.
Have my interview prep/study efforts be fueled by actual interview experiences.
If I’m honest, I’m doing practicing interview questions partly out of a desire to grow as a developer, and partly out of wanting to be ready for an interview “just in case”. I don’t think that’s a bad thing. However, unless my efforts are grounded in actual technical interview experiences, I can’t be very targeted and I’m probably wasting some time.
I’d be better off finding my greatest weaknesses through doing actual interviews (or mock interviews), than just grabbing random problems from internet articles and doing them over and over.
Caveats
A quick caveat on the topic of long-form coding courses. I still think they are valuable in a certain situation
- The instructor is really good, and
- ~80% of the content is going to be brand new to you.
I still don’t think there’s any better way to be gently introduced to a totally new subject than by coding along with a well done long-form course from an experienced instructor.
Courses like this are how I first learned to code and built my first few real-life projects. They literally changed the direction of my career and life.
Conclusion
This has been a really valuable though process for me… I hope you got something out of it as well 😅. If so, please let me know! @ me on Twitter or send me an email.
Happy studying!
Follow me on Twitter!
Want more? Did I get something wrong? @markadamfoster