# Learning tips from my experience (for junior developers)
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
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.
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.
Pay attention to the approach and quality of the learning resource. Many of them are not created learner-friendly such as:
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.
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).
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.
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.
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.