Why learn ?
‘cos technology change very fast, and change means new technologies, methodologies, tools, frameworks, libraries, … , and languages. And in order to compete you need to learn all these changes. No learn means you will stuck in the past and will be a history and a homeless by the street.
What to learn ?
Everything or one thing ?
Both. A little of everything and everything of a one thing.
Why ? ‘cos you will not have time to learn everything, but you need a general knowledge of everything for two reasons:
1- Options: When you encounter a problem you have to think of all possible solutions available in the market.
2- Learning: When need to dig deep it will be easy for you ‘cos you have a general knowledge of it and can easily relate to other knowledge you have.
Benefit of Learning a New Language:
Learning a new programming language means learning a new paradigm. If after learning the new language your way of thinking does not change that means you do not learnt the new language.
You will think of new solutions for your old problems.
You learn the whole theory and concepts of the language first. You will get the big picture and knows territories and directions which will help you allot when start practicing.
This will help inexperienced programmers and low motivated ones, ‘cos doing is one of the biggest motivation factors. And doing is the easiest way to understand.
“Hello World” is the obvious starting example, then choose a book that has examples that interests you, otherwise create your won examples that solves an interesting problem and evolve it.
Also starting a “REAL” project and learning while progressing is the best way for a short cut approach. I had learnt FoxPro with no books available at that time, only F1 help key, source code and asking experienced programmers.
Read one theory then apply it, then read a concept and go do it, until you complete the whole language.
Job-Time Project vs Spare-Time Project:
Because of deadline at job’s projects, you don’t have time to test, understand and optimize the solution, you just google, copy and paste.
At home projects you have plenty of time to do research, test and choose the best problem with optimized solution.
Syntax vs Culture:
Syntax is the first and simplest step in learning a language process. The professional mode begins when you start to learn the language’s ecosystem, the language’s culture: libraries, packaging, deployment, … etc. Or anything than simple syntax.
30% of your time read and (theory, concepts, code, …) and 70% programming. ‘Cos you will learn a language by doing not by reading.
If you just read books, blogs, source code you will end up a reader.
But if you just start coding without even knowing the concepts, you will end up knowing how to getting things done and everyone chasing you for a six figure salary.
90% of the language can be learnt in weeks. UI and simple tasks which is assigned to entry level programmers.
10% of the language can be learnt in months. Complex tasks and integration which needs a really experienced programmer – a lead programmer.
Source: Justin James, Joel, TechRepublic, …