The First 20 Hours
How To Learn Anything… Fast!
by Josh Kaufman, #1 bestselling business author
A practitioner’s guide to rapid skill acquisition. Accelerate your learning by deconstructing complex skills, practicing the most important elements first, and removing barriers to deliberate practice. What do you want to learn?
Buy the book:
Chapter 5: Programming
Summary: How I Learned to Program using Ruby
- I spent some time learning what “programming” and “web applications” are in general, then deconstructed these skills into smaller sub-skills that are easier to understand and practice.
- I set my target performance level by choosing two specific projects I wanted to create, then defined what those projects would look like when finished.
- I deconstructed those projects into smaller sub-steps then identified which sub-steps seemed most important.
- I made sure I had the tools I needed to work (like the latest version of Ruby), and that I was able to find and use any additional tools I needed.
- I found a few reliable sources of programming information, but I skipped canned tutorials in favor of jumping in and writing the actual programs.
- I worked on the most important sub-steps first, like figuring out how to test programs on my computer, push the finished application to production, etc.
- I used reference examples to get started and build confidence, then tested various approaches to figure out how to program the features I wanted.
- When I made an error, the program crashed and gave me an error message, creating a fast feedback loop.
- After getting an error, I experimented with several ways to fix it. If I couldn’t fix the problem myself, I searched for help.
- I kept using the build / test / fix approach until my programs were complete.
Project #1: Blogging with Jekyll
Here's the full source code for Monograph, the simple Sinatra application I use to run static Jekyll websites on Heroku.
Aside from the Sinatra application, Monograph contains a basic template for an SEO-friendly two-column blog-style website using the jekyll static website generator. The template is ready for customization and deployment on Heroku's Bamboo stack. The application includes sane defaults for page caching, keywords, RSS feeds, a sitemap, and canonical URLs.
View Monograph on Github
Project #2: Codex, a personal notes application
Here's the full source code for the personal note-taking application I discuss in the "Programming" chapter of the book.
Codex is a simple single-user reference web application written in Ruby. Codex uses Sinatra and Datamapper to create, save, update, and delete page records from a simple Postgres database. The application is ready for immediate deployment on Heroku.
Markdown formatting is enabled for all pages, which makes it easy to write complex pages with simple markup. HTTP authentication and forced SSL for all traffic keeps your information secure. Bootstrap styling and Subtle Patterns backgrounds make your pages look clean and attractive.
View Codex on Github
The First 20 Hours
How To Learn Anything… Fast!
by Josh Kaufman, #1 bestselling business author
A practitioner’s guide to rapid skill acquisition. Accelerate your learning by deconstructing complex skills, practicing the most important elements first, and removing barriers to deliberate practice. What do you want to learn?
Buy the book:
About Josh Kaufman
Josh Kaufman is an acclaimed business, learning, and skill acquisition expert. He is the author of two international bestsellers: The Personal MBA and The First 20 Hours. Josh's research and writing have helped millions of people worldwide learn the fundamentals of modern business.
More about Josh Kaufman →