Computing from the ground up

Scrapy
Bytes

A growing field guide. Real Rust and C code. Three depth levels on every page: beginner, intermediate, advanced.
From electrons switching states to UTF-8 encoding the emoji in your text. Every topic builds on the one before it.

follow along
@ashutoshrana_20

Building ScrapyBytes in public. New topics drop here first, plus the research, the weird CS rabbit holes, and the threads that distill each page into 60 seconds.

Follow on X
01 / NUMBER SYSTEMSNumber Systems

Decimal, binary, octal, hex, plus the weirder ones. Why programmers move between bases, and how.

02 / BINARYBinary

Two symbols. Infinite meaning. Counting, shifting, two's complement, IEEE 754 floats.

03 / ASCIIASCII

The agreement that turns bit patterns into language. 7-bit ASCII, control codes, and the leap to UTF-8.

04 / LOGIC GATESLogic Gates

The physical switches that are the bits. CMOS transistors, NAND universality, adders.

05 / CPUCPU

Wire it all together. Fetch-decode-execute, registers and ALUs, pipelines, caches, branch prediction.

06 / MEMORYMemory

Where state lives. RAM vs ROM, stack vs heap, virtual memory, and how Rust, C and GC'd languages manage it.

07 / OPERATING SYSTEMOperating System

One CPU, hundreds of programs. Kernel vs user mode, syscalls, processes, threads, schedulers, virtual memory.

08 / VARIABLESVariables

What `let x = 42` actually does. Stack vs heap, primitive vs dynamic, alignment, and lifetime, in Rust and C.

09 / POINTERSPointers

A number that means somewhere. Why pointers power every data structure, and the five classic bugs. C raw pointers vs Rust ownership.

10 / COMPILE VS RUNTIMECompile vs Runtime

Two phases of every program. What gets decided when, why pushing work earlier matters, and how the split shows up in every layer above.

11 / ARRAYSArrays

Houses on a numbered street. Contiguous memory, O(1) indexing, cache locality, and the structure underneath every other data structure.

12 / LINKED LISTLinked List

A chain of nodes, each one pointing at the next. The data structure that trades cache locality for cheap inserts, and the one every other pointer-y structure is built from.

13 / HASHINGHashing

A fingerprint for anything. Hash functions, hash maps, collision handling, cryptographic hashes, Merkle trees, and the chain in blockchain.

14 / NODESNodes

One word, three scales. A node in a data structure, a node on a network, a node in a blockchain. The same essential pattern, applied from bytes to billion-dollar systems.

15 / NETWORKINGNetworking

Where one machine becomes many. IP addresses, packets, TCP/IP, routing, sockets, and why every previous topic shows up the moment two computers talk.

16 / DISTRIBUTED SYSTEMSDistributed Systems

No single machine knows everything. Many computers, no central authority, eventual agreement. CAP theorem, gossip, Byzantine fault tolerance, and why this is the page right before blockchain.

17 / CAP THEOREMCAP Theorem

You can only guarantee two. Consistency, availability, partition tolerance: pick any two. The silent tradeoff every database, app, and blockchain quietly made without telling you.

18 / PACELCPACELC

CAP told you what breaks. PACELC tells you what you choose every second. Latency vs consistency on every request, even when the network is perfectly healthy.

19 / BLOCKCHAINBlockchain

The capstone. From one transistor in 1947 to a financial network nobody owns. How every previous topic stacks into Bitcoin, end to end, with nothing missing.

20 / RECURSIONRecursion

A function that calls itself, until it doesn't. The most elegant idea in programming and the fastest way to crash a server. The base case is survival.

21 / BIG O NOTATIONBig O Notation

Same answer, 317 years apart. Big O is not about speed, it is about how code scales. The lens that makes the whole curriculum coherent, from arrays to Bitcoin's security.

22 / SORTING ALGORITHMSSorting Algorithms

Before you can find anything you have to sort everything. Bubble sort, merge sort, quicksort, and what your language actually uses in production.

23 / SEARCHING ALGORITHMSSearching Algorithms

Find it fast, or wait forever. Linear vs binary search, the overflow bug, interpolation and exponential search, and why Bitcoin uses hashing and sorting together.

24 / STACKS & QUEUESStacks & Queues

Two rules each, everything else follows. LIFO and FIFO, the call stack you already use, ring-buffer queues, priority queues, and the Bitcoin mempool as a max-heap.

25 / TREESTrees

A linked list that branches. Binary search trees, balance, traversals, and the three trees running inside every Bitcoin block: Merkle, B-tree, and the recursive call tree.

26 / GRAPHSGraphs

Everything is connected, not everything is a tree. Nodes, edges, BFS, DFS, Dijkstra, and the graph algorithms routing your packets, your payments, and every Bitcoin transaction.

27 / INTRO TO CRYPTOGRAPHYIntro to Cryptography

Series 2 begins. Two strangers, no shared secret, private communication anyway. Symmetric and public key crypto, hashing, signatures, Diffie-Hellman, and the maths that makes Bitcoin secure.

28 / PUBLIC KEY CRYPTOGRAPHYPublic Key Cryptography

One key creates it, only one key opens it. Key pairs, elliptic curves, secp256k1, scalar multiplication, ECDH, HD wallets, and the Bitcoin address types built on all of it.

PHILOSOPHYPhilosophy

Why Scrapy. The mindset behind learning computing from the root up.

The abstraction stack (reading order)

Application
Your program, strings, numbers
Encoding
ASCII · UTF-8 · Unicode codepoints
Bit patterns
Binary · hex · two's complement
Hardware
Transistors · logic gates · adders
Physics
Electrons · voltage levels · CMOS