I have been asked by quite a few people how to get started with learning to code. I’m not an expert by any stretch of the imagination (I work with people who have been building their own websites and/or servers since they were ten) but since I have several years of experience under my belt and people are willing to pay me for programming, I must be doing something right.
Obviously, if you’re interested in learning to code you already realize why it’s important in today’s economy to have very basic programming skills. If you think that there’s no way learning to code can help you, I beg you to reconsider. At the very least a basic knowledge of coding will help sharpen your logic skills, look great on a resume, and help you understand how the technology you use every day operates on a basic level.
There is also a serious need for talented coders in every size company (as opposed to just copy and paste assembly-line coders, which is usually outsourced) and a junior level coding job starts at around $60-$70K in the NYC area. Even if you’re not at all interested in becoming a coder, it makes a great bargaining chip in salary negotiations and helps you understand the limitations and abilities of the medium you’re working with.
I’m assuming that you have little to no coding knowledge, and that you want to learn how to craft code, not just copy and paste answers from Stack Overflow. Also since my area is front-end development I’ll focus on what it takes to learn front-end development. Any back-end developers out there please chime in with your own resources, I’d love to hear them!
For the Beginner and Hobbyist:
Python. It’s very user-friendly with a great community and can be used for a lot of different applications. It’s not a front-end language per se, but it’s a great beginner language for picking up the basics.
Learn to Program: The Fundamentals. I can’t sing the praises of Coursera enough for those learning to program. Unlike a lot of online “learn-to-code” classes, it actually explains the why behind what you are doing, and covers a lot of the fundamentals with advanced classes if you want them.
D is for Digital by Brian Kernighan. I actually read this before every job search after I had an awful mind-blank moment when an interviewer asked “how does a web page load?” :face palm:. It’s a really great book that sums up comp-sci 101 in about a hundred pages. Even if you’re not learning to code I recommend reading this just to understand how computers work.
For the Serious Student and Junior Front-end Developer:
(Note: HTML, CSS, and MySQL are not considered actual programming languages. They are a text markup language, style sheet language, and a database engine respectively, but just to keep things simple I’m lumping them in with the rest of the languages)
An editor. I personally use Webstorm, but a lot of my friends prefer Sublime Text or Vim. Whatever you decide to use, just get a good editor and stop using notepad.
Github. Your Github account will become your portfolio. It’s important to post anything you are working on to your github account to show people what you can do, and it’s even better if you get involved in open-source projects.
Git. You need to learn git. I’m not going to lie, this process is always a mindfuck at the start. I found that this git game was very helpful to visualize what is going on.
Still Coursera. Just pick any class, they’re all good.
Don’t Make Me Think by Steve Krug. Just a great book on web design.
Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma. This covers the fundamentals of writing well-thought-out software. Obviously, I’m a little biased since I prefer object-oriented programming, but if anyone has any functional programming resources let me know.
Stack Overflow. This community is just a godsend for any questions that you might have.
Mozilla Developer Network. Another great community if you run into any problems or have questions.
W3C. Don’t fall for the W3Schools website that always is at the top of the google search results (I was guilty of this one at first) they are okay for basic stuff, but they are often out of date and miss the subtleties of a lot of concepts. Go straight to the source for any documentation that you need.
Get involved in the community! Nerds are incredibly altruistic and we have a lot of fun when we get together. In New York my two favorite groups are NYTech Women and Ladies Who Code (Sorry guys, I happen to be female so I’m a little biased) but Meetups are a great way to find a group that matches your needs.
Obviously your needs will probably change as you learn more about programming and you start to find your specialty. There are so many different niches to get into once you master the basics, and there’s plenty of room for everyone.
But believe me, I understand how overwhelming it can be. Sometimes you just don’t even know where to start, so this list is the advice and resources that I wish that someone had told me when I first started. I hope you found it helpful!
Fellow developers, what are your recommendations and advice for someone who is just starting out?