Ethereum is gaining more and more popularity proving that the future of the Internet can be partially or completely decentralised. Why not jump right in and discover the capabilities of Ethereum development today? As every new beginning requires some guidance, here’s the path to get some solid foundations as Ethereum developer. By the end of it, you will able to create your own decentralised apps and share your own ideas with the blockchain world.
Is it worth it?
So are you still considering if learning Ethereum development is worth it? It has all the potential to be the next big thing and the true technology of the future. Speaking of which, it is already being used in real-life. Supposedly, even if not Ethereum itself, the concept of global decentralised blockchain-based technologies will most probably change the way we use the Internet in the near future, and currently, Ethereum is the most promising one.
Where to start?
You’re probably wondering what is the best way to start learning development in Ethereum. As for today, that is not an easy question considering the whole Ethereum stack is still in its early phase and constantly evolving at a significant pace. Most of the articles and guides on Ethereum published on the Internet are more or less obsolete so it takes some effort to finally find the one that is relatively up-to-date and help you to jump in blockchain development.
With that in mind, I think that the best way to start is the official Ethereum tutorial which guides you step by step in creating your own digital currency on the Ethereum network. The good thing for beginners is that it won’t let you worry about manually compiling your code or using advanced command line tools. After finishing it, you should have the basic understanding of fundamental concepts like what a smart contract is, solidity language, and how to deploy your own smart contract to the network.
The next step forward is becoming familiar with Ethereum command line interface (CLI) which you will use a lot during development. I suggest reading through a short introduction to Ethereum CLI usage and getting the most popular client which is geth. It will really pay off to get the good grasp of how to use geth. Also, take a look at the testrpc client which simulates the Ethereum network running locally so that you don’t need to run your test apps on the real Ethereum blockchain and wait for every transaction to be mined.
Once you’re done, you are ready to develop you first Hello World app using just the basic command line tools such as the geth client and solc compiler. Take on The Greeter tutorial from the Ethereum Foundation. I suggest running it against both testrpc and the geth client to get a basic understanding of them.
Completing Hello World gives you some fundamental concepts and skills to use in Ethereum development. To get a better understanding of the tools and language structures that you used, I suggest looking at The Hitchhiker’s Guide to Smart Contracts in Ethereum which guides you through the whole process from the beginning, that is from the moment of setting up the environment, through developing a smart contract, to finally deploying it to the real network. All the steps are described in more depth so that you get more detailed knowledge of what you’re doing.
More about Solidity
There is also a full-fledged Solidity tutorial which gives you even deeper insight into the language mechanisms that you’ve just used in the previous tutorials. This manual covers all the most important topics like language structures and principles, using the compiler, style guide and few common programming patterns.
I also recommend using Solium, a linter for Solidity which is going to give you some tips on the quality of your code and catch the syntax errors right away. Solium is really easy to use making it a must-have tool for every Solidity developer out there.
Your first Solidity framework
If you’re wondering how can you use Ethereum in web development, there’s a great article about it and also a comprehensive three-part tutorial on building full stack dApp which I also recommend doing. It introduces the truffle framework, a truly awesome tool which will make your development far more efficient cutting down on the boilerplate code as much as possible letting you focus on what’s really important in your app. By the time you’ve finished it, you should have solid foundations in Ethereum development in Solidity and truffle framework.
Why reinventing the wheel if it’s already out there? OpenZeppelin is a great Solidity library containing some of the most common language constructs with security as a primary target. It provides you with safe math operations including smart assertions so you don’t need to worry about problems like range overflow. You can also use the library to implement your own token with safe withdrawals, make your contract ownable or limit the maximum amount of ether hold in the contract.
Connect it to the outer world
Ethereum is somehow closed to the outside world. It is limited to transactions happening on the blockchain, meaning you can only use data which is available there. But how can I fetch the last game result to use in my betting contract, or how to fetch the current price of oil? Luckily, there is an answer and it is Oraclize. It lets your contract connect to the arbitrary address on the Internet to fetch anything you might possibly need. You can request any data out there and easily parse it as json or xml. For example, you can fire a request to the WolframAlpha asking who is the president of the United States or what’s the current weather in London. The capabilities are endless!
By now, you should be able to create your first own dApp. Do you have any brilliant ideas already? Give it a try, play and explore, the praise of the Ethereum world is waiting for you!