The fast way of learning a new programming language - Part II
Collect the learning materials and narrow them down to the minimum necessary amount. And 10x your learning speed.

Search for a command to run...
Collect the learning materials and narrow them down to the minimum necessary amount. And 10x your learning speed.

No comments yet. Be the first to comment.
declare @this_datetime datetime = getutcdate() declare @this_datetime2 datetime2 = getutcdate() declare @this_smaldatetime smalldatetime = getutcdate() select @this_datetime, @this_datetime2, @this_smaldatetime select datalength(@this_datetime), da...

How to boost the learning process and save time
The previous year was a huge fail: I had tons of goals and I've completed almost nothing. I've mastered procrastination, put on some extra weight, and played a terrifying amount of hours with Dota 2. At the end of the year, finally, I was able to ta...
I have several colleagues who told me not to use Outlook for Mac. I thought it must be some kind of we love to hate M$ thing. After almost missing a couple of meetings, I think I have to agree with them. I have really no idea how it is possible hav...
In the first part, we have covered the basics of learning a new language - focusing on the concept of learning a new language means we already have some programming experience.
The concept was simple: learn by having a vision. A goal that we want to reach out to. As we have discussed, our current goal is to create a simple web API with Spring boot. Now, we going to collect the proper learning materials, throw away everything that we don't need, and focus only on our goal
As we have discussed, we want to create a web API with spring boot. From that sentence, it is obvious that we want to learn topics we need to do
Now we have the most important topics, time to google, visit forums and ask our friends. That step can take from one hour to one year - depending on how much we like to procrastinate things and do binge research. To avoid those traps, I would suggest the following:
Assuming we did our research, let see an example of the collected materials:
Language basics:
Web and Spring Boot:
It is long and I bet it is full of topics that we don't need: those language basics books are usually full with things like XML processing, working with disk IO, multi-threading (that we usually don't need if we write APIs as frameworks can handle them). On the other part, when we create an API, we use the OO basics, we need collections and generics. In modern languages, we also have lambdas and high-order functions. We will focus on them. So now, we take the table of contents and separate the chapters into three main categories:
Now let's take a look at the table of contents and color code the chapters:


I hope now it is obvious: our goal is not to read the whole book but limit the reading process to one or two days. And also, we can keep the book in case we need some additional details later or want to re-visit some topics.
We have a clear vision and the proper training materials. The first logical approach would be consuming the learning materials and after that doing the learning project. I don't know how other people's mind work but my brain get bored really fast. So instead of the waterfall approach of learning all things and after that doing the coding work, I would split my time: usually, I learn an hour after lunch. And in the other time do my projects. So that the learning takes more time but we already produce tons of code. And the materials can put the existing pieces together. They fill the gaps and draw our attention to our mistakes.
The very last step if we want to learn in a light-speed piece is simple: get a mentor. Find somebody who is willing to teach. A great candidate can be a senior who wants to gain teaching experience to reach senior+ levels in their career. Schedule a regular time with your mentor. Prepare with questions. And avoid pitfalls that they already fell into.