How to Learn How to Dev

Learning software development takes lots of time and grit.  In other words, it takes passion. The best motivation is to see your personal projects working. However, I have learned that diving in to building your project is not the fastest road to success. It is better to learn about how to use existing software that does similar things and then bridge that gap.

Of course, it is best to have a mentor to help you find software similar to what you imagine, but I’ll assume that if you’re reading this post it is because you want to learn to be a dev but don’t have a mentor and don’t have any idea where to find one. That’s the position I was in.

  • Google around for popular technologies that you can be gainfully employed at. If lots of people like to use it and make money doing so, chances are you can to.
  • Watch tutorial videos to get going quick.
    • Follow along with the tutorial on your own machine. Reproduce what they did. Only make modifications once you have the replication working exactly as expected.
    • udacity.com: starts at very basic level, interactive coding assignments give excellent immediate feedback
    • pluralsight.com: best if you are already a technical user trying to learn a different tech stack.
  • Google errors. Look for Stack Overflow answers that are highly rated or check-marked (as the answer)
  • Have interesting projects that push you to learn new technologies and get them working.
  • If you have been beating your head against a frustration for several hours, change your context. Do something else. If you are tired or it is late, go to sleep. Live to fight another day. Chances are that you’ll solve it in 15 minutes when you wake up tomorrow.
  • Listen to developer podcasts to hear what’s popular, important or perilous.
  • Find a mentor or dev community. Go to local users groups. Bounce ideas off other people.

Why devs blog IMHO

Here are some reasons why I think dev’s blog or at least ought to. The last is the most important

  1. Share ideas with a much broader audience than in an email list or chat room
  2. Establish themselves as knowledgable/skillful in a particular area
  3. Catalog problems/solutions for personal quick reference

The faintest ink is better than the best memory. As a full stack dev using multiple languages and frameworks, I often find myself in the situation of needing to re-figure out what I have already discovered. If it is not possible automate the problem away (viz. make executable documentation) then a blog post documenting the problem and solution are the best products you can give yourself and the world.