In IT industry we have to learn quite intensive new things. Everything changes, but in our industry, it happens much faster. Today's buzzword is forgotten tomorrow. How do we approach that? 's annoying and silly to waste time on somethings like that.
I had a Lightning Talk at 93th WrocNET meeting about learning. This blog post is a follow-up :)
My way to approach learning things
I developed a tiny framework based on my experience in programming stuff. Here it is:
- Learn the motivation behind a certain language
- Learn the syntax
- Learn the built-in framework
- Learn the eco-system
- Learn best practices
- Read good code
- Make a pet project
- Meet the community
- Teach others
Below I will describe shortly each item, but you should have some overall understanding already.
Learn the motivation behind a certain language
I always start with "why?" Why is this particular language so special? I people do recommend it? Usually getting answers to those questions will show you where the language fits best. This is what you should expect from it :)
Learn the syntax
After you know "why?" or you saw somebody using language X you have to start with learning syntax. The syntax is like sand. Before building a castle you need to know how to make bricks. Here I usually read a tutorial provided by the authors or main-contributors.
Learn the built-in framework
This is very important to learn what particular language provide out of the box. Maybe serialization or encryption. Do not reinvent the wheel!. Rather use what is already provided.
Learn the eco-system
I find my self quite often in situations where I waste time adjusting my tools to new stuff. Regarding languages, I try to use the same editors, build pipelines etc. The interesting part is that all worth seeing languages have recommended tooling. The work is just to find out what is blog post describing it. Pretty much goes for external libraries, test and deployment tools.
Learn best practices
Next are the best practices. This will give you some blueprints how are a thing done "here". What language patterns are preferred and why. How to do versioning. How to write useful comments and tests. ETC :)
Read good code
After you have some understanding about the syntax, framework and best practices it's time to read some great poetry in your new language. Absorb it all the time. I will summarise it: Learn from the best or die like the rest.
Make a pet project
This one is easy. Theory happens at the university, practice happens in production. In order to master anything you need to practice. Make 5-10 pet projects. Learn new concepts in the language. Play with it.... and share the results :)
Meet the community
Community is very often undervalued. Many of us are introverts. We do not socialize :) And due to that, we miss a lot... Meeting other developers using the same language can give you ** non-verbal information**. You will not read about that in blogs or mailing lists. You have to attend and smell it.
You are a blue belt now. To master the language even further you should share your skills with others and seek feedback. In addition teaching others enable you to see their mistakes - maybe you make the same mistakes without noticing it?
As you are reading this you should have a strategy in your head how to learn things :)