←Back
3 MIN READ

TECH

Getting Started with Web3: A Developer's Honest Guide

07 · 05 · 24·3 min read

Why Web3?

I'll be honest — the Web3 space has a lot of noise. But underneath the hype is genuinely fascinating technology: decentralized computation, programmable money, and trustless agreements.

This post is for developers who want to understand how it actually works.

Core Concepts

Blockchain Basics

A blockchain is a distributed ledger — a list of records (blocks) linked cryptographically, replicated across thousands of nodes. No single party controls it.

Block 1 (Genesis)
├── hash: 0x000...abc
├── data: [transactions]
└── prev: 0x000...000

Block 2
├── hash: 0x000...def  
├── data: [transactions]
└── prev: 0x000...abc  ← links to Block 1

Changing any block would invalidate all subsequent hashes — making tampering computationally infeasible.

Smart Contracts

Smart contracts are programs that run on the blockchain. They execute automatically when conditions are met — no intermediaries needed.

Your First Smart Contract

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract SimpleStorage {
    uint256 private value;
    
    event ValueChanged(uint256 newValue, address changedBy);
    
    function set(uint256 _value) public {
        value = _value;
        emit ValueChanged(_value, msg.sender);
    }
    
    function get() public view returns (uint256) {
        return value;
    }
}

Key things to notice:

  • public functions are callable by anyone
  • view functions don't modify state (free to call)
  • events are logs stored on-chain

Setting Up Your Environment

# Install Hardhat (Ethereum development framework)
npm install --save-dev hardhat

# Initialize project
npx hardhat init

# Run local blockchain
npx hardhat node

# Deploy contract
npx hardhat run scripts/deploy.ts --network localhost

Interacting via ethers.js

import { ethers } from "ethers";

// Connect to local node
const provider = new ethers.JsonRpcProvider("http://127.0.0.1:8545");
const signer = await provider.getSigner();

// Load contract
const contract = new ethers.Contract(address, abi, signer);

// Call functions
await contract.set(42);
const value = await contract.get();
console.log(value); // 42n

What I've Learned

After several months exploring Web3:

  1. Gas optimization matters — inefficient code costs real money
  2. Security is brutal — the blockchain is immutable; bugs are permanent
  3. The tooling is maturing fast — Hardhat, Foundry, and Wagmi are genuinely good now
  4. Most of the value is still theoretical — but the foundations are solid

Recommended Path

  1. → Understand Bitcoin whitepaper
  2. → Read Ethereum yellow paper (skim it)
  3. → Complete CryptoZombies (gamified Solidity tutorial)
  4. → Build and deploy a simple token contract
  5. → Audit open-source contracts on GitHub

The technology is real. The learning curve is worth it.

You have reached the end.

Perhaps the thought does not end here.

— Indra

Next Reading

TECH·3 min read
#python#data-science#pandas#eda

10 Pandas Tricks That Saved My EDA Workflow

Practical pandas techniques I use daily for exploratory data analysis — from efficient filtering to memory optimization.