If you want to fail at something, make it a big, hairy, audacious goal. “I will get in shape,” “I will be a better friend,” and “I will learn to code” are all great examples. Goals in general are misguided and formless ideas. Achieving something is the result of many small steps performed consistently, not the result of an intangible idea.
At Bloc, we've helped thousands of students learn to code and change their careers. We’ve also seen students fail. One reason some students fail is because they focus on the goal of learning to code, rather than the steps for learning to code. If you want to become a developer in 2017, don’t make learning to code your goal. Instead, complete small tasks related to coding, and do them consistently. Each of the tasks below requires only 10 minutes. To kickstart your new coding habit, do at least one per day. We’ve outlined six tasks, so even if you do all of them in a day, you’ll only spend an hour.
Sign up for GitHub and Watch a Repository
GitHub is where developers collaborate on software. You won’t be able to contribute code right away, but there’s no reason not to sign up for a free GitHub account. A GitHub account allows you to follow developers and source code (known as repositories, or “repos” in GitHub). Pick a few repositories and follow them by selecting the “Watching” notification, shown below:
You’ll receive emails when developers update the repositories you watch. Read the updates and focus on the narrative – you won’t understand the code yet – just read the comments and get a sense of what the developer is trying to do with the code they submitted. Here are a few active repos you can watch, though the actual repo isn’t as important as becoming comfortable in GitHub, and learning how developers collaborate.
- HTML5 Boilerplate - A professional front-end template for building fast, robust, and adaptable web apps or sites
- Ruby on Rails - A popular web application development framework
Codify Your Twitter Feed
Most prominent software engineers, developers, and designers use Twitter more than any other social media platform. Following them is a great way to learn about the software industry: trends, lingo, open source updates, hiring trends, etc. Consider following these prominent developers and companies:
- Chad Fowler - Author, CTO, speaker, and early Ruby evangelist
- Dave Thomas - Programmer turned publisher of one of the most well-respected technical book brands, The Pragmatic Bookshelf
- David Heinemeier Hansson (DHH) - Creator of Rails, CTO at Basecamp
- GitHub - The world’s most popular code collaboration tool
- John Resig - Creator of jQuery
- Kent Beck - Author of Test-Driven Development, programmer at Facebook
- thoughtbot -Well-respected development and design consulting firm, and prolific open source contributors
- Yehuda Katz - Prolific open source developer, Rails contributor and Ember creator
This is a small list, but once you follow them you’ll receive recommendations for people like them. Spend 10 minutes per day reading their tweets, and you’ll start to learn about the software industry and how developers think and speak. The purpose is not to mimic them, it’s to understand them.
Ask a Question
It's incredible how much one can learn when they simply ask the right person the right question. No matter if you’re a total beginner or an expert, you will always have questions when learning. To receive a good answer, you must ask a good question; yes, bad questions exist. A question is bad if it’s not asked thoughtfully. A thoughtful question provides context, is articulate, and has a defined scope. Here’s an example of a bad question:
I have a Ruby array of two fruits, and I can’t seem to access an element successfully. What does “nil” mean?
That’s a bad question because it’s impossible to answer without more information; it lacks context. How are you trying to access the element? Which element are you trying to access? Are you getting an error? If so, what’s the error? Does nil refer to the problem you’re having or something else? Ask a bad question like this, and you’ll get a bad answer.
A good question looks like this:
I just started to learn Ruby. I have an array consisting of two fruits: fruits_array = [“apple”, “banana”]. I’m trying to access “banana” by referencing fruits_array but keep receiving “nil” in my irb. Why won’t it return “banana”?
This is a good question because it’s written well and is grammatically correct. It also provides adequate context: “I just started to learn Ruby,” “I’m trying to access by…,” “I keep receiving nil…,” etc. This question provides all the facts someone would need to answer it. It’s an easy question to answer for an experienced developer, which makes it likely that someone will answer it and answer it well.
There are many great places to ask questions. Quora is built for asking questions in general and Stack Overflow is built for asking technical questions. We’ve written “Getting Help on Stack Overflow” at Bloc, which provides details on using Stack Overflow. Once you have a GitHub account and have codified your Twitter feed, you can ask questions on those sites as well.
Write a Blog Post
Writing is one of the best ways to improve your coding skills, because it forces you to clearly articulate your intent. Coding forces you to articulate your intent as well, only to a computer instead of a person. You write for people, you code for computers, but you use the same thought process for both.
Write 100 words (less than half a page!) about anything you’d like. The only constraint is that you must try to clearly articulate your thoughts. Medium is a great platform for writing, and integrates with your Twitter account. As a separate task, read Writing to Learn by William Zinsser. It will open your eyes to the power of writing.
At some point, of course, you’ll actually need to write code. There are many places to write code – none better than a simple code editor on your laptop – though as a beginner you may want an easier place to start. Sign up for a free account with Codecademy and Codewars.
Codecademy has tutorialized, in-browser courses that teach you the basics of programming syntax, while Codewars will challenge you to solve puzzles (called “katas”) with different programming languages. Both are great places to practice writing code.
Reading code is an underappreciated practice. It may not be as exciting as writing code, but it is equally, if not more important. GitHub and Codewars are great places to read code. You don’t need to understand all the code in a GitHub repo or Codewars kata; start small and pick a class, method, or single line of code. Use the Rubber Duck technique to explain the code to yourself. By reading code you’ll expose yourself to new patterns, syntax, logic, and approaches that you would not otherwise know. Tutorials can only teach you so much, reading code will take you much further.
10 Minutes a Day and Free!
All of these small tasks are free – they don’t require subscriptions or memberships. You won’t learn to code by doing these tasks consistently, you will code. Please, don’t make a grand resolution – instead, commit yourself to small tasks and you’ll succeed. After you’ve created habits out of these small tasks, you may find yourself wanting to take your coding journey to the next level and change careers.
P.S. If you’re already there, check out Bloc’s part-time online structured programs for becoming a developer or designer.