Coding From Zero: If I Had To Start Over Today


3 min read

Someone recently asked me what would I do if I had to start over again today.

I'm a full-stack developer with over a decade of hands-on experience in the field. I've co-founded several startups, and worked with thousands of users.

Today, I am going to share my step-by-step plan for becoming a proficient coder, even if you're starting from scratch. I've broken it down into four distinct phases, each packed with its unique objectives and challenges.

Phase 1: The Fundamentals

Think of this phase as the early childhood years of a kid. The first couple of years, when they learn to walk and talk. Here, you lay your foundation by learning the basics of programming, computer operations, handling variables and arrays, basic data structures and algorithms, and I/O operations. I recommend using Javascript, but any language should suffice.

The focus here is on understanding the concepts, not syntax memorization.

Resources like YouTube, books, and competitive programming websites can provide ample learning materials.

This phase is not flashy; your work won't impress your friends or family yet, but that's okay. You're building the crucial groundwork for your coding journey. Be patient, it took me three years to get past this phase! (but it doesn't have to)

Phase 2: Go Wild

In this phase, you'll experiment with different technologies and follow project-based tutorials. You'll start creating exciting stuff and gradually understand how to utilize your fundamental knowledge to develop functional applications.

Remember, it's okay to 'steal like an artist'. Copying, reproducing, and improving existing work is a proven method of learning.

When watching tutorials, pause the videos and try adding a feature by yourself. Go wild, and see what you can hack around. You might encounter bugs, or realize the feature is more complex than you anticipated. That's fine! In fact, it's desirable. Facing and overcoming challenges is what makes you a better developer.

By the end of this phase, you'd be ready for an internship or even a junior dev role.

Phase 3: Specialize and Master

Here, you pick a field based on your preferences and start specializing. Whether it's front-end, back-end, full-stack, React, Vue, Angular, AWS, Firebase, or something else, you focus on it and get really good at it.

You could go down the rabbit hole of documentation, books, and resources or learn from your peers. You could also take specialized courses.

Phase 4: Build Your Own Stuff

In this final phase, you bring your ideas to life. Start a side project, develop your dream app, or kickstart your startup. The learning you get from building something tangible from the ground up, all the way in the hands of the users is something you cannot learn anywhere else. Remember, it's essential to get your product to market quickly, even if it isn't perfect yet. Improve it based on customer feedback and continuously iterate&learn.

Wrapping Up

So, these are the four phases I would go through if I would have to do it again:

  1. Fundamentals

  2. Go Wild

  3. Specialize and Master

  4. Build Impactful Apps