Having started to teach myself how to code from September 2014, I was asked to send an email to someone who wanted to do the same. I figured it was useful enough to clean up a little and create a post which I could send to other potential programmers.
Self teaching is a route that more and more people are taking. I had £0 to my name when I started so really it was the only option for me. If you want to know more about me and what things look like when I started to learn, you can read this post: http://var.ghost.io/im-gonna-be-a-developer-2/. Then you can read this which was published a year later on what I’m doing now and some of my attitudes to learning how to code: http://codepancake.com/spotlight-34-charlotte-spencer/.
I’m going to outline a few things that have worked for me. This is not a golden path to learning how to code, nor should you listen to anything I say if you don’t want to.
Tutorials/Resources I always recommend to people that they learn how to write HTML & CSS first as that is what I did. These are the backbone of most websites on the Web and you will be able to see your code create visual things before your very eyes.
There are thousands of resources out there! But some of the ones I think are good are as follows:
Codecademy — https://www.codecademy.com. A very interactive tool to learn various programming languages. However it is only good up until a point. You really do need to practice what they’re teaching you. After I went through their entire web development track, I was surprised I didn’t know how to program after that. Continuous practice outside of these tutorials is going to be the only way you will learn. This was my favourite resource in the beginning because it showed me the potential of programming.
Treehouse — https://teamtreehouse.com/subscribe/plans?trial=yes. Treehouse is similar to codecademy in terms of providing quizzes and an in browser text editor to follow along with. However, the most useful part of treehouse are the 100s of videos they provide. They have curated some really good learning tracks and update and add new content all the time. Rather than code in their in browser web editor I do it on my own computer as it feels more real, I feel like I learn more and I also have my saved work that is easy to access. Note that the link gives you a 2 week trial and then you have to pay afterwards which isn’t something that I could do myself in the beginning.
Community! The most important thing (in my opinion) is becoming part of the community. Now, a lot of people will say “go to meetups” “go to conferences!!” but these are expensive both in terms of money and energy! I am a very anxious person so I don’t go to events much at all. If events are your thing then check out meetup.com.
The best way of getting into the community for me personally was Twitter —https://www.twitter.com. I’d recommend getting on it if you’re not already there. You can find me at http://twitter.com/charlotteis. Tweet me and tell me that you’re learning to code and I will make sure to introduce the community to you if you would like.
Through Twitter you will find cool resources and meet some nice people willing to help you. You will also see programmers struggle every day which is great perspective when you realise that developers of 10 years also have bad programming days.
There is also the CodeNewbie community — http://www.codenewbie.org/. They have forums, a Slack chat (basically real-time chat, like IRC if you are familiar with it, or MSN Messenger). Each Wednesday they do a Q&A on Twitter, where you’ll meet a lot of people like you who are trying to learn to code.
Podcasts CodeNewbie also have a Podcast which brings me to my next section. If learning by listening is your thing, I recommend podcasts. Great for when you’re doing the housework or riding the train (I can’t listen when programming as I find I don’t focus on them). Two I try to listen to:
CodeNewbie is one of my favouties because it interviews programmers every week and asks how they got into programming. There are podcasts on every programming-related topic you can think of so all you need to do is find them!
General thoughts on learning to code PROGRAMMING IS HARD. When teaching yourself you are going to have some bad days, some really bad days. Always take breaks. Even if you need to take several days off, when you come back to it you will be ready and your brain may also connect more dots after a period of rest. If I have a really hard programming problem that I can’t solve, I like to take a nap or have a shower and then more often than not I have thought of new ideas when I go back to my computer.
Those bad days will come. One of the hardest things about learning to program for me was learning to recognise the bad times, and then learning how to persevere through them.
Getting a job Internships are valuable, but only as long as they pay you. Jobs that pay you in “exposure” are trash and not worth you waking up in the morning. If someone offers you a room in their house in return for your dedication to their hot new startup that is like “uber… for cats”, run away. Seriously.
In conclusion I’ve given you a lot of words and links and nonsense here. You don’t need to do all those things, you don’t need to take any of my advice if you don’t want to. The important thing is that you do what you’re comfortable with.
My last last last piece of advice: don’t listen to everyone. No-one knows what they are doing but they might try and make you feel bad with the opinions on programming because they want to think they are better than you. They are not :)