One does not simply become a programmer.
The journey is long and hard. It's not for everyone. There are many prerequisites you would need in turn to become a proficient software developer. Most important of all is to have grit. No amount of talent can replace hard-headedness and raw willpower of getting to the goal you set for yourself. In the end, nothing else matters. Achieving your personal goals is what we all strive for.
However, you need to want it, you need to want to learn. Programming is a constant state of learning new technologies, practices, style guides and languages. Damn, I've been working as a software developer for two years, and every step of the way was a path of learning new things in order to finish my work! Hell, I'm currently in the process of learning MongoDB as it's a work requirement. Now you're wondering why I'm even telling you all this. It's simple. If you want to become a programmer, you need to be a nerd. Don't get me wrong here. What I view as a nerd does not match the stereotypical view of nerds in Hollywood. A nerd for me is a constant learner, someone who never stands still, always looking for new ways to improve upon himself/herself. Be a nerd! There is nothing wrong or embarrassing with being a nerd. I'm a nerd, and I'm freaking proud.
Now, when I've grabbed your attention...
I want to help you. I want to take you on a journey. Join me on the path to becoming a programmer. Of course, only if you have the grit needed to follow along. You need to want it.
I'll take that you are interested if you've read this far down the article. I'm glad you did.
Let's jump right into the belly of the beast. Here's a roadmap of what you need to reach your goal.
Intro to Programming
When you have understood the core concepts of programming and your language of choice it's time to put it to use. This part of your learning has less to do with the syntax of programming you will learn in the section above, and much, much more about logical thinking and problem-solving. A programming language is only a tool, it's still your brain that needs to be trained to solve problems. The brain is a muscle as any other, if you do not give it proper exercise, you will never prevail.
Start building stuff!
Start building immediately, it does not matter how little experience you have. Nothing compares to the actual creation of something productive. The experience one gains from building a concrete application with a set purpose is exponentially greater than only hacking away on some predefined examples and tutorials.
Learn about general software engineering
The language you write code in is only a small part of being a software developer. The big picture is, in all it's magnificent glory, massive. Too massive to even try to explain in one sitting. I even tried to explain this to a friend, long story short, after 2 hours of me talking like crazy, he couldn't wait to go home.
However, it's not that hard to partition into bite sized chunks.
- What are servers?
- What are clients?
- What's a database?
- What does the concept front end mean?
- What does the concept back end mean?
- How does one link the front-end to the back-end?
Well not really. It's a rough estimate of what one would need to start down the path towards enlightenment, on the journey of learning how to write code.
That's more than enough for today.
Hope you liked my rough roadmap of what it takes to be a programmer. All of what I write are my own experiences, many of which are rough as I have had to fight my way through this journey. Being a self-taught developer has shown me the beauty of open-source and the spirit of helping others. Hence, why I teach people how to code.