Self-Taught Programmer Part 1: Choose your own adventure

At the beginning of your developer story. Step one: start learning.

November 06, 2016

This is part one of a series of posts focusing on the constant process of learning as a self-taught programmer.

First let me give you my background. I am a self-taught web developer focused on Ruby on Rails and React. I first started learning through MOOCs about anything under the sun (Python, Android, Node, SQL) but I eventually focused on learning web development with a focus on Ruby on Rails and React.

This first blog post is speaking from the perspective as you first begin to learn. When you have decided that you want to pursue learning more about programming, you may have decided what you want to focus on or you are still looking to learn.


Now that you want to learn lets give you a couple places to start with:

  • Coursera (Free, mostly) - One of the leaders of MOOCs (Massive Open Online Courses). Classes are free but Coursera offers ‘certifications’ that are chained together courses for a specific field (like web development). This is a great place to start as they have courses that are aimed at the very beginner then you can transition to a specialization or more advanced topics.
  • Codecademy (Free)- Another provider of online courses. Codecademy is very useful when you are first starting. Many of the courses assume little to no prior knowledge and have an interactive element and step-by-step process that is very helpful when you are first learning the basics of programming.
  • Pluralsight (Subscription) - Pluralsight is more focused on existing developers but has recently implemented ‘Paths’ that allow you to choose a specific language and watch a curated list of courses aimed at bringing you up to speed.
  • The Odin Project (Free) - Focused on Ruby on Rails and JavaScript this resource is an aggregation of open source resources aimed at bringing you up to speed as a web developer. I went through every path on this with the exception of JavaScript and found it to be invaluable. They spend a good amount of attention on aspects a single course or video may not focus on. Such as Git, computer science concepts and testing.
  • Udacity (Free and paid courses) - Listed last as I have never used Udacity but I have heard good things and it has been on my ‘To do’ list to look into their nano degrees. Udacity has a mix of free courses and nano degree programs aimed at teaching you a specific skill.

Give yourself a project

Once you have started learning my best advice to you would be to give yourself a project. If there is one thing I learned nothing is more valuable than giving yourself a project to focus on.

Depending on the path this could be something as simple as the front-end to a website in JavaScript, or a command line game in Ruby or Java. The important part in my mind is having to write it yourself without an external source guiding you along. You will natually make more mistakes and catch more bugs as you start to build the mental muscles of visualizing ideas in code.


Some quick tips as you get started:

  • Create a Github account. Using Github to centrally store all of your code will be useful and get you used to using git
  • Keep a schedule you reliably work every day. I use the Productive App to have a list of learning and development goals to hit every day to keep me on track.
  • Podcasts: Start listening to tech podcasts. I have found that even when I may not know exactly what they are talking about actually hearing people discuss programming is great and you start to build a mental model of programming concepts outside your immediate sphere.
  • Start attending Meetups. These are great to meet people in your community but they also expose you to new ideas and concepts you may not run into on your own.


That concludes part one. I look forward to communicating with you again on part two. Happy Coding!