I will update this post with more resources as I find them -- check back for more
(Just starting out in web development? This post is written for you)
Starting from scratch
One of the things that I've learned since becoming a developer is that sometimes "you don't know what you don't know." That is, sometimes you just have no idea how much you don't really know. This can be daunting, especailly if you're just starting out. This is definitely how it was for me. I remember that when I first started learning how to program it felt like there was an increbile vastness to this new world I was entering into.
[To skip past me rambling on about how great open-source is, skip to the lists at the bottom]
I'd felt comfortable for years in the worlds of the humanities and the sciences. Discuss the finer points of literary criticism? Sure. Ontolgical implications of a certain fundamental principle? Done. Parry over HLA Hart's legal positivism with your professor? Fine with me.
But understanding what a page full of strange symbols meant, what compilation was, what on earth a data structure is, or comprehend how people can know more than 20 programming languages all seemed something reserved for others, something beyond me.
But as I chugged along, learning about logical blocks, testing code, and everything else in this strange new world of computer science, I found that there was an incredible commmunity that I had no idea even existed. To be sure, I remembered a friend of mine showing me Github years ago, but I didn't really know how much the OSS community had to offer for a newbie like myself.
I found that there was this incredible community of passionate and dedicated people who were, surprisingly to me, not wanting to keep people out. Most of them think 'the more the better' and understand that solving problems well often involves the distribution of the problem domain to a wider variety of views, experiences, and inclinations. It's certainly not perfect, but the collaboration, honesty, and dedication of people in the OSS community make it an incredible place to learn and contribute. Check it out!
With all that reminscing out of the way, here are some great tools to get up and running straight-away. These are the things that I wish I'd had/known about/known how to use/etc. when first starting out. Enjoy.
- Code every single day. No one can hope to be excellent at anything if they aren't willing to try at it every single day. This doesn't mean you have to work at it for hours and hours every day -- that can sometimes lead to burnout and, ergo, failure -- but work at it every day.
- Read everything you can. There are so, so many books available online nowadays, not to mention a neverending plethora of easily-accessible and (sometimes) high-quality information. Take advantage of it!
- Take the time to get really good at one language before trying to get good at another one. You can try different ones out to see what you enjoy most, but you really ought to pick one and go for it. There are lots of people who are reasonable good at a lot of things, and they're interchangeable or replaceable. There are, however, far fewer people who are really good at a few things. These people can't be replaced so easily.
- Contribute to projects on Github. It will help you learn to be humble about your code, show you different ways to solve problems, and, perhaps most importantly of all, get you to interact with other developers.
- Answer questions on StackOverflow.
- Node School: While some of the more tutorial-based tools like Codeacademy and Treehouse can be extremely helpful if you are an absolute beginner, challenging yourself with things like Node School is sure to
- Code Academy: Code Academy is a great, free way to get started with some programming and markup languages
edX is a one of the more prominent and noted MOOC (Massively open online classes) programs around; so far a good number of
If you're looking for a more professional/focused way to learn, I've found that the Learn/Prime program from the good folks at Thoughtbot is a great route to go. You won't get as much