After a couple of messages asking me where or how to start to become a developer, I thought I should just write an article for reference purposes. This is totally based on my opinion and experience. Some of the questions I get come from people who don’t have any programming background. Now I can’t say go back to university and enrol in a computer science course, because frankly, I don’t think you need to. It’s beneficial, don’t get me wrong, but you can always just learn on your own and get to know web and mobile development basics and add that to your resùme.
Operating System
What operating system is best for programming? Mac, Windows or Linux. I have used all 3 over the years and naturally, I have a preference, but if you’re starting out all 3 are equally fine. As you learn more and get your training wheels off you will start noticing what you don’t like about one operating system, what you prefer about another etc. So don’t worry too much about what operating system to use. Comfortably use what you already have.
Computer
I started out with a really low processor computer and it became excruciating slow after my first year. I’d highly recommend at least an i5 processor to get you started because as you continue learning, you will start downloading some heavy software and running memory consuming processes. It’s always good to have a computer that will last you a couple of years before it starts wearing out as your skills get better and better. An i5 processor, 8GB memory and 256GB storage are good enough to get you started. In time, you can always upgrade and at least by then you’ll have known what specs to go for.
Programming Language
There are so many programming languages out there. Not knowing where to start especially if you don’t have someone guiding you is scary and discouraging. There is no ‘better’ language to start with. I think you can start with any, it all depends on what exactly you are trying to learn. If you want to be a web developer, a developer who specializes in creating web application or websites, then you’re best bet is to learn HTML, CSS and Javascript and or PHP. Those 3 are enough to get you on your feet.
Other languages that are very beneficial to learn are Python, Java, C++ and C. As you progress, you’ll notice the similarities in some of these languages and you’ll end up taking a shorter time understanding some of them.
How to learn
This part can be tricky. I thought it was at least, and I can only imagine how tricky it can be if you’re learning all on your own. I prefer using books to videos. I find books more in-depth and chances are they describe concepts that are not described in videos. Also, I am not a fan of learning programming on youtube. For videos, I use Udacity and or Coursera or Pluralsight (which by the way is giving free access for April). Feel free to use Youtube, however, the only reason I don’t like the content there is because I don’t think it’s enough. When I learn a language, I like to understand everything there is about it, not just to know how to use it. What has worked for me thus far is understanding the basics of the language first. In this case, going through topic by topic of a book, and doing the exercises. After a few weeks, is when I get into developing a project in that language. You can look for project ideas on the internet or ask a more experienced developer what kind of project to build, or build whatever is in the book you’re using or the video tutorials you’re following. I know many people would find books boring video tutorials from Udacity, Coursera and Pluralsight are highly recommended. For books, I like to use HeadFirst programming books.
Create a github account and set up all your projects there. Github is sort of like a resume for developers where other people can see the projects you’ve done.
Be patient and gentle with yourself because it takes a while and more often than not you will get frustrated. Remember you don’t need any programming background to become a programmer. Just do it.