The hardest step you will ever take, is the first one. The rest will just naturally happen as you gain more and more momentum in one direction. So deciding that you want to be a programmer is a solid good first step. Whether as a hobby or as a career path, just have a reason to want to dedicate hundreds of hours to this practice.
Once you have decided that you do in fact want to partake in this world, then the following steps might be helpful to you as you find your own direction.
1. Pick a single technology
This is probably where most folks starting off get caught up the most. And fair enough, as there are dozens of popular programming languages to choose from and the same can be said for frameworks and 3rd party modules and IDE's, etc. So knowing where to begin when you are brand new to this whole thing is designed to be confusing. And you might even end up switching several times as you traverse through the choppy waters of online tutorials and videos.
Here is a top 10 list of the most popular programming languages for 2018, according to GitHub.
Do your research ahead of time and ask questions if needed. And if you are really confused, then send me a message and I can give you some further clarity on this whole thing.
2. Find your online classroom
Whether free or paid, there are hundreds upon hundreds of online resources these days for you to learn from. Take it that not all are of amazing quality, but trial and error is a part of the game. This will also come down to how you personally enjoy learning. Some people like online video content, in which case YouTube is always a popular choice, while others like the old fashion reading approach. And some prefer the physical location approach, in which case there is still the traditional college route as well.
Coding bootcamps have become a popular choice these days with many offering 1 on 1 mentoring sessions while being completely remote. Others have physical classrooms that you attend several times per week. While others even have live-in programs where you spend 3-6 months living on a campus with other bootcamp students grinding it out and building real world projects. Again, this will come down to how you prefer to do your learning and to your budget as many of these are not free.
I would suggest always starting off with the free material, giving it some time, and then shifting towards paid courses once you are more comfortable with the fundamental concepts. Which brings me to my last point.
3. Give yourself 3 months to get started
Many people make the mistake of getting discouraged early on when starting out learning to code. Mainly when they encounter something that they either deem too difficult or too boring. This is normal and usually just means you are either burning out, or you made a wrong turn and are lost in a dark coding forest. Retrace your steps, correct and try again.
Resist the urge to shift directions too much during this phase. Take notes, document your journey, blog about it. Do whatever it takes to keep yourself accountable to this whole process. I personally started out by building personal websites early on in my learning using the same programming language that I was using at work, C#. The first website taking me 6 months of daily consistent work to build, debug and launch.
After those 6 months though, I was several levels higher than I was when I began. I had solved a myriad of problems and challenges and the things that once frustrated me were second in nature. I kept a list of all the things that I wanted to get done, which was my motivator, and I researched and coded until each item was checked off that list.
Learning to code is a relatively simple process. Learning to code well, is an arduous journey. And how you start off will determine just how arduous the process is for you. Happy coding.
Did you find this article helpful?
Walter G. is a software engineer, startup co-founder, former CTO of several tech companies and currently teaches programming for a coding bootcamp. He has been blogging for the past 5 years and is an avid BMX rider, bio-hacker
and performance enthusiast.