On Learning Programming

A university graduate asked me the following question, so I thought I would publish what comes to my mind here for the benefit of others.

What are some good tips on learning a programming language on your own?

  • Programming is the skill, language is the tool. Tools are chosen based on parameters (cost, man power, features, scaling, etc.). Bottom line, learn to code firstly. Pay attention to core concepts that you can take to any programming language. Learn to learn. Then learn about the languages that you need to use.
  • Understand your learning strengths and weaknesses. Poor memory, can't concentrate for long hours, work better in the night, music on in the background, things that apply to your learning in general.
  • Pay attention to official language documentation and examples.
  • Choose a good IDE (or text editor) (syntax highlighting, debugging, extensions, etc.)
  • Google is your friend. In addition to looking to Google for help, also give back. Write a blog post about something you figured out that someone else can benefit form. Publish the list of resources you came across.
  • Related to the above. Make notes. Notes should be categorized and searchable using something like Google Keep maybe.
  • Have the right expectations. Programming can be hard and tricky and frustrating. Programming requires patience. Take a break when you need to. Let your mind process it overnight. My university professor used to say, "go home and think about it." Don't expect everything to make sense immediately.
  • Look for resources like books, tutorials, blogs, youtubes, forums, groups, online courses, etc.)
  • Build something fun and that is relevant to you. Passion can be the fuel to keep you going. Having something tangible and working for you can boost your confidence and make you appreciate the usefulness of the skill you are trying to acquire.
  • Good programmers understand key concepts like optimization, code reuse, refactoring, unit testing, readability, architecture choice, good comments, source control, coding standards, etc.
  • Came across this video last year and I recommend you watch it too - The Right Way to Learn Code | Brian Underwood, Max Ptacek & Ben Makarechian | TEDxYouth@SHC
  • A good book to check out is How to Become a Web Developer: The Career Changer's Guide
  • A good account to follow on social media is @CodeNewbies
  • Finally this - Practice, practice, practice.
Share your tips and experience with us in the comments below.