99 · Closing — The Tower, Seen Whole
99 · ปิดเล่ม — หอคอยเมื่อมองทั้งหลัง
This chapter is the roof — the place to stand when the climbing is done, and the map handed back on the way out.
บทนี้คือหลังคา — ที่ยืนเมื่อปีนจบแล้ว และแผนที่ที่คืนให้ตอนเดินออก
What does the whole tower look like — and how does one person climb it?
หอคอยทั้งหลังหน้าตาเป็นอย่างไร — และคนคนเดียวจะปีนมันขึ้นไปได้อย่างไร
Press send.
กดปุ่มส่ง
A message to a friend on another continent: one tap of a thumb. The interface that took the tap is a sheet of glass whose every apparent edge and button was drawn there by hand, a signifier standing in for an affordance the glass does not have (13). The app that acted on it was written in a notation built for people to read, then lowered — stage by exact stage, each one easy because the one before made it easy — to instructions no person will ever see (06). It ran as one process among hundreds on a machine that lies to each of them, carefully, about how many machines there are (05), and the instructions executed on billions of switches that do not know what a number is, arranged so that arithmetic appears in the arrangement itself (04). The message became bits — units of surprise, priced by a theory that refuses on principle to ask what they mean (03) — and was cut into packets that found their own separate ways across a network nobody owns, carried by senders who slow themselves down voluntarily so that strangers can also talk (09). It traveled encrypted, under mathematics that lets two people who have never met agree on a secret in a room full of eavesdroppers (11). At the far end it landed in a database that wrote its intention to a log before touching the data, so that a power cut between any two instructions could not make it lie (08), on replicas that cannot agree what time it is and have protocols for agreeing on things anyway (10). A model grown from data, its skill written down by nobody, decided the message was worth showing (12). And under the whole descent the bedrock held: everything that happened was computable, cost what the mathematics of cost says it must (02), and stayed inside the fence drawn in 1936, before any of these machines existed (01).
ข้อความถึงเพื่อนอีกทวีปหนึ่งใช้นิ้วโป้งแตะครั้งเดียว อินเทอร์เฟซที่รับการแตะคือแผ่นกระจกที่ขอบและปุ่มทุกอันถูกวาดขึ้นด้วยมือ เป็นตัวบ่งชี้ (signifier) ยืนแทน affordance ที่กระจกไม่มีจริง (13) แอปที่ทำงานตามนั้นเขียนด้วยสัญกรณ์ที่สร้างมาให้คนอ่าน ก่อนถูกลดขั้นลงมาทีละขั้นอย่างแม่นยำ แต่ละขั้นง่ายเพราะขั้นก่อนหน้าทำให้ง่าย จนเหลือเป็นคำสั่งที่ไม่มีมนุษย์คนไหนได้เห็น (06) มันรันเป็นหนึ่งในโพรเซส (process) หลายร้อยตัวบนเครื่องที่โกหกแต่ละตัวอย่างพิถีพิถันว่ามีเครื่องอยู่กี่เครื่อง (05) คำสั่งเหล่านั้นทำงานบนสวิตช์นับพันล้านตัวที่ไม่รู้ว่าตัวเลขคืออะไร จัดวางกันจนเลขคณิตโผล่ขึ้นมาจากการจัดวางเอง (04) ข้อความกลายเป็นบิต — หน่วยของความประหลาดใจ ตีราคาด้วยทฤษฎีที่ปฏิเสธโดยหลักการที่จะถามว่ามันหมายความว่าอะไร (03) — ถูกตัดเป็นแพ็กเก็ต (packet) ที่หาทางของตัวเองแยกกันข้ามเครือข่ายที่ไม่มีใครเป็นเจ้าของ ขนโดยผู้ส่งที่ยอมชะลอตัวเองโดยสมัครใจเพื่อให้คนแปลกหน้าได้พูดด้วย (09) มันเดินทางแบบเข้ารหัส ใต้คณิตศาสตร์ที่ทำให้คนสองคนที่ไม่เคยเจอกันตกลงความลับกันได้ในห้องที่เต็มไปด้วยคนดักฟัง (11) ปลายทางมันตกลงในฐานข้อมูลที่เขียนเจตนาลงบันทึก (log) ก่อนแตะข้อมูลจริง ไฟดับระหว่างคำสั่งสองคำสั่งจึงทำให้มันโกหกไม่ได้ (08) บนสำเนา (replica) ที่ตกลงกันไม่ได้ว่าตอนนี้กี่โมง แต่มีโพรโทคอลไว้ตกลงเรื่องอื่นอยู่ดี (10) โมเดลที่งอกจากข้อมูล ทักษะของมันไม่มีใครเขียนลงไป เป็นผู้ตัดสินว่าข้อความนี้ควรค่าแก่การแสดง (12) และตลอดการลงมาทั้งหมด ฐานรากรับไว้ได้: ทุกอย่างที่เกิดขึ้นคำนวณได้ (computable) เสียต้นทุนเท่าที่คณิตศาสตร์ว่าด้วยต้นทุนบอกว่าต้องเสีย (02) และอยู่ในรั้วที่ขีดไว้ตั้งแต่ปี 1936 ก่อนเครื่องพวกนี้จะเกิดขึ้นสักเครื่อง (01)
One tap; every floor. And no one who touched the message on its way — no author of any layer, however expert — holds all of it in mind at once. Chapter 00 said that this is not a failure of education but the design. Fifteen floors of descent and ascent later, the sentence should read differently: it is the achievement. The tower stands because each floor is a real language, precise on its own terms, and because the people on each floor could afford to take the floors below on trust.
แตะครั้งเดียว ทุกชั้นทำงาน และไม่มีใครที่แตะข้อความนี้ระหว่างทาง — ไม่มีผู้เขียนชั้นไหน เชี่ยวชาญเพียงใดก็ตาม — ถือทั้งหมดไว้ในหัวพร้อมกันได้ บทที่ 00 บอกว่านี่ไม่ใช่ความล้มเหลวของการศึกษา แต่คือการออกแบบ ผ่านการลงและขึ้นสิบห้าชั้นมาแล้ว ประโยคนั้นควรอ่านต่างออกไป: มันคือ ความสำเร็จ หอคอยยืนอยู่ได้เพราะแต่ละชั้นเป็นภาษาจริง แม่นยำในเงื่อนไขของตัวเอง และเพราะคนบนแต่ละชั้นวางใจชั้นล่างได้โดยไม่ต้องลงไปตรวจเอง
Seen from the roof, the whole building repeats three refrains. Each floor hides machinery and offers a surface simpler than what it conceals — that is the one trick, performed fifteen ways. Every surface leaks, and expertise in computing is mostly a nose for which floor a leak is coming from — the slow loop that is really a memory problem (04), the "saved" file that is really a directory-entry problem (05), the hijacked route that is really a trust problem (09). And two of the shafts running through the building are not floors at all but stairwells: the adversary (11) and the learner (12) enter on every level, which is why no floor can be finished without them. The roof itself is unfinished — wet concrete, open problems, an energy bill newly due (14) — and the bedrock is still being argued over (01). A building like that is not a monument. It is a construction site that happens to be inhabited.
มองจากหลังคา อาคารทั้งหลังพูดซ้ำอยู่สามท่อน ท่อนแรก แต่ละชั้นซ่อนกลไกไว้แล้วยื่นผิว (surface) ที่ง่ายกว่าสิ่งที่มันปิดบัง — กลเดียว เล่นสิบห้าแบบ ท่อนที่สอง ทุกผิวรั่ว และความเชี่ยวชาญในวงการคอมพิวเตอร์ส่วนใหญ่คือจมูกที่ดมออกว่ารอยรั่วมาจากชั้นไหน — ลูปที่ช้าแต่จริงๆ เป็นปัญหาหน่วยความจำ (04) ไฟล์ที่ "เซฟแล้ว" แต่จริงๆ เป็นปัญหา directory entry (05) เส้นทางที่ถูกจี้แต่จริงๆ เป็นปัญหาความเชื่อใจ (trust) (09) ท่อนที่สาม ช่องสองช่องที่ทะลุอาคารทั้งหลังไม่ใช่ชั้น แต่เป็นบันได: ฝ่ายตรงข้าม (11) กับผู้เรียน (12) เข้ามาได้ทุกชั้น ไม่มีชั้นไหนสร้างจบได้โดยไม่นับสองอย่างนี้ หลังคาเองยังไม่เสร็จ — ปูนยังเปียก ปัญหายังเปิดค้างไว้ บิลค่าพลังงานเพิ่งถึงกำหนดชำระ (14) — และฐานรากก็ยังเถียงกันไม่จบ (01) อาคารแบบนี้ไม่ใช่อนุสาวรีย์ มันคือไซต์ก่อสร้างที่บังเอิญมีคนอาศัยอยู่
The thirty-day route
เส้นทาง 30 วัน
The route below assumes what every chapter assumed: intelligence, and no coursework. Two days per floor. On the first day, reread the chapter with its primary source open beside it — the sources were chosen because they are readable, and reading Turing or Shannon in the original is the fastest cure for the belief that foundations are beyond you. On the second day, put a hand on the real thing. Every resource here is canonical in its field and free; the links were verified as this book went to press. Two hours a day for a month will not make anyone an expert. It does something better: it makes every floor a place you have stood, so that nothing in computing is a rumor to you anymore.
เส้นทาง (route) ข้างล่างตั้งอยู่บนสมมติฐานเดียวกับทุกบท: มีสติปัญญา ไม่ต้องมีพื้นเรียนมาก่อน ชั้นละสองวัน วันแรกอ่านบทนั้นซ้ำ โดยเปิดแหล่งข้อมูลปฐมภูมิ (primary source) วางไว้ข้างๆ — เลือกมาเพราะอ่านได้จริง และการอ่าน Turing หรือ Shannon จากต้นฉบับคือยาที่แก้ความเชื่อว่ารากฐานพวกนี้เกินตัวเราได้เร็วที่สุด วันที่สองลงมือแตะของจริง แหล่งเรียน (resource) ทุกชิ้นที่นี่เป็นของหลักในสาขาของมันและฟรี ลิงก์ตรวจสอบแล้วตอนเล่มนี้เข้าโรงพิมพ์ วันละสองชั่วโมงหนึ่งเดือนไม่ทำให้ใครเป็นผู้เชี่ยวชาญ มันทำสิ่งที่ดีกว่านั้น — ทุกชั้นกลายเป็นที่ที่เราเคยยืนมาแล้ว ไม่มีอะไรในวงการคอมพิวเตอร์เป็นคำเล่าลือสำหรับเราอีกต่อไป
| Days | Floor | The two days' work |
|---|---|---|
| 1–2 | 00 The Map | Reread ch. 00. Then start the lower tower for a general reader: Petzold's Code companion (codehiddenlanguage.com) and the Nand2Tetris materials (nand2tetris.org) you will use on days 9–10. |
| 3–4 | 01 Theory of Computation | Turing 1936, §9, with ch. 01 as guide (PDF); then the Church–Turing entry in the Stanford Encyclopedia (plato.stanford.edu). |
| 5–6 | 02 Algorithms & Data Structures | MIT OCW 6.006, first lectures (ocw.mit.edu); implement one divide-and-conquer algorithm by hand and time it against the naive version. |
| 7–8 | 03 Information & Coding | Shannon 1948, Part I (PDF); then MacKay's opening chapters (inference.org.uk). |
| 9–10 | 04 Computer Architecture | Nand2Tetris projects 1–3: from a single gate to an ALU. Arithmetic will appear in the arrangement, under your own hands. |
| 11–12 | 05 Operating Systems | OSTEP, the virtualization dialogues and intro chapters (pages.cs.wisc.edu/~remzi/OSTEP); list the processes on your own machine and find what each one is lying about. |
| 13–14 | 06 Languages & Compilers | Crafting Interpreters through the scanner and parser (craftinginterpreters.com) — a compiler's tower, built floor by floor in your editor. |
| 15–16 | 07 Software Engineering | Software Engineering at Google, chs. 1–2 (abseil.io); put something of your own under version control and write one test that would catch you changing your mind. |
| 17–18 | 08 Databases | Readings in Database Systems (redbook.io); then write ten SQL queries against any real dataset and let the optimizer route them. |
| 19–20 | 09 Networks | Computer Networks: A Systems Approach, ch. 1 (systemsapproach.org); then Jacobson & Karels 1988 (PDF) — the network that ate itself, and the fix your phone still runs. |
| 21–22 | 10 Distributed Systems | Lamport 1978 (podc.org); then van Steen & Tanenbaum, ch. 1 (distributed-systems.net). |
| 23–24 | 11 Security & Cryptography | Cryptopals, Set 1 (cryptopals.com) — break real ciphers with your own code; Handbook of Applied Cryptography, ch. 1 (cacr.uwaterloo.ca/hac). |
| 25–26 | 12 AI & Machine Learning | Karpathy, Neural Networks: Zero to Hero, first two lessons (karpathy.ai) — build backpropagation yourself; Deep Learning as the reference shelf (deeplearningbook.org). |
| 27–28 | 13 HCI & Graphics | Nielsen's three response-time limits (nngroup.com); Physically Based Rendering, ch. 1 (pbr-book.org); then take one interface you use daily and separate its affordances from its signifiers. |
| 29–30 | 14 The Frontier | Quantum Computing for the Very Curious (quantum.country); the Millennium Problems (claymath.org); then write your own list of open questions. That list is the exam, and you grade it. |
| วัน | ชั้น | งานของสองวันนั้น |
|---|---|---|
| 1–2 | 00 แผนที่ | อ่านบทที่ 00 ซ้ำ จากนั้นเริ่มหอคอยชั้นล่างสำหรับผู้อ่านทั่วไป: Petzold's Code companion (codehiddenlanguage.com) และเอกสาร Nand2Tetris (nand2tetris.org) ที่จะใช้ในวันที่ 9–10 |
| 3–4 | 01 ทฤษฎีการคำนวณ | Turing 1936, §9 โดยใช้บทที่ 01 เป็นไกด์ (PDF) จากนั้นอ่านหัวข้อ Church–Turing ใน Stanford Encyclopedia (plato.stanford.edu) |
| 5–6 | 02 อัลกอริทึมและโครงสร้างข้อมูล | MIT OCW 6.006 เลกเชอร์ (lecture) แรกๆ (ocw.mit.edu) ลงมือเขียนอัลกอริทึมแบบแบ่งแล้วพิชิต (divide and conquer) เองสักตัวหนึ่ง แล้วจับเวลาเทียบกับแบบ naive |
| 7–8 | 03 สารสนเทศและการเข้ารหัส | Shannon 1948, Part I (PDF) จากนั้นอ่านบทเปิดของ MacKay (inference.org.uk) |
| 9–10 | 04 สถาปัตยกรรมคอมพิวเตอร์ | Nand2Tetris projects 1–3: จากเกตตัวเดียวไปจนถึง ALU เลขคณิตจะปรากฏขึ้นจากการจัดวางเอง ด้วยมือเราเอง |
| 11–12 | 05 ระบบปฏิบัติการ | OSTEP บทสนทนาเรื่อง virtualization กับบทนำ (pages.cs.wisc.edu/~remzi/OSTEP) ลอง list โพรเซสบนเครื่องตัวเอง แล้วหาว่าแต่ละตัวกำลังโกหกเรื่องอะไรอยู่ |
| 13–14 | 06 ภาษาและคอมไพเลอร์ | Crafting Interpreters จนถึงส่วน scanner กับ parser (craftinginterpreters.com) — หอคอยของคอมไพเลอร์ ที่สร้างทีละชั้นในเอดิเตอร์ของเราเอง |
| 15–16 | 07 วิศวกรรมซอฟต์แวร์ | Software Engineering at Google, บทที่ 1–2 (abseil.io) เอางานของตัวเองสักชิ้นเข้าระบบควบคุมเวอร์ชัน (version control) แล้วเขียนเทสต์หนึ่งตัวที่จะจับได้ถ้าเราเปลี่ยนใจภายหลัง |
| 17–18 | 08 ฐานข้อมูล | Readings in Database Systems (redbook.io) จากนั้นเขียนคิวรี (query) SQL สิบตัวกับชุดข้อมูลจริงสักชุด แล้วปล่อยให้ query optimizer เลือกเส้นทางเอง |
| 19–20 | 09 เครือข่าย | Computer Networks: A Systems Approach, บทที่ 1 (systemsapproach.org) จากนั้น Jacobson & Karels 1988 (PDF) — เครือข่ายที่กินตัวเองจนพัง กับวิธีแก้ที่โทรศัพท์ของเรายังใช้อยู่จนถึงทุกวันนี้ |
| 21–22 | 10 ระบบกระจาย | Lamport 1978 (podc.org) จากนั้น van Steen & Tanenbaum บทที่ 1 (distributed-systems.net) |
| 23–24 | 11 ความปลอดภัยและวิทยาการรหัสลับ | Cryptopals, Set 1 (cryptopals.com) — ทลายไซเฟอร์ (cipher) จริงด้วยโค้ดของตัวเอง จากนั้น Handbook of Applied Cryptography, บทที่ 1 (cacr.uwaterloo.ca/hac) |
| 25–26 | 12 ปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง | Karpathy, Neural Networks: Zero to Hero, สองบทเรียนแรก (karpathy.ai) — สร้าง backpropagation ด้วยมือเราเอง จากนั้น Deep Learning เป็นชั้นหนังสืออ้างอิง (deeplearningbook.org) |
| 27–28 | 13 ปฏิสัมพันธ์มนุษย์–คอมพิวเตอร์ และกราฟิกส์ | ขีดจำกัดเวลาตอบสนองสามระดับของ Nielsen (nngroup.com) Physically Based Rendering, บทที่ 1 (pbr-book.org) จากนั้นเลือกอินเทอร์เฟซที่เราใช้ทุกวันสักตัว แล้วแยก affordance ออกจาก signifier ของมัน |
| 29–30 | 14 พรมแดน | Quantum Computing for the Very Curious (quantum.country) the Millennium Problems (claymath.org) จากนั้นเขียนลิสต์คำถามที่ยังเปิดอยู่ของตัวเอง ลิสต์นั้นแหละคือข้อสอบ และเราเป็นคนให้คะแนนเอง |
The license to be curious
ใบอนุญาตให้อยากรู้
There is no credential for what this book assumes, and none for what it hopes to leave behind. The people in these chapters mostly did not wait for one. A student refuted his professor's conjecture within a week of hearing it (02). An engineer, tired of losing his weekends to a machine that could detect errors but not fix them, invented the codes that let machines repair their own mistakes (03). An operating system that runs the world's servers was written in a month because the budget refused anything larger (05). A psychologist's word for what a chair offers a body became the working vocabulary of every screen you touch (13). None of these people had permission in any form that mattered. They had a question they could not put down, and the nerve to believe the question was theirs to ask.
ไม่มีใบรับรองสำหรับสิ่งที่เล่มนี้สมมติไว้ และไม่มีใบรับรองสำหรับสิ่งที่มันหวังจะทิ้งไว้ คนในบทเหล่านี้ส่วนใหญ่ไม่ได้รอมัน นักศึกษาคนหนึ่งหักล้างข้อคาดการณ์ของอาจารย์ตัวเองภายในหนึ่งสัปดาห์หลังได้ยิน (02) วิศวกรคนหนึ่งเบื่อการเสียวันหยุดสุดสัปดาห์ให้เครื่องที่ตรวจจับความผิดพลาดได้แต่แก้ไม่ได้ จึงคิดค้นรหัส (code) ที่ให้เครื่องซ่อมความผิดพลาดของตัวเอง (03) ระบบปฏิบัติการที่รันเซิร์ฟเวอร์ทั้งโลกเขียนเสร็จในหนึ่งเดือน เพราะงบไม่ยอมให้ใหญ่กว่านั้น (05) คำที่นักจิตวิทยาคนหนึ่งใช้เรียกสิ่งที่เก้าอี้มอบให้ร่างกาย กลายเป็นศัพท์ทำงานของทุกหน้าจอที่เราแตะ (13) ไม่มีใครในนี้ได้รับอนุญาตในรูปแบบใดที่มีน้ำหนักจริง พวกเขามีคำถามที่วางไม่ลง กับความกล้าที่จะเชื่อว่าคำถามนั้นเป็นของพวกเขาที่จะถาม
That is the license, and it was never anyone's to grant. What this book has tried to supply is only the map that makes the license usable: the names of the floors, the load-bearing ideas on each, the places where the surfaces leak, and the honest admission — chapter by chapter — of what nobody knows yet. The fences that matter (01) are drawn by mathematics, not by gatekeepers. Everything inside them is climbable, and the chapters above have shown that each floor, met on its own terms, is not just climbable but simple — one or two ideas, held with precision, doing all the work.
นั่นคือใบอนุญาต และไม่เคยเป็นของใครที่จะมอบให้ สิ่งที่เล่มนี้พยายามให้มีเพียงแผนที่ที่ทำให้ใบอนุญาตนั้นใช้ได้: ชื่อของแต่ละชั้น ไอเดียที่แบกน้ำหนักอยู่บนชั้นนั้น จุดที่ผิวรั่ว และคำสารภาพตรงๆ ทีละบทว่ายังไม่มีใครรู้อะไร รั้วที่สำคัญจริง (01) ขีดโดยคณิตศาสตร์ ไม่ใช่โดยผู้เฝ้าประตู ทุกอย่างข้างในรั้วปีนได้ และบทข้างบนแสดงให้เห็นแล้วว่าแต่ละชั้น เมื่อพบกันตามเงื่อนไขของมันเอง ไม่ใช่แค่ปีนได้ แต่ เรียบง่าย — หนึ่งหรือสองไอเดีย ยึดไว้อย่างแม่นยำ ทำงานทั้งหมด
Chapter 00 ended its tour with a child dragging a photo across a screen, commanding billions of switches with one finger and needing to understand none of them. That is the tower working. But needing was always the wrong measure. Wanting to understand is another matter entirely, and wanting to is the whole of the license. The concrete at the top is still wet. The stairs are lit. Climb.
บทที่ 00 ปิดทัวร์ด้วยเด็กคนหนึ่งลากรูปถ่ายไปบนหน้าจอ สั่งสวิตช์นับพันล้านตัวด้วยนิ้วเดียว โดยไม่ต้องเข้าใจสักตัว นั่นคือหอคอยที่ทำงานได้ แต่ ความจำเป็น ไม่เคยเป็นตัววัดที่ถูก การ อยากเข้าใจ เป็นคนละเรื่อง และความอยากนั้นคือใบอนุญาตทั้งหมด ปูนบนสุดยังเปียก บันไดเปิดไฟไว้แล้ว ปีนเลย