This is a story about the single most valuable skill you can learn in the 21st century. At Learn Enough, we believe that learning this skill can benefit at least a billion people, and probably more. It is our hope to reach and inspire as many of these people as possible—and we want you to be a part of it.
The Ruby on Rails Tutorial
The story begins a few years ago, after I finished making the first edition of the Ruby on Rails Tutorial, a book and screencast series that ended up becoming one of the leading introductions to web development. I was reflecting on my time in graduate school, where I was an award-winning instructor in the physics department at Caltech. Physics is a lovely subject, but I had to admit that it isn’t the most valuable skill for most people. I found myself wondering, well, what is the most valuable skill? The answer that popped in my head was “computer programming”—specifically, “web development”.
It was a bizarre experience: I had reasoned myself into teaching the exact subject I had just spent over a year working on! With hindsight, I probably should have made this analysis before writing a 700-page book and making over 15 hours of screencast videos, but it was gratifying to realize I hadn’t wasted my time.
Only one piece of the puzzle
In the years since this surprising realization, the Ruby on Rails Tutorial has gone on to teach web development to millions of people around the world. It has helped start new careers, build amazing products, and launch wildly successful companies. Wikipedia founder Jimmy Wales even called the Ruby on Rails Tutorial his “favorite book.” And yet, I’ve realized my original answer wasn’t quite right: computer programming is important, but it’s only one piece of the puzzle.
Wikipedia founder Jimmy Wales even called the *Ruby on Rails Tutorial* his "favorite book."
The main catalyst for realizing something was missing came from attending a small conference for “bootstrappers” called BaconBizConf (because your business is “bringing home the bacon”). Even though BaconBizConf is aimed mainly at entrepreneurs, not at software developers, over the course of the conference probably a third of the attendees came up to me and told me how much they liked the Ruby on Rails Tutorial. “Thanks,” I always said. “I’m glad to hear it! But why did you read the Ruby on Rails Tutorial?”
Their answer surprised me, and it was always the same: even though they weren’t developers themselves, these bootstrapping entrepreneurs said they wanted to understand how software development works, both for their own satisfaction and so they could better communicate with their technical employees and colleagues. Even though the Ruby on Rails Tutorial wasn’t aimed at them at all, they had read it anyway. This was a big hint that something major was missing in the world of technology education.
Tech is the new literacy
More than anything else, it was this experience at BaconBizConf that planted the seed for Learn Enough. It made me realize that, as important as programming is, it’s only one part of the much more general and powerful idea of technical sophistication, the combination of Tech is the new literacy.
hard and soft skills that gives you the seemingly magical ability to solve any technical problem. Technical sophistication includes concrete skills like command lines, text editors, and coding, as well as fuzzier skills like googling the error message and knowing when to just reboot the darn thing. It’s more than “learning to code”—tech is the new literacy, which is a much more general and powerful skill than coding alone.
Technical sophistication is the single most valuable skill you can learn in the 21st century.
Technical sophistication gives you the ability to collaborate with millions of developers around the world, to build and sell both static websites and dynamic web applications, to start a career as a software developer, and even to found companies worth millions of dollars. Technical sophistication is essential not only for aspiring developers, but also for anyone who works with them: project managers, designers, marketers, and more.
Learn Enough to Be Dangerous teaches you technical sophistication.
Learn Enough to Be Dangerous teaches you technical sophistication. It’s designed to be the best place to start to learn technical skills, even if you’re a complete beginner, while still being useful for those who already have some technical experience. (Among other things, I’ve learned not to underestimate the enthusiasm many experienced developers have for filling in the gaps in their knowledge and brushing up on the basics, so Learn Enough is designed to be great for them as well.)
Getting in on the ground floor
The foundation of Learn Enough is a series of written tutorials and video screencasts covering the most important skills for developing technical sophistication. They are designed to help you learn enough to be dangerous, so that you pick up new skills as quickly as possible without worrying (yet) about complete mastery.
Every Learn Enough tutorial is available as a free online version, with ebooks and video screencasts available separately for purchase, The heart & soul of Learn Enough to Be Dangerous is the Learn Enough Society.
but the heart & soul of Learn Enough to Be Dangerous is a subscription service called the Learn Enough Society—a collegial (and extremely dangerous) group of people working together to develop technical sophistication.
Everything we do is for real
If you search online for resources to help you learn to code, you’ll discover that there are a lot of great services on the Web that guide you step by step through challenging and valuable subjects right in your web browser. One big advantage of this approach is that there’s so much less that can go wrong—a command-line command or a JavaScript snippet typed into a carefully controlled environment is more likely to work the first time. The downside, though, is that in real life things go wrong all the time. Learning how to deal with the inevitable errors is an essential part of technical sophistication, and in-browser tutorials shield you from exactly the kind of complexity that helps you grow in this knowledge.
We recommend making use of every resource you can get your hands on, and in-browser systems are a great part of that, but at Learn Enough to Be Dangerous our philosophy is that everything we do is for real. You already own the world’s greatest interactive platform for learning technical sophistication: it’s called a computer! Rather than shield you from the problems of the real world, Learn Enough builds incrementally from simple to complex examples, taking each minor error as an opportunity to improve your understanding.
When you learn technical skills in a controlled environment, there’s always a risk that you’ll end up wondering, “When will I ever use this?” With Learn Enough, this question never arises, because you’re always actually making and shipping real projects. For example, in Learn Enough Git to Be Dangerous, you use the amazing Git version control system to track changes in a real HTML project. And I don’t want to spoil the Secret Bonus at the end, but let’s just say that if you’ve never published anything to the live Web, that situation will be remedied by the end of the tutorial—and all before you’ve even reached Learn Enough HTML!
“Are you technical?”
Speaking of technical sophistication, one of my most intense technical experiences was going through the Y Combinator entrepreneur program, the startup accelerator behind companies like Reddit, Dropbox, and Airbnb. Every year, Y Combinator hosts an event called Startup School, which brings together ambitious entrepreneurs from around the world to be inspired both by the amazing invited speakers and by each other. In 2007, I had the good fortune of being in the audience when Facebook founder Mark Zuckerberg spoke about how he likes everyone around him to be technical—even people who aren’t filling technical roles.
Later at that same Startup School, I was talking with an entrepreneur who was working on a company that involved creating a new programming language. Although I’m actually a huge nerd, Everyone can be technical.
I don’t always look it, and that day I happened to be dressed in clothing that made me look more like a prototypical manager or investor than a coder. As a result, the person I was talking to wasn’t sure how detailed he could get in describing his company. His exact question to determine this was, “Are you technical?”
So we see, both from Zuckerberg’s talk and from the question I got, that being technical is the thing that separates those who really understand technology from those who don’t. It’s a huge dividing line in our world: technical vs. non-technical. “I’m not technical,” you’ll hear people say. Well, at Learn Enough to Be Dangerous we think that everyone can be technical. That’s why we say that at least a billion people can benefit from learning technical sophistication, and probably more.
Unleash your technical genius
What will high schools look like when every student can ssh into a Linux box, fire up Vim, and fix a broken config file? What will law firms look like when everyone from partner to intern knows the basics of version control with Git and shell scripting with Ruby or Python? What will the world look like when everyone understands all the words in this paragraph? I don’t know, but I bet it will be amazing.
One reason I’m so optimistic is that I’ve seen how millions of people have learned web development with the Ruby on Rails Tutorial, not just in the United States but around the world. As just one example, I’d like to show you a video my cousin Justin Zoradi made while he was in East Africa doing work for his nonprofit organization These Numbers Have Faces. In the first few minutes of the video, Audrey Chen and Frank Tamre tell us a little about Moringa School, a code academy they founded in Nairobi, Kenya:
If you watch the video, you’ll see that Frank mentions an impressively long list of technologies: Ruby, Rails, Android, HTML, CSS, and JavaScript. And look at the computer screens the camera flashes on: they’re Linux laptops running command-line terminals and Git. This is technical sophistication on an international scale!
Also remember that the Ruby on Rails Tutorial is fairly advanced, and is not really designed for complete beginners. The first Learn Enough tutorial, on the other hand, is aimed at complete beginners, starting with the most basic computer skill—the command line—and building from there. With at least four billion people still not online, and a few billion more who haven’t yet learned to code, we are still in the early days of technical sophistication.
Everyone has a technical genius trapped inside them. With Learn Enough to Be Dangerous, you can unleash your technical genius.
The Learn Enough Society
In order to make technical sophistication available to as wide an audience as possible, all the Learn Enough tutorials (including the Ruby on Rails Tutorial), are available in their entirety for free online. That’s over 1000 pages of content available right now as free online versions.
Sometimes people ask me if it’s really OK to use only the free online versions. I always tell them, “Of course, that’s what they’re there for!” You should never feel guilty about using the free versions of any Learn Enough tutorials. The whole point is to let anyone learn technical sophistication without paying a thing.
For those with the resources, dedication, and drive to take their learning to the next level, we’ve created the Learn Enough Society. When you join the Society, you get lots of goodies like hours of streaming video screencasts, progress tracking, and hints on the exercises, but it’s more than that. The Learn Enough Society is a movement, and you should join because you want to be part of teaching the world technical sophistication.
The sky is the limit
When you learn technical sophistication, the sky is truly the limit on what you can accomplish. In the main Learn Enough sequence, you continuously level up your skills, unlocking new abilities (and income potential) at each stage.
What will you do with your newfound technical sophistication?
The first level is Developer Fundamentals. In this level you’ll learn three essential skills:
- The Unix command line
- Text editors
- Version control with Git
The order here is important: each step is designed to build on the previous one, so everything fits together as an integrated whole. Moreover, at each step you don’t even need to know the category of application, so if you’re not sure what a command line is, Developer Fundamentals is the place to start.
After finishing Developer Fundamentals, you’ll be in a position to collaborate with millions of developers around the world. Collaborate with millions of developers around the world.
In fact, ask a developer how great it would be if all project managers and designers knew how to do a git pull
, make a change with a text editor, make a git commit
, and then do a git push
. Be prepared for a high-volume response, as in literally really loud: something like “Are you kidding? That would be amazing!”
Even if you don’t end up developing software yourself, mastering the Learn Enough Developer Fundamentals will go a long way toward developing your technical sophistication.
Make and sell websites for thousands a year
The next level is Web Basics, which increases your technical sophistication by teaching you the essential skills needed to develop for the World Wide Web:
- Building HTML pages
- Learning page layouts with CSS
- Using a static site builder to make industrial-grade websites
As with all Learn Enough tutorials, everything in Web Basics is 100% for real: before even finishing the first section of Learn Enough HTML to Be Dangerous, you’ll deploy a real website to the live Web.
Sell custom websites for thousands of dollars a year.
By the time you finish Web Basics, you’ll be in a position to make websites for yourself, and also sell custom websites for thousands of dollars a year. And even if you don’t want to make your own websites, knowing the basics of HTML and CSS lets you better understand any developers or designers you work with.
Make web sites for fun or profit
After learning Web Basics, you’ll be ready for Beginning Development, which consists of Learn Enough tutorials on two programming languages, JavaScript and Ruby:
The Beginning Development tutorials prepare you for making dynamic web applications, starting with JavaScript, the only programming language that can be executed inside web browsers. In Learn Enough JavaScript, you’ll build not one but two dynamic web applications: one for detecting palindromes and one for making a beautiful image gallery.
You then learn Ruby, an elegant and powerful programming language described by its creator as being “optimized for programmer happiness.” As part of this, you’ll learn the basics of Sinatra, an amazingly simple yet still professional-grade Ruby framework for making dynamic web applications. Make dynamic web apps with one of the most powerful technologies on the Internet.
By the end of the Beginning Development level, you’ll be able to make simple dynamic web applications, both for yourself and for others, with potential earnings of tens of thousands of dollars per year.
Get a job as a full-time developer
The final step in the main Learn Enough sequence is Professional Ruby Web Development: the Ruby on Rails Tutorial itself (700+ pages of written content and over 15 hours of video screencasts). After completing the Ruby on Rails Tutorial, you’ll have a deep understanding of what web applications are and how they work. As programmer, author, and popular TED speaker Derek Sivers put it in his foreword to the Ruby on Rails Tutorial book:
My former company (CD Baby) was one of the first to loudly switch to Ruby on Rails, and then even more loudly switch back to PHP… This book by Michael Hartl came so highly recommended that I had to try it, and the Ruby on Rails Tutorial is what I used to switch back to Rails again… Though I've worked my way through many Rails books, this is the one that finally made me "get" it.
Millions of people have already used the Ruby on Rails Tutorial to learn web development with Rails, giving them the ability to get better jobs, or in some cases start entirely new careers in the tech industry. Many developers start earning six figures within a year or two.
For example, I had one reader tell me that he was making less than $25,000 a year in a terrible job managing thousands of Excel spreadsheets by hand, when he decided to roll up his sleeves and learn web development with the Ruby on Rails Tutorial. Just six months later, he found a position as a junior web developer making over $80,000 a year—more than tripling his income from his previous dead-end job. (And that was just to start; many developers start earning six figures within a year or two.)
Remember, all this is based on Professional Ruby Web Development with the Ruby on Rails Tutorial, which isn’t really designed for complete beginners. Imagine what people will do with all of Learn Enough to Be Dangerous!
Or maybe start a company worth millions!
There’s a final possibility that comes with absolutely no guarantees but is simply too amazing not to mention. It’s the true story of a young Irish entrepreneur named Jules Coleman, who founded the home cleaner booking site Hassle.com in 2012. Here’s how Jules tells it:
When we started out, we had the business idea, but not the technical expertise to execute it. So the first challenge for me was teaching myself to code. Being a management consultant, I had no knowledge of how to build a website, so I bought a book---the **Ruby on Rails Tutorial** by Michael Hartl---and decided to teach myself in my spare time. I went through the book page-by-page, line-by-line and was over the moon when six weeks later I'd managed to build the first version of Hassle.com.
A few years later, Jules and her cofounders sold Hassle.com for… wait for it… over 36 million dollars!
Of course, “results not typical”, as they say. But it’s great knowing something incredible like that really can happen!
It’s time to get serious
One of the things that makes me proudest about the Ruby on Rails Tutorial is that it’s a successful product business that still gives away a 700-page book for free online, and I’m pleased to continue this practice with all the Learn Enough tutorials. One thing that has surprised me, though, is how strongly people feel about paying for value.
When I first launched the Ruby on Rails Tutorial, there weren’t yet any screencast videos, and I wondered why people were buying the ebook even though it was available for free online. It turned out that many people liked the sense of ownership, knowing they had a copy that no one could ever take away. Others said they wanted to support the project—often going to great lengths to show it. For example, at one point I got an email from a customer in Nigeria (I’m sure he’s heard all the jokes) saying he was having trouble paying from his country, and after a few exchanged emails with no success I just sent him a free copy of the ebook. A week later I heard from him again: he said, “I’ve figured out a way to pay you!” I was amazed—and, of course, grateful. (When I finished the Rails Tutorial screencast series, I sent him a free copy, insisting that this time it was truly a gift, which he graciously accepted.)
Of all the reasons people cited for paying for a product, the one that struck me the most came from my friend Miles Forrest. Miles told me that he’d bought the Rails Tutorial ebook When you pay for a product, you really commit to learning it.
as a way of telling himself it’s time to get serious. When you pay for a product, he explained, you really commit to learning it—a commitment you don’t necessarily make when using a free online version. And research on the science of persuasion has shown that when you commit to something, you tend to remain consistent with that commitment, which means that paying for a product is a good way to persuade yourself and actually follow through.
With Learn Enough to Be Dangerous, you have plenty options. There are free online versions of everything, and you can buy both ebooks and screencast videos. But the best way to commit to learning technical sophistication is to become a dues-paying member of the Learn Enough Society. Of course, there are many concrete reasons to join the Learn Enough Society: streaming video screencasts, progress tracking, exercise hints, and an exclusive chat group. Perhaps the best reason, though, is that when you join the Learn Enough Society, you’re telling yourself: It’s time to get serious.
Putting you in control of technology
Learn Enough to Be Dangerous is proud to be a leader in the movement to teach the world technical sophistication, the single most valuable skill you can learn in the 21st century. We believe that at least a billion people can benefit from learning technical sophistication, and probably more.
Technical sophistication means putting you in control of technology.
Technical sophistication means knowing basic Unix commands, knowing how to use a text editor, knowing how to code, and knowing to Google the error message when something goes wrong.
It also means having the right attitude: “No, computer, I’m in charge here, and I’m going to figure out how to make you do what I want.” Ultimately, technical sophistication means putting you in control of technology.
Learn technical sophistication with Learn Enough to Be Dangerous, and unleash your technical genius!