A problem with learning programming languages is most of the time you don’t know when to say “I have learnt language X”, where X is the language you are learning. There will be always things, tricks, hacks, techniques, methods you will not know. It is difficult to draw the line of essentials. It’s because learning the essentials as outlined by some book will not necessarily help you solve real world problems or build something the way you want it! At this moment you will find yourself searching for solutions to the particular problem you want to be solved and then see that everything so messed up! It is when you might get frustrated and ask yourself, did I actually learn it?
The answer is NO. Learning a programming language can be a daunting task and can take years even to get expertise in some. However, learning the essentials, usually that are outlined by books or courses is one necessary level you must cross. That is the base, preparation for the real thing.
So, when will I consider this goal done? Well, as soon as I cross the first level – the outlines for essentials. Why? Because it is difficult to measure the final level, and it takes time, by which the technology can lose it value, you might lose interest and so on. All of these are not so motivating and prevents you from achieving any goal at all! So, lets just get done with it. 6 months ago