hands-on series

# Learning tips from my experience (for junior developers)

  1. Be patient - you need to sit long time in front of computer, this is the only true requirement. In fact it takes long time to master any skill (Teach Yourself Programming in Ten Years - Peter Norvig (opens new window)). Every developer is eventually self-taught, even CS graduates! Learning to code comes with time, trying, and real projects.

  2. There are hundreds different programming languages (TIOBE Index (opens new window)) to learn. So if you really get stuck on something and it is pretty OK to look for another. Python is the most recommended programming language for the 1st time learner. It is useful, popular and one of the top 5 programming languages.

  3. For fresh learner, look for videos instead of books. There are tons of learning videos online (Youbute (opens new window) or Bilibili (opens new window) for Chinese). If you cannot understand one, quickly find another. Once you have some basic knowledge, good books can help to clear your doubts and go into more depth.

  4. Pay attention to the approach and quality of the learning resource. Many of them are not created learner-friendly such as:

Do not be intimated by the information. Do not try hard to grasp every new topic (eg. this, closure, promise for javascript) because no one can master them in just one round or a few. For deep topics, if you can not solve problems with them, you do not understand them well enough and forget them. It is very necessary to skip them as a new apprentice without enough practice. Actually many people will fail or give up if following the roadmap or a big complete course step by step. Learning to code is very much like learning a language. You do not need to learn all grammar or get a degree before you can enjoy speaking and writing. Your study method should be like peeling an onion - try to get a mini-full picture and complete a simple journey first (eg. a web portal for web development) then moving to another level, follow point 5 & 6 below.

  1. There are different ways to learn to code - courses, books, tutorials, boot camp, hands-on projects, etc. But one thing is common:

    The only way to learn to code is to write a lot of code.

    ﹣ Aristoteles

    So keep in mind to spend more time on problem solving and writing code by CRM instead of watching or listening (aka learning by doing).

    CRM method:

    • Copy
    • Run
    • Modify

    To jump start, pick up the easy exercises or interesting mini projects. There are so many different projects and good source code on Github, so it is easy to apply this method.

  2. To grow quickly, always learn from the top practitioner or developers by their books, talks and source code, not those professional "teachers" or "consultants". True coders can give insights and solutions instead of many other similar public information which sounds OK only. Knowing why and how is another level. This is also helping you to identify good information. For example, many people can teach you what is OO, but do not tell you what problems OO is trying to solve, what problems with OO itself, how exactly OO is implemented in different languages, is there alternative solution other than OO, and so on.

  3. Lastly, coding is just a skill like speaking, singing, or swimming. Many people can do it. However do not do it just because others say "coding is for everyone" which sounds like everyone has coding talent. This is not true. Even in IT field, different people may follow different technical tracks. If you feel hard about coding, find something else.