What are some of the best ways to learn programming?


Here the big mistakes I see new coders make all the time:

  • Switching languages or frameworks frequently, or deluding themselves into thinking they can become proficient in all of them.
  • Personalizing their development environment with exotic tools, rather than more conventional tools that can be reliably used while collaborating with others.
  • Trying to learn tools like Docker and famo.us because they’re new and exciting, even though they haven’t yet mastered more fundamental technologies.

If I had to summarize my do-as-I-say-not-as-did advice in one word, it would be: focus.

My question to you is: would you describe your plans for learning to code as focused?

If you feel your plans are focused, you should stop reading now and get back to studying, because I don’t want to say something that might cause you to lose focus.

If you haven’t focused your plans for learning to code yet, I have good news – you can do this right now. But it will take a few minutes and involve making some hard decisions.

  1. Choose one type of software development that interests you enough to define your career: web, mobile, gaming or embedded. I recommend web because it’s flexible. There are a ton of jobs and a ton of learning resources. If you’re passionate about something other than web development, leave this post and google search “getting started in _____ development” and go all-in on it!
  2. Choose one language to learn: JavaScript, Ruby, or Python. Each has its strengths. Each has tools that can be used to build web apps (Node.js, Rails, and Django respectively). Unless you already have a strong preference, I recommend JavaScript because it’s the most popular language.
  3. Choose one online curriculum to study. Here are the some comprehensive options: FreeCodeCamp.com for Full Stack JavaScript; TheOdinProject.com for Ruby; Udacity.com for Python. Trust the wisdom of the teachers who designed the curriculum you’ve chosen, and work through it in the recommended order, without skipping around.

Once you’ve made these decisions, the path forward is simple. Keep your sanity by ignoring the hype surrounding new tools. Keep your momentum by working through your chosen curriculum seven days a week, even if it’s only for half an hour at a time. Keep your confidence by trusting the judgement you made with today’s decisions.

And remember: with patience, any able-minded person can become a great coder, and that includes you.

Quincy Larson

Teacher @ Freecodecamp