Learn Enough to be Dangerous
Recently I started reading this Ruby on Rails Tutorial by Michael Hartl. It’s pretty good; very hands-on, and doesn’t assume that you know Ruby (that’s a programming language; Rails is a web development framework). It does assume that you know enough about software development and web technology to be dangerous. And if you’re not dangerous yet,…
It points you at a web site where you can learn enough to be dangerous. Starting from knowing nothing at all.
It’s the author’s contention that Tech is the new literacy [and]
[l]earning the basics of programming is only one piece of the
puzzle. LearnEnough to Be Dangerous teaches [you] to code as well as a
much more powerful skill: technical sophistication
.
Part of that technical sophistication is knowing how to look things up
or figure things out when you don’t know them.
There are seven volumes in the series leading up to the Rails tutorial, giving you an introductory course in software development. I haven’t gone to a bootcamp, but I’d guess that this is roughly the equivalent. More importantly, by the end of this series you’ll be able to work through and understand just about any of the thousands of free tutorials on the web, and more importantly you’ll have learned how to think and work like a software developer.
The first three tutorials lay the groundwork: Learn Enough Command Line…, Learn Enough Text Editor…, and Learn Enough Git to Be Dangerous. With just those, you’ll know enough to set up a simple website – and you do, on GitHub Pages. You’ll also end up with a pretty good Linux or MacOS development environment (even if you’re using Windows).
I have a few quibbles – the text editor book doesn’t mention Emacs, and the author is clearly a Mac user. (You don’t need a tutorial on Emacs, because it has one built in – along with a complete set of manuals. So you’ll be able to try it on your own.)
The next three books are Learn Enough HTML to Be Dangerous, Learn Enough CSS & Layout, and Learn Enough JavaScript. The JavaScript is a real introduction to programming – you’ll also learn how to write tests, and of course you’ll also know how to use version control, from the git tutorial.
At this point I have to admit that after starting the Ruby tutorial I went back and skimmed through the others; I’ll probably want to take a closer look at the JavaScript tutorial to see if I’ve missed anything in my somewhat haphazard journey toward front-end web development.
The next book in the series is Learn Enough Ruby to Be Dangerouse. (If you skip it on your way to the Rails tutorial, there’s a quick introduction there as well.) Ruby seems like a good choice for a second language, and learning a second programming language is important because it lets you see which ideas and structures are fundamental, and which aren’t. (There’s quite a lot of that about JavaScript – it’s poorly-designed in many ways, and some things about it are quite peculiar.)
Another good second or third programming language would be Python. If you’d like to go there next, or start from the beginning with Python, I can recommend Django Girls and their Tutorial. This is another from-the-ground-up introduction to web development, so of course there’s a lot of overlap in the beginning.