When you think of Ethereum, you probably think of its powerful smart contract system. For those who don’t know, smart contracts are essentially programs that exist on the Ethereum blockchain. They perform various tasks such as sending or receiving Ether or ERC-20 tokens, among other tasks.

What you may not know, however, is how the smart contracts are actually put together. Like all computer programs, Ethereum contracts are written in a programming language. In this case, that language is usually one called Solidity. While there are other programming languages that are compatible with smart contracts, Solidity is the language of choice today. So read on as we go over some of the basics of Solidity, and where you can find some resources on how to learn it.

Solidity Guide

Solidity as a programming language

Most professional programmers today use one or more of a pool of popular modern programming languages. A few examples of this include C (and C++, C#, and so on), Python, Java (and JavaScript), Perl, or a few others. Solidity was designed to be easy to learn for programmers that are already familiar with one or more modern programming languages.

If you learned something like Visual Basic back in high school, you may have a tough time picking up Solidity. Whereas, if you know a language like Python or C, you’ll find Solidity to be relatively familiar.

Solidity uses a large number of programming concepts that exist in other languages. For example, Solidity has variables, functions, classes, arithmetic operations, string manipulation, and so on. While in a language like C, a programmer would likely create some form of a “main” function, like “int main(arg1, arg2) { //code }”, Solidity works with a “contract” that is created in a similar manner.

Solidity Code

As you can see, Solidity code looks surprisingly similar to C++, C#, or JavaScript. Python developers will notice that in Solidity, variables need their type to be explicity declared, among other differences.

Solidity is still quite new, and has limited learning resources

Normally, if one wants to learn a new programming language, they can buy one of the many books available on the subject. For example, if you want to learn JavaScript, there are dozens or hundreds of books available that can provide the necessary self-guided training. As Solidity is still quite new, there are only a small handful of books available, and the reviews for them on seem to be quite mixed if not downright negative.

Solidity does offer quite an extensive amount of documentation for how the code works. However, for someone who is completely new to the language, and not already a master programmer, diving straight into the documentation could be very daunting, if not a near impossible task for most. Ideally, the documentation should be used more as a reference in the same way that one would use a dictionary to look up a word. But one would not read a dictionary from cover to cover in an attempt to learn a spoken language.

If one is dedicated and patient enough, though, someone could potentially use the available documentation to learn Solidity without an extensive programming background. It would certainly not be easy though.

Solidity training and courses

For those with some basic programming experience, one fun option to get your feet wet with Solidity programming might be Crypto Zombies. This site is very similar to Codecademy, in which you are given a short programming task and you complete it directly in the browser where it is checked instantly. Crypto Zombies, however, is themed around making a zombie game using Solidity.

We tried the first chapter, which took just under two hours to complete. It was somewhat difficult, but with persistence and care, it can be done. The entire course is not complete yet, though. The developers have stated that new lessons will be released every few weeks. Once all the lessons are finished, the result should be a complete game made in Solidity. While probably not enough to truly make someone a Solidity professional, Crypto Zombies does provide an excellent introduction to many of the core concepts of smart contract programming and Solidity syntax.

If you do not have programming experience yet, you might want to take a free course on Codecademy. Knowledge of Python or JavaScript basics would be enough for Crypto Zombies.

Crypto Zombies

For more advanced learners that want to jump straight into the nitty gritty, Block Geeks has a great, free course on their website.

In recent years, a few sites have popped up that offer paid training in various technology subjects. An example of this is BitDegree which aims to be a blockchain verified education platform where prospective students can learn technology skills through online courses. Upon completion of the courses, they will receive an online degree of sorts that is registered on the Ethereum blockchain for verification purposes. BitDegree is yet to launch, however, and so we do not yet know what the cost will be after launching.

Another option for some would be, which is a site that offers video based online training. This site currently offers a solidity course for $200, though it seems to be on sale for 90 or more percent off very frequently, if not always. Another option which may be more intense (and expensive) is offered by They offer what they call a certified online Ethereum developer course. This course will require nine weeks of 6 to 10 hours per week. It also costs €1450, or about $1750. They also offer a free Ethereum 101 course for you to test out their teaching method and see if it works with your learning style.

Is it worth learning solidity?

If you’re thinking about learning Solidity for your job you may want to consider what other skills you will also need. While learning blockchain related skills can be highly valuable, one would likely need to become an expert first in at least one other programming language. For instance, this job posting for a Solidity developer at Bounty0x requires any candidate to not only understand Solidity, but also Truffle, NodeJS, and GoLang.

If you feel confident in dedicating a few years of your life to learning Solidity, give it a try.  It’s quite possible that you will have a reliable stable career for years to come.

In addition to Solidity, there is Serpent which is based on Python. As Python is a very simple and easy to understand language, it may be easier to learn in the future. And not only can Solidity or Serpent be used on Ethereum, those skills can immediately translate into useful coding skills on RSK and Ethereum Classic, two other competing smart contract platforms.

For now though, Solidity is king. And a strong understanding of Solidity will be very useful when learning other smart contract languages in the future.

Posted by Robert Devoe

Leave a reply

Your email address will not be published. Required fields are marked *