How to learn programming - or any tech things                     rev 09 February 2013 ➽ back to dir

types of programming

  there can be different goals in learning to program:

  ✩ expert - understanding all the theory, able to write complex code

  ✩ journeyman - maybe not understanding all the theory, but able 
      to write working programs from scratch, sometimes able to write complex code

  ✩ "code cobbler" - doesn't care to understand the theory, 
        or write complex code. "copy and paste" - Takes code that 
        others have written and uses it in practical jobs.

  These are all good! It is helpful to know which attracts you,
    which you are best at ... then you don't have to waste time
    trying to be something else.

programming skills

  ✩ Thinking:

      * NOT memorizing:

         Tibetan and Indian education are very good for teaching you to memorize. 
         This is an excellent skill -- which i wish i had! 
         So you certainly should keep it.
         But for programming, memorizing is not actually useful.
         In fact it gets in your way.

         Computer technology is always changing. The language codes that you 
		 memorize today won't be used in a few years.  

         But the *concepts* and *understanding* that you learn,
         will always be used.

         For programming it is more important to have these two:
            1. *understanding.*
            2. *doing* 
         It is good to remember what you have learned, and things you have done 
		 -- but in the general understanding of it. The concepts. 
		 Not by memorizing detailed codes.
      * Thinking logically
          If you know how to think logically, you will be able to write logical programs,
          and you will be able to debug them.

      * Understanding concepts
         If you have understanding of concepts.
         you will know how to find out, in references,
         the coding that applies those concepts.
  ✩ Reading:

     * Programing is writing code. To write, we need to know how to read.

     * Reading and understanding English
         Whether we like it or not, it is a fact that
         most programming documentation, books, websites, etc
         are in English! the whole world 

     * Reading by scanning, by getting big picture ...
         I watch people read documentation and computer books
         by taking it in word-by-word, ...

   ✩ How to learn code:

      * type code!
          * If you are reading a book or a web page, 
             and you don't have your computer on, typing the
             examples, you are just wasting your time.

      * have your books and references handy!
          * If you are typing code, and you don't have any 
              references open (on your computer or your desk)
              you are just wasting your time.

      * have a good editor!
          * If you are typing code, and your text editor
              has no useful tools (such as Windows Notepad)
              you are working with one hand tied behind your back.

   ✩ How to look things up: 
      how to use references, documentation, books, the internet.

  ✩ The truth of programming:
      Programming is fun, useful, exciting, ...
      But! It is also repetitious, boring, detailed, frustrating,
      and difficult. So, other useful skills are:
           * patience
           * attention to detail
           * enthusiasm and love for programming, to carry
               you through the bad parts!

make misteaks - maek meanny menny mistacks!

  Anyone who has never made a mistake has never tried anything new. 
    -- Albert Einstein

  Everyone makes mistakes, but only the wise ones learn from their mistakes 
    -- Winston Churchill.

How long does it take?

  Q. How long does it take to learn how to write programs?

  A. good question! I'm sorry there is no simple answer.
      How long does it take to learn English?
      It's just like that.  web dev, javascript, php, html, css, sql -- 
      they are all languages. 
	  That's why they are called "programming languages"!

  Q. I mean basics
      ok Basics -- again ...  what is "basic english"
      I think, maybe, to be able to go to a shop and buy something ...
      that is ... to get things done in the world where people speak english.

      So, same idea: to be able to do basic things in javascript and php, ok.
      Maybe 3 months for each.

      But! To be really useful -- and also to be not endangering your users
      with security holes -- a year. Two years. Four years.
      And you will always never stop learning, because things are always changing.

written may 2008