Solidity is one of the powerful blockchain development languages that is used for Ethereum ecosystem dApps. The resources available online for solidity are very limited. In the rising world of Web3, Solidity stands top of it. So it’s necessary to understand the basic concepts about this programming language. To learn Solidity you need to learn the basics first, what are dApps, Smart Contracts, Ethereum Virtual Machine. Remix IDE and basics of beginning to code on Solidity. We have discussed all the fundamentals below in detail that will help people with zero coding background to understand Solidity.
What Are dApps
dApps (decentralized applications) run on a peer-to-peer network on blockchain. On Ethereum they are coded into a Smart Contract. You can take an example of a smart contract as dApp’s backend basically which invokes all the functions coded including talking to the blockchain and serving queries, transactions and so on.
Traditionally for regular apps the servers are centralized which are owned, operated and controlled by individuals or companies. But in dApps the backend is running on a peer-to-peer network such as Ethereum Network.
The developers build frontend of a dApp with React, HTML and CSS etc which talks to the backend like any other app but its backend is built with Solidity coded into a smart contract living on Ethereum network.
Smart Contracts and Solidity
The Ethereum Virtual Machine EVM
Solidity is run in the Ethereum Virtual Machine which is just the runtime environment for Ethereum Network like JRE (Java Runtime Environment) for Java and CLR (Common Language Runtime) for .Net. The EVM is completely isolated or Sandboxed, it has no control over Ethereum Network, Decentralized File System etc. Solidity is a very newly backend programming language entrant so it keeps updated frequently. You will see new changes in its docs every couple of weeks. The solidity programming language is still very new, so it requires constant looking into updates to keep up with the new changes.
The blockchains are exclusively immutable, that means they can’t be changed unless a consensus is met. Talking about smart contracts, when a smart contract is deployed for a dApp’s backend, it’s impossible to make any changes. To introduce a small change into a dApp’s backend you need to deploy an entirely new smart contract.
Writing smart contracts is a unique experience for the first time developers. It’s highly recommended to test smart contracts on the test net for a considerable amount of time before deploying them.
Basics of Coding in Solidity for Beginners
Solidity is statically typed and is an Object Oriented Language. To understand Solidity we need to understand Remix first, which is an IDE (Integrated Development Environment) for Solidity coding or smart contracts. You should understand the biggest challenges for blockchain developers are tools and versions of the programming languages.
- Open Remix.org in your browser and it’s ready to go. You can also use it offline. You can write your first smart contract, compile and deploy. It has modules for customization. There’s a guide attached to it which you can read if you find some difficulty. So if you want to learn solidity, remix is the way to begin with.
- Remix IDE has an example smart contract that you can understand bits from.
- Before starting your first smart contract you need to add Pragma Solidity and select the version of it, you want to write your smart contract in.
- You can explore Remix and start your first smart contract. First you need to learn solidity to write it.
Free Solidity Resources to Learn From
As we already mentioned Solidity is still pretty new and most of the information that you learn becomes obsolete with the next update. So being a beginner you should keep an eye on the updates to keep updating your knowledge about Solidity.
- Keep following the updates posted on Solidity documentation where even a beginner can learn from. This is how the first few learned Solidity in the beginning.
- The other most popular source to learn Solidity and new changes implemented is Dapp University, FreeCodeCamp and other YouTube channels that keep updating contents frequently.
- There are few paid services which cost a nominal fee offer great resources for learning Solidity such as Udemy, Coursera and SkillShare.
- Some other resources are Medium, HackerNoon, StackExchange and StackOverflow where you can get your queries answered by the experts for free.
- If you already have some programming done you can read documents and commits on GitHub.