3 things I'd do differently if I learned to code today

This blog was originally published on Substack. Subscribe to ‘Letters to New Coders’ to receive free weekly posts.

Building great software. Having a fulfilling career. Solving challenging problems.

These are the aspirations that inspired me to learn programming in the early ’00s. They have likely also influenced you to want to learn to code, too.

But if we compare my learning experience with what would be yours, a whole lot of things would look different. The entire tech industry has transformed, with Generative AI and cloud computing being a few of the hundreds of new technologies that have become commonplace. Learning resources for new coders have come a long way, too.

If I had the opportunity to choose between learning to code in 2004 vs 2024, I’d choose 2024 without hesitation. There are simply fewer barriers to getting a quality, hands-on education today that is tailored to your unique needs — and I know exactly what I’d do differently if I learned to code today instead.

Today I’ll share how you can maximize the advantages of today’s learning landscape to learn even more effectively than generations past.

1. Engage in more knowledge sharing

Sharing knowledge with others developers is essential to growth and learning — not only does it give you valuable insights, but it also prepares you for the team-oriented reality of professional software development.

I learned immensely from both my professors and my peers in my university program. At the time, in-person settings were the best — and only — way to engage with others in real-time (or at least, with reasonable turnaround compared to writing a letter). We didn’t have video conferencing apps like Zoom, or collaboration tools like Google Docs. (To put things in perspective, we still shared code through floppy disks).

But today, coding students can communicate with virtually any developer in the world, regardless of whether they’re in a classroom environment. The online developer community is very open and welcoming, and there’s a lot to gain from receiving and sharing insights with them.

If I were learning to code today, I’d use a few different platforms to engage in knowledge sharing and feedback — and you should, too!

For one, you can ask for help when you’re stuck, be it troubleshooting code, understanding a concept, or approaching a problem. While Stack Overflow is a popular site for developers, I’d actually recommend platforms with more focused channels for beginner coders, like Reddit. Reddit has various subreddits that are friendly for new developers. Some good options are r/learnprogramming,r/reviewmycode, but there are many other subreddits specific to your particular language or specialization. (Just note: r/whatsthisbug is NOT about coding bugs).

Another approach is to do some technical blogging and explain what you’ve learned or done, instead of immediately asking for help.

As anyone in a teaching position can attest, the process of explaining helps you internalize your new skills. By encountering questions and hearing others approach the same problem, you’ll gain a deeper understanding yourself. Good places to post your articles would be blogging platforms like dev.to or Medium (when you do, don’t forget to invite feedback in the comments).

2. Use multiple hands-on learning resources

When I was learning to code, university programs were the most popular option for getting a hands-on, project-based learning experience. This structured pipeline was the most reliable way to get job-ready. But today that’s changed. Not only is having a degree no longer a requirement for landing a job, there are many other effective (and hands-on) avenues for launching a career as a developer.

Today, you can break into a coding career using alternative learning resources that best suit your budget, schedule, and learning style. Some options include:

  • Online courses (like our interactive Learn to Code courses at Educative)
  • Accelerated coding bootcamps
  • Projects to build with the skills you’ve learned
  • Free resources like MIT computer science lectures

Developers learn best by doing, so you should be making the most of all the hands-on resources that are available to you. If I had all these options when I was learning to code, I certainly would’ve branched out far beyond my university program and textbooks. (And today I do use a variety of resources for my own upskilling.)

Each learning resource has its own unique way of engaging your brain and strengthening your understanding. For instance, textbook problems can offer you comprehensive, structured information to reference. Meanwhile online courses are more easily updated with changes in technologies, and therefore less likely to be outdated. Most importantly, those online resources often provide interactive projects, sandboxes, and quizzes where you can put your learning into practice in a safe environment.

You’re only as good as the resources you make use of. Think of it this way: if you want to understand history deeply, you can’t do it from reading one book. You have to use several different sources to become an “expert.” I feel the same way about programming.

3. Seek out AI-enhanced resources

It’s no secret that generative AI is transforming software development.

It’s changing the way we work, as developers use tools like Copilot and ChatGPT to research, write code, debug, and more (but in case you’re worried, no, AI won’t reduce the demand for human developers).

AI is also changing the way we learn. The most powerful way it’s doing this is by making personalized learning available at your fingertips.

A personalized learning resource adapts to your needs, knowledge gaps, and strengths as you progress. If you’ve ever had a teacher or tutor work directly with you, you probably know how helpful it is to get tips or missing information that you need to get unstuck.

Personalization helps us learn to our greatest potential. But in the past, it has only been possible through 1:1 time with tutors — which is obviously cost-prohibitive, and not realistic for most people. At the same time, providing personalization has always been a challenge with online learning, where stock courses often take a “one-size-fits-all” approach. (This is actually something we have always strived to improve at Educative).

Now, we’re in a new era, where AI has made personalization possible for online learning platforms, too.

Beginners can now benefit from AI-assisted learning by using platforms equipped with AI tools specialized for educational purposes. Specialized AI tools can help you get real-time feedback and guidance — benefits that were once only possible with one-on-one or in-person learning.

At Educative, we’ve already rolled out AI-Powered Learning. Our AI-enhanced platform makes it possible for our learners to get customized curriculum, code feedback, and even mock interviews at their fingertips — for a fraction of the cost that I spent getting a similar level of personalized learning at a university. I’m personally excited to see how Generative AI will continue to make adaptive learning more accessible, at Educative and beyond.

One last note about AI: be careful about using AI assistants like ChatGPT and Copilot as a beginner. Generative AI can hallucinate and create wildly inaccurate outputs — no matter how specific and detailed your prompts are. The problem is, beginners don’t have enough knowledge to review and verify the accuracy of these AI assistants’ outputs, so it’s best to wait until you master the fundamentals before using them.

Maximizing your learning in 2024

It’s a really exciting time to learn to code. The next generation of developers will be instrumental to the future of software development, as we rethink and rebuild applications amid the rise of AI. Along the way, I hope you make the most of today’s learning landscape by leveraging all the resources available to you — from online communities, to diverse and hands-on learning methods, to AI-enhanced tools designed for new coders.

Despite all that has changed, developers still need to know core logic and programming skills. They need to be functional and battle-ready even if they don’t have tools or internet access at hand. As such, learning to code still requires strong programming foundations, from algorithms and data structures to the nuances of certain languages and use cases. That’s not going to change anytime soon.

You can learn everything you need to go from your first line of code to your first job with Educative’s AI-enhanced Learn to Code resources. You’ll find courses and projects with built-in coding playgrounds and instant feedback for personalized, hands-on learning.

Happy learning!

– Fahim

Subscribe to Fahim.dev - Thoughts on Learning and Growth in Software Development

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.