I frequent the Learn Programming subreddit quite a bit. I’ve found it’s helped me out a great deal, and I’m always really, really happy on the rare occasion where I’m able to help someone else out. One question I’ve seen crop up time again is ‘What Now?’. ‘Where do I go from here’?
It’s common for people to go through the Javascript course on Code Academy, or to work through Michael Hartl’s Rails Tutorial and have absolutely no idea where to proceed when they’ve finished them.
The (amazing, albeit sometimes frustrating) thing about programming is that it’s huge. Really huge. Just imagine the most incredibly vast thing you can think of, and then double it. That’s programming. When you’re a programmer, you’ve got to accept as a given that you’re in for a lifelong learning experience.
That in itself is really daunting. The vastness of the field of computer science is almost as great as the vastness of space. So, in this blog post I’d like to talk a bit about where you can go once you’ve completed one of the many introductory programming courses that are floating about online.
Foolish Assumptions
Firstly, I’m going to make a bunch of assumptions about who you are. I’m going to assume that you’ve got the basics of programming down (variables, arrays, flow control, functions) and that you’ve enjoyed learning how to code. I’m also going to assume that you want to progress further, and hopefully start a career as a computer programmer. Seem fair? Okay then.
Learn Some (allegedly) Boring Stuff
A lot of these introductory Python/Javascript/Ruby courses neglect some really important stuff. Stuff that isn’t immediately sexy, but is actually really useful. Things like algorithms and data structures.
It might seem a bit tedious now, but you’ll probably benefit a great deal in the long run. Plus, it’s really for learning how sorting algorithms work, and how you can use mathematics to find the shortest path.
Daniel LaMire blogged about the top five algorithms he knows. That article is worth checking out just for the comments. Also, the University of Auckland in New Zealand has some good lessons on their website, where they give an introductory look at data structures and algorithms. Well worth a look.
Hang Around With Smart People
I live in Liverpool, and my local hackerspace is DoES Liverpool. They regularly have events that are open to the public, and they also offer really affordable hotdesking. What’s great about DoES Liverpool is that the people who go there are always friendly and insightful. I’ve learned a lot just by hanging around with people who are older (and smarter) than I.
If your city has a Starbucks, odds are good it has some variety of tech community or a hackerspace. Show up to one, and strike up a conversation with someone who you’ve never met before or attend a talk. You might learn something!
Attend A Hackathon
Hackathons are great ways to meet cool people, and work on cool projects. The way Hackathons work is you crowd into a room that’s stocked with coffee, fruit and pizza, and separate yourselves into small groups. You then pick a project and start coding. Simple as.
Quite often, the motives behind a hackathon are quite altruistic. People work on projects in order to improve the quality of life of other people. Two examples that immediately spring to mind are the Social Care Hack Day and the NHS Hack Day.
incidentally, the Social Care Hack Day is happening next week. If you’re in Liverpool and want to work on projects that benefit that actually help people, drop the organizer a tweet.
Learn A Framework
So, you’ve learned Javascript and you want to expand on what you know? Learn a framework. I’m not much of a Javascript guy, but I’ve heard great things about Knockout, Backbone and Ember. If PHP is your thing, consider Zend or Symfony. Apprentice rubyists would likely benefit from learning Rails or Sinatra.
Frameworks are good, because you get exposed to a lot of concepts that you’ve perhaps never come across before, like MVC and (possibly) OOP.
Make Something
If you want to be a programmer, you have to practice that skill. If you don’t, your ability to code atrophies. With that said, it can be hard to think of a project on the fly.
If you’re thinking of getting into web-dev, you might want to write a simple web application. An application to make a to-do list, or a Twitter clone, perhaps. If you want to get into games development, have a play around with SDL and create a simple application where you move a shape around a canvas. Start simple, and build up.
Write
So, you’ve made something cool, or learned something new. Tell the world about it! There’s evidence which suggests that writing about a subject aids the learning process, and guess what? Writing is fun. It’s really gratifying to see solidify on the screen, concepts and ideas that you previously struggled with. It’s also really gratifying to help other people.
What About You?
I’m really interested in how people learn to code. Seriously. It’s fascinating. If you’ve ever been in the position where you’ve completed an online course on programming and wondered where to go next, I’d love to hear from you. Drop me a comment below and tell me about your experiences.
Enjoy This Article?
You might want to subscribe to this fine blog that you’re currently reading. Leave your email address in the box on the sidebar, and you’ll get an email whenever I write a new one.
I frequent the Learn Programming subreddit quite a bit. I’ve found it’s helped me out a great deal, and I’m always really, really happy on the rare occasion where I’m...