This article was originally published back in 2016 and it's based on my own experience as a self-taught programmer.
One of the reasons I decided to learn how to code was all the hype from the social media that simply gave me the impression of how easy is going to be.
I would read all sorts of articles about the software industry and I felt that it seemed to me kind of easy to become a programmer as I already had a background in math.
I was wrong, it was not easy and I made some rookie mistakes that could have been avoided and I hope you will avoid after reading this.
Myth #1: You can monetise your basic programming skills very early
When I quit my job I had money to live with for a couple of months. “I will monetise my newly programming skills on freelancer.com very quickly”, I thought. Boy, I was wrong!
First of all, freelancer.com is not the place to be for a newbie self-taught programmer because it is a very competitive market place. I mean, you have nothing to show for and you have to build your portfolio which is not such a fast process, that’s why you are a beginner in the first place, right?.
So, like other industries, software is no different. You have to take some time to learn very well the basics before you can get paid for it.
Myth #2: You will quickly find a programming job because is huge demand in the market
I was very confident that companies will rip off each other in order to hire me because they need programers so badly. Not quite true as I found out the cruel truth by applying to ~ 40 companies before someone called me for an interview.
I realised there is demand, indeed, but not for juniors or entry-entry-entry-level programmers. 90% of the job posts were starting with “We’re looking for an — insert programming job here — with at least 2–3 years of experience”. The best shot you have as a self-starter is at an internship in a medium or big company or at some very junior position in a small company — these were the trends I have observed, but is does not have to be necessarily this way.
My strategy was to build some of the front-end projects from the FreeCodeCamp challenges to have a mini portfolio and draw some attention at my resume.
Myth #3: Having a degree in CS is not very important
I used to think that is not so important if you have a degree in Computer Science (CS), but what you built is the most important thing for an employer. From my experience this view is only half true. There still are a lot of companies that seek only CS grads and you have a small chance of being called for an interview.
One day, an HR company I have been in touch with called to asked me if I would like to send my resume to a german company. I said: “hell yeah!”. I did not hear from them for a week, so I called them to see what’s happened. They told me the german company did not take into account my resume because I hadn’t a CS degree and they look only for CS grads.
Now, it depends what type of job you really want. If you aim for a software engineer position I would suggest to get some online credentials because it helps a lot, but if you want to be more of a web/mobile developer, your portfolio speaks by itself.
Myth #4: After a couple of tutorials you’ll be up and running
Do you know why companies spend so much on marketing? Because it works! The same thing applies to all those articles and blog posts on “how easy you can learn to code by getting through a couple of tutorials”. It is not quite true because first of all, it depends a lot on how you learn best.
There are some people that learn by brute force — googling “how do you do x” and maybe watching a short video on youtube and then starting to code — whereas others really like those long video tutorials. I am somewhere in the middle. I like to watch some videos to get an idea, then starting to code and when something is not working I will go directly on stackoverflow.
There is no best way of learning to code, there is just everyone’s way and you have to find yours. I warn you, you’ll need a couple of weeks to shape your learning style and to see what works best for you. Whatever happens, don’t quit because consistency is key in learning something new.
Myth #5: Learning programming alone is not so bad
I have always been an auto didactic person and I learned by myself everything that interested me or triggered my curiosity. I thought that coding will not be too for from that. I was wrong.
Coding is pretty tough to learn in the beginning because you can get stuck at something for a day and still not being able to solve it, which at the end of the day it weighs down on you and in a couple of weeks can get a toll on you. I was lucky to find out about FreeCodeCamp, but still I wanted to have face to face conversation with someone who’s in the same situation as myself and to share our pains or some tricks we learned along the way.
To sum up, learning how to program on my own was not the most romantic experience, but that does not mean I did not enjoy the hell out of it. My main message is: learning how to program is harder than you think, but is totally doable. So, keep up the good work and don’t give up because the day you give up is the day before you succeed.