How to learn a given technology at a deeper level? Part 3 — Non-obvious tips

Sahin Sarkar
4 min readMay 26, 2022

--

Following is a continuation of the previous part of the “learning tech in depth” series, in which I gave some simple tips to learn a technology in depth. Now I have presented some more tips which are more effective, but they might require some explanation on my part, hence this dedicated part.

So here goes:

  1. Come up with lots of small experiments to test everything that the author says in the resource you are following to learn. And design experiments to validate the facts or rules that intrigue you. When you design and run the experiments to test the validity of the truth of a statement, be curious about what else can be inferred from the text or experimented with, in this way you would have written code for 4–5 experiments related to the topic you learned. This would help to learn a topic from multiple angles along with repetition, both are excellent ways to make things stick inside the mind.
  2. If learning a programming language in depth, don’t use IDE at all for coding, no matter if you are coding simple exercises, copying a block of code to run it, or coding your experiments as in 1). Use only a simple notepad or a text editor, which DOESN’T have syntax highlighting. This would force you to make more mistakes, and you would pay more attention to the exact syntaxes of the language, which in turn, would burn those learnings in your memory permanently. In this respect, I believe the simpler the editor, the deeper you will learn the language.
  3. In line with 2), avoid use of any of the tools or any UI to run the code or to solve any problem you may face. For example, when running a java code, don’t use any IDE or code runner. Another example may be, don’t use build tools like maven to manage dependencies. Manage dependencies on your own by manually working with the classpath. In such cases, usually the command line terminal should suffice for most of the tasks. This will force you to understand in the future how tools work, because in an office environment, you have to ultimately use the tools. But it would be much easier to learn their purpose and working, if you follow this step.
  4. Lastly, build as many “projects” as you can, using the technology. When I say “project”, I don’t mean build a game or something big or something to show for your portfolio. I mean, try to code any and every problem that you may be facing which you think can be solved using the technology. For example, one of my cousins wanted to calculate some aspect of her marks, I figured out a mathematical solution to that and coded the solution then ran the code and solved her problem. She said she had a scientific calculator that could give the answer, but I still went ahead and coded the solution. Try to do more of such things, at least every third day, no matter if the solution already exists or not.

Make it a point to COPY stuff

Always remember, people have looked down on copying for a while, especially in software engineering, but they fail to realise that even Leonardo Da Vinci became a great painter ONLY BY COPYING the paintings of his master.

So don’t be afraid to copy, but please do it the old fashioned way. Type every block of code you want to copy, don’t just Ctrl+C, Ctrl+V it.

These tips would be way helpful to gain mastery of any technology you wish.

Basically, involve your mind for a lot of time and make it think about the stuff that you are learning, this will help to strengthen the neural connections storing the information you learn. And the more strongly connected those neurons are, the easier it would be to apply the learnings to provide a solution whenever the need arises.

When we have only surface level knowledge of something, we face a situation where we are presented with a problem and even though we have the knowledge of the applicable tech, we fail to realize how it applies to that situation. Well, after having learned something in depth, such scenarios would almost never occur.

After such varied ways of practice, the “solution didn’t click at the right time” problem goes away.

Now that you have all the ways to learn technical knowledge and also to gain its mastery, what are you waiting for? Go ahead and comment down which technology you want to learn and if these tips help you or not.

Also be sure to comment down below what else has worked for you to learn stuff in depth, especially technical stuff.

Link to part 1

Link to part 2

I found this video to be very useful, which details the points I mentioned in this blog series in a very organized manner to form a complete strategy for learning hard things. The guy is no joke. He, in his words, “is one of the world’s best competitive programmers”, so that should tell you something about him. I even took a screenshot of his credentials. If this doesn’t convince you (the software developers among you) to check this out, then I don’t know what would.

stats for developers
These are the stats of one of the WORLD’S BEST competitive programmers

P.S: If you think that this article has delivered great value to you, please support me by buying me a coffee.

--

--

Sahin Sarkar

Learning and practicing a good balance of technology and business.