This is different for everyone, and unfortunately there is no one correct answer. What I recommend is try to ask how other programmers got into their craft, and then relate their stories to your experiences and try to find the one which might work best for you. So, here is how I started programming.
How I started
I had tried to get into programming in high school, but with no luck. Any tutorials I’d try I wouldn’t really understand what was going on, got stuck and got demotivated. I had one friend who was a very good young developer, and I started to get the feeling that I was “too late”, and programming was not for me. Unfortunately I found out later that this couldn’t be further from the truth.
I realised this half way through an Aerospace/Physics degree. I realised that I didn’t really like what I was doing, and there were not many job opportunities in those sectors either, so I had a good think about what I wanted to do and decided to take the first year programming courses at my University (Sydney Uni) to see how I do. After completing those it was like my life transformed. Something just “clicked” and whenever I tried to follow a tutorial, everything was just so easy to understand and apply. All because of a structured year-long introductory course, and I loved it. I absolutely love to code, and one of my biggest regrets is not learning to do so 10 years earlier.
So, my personal recommendation, is to take a long, structured introductory programming course for complete beginners. What I found especially useful is to have a dedicated teacher I could quickly ask questions to if I had any trouble as well. After my Degree, if I wanted to learn something without good content, I would directly hire (on Fiver or People Per Hour) an expert in the field I was learning to ask questions to directly. If there was a community with an active forum (Like Unity’s discord, or you could join our discord and ask on there too ;P) join it and use it.
Other peoples’ stories
I started very late, but two devs I know, Adam and Aku, both started quite early but from completely different methods. Adam started in primary school. He started with the now depreciated Adobe Flash Player, wanting to add interactions to his animations. From there he went into different languages using “fat books” (which he mentioned having step-by-step tutorials for small games and other projects) and finally landing in a community of people who were reverse engineering Call of Duty under the guidance of “some Dutch guy”. Adam is currently teaching programming at The University of Technology Sydney, but does lament the lack of creative outlets for our generation: Everything is “locked down” with no moding, or other ways to “hack” into modern games which are easily accessible or encouraged.
Aku went the other rout, taking classes in high school, then uni and then going strait into industry. His recommendation is for someone just starting is to “have fun”, and not worry too much. Coding is fun and that is what you should prioritise. Once you get a bit deeper into it, writing good code is important. “Ways to limit code redundancy, design patterns, good structuring… really, go deep into learning what can be done with object-oriented design, and especially what should not be done.”
Also, a big recommendation he gives, is when writing something new, see if there is a way to write code that is more generic, and add that to an external toolkit you put all such functions and systems you write. It saves a lot of time later and is better than just getting code from the internet because everything there is code you wrote and understand, making it much easier to debug when bug fixing.
What is your story? Share it in the comments!
If you are starting your first project, read this. It’s the biggest misconception I see in new Entrepreneurs.