From Zero to Star Programmer — Ultimate Roadmap

How to learn programming from scratch

Amrit Pal Singh
CodeHeim
4 min readJan 19, 2022

--

Photo by Stem List on Unsplash

I often think, what if I had a plan when I was learning to program. How would I start?

I learned the hard way. From books, friends, and getting my hands dirty. I did not follow a path or a roadmap.

After helping a couple of my cousins, I have come up with a roadmap that helps naive programmers learn the skills faster.

Roadmap

Pick a domain — learn a language —program every day — find a mentor — find a partner — learn frameworks and tools — program every day — find paid projects/internship — get a job and keep learning

Pick a domain

A to-be developer should first understand there are many domains of Software Engineering. Broadly categorized, here are a few of them:

  • Web development
  • iOS development
  • Android development
  • Game development
  • Embedded systems
  • Data Science
  • Machine Learning / Artificial Intelligence

Before getting into professional programming, you need to choose a path that interests you and you want to excel in.

A point to be noted here is — there is no single great domain, each has its own significance, and jobs are there for all.

Find a language to learn

Based on the path/domain you chose, you need to learn a programming language that progresses you on this path.

For example: If you choose web development, you need to choose one of the most popular languages used for the purpose:

  • Java script
  • Python
  • Ruby
  • Java
  • Golang

Analyze languages and their future prospects. Then pick and language and start learning it. You need to learn by doing. Implement a few projects to become proficient in the language.

Program every day

Just going through books and tutorial videos will not help you at all. You need to implement what you have read or watched.

Spend 3–4 hours a day learning the language and code simultaneously. I suggest reading and learning for an hour and about 3 hours coding.

These are rough figures, but the point to be noted is you need to do at least 5 days a week.

Don’t hesitate to ask for help

In today’s world, it is easy to find tutorials on the internet. You can buy courses for a few dollars.

These sources are good for experienced programmers. Programmers can make use of these tutorials and courses because they have a context of how things work.

Noobs find it hard to make sense of these sources. You should look for a mentor or an experienced programmer to guide you through the difficult phases of learning.

Get a partner

Another hack of learning is to get a partner who works with you and keeps you motivated. It is hard to earn coding alone, having a partner eases the learning. Together you can find solutions to the problems you face.

Having a partner helps you learn faster, do more projects, and hence creates a compounding effect on your abilities to code.

Learn frameworks & tools

Once you are proficient at the language, you need to learn the popular frameworks and tools that are used with the language.

For instance, if the language you choose is Python, you need to learn the following frameworks and tools on the path of Web development:

  • Flask
  • Django
  • SQLAlchemy

These frameworks, libraries, and tools ease your work, force conventions, structure the code well, and help you write less code.

Master a framework or two, understand the concepts, and implement a few projects.

Find paid projects/internships

Now, it’s time to put your skill to test. Find projects online for which you get paid.

There are a ton of websites that let you bid for work. The aim should be to find work and not earn money. But the enthusiasm you get when you are paid for your work is unmatched.

An alternate approach can be to find an internship where your skills can be used to build something.

Get a job and keep learning

This is not the final step, this is a new beginning. Now you know enough to get started, working in the industry will take you to the next level.

Learning does not stop here, keep learning and keep growing. You will have opportunities to learn not just the technical stuff, but also how to communicate, teamwork, dealing with others (like peers, seniors, clients, etc.) and the list is endless.

Consistency is the key

In general, if you want to learn anything you need to be consistent. Expertise comes only when you code every day for a significant time duration.

Having a mentor and a partner can push you to perform and more importantly perform consistently.

Programming every day makes neural connections in your brain that make you learn. Doing an activity consistently strengthens these neural bonds and makes them permanent in your conscious.

These neural connections come in handy when you face similar problems in the future. They equip you to solve new problems as well by creating enhancing your thinking and aptitude.

Wrapping Up

The journey of a naive programmer to a working professional is unique for everyone. What I have presented in this article is a generic path a student of computer science can follow to learn and get a job.

Thanks for reading! What do you think could be other roadmaps, please write in comments…

I hope you enjoyed reading this. If you’d like to support me as a writer, consider signing up to become a Medium member. It’s just $5 a month and you get unlimited access to Medium.

--

--

Amrit Pal Singh
CodeHeim

Cloud Software Engineer | Product Development | I write about Tech and Travel | Profile https://bit.ly/3dNxaiK | Golang Web Dev Course - https://bit.ly/go-gin