What is Solidity?
Solidity is a programming language created in 2014-2015 by Gavin Wood, the language allows developers to create computerized transaction protocols that execute the terms of a contract.
The syntax is very similar to the JavaScript language and its architecture is quite static, which makes it quite understandable for most programmers.
What are Smart Contracts?
Smart contracts can be interpreted as fragments of code that operate on a blockchain, and allow complex transactions to occur that can be programmed in an immutable manner.
They are put into practice to digitally verify, facilitate or enforce contract outcomes and negotiation. They also allow the execution of trusted transactions without the involvement of a third party.
Now, once the smart contract is implemented, it is difficult to upgrade, alter, and manipulate, however, later in this blog I'll show you how to create upgradeable contracts.
Solidity Key Facts:
- It resembles JavaScript. The syntax of the commands is similar, including functions, objects, and inheritance delimited by square brackets.
- The objects you build run on the nodes of the blockchain. They store their internal databases in the general ledger.
- The smart contract continues to exist until a transaction spends the final value. Your code can send and receive contracts from other smart contracts, allowing for complex transactions.
- Ethereum code can only run if you pay for time on the nodes with " gas ". A fee required to make a transaction on the Ethereum blockchain.
Reasons to learn Solidity:
There are many reasons to learn Solidity, and it doesn't matter if you are a developer (like me) or a programming newbie. If you want to work full-time in crypto or recognize the opportunities that learning the latest technologies can offer you.
Especially, if you work in a sector where there are use cases (gaming, finance, legal, insurance, etc), I recommend that you start immersing yourself in this technology, or at least getting to know it.
Smart contracts drive the Ethereum ecosystem and are enabling large projects. What are your most popular use cases?
- NFT – Tokenization
- Prediction markets and real estate guarantees
- DeFi dApps: stablecoins, loans, derivatives, etc…
- Digital Identity
- Legal contracts
- DAOs
- Gaming
Are there any prerequisites to learning Solidity?
There are no strict prerequisites, you can start from scratch. It's true that having prior programming knowledge (specifically JavaScript) can soften the learning curve, but in reality, all you need is the desire to learn.
Free Resources to Learn Solidity
- The most comprehensive resource for Solidity is the Solidity documentation. This resource is intended for people familiar with programming, but who may not have experience with Ethereum or blockchain technology in general.
- Ether.fund maintains a list of Solidity contract examples that can be a useful resource for developing your own contracts or understanding how different methods work.
- The Ethereum Github Wiki contains a list of resources for DApp developers that will be most useful to those with some programming background. These include tools, code examples, development environments, and technical references.
- Newbies to programming and the Ethereum blockchain, may find this Introduction to Smart Contract Programming useful. Introduces basic concepts in DApp development and guides the reader through a possible DApp development workflow.
Apart from these, there are tons of videos on Youtube (some useful other not so) that teach you Solidity programming for free. That's it for today, in the next series of posts I will start a no bs and a practical guide to smart contract programming and blockchain development, so don't forget to follow along!