The technology of Blockchain is not a new thing. However, it did not get into our life until Satoshi’s Bitcoin whitepaper. We see one of the results of the blockchain, cryptocurrencies, first in 2014’s Gartner’s Hype Cycle:
Gartner Hype Cycle – 2014
And also, the blockchain was listed in the Hype Cycle. In both graphs, the common expectation of the adoption of these technologies is 5 to 10 years.
Gartner Hype Cycle – 2016
Actually, developing blockchain project hype reaches its top level in past 2 years. In the technology world, 2 years is both long and short time. If you started developing a product on top of the blockchain technology today, you can catch the hype most probably.
It is still not too late to learn and start for development in blockchain area. The point is finding how and where to start. I am new to this world too so I will try to draw a roadmap to start for you.
First of all, I strongly recommend you to watch this short and free introduction course by Ravinder Deol on Udemy to understand what is blockchain briefly. This is one of my best introduction courses about blockchain on the internet. There are advanced courses by the same lecturer if you want to continue to learn more.
On the more technical side, it is beneficial for you to know how some key techniques works such as decentralization, cryptography, and P2P network. I am not an expert about these but there are lots of courses and studies about them. One more useful thing is reading popular blockchain based product’s whitepapers, especially technical ones. Most projects have technical whitepapers, which explain how they shape the architecture of the product, separated from standard ones.
Development on Ethereum
If you are interested in developing an Ethereum based project, you should learn what is a smart contract and how it works. If you want to learn how to code Ethereum project with Solidity you can check the official documentation or if it is more convenient for you to learn something in an interactive and funny way, please check CryptoZombies. This is a really informative online course and it can be fun to create, feed, and play with zombies.
Most of the Ethereum based projects have their smart contract sources on their Github profile. So, you can check these open sourced projects to understand the real-life dynamics of Smart Contracts.
There is also the implementation in different programming languages such as web3j for Java, Nethereum for .Net, and ethereum-ruby for Ruby.
In the early days when I started to develop an Ethereum project, I try to use Mist Browser, but it is really not necessary to download all Ethereum blockchain for the beginning. Then, I switched to Ganache when I need a local Ethereum blockchain. You can control your own local Ethereum blockchain with using Ganache. You can also run tests and execute commands. Ganache helps you to create both development and the test environment. Basically, it creates a local RPC server and test accounts with mining control and logs records.
Truffle Frameworks is basically “the most popular development framework for Ethereum with a mission to make your life a whole lot easier” according to the explanation in the official website. Actually, I cannot add any extra things to this definition. You can develop smart contracts and build and attach them int your project easily. Also, for the smart contract testing, Truffle is one of the best suitable frameworks. There are ready-to-use samples that allow you to get a distributed application basics. Truffle calls these samples as Boxes. Truffle Boxes includes smart contracts, necessary libraries, front-end structure, and the connection between contracts and views.
I really love VS Code as a text editor. I do not know why but I do not feel comfortable with IDEs. It’s easier for me to use a text editor for the development. Still, it is your choice to use a tool for the development. Whatever the situation is I think that extensions always make the development life easier.
For react developers, I strongly recommend the browser extension https://github.com/facebook/react-devtools. I have both on my Firefox and Chrome browsers. Its functionality is really simple. It shows you react components’ detail and you can check the props or states that you need to watch changes.
Backend & Database
Think that you are developing a product that does not need any backend. Actually, it is not true. You do not need to develop any backend using Java, Node or any other languages in the blockchain case except some extraordinary cases. Your smart contracts are your backend code. So, I prefer not to say that the blockchain is a back endless, unlike many popular words. If you think that you need to a backend code this means you are in the wrong way or the blockchain technology does not meet your product’s technical requirement.
Actually, blockchain is a kind of a database that you can store your data on it. But, for today, it is an expensive way to store all your data on it. Considering the rapidly changing value of the Ethereum in the market, it is risky to calculate your costs. I can suggest you to use an external database to store especially your metadata. There are some projects developing such as IPFS, Storj, and BigchainDB. Also, check the MongoDB’s whitepaper to understand how you can store your data distributed.