This is a repost of my article from 20.9.2018 which was originally published here: https://blog.topmonks.com/learning-a-new-language-write-a-cheat-sheet-and-an-article-1532a9ad072f.

Learning a new language? Write a cheat sheet. And an article.

Learning a new programming language can be a challenge. The thing is, it’s much more than just a new syntax. You have to learn new concepts, maybe whole new paradigm, set up the local environment, package manager, compiler, debugger, tests, tools…

Best way to learn something is to actually use it. So as soon as possible in the process, I try to come up with some real application I could build. That’s also a challenge itself because it has to be real enough but not too complex so a novice can do it. When you come up with something, I suggest to build it iteratively. Regularly ensure that it works otherwise you can get lost fast. Experiences and expectations from different environments aren’t actually that helpful and can mislead you a lot. Sometimes you end up spending hours and hours debugging basic concepts which you only think you know. That’s also why Git is a great helper when you learn something — if you commit often, you can always get back to the point where it worked smoothly.

Currently, I’m learning Solidity — a language in which Ethereum smart contracts are written. I’m learning it with colleagues from TopMonks which have various Solidity experiences. Learning with somebody else is definitely a huge helper also. They will help you when you get stuck, and you are more dedicated to do it.

At TopMonks we also have a very cool and active project and marketing manager. So one day, she came to me and said “Hey Premek, how are you? How is it going with Solidity? You like it? We need a new post for Medium. What you think about it?”. At that point in the process, I really don’t know what I could write about. The hours spent with a debugger which itself has bugs? It’s just a process you have to go through. Not a lot of interesting topics to cover. So my answer is “Yeah, why not!? I will try to come up with something..”.

Luckily I got an idea for creating a cheat sheet for Solidity. It seemed cool because it’s something which I would actually use, it could also help others, and I wouldn’t have to write a post for Medium. Super cool!

cheat sheet preview

Turns out, writing a cheat sheet is an excellent idea not only because of the reasons above. But because if you take it seriously and try and test all the code in it, you actually learn the syntax and some tools around it, and you don’t need a cheat sheet anymore. What a great hack!

So when I got back to the marketing manager to hand over the cheat sheet and happy that I didn’t have to write any Medium post she says: “Cool! Now write me a few paragraphs so we can share it on Medium!”. Haha yeah… here it is.

Oh, and here is the cheat sheet: https://topmonks.github.io/solidity_quick_ref/