Learning Ethereum/Solidity Smart Contract Development – Week # 1
Tags: blockchaindevelopme, blockchain, ethereum, ethereumdevelopment
Published: 2019-05-25 17:26:01

---
title: Learning Ethereum/Solidity Smart Contract Development – Week # 1
published: true
tags: Blockchain Developme,blockchain,ethereum,ethereum development
canonical_url: https://hasanali.me/learning-solidity-part-1/
---

![](https://hasanali.me/wp-content/uploads/2019/05/vr-cOVER-1024x534.png)

I’ve started working with blockchain by playing around with block explorers and RPC APIs. Setting up RPC APIs and connecting them to a frontend web was all that I know to do. But what I really wanted is to learn the core of blockchains and wanted to know how to become a blockchain developer. I was confused too at that time because the blockchain ecosystem was booming expeditiously and new development tools were coming, so it was making more difficulty for me to decide where to start.

I found this course on Udemy about “Ethereum and Solidity: The Complete Developer’s Guide” which laid down first steps of my journey of blockchain development.   
  
Now being a blockchain developer, I’ve been asked this question more frequently, so I think I should write detailed notes of my solidity development course, from which anyone who wants to start blockchain development can start learning just like I did.

The first week is the introduction to Ethereum blockchain and kind of list of terminologies and their explanations but after that, we’ll dive into coding smart contracts.

**Prerequisites:**

1. You should have a basic understanding of blockchain, just a basic knowledge of addresses, wallets and how blockchain works in a nutshell. If you don’t know about basics of blockchain don’t worry check out Anders playlist 

<iframe title="Blockchain 101 - A Visual Demo" width="676" height="380" src="https://www.youtube.com/embed/videoseries?list=PLlzIv5W0T83BPJqonIRMf-lV7K7E06qyY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<figcaption>Blockchain 101 – A Visual Demo</figcaption>

<iframe title="Blockchain 101 - Part 2 - Public / Private Keys and Signing" width="676" height="380" src="https://www.youtube.com/embed/videoseries?list=PLlzIv5W0T83BPJqonIRMf-lV7K7E06qyY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<figcaption>Blockchain 101 – Part 2 – Public / Private Keys and Signing</figcaption>
1. If you know React.js, it will be a plus point because in future we’ll be developing frontend for smart contracts in it. If you don’t know react don’t worry check out this free React.js course

<iframe title="Learn React.js - Full Course for Beginners - Tutorial 2019" width="676" height="380" src="https://www.youtube.com/embed/DLX62G4lc44?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

**History of Ethereum:**

In December 2013 after the release of bitcoin whitepaper, Vatalik Buterin visions the idea to use the blockchain technology not just as a mode of payment transfer but also as a virtual machine which can run programs and codes and thus the idea of smart contracts was introduced. Vatalik wasn’t the first one to introduce the idea of smart contracts, it was proposed before by Nick Szabo too, but this was the first successful implementation of that idea.

**Blockchain:**  
Blockchain is a database which keeps a record of all transactions and anyone can keep and maintain this database so its decentralized (not controlled by a authority)

**Ethereum:**  
Ethereum is a special type of blockchain, instead of only keeping a record of transactions it also provides storage to host programming code on it which is executed by Ethereum Virtual Machine.

**Metamask:**  
Metamask is a chrome browser extension allows user to interact with Ethereum applications in browser. Install it and explore it. (https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en)

**Smart Contract:**  
Smart Contract is a special account in Ethereum blockchain which has 3 things in it.

1. Balance : Amount of Ethereum in this account
2. Storage : Data store for this contract
3. Code : Smart contract code

**Solidity:**

Solidity is the programming language introduced by Ethereum to write smart contracts. It’s a strongly typed language very similar to javascript.

**Smart Contract Lifecycle:**

When a smart contract is programmed in solidity it’s then compiled by Solidity Compiler which gives us two things.

1. Bytecode: This is the code which is deployed on Ethereum network
2. Application Binary Interface (ABI): ABI is a long JSON object contain smart contract methods and information from which we can interact with smart contract.