加班内卷的IT行业,我选择躺平:一个文科生的代码人生
三年前,我还是一个每天在图书馆里啃《西方哲学史》的中文系学生。如今,我坐在电脑前敲代码,却不再为凌晨三点的加班焦虑。不是因为我成了技术大牛,而是我终于明白:技术不是用来卷死别人的工具,而是帮自己过上想要生活的手段。
今天这篇教程,不教你如何“高效加班”,也不鼓吹“35岁危机”。我想用最朴素的语言,带你亲手写几行代码,理解一个听起来很酷但其实很简单的技术——区块链。更重要的是,通过这个过程,我们一起思考:在人人都在奔跑的IT行业,普通人是否可以“有选择地躺平”?
为什么是区块链?它和“躺平”有什么关系?
很多人一听“区块链”,就想到比特币、炒币、一夜暴富。但其实,区块链最核心的价值,是“去中心化”和“信任无需中介”。
什么意思?举个例子:
- 传统转账:你给朋友转100块,要通过银行(中心机构)验证。
- 区块链转账:你和朋友直接交易,系统自动记录,全网共同验证,不需要银行。
这种“不依赖权威、人人可验证”的思想,恰恰呼应了我对“躺平”的理解:我不需要靠拼命加班来证明自己的价值,我的代码、我的作品、我的思考,本身就值得被看见。
所以,今天我们不谈金融,不谈投资,只用Python写一个最简化的区块链原型,亲手感受它的逻辑。
环境准备:零基础也能搭起来
别担心!你不需要买服务器、不用装复杂的软件。只要你的电脑能上网,就能开始。
第一步:安装 Python
- 访问 https://www.python.org/downloads/
- 下载最新版(比如 Python 3.11 或 3.12)
- 安装时务必勾选 “Add Python to PATH”(Windows用户)
第二步:验证安装
打开终端(Mac/Linux)或命令提示符(Windows),输入:
python --version
如果看到类似 Python 3.11.5 的输出,说明成功了!
第三步:创建项目文件夹
在桌面新建一个文件夹,比如叫 my_blockchain,然后在里面新建一个文件:blockchain.py。
我当初学的时候,连“终端”是什么都不知道,以为是某种神秘机器。其实它就是你和电脑对话的窗口,像聊天一样打字就行。
核心概念:用生活比喻讲清楚
1. 什么是“区块”(Block)?
想象你在写日记。每一页就是一个“区块”,上面记录:
- 日期(时间戳)
- 内容(交易数据)
- 上一页的页码(前一个区块的哈希值)
2. 什么是“哈希”(Hash)?
哈希就像给每一页日记生成一个独一无二的“指纹”。哪怕你只改了一个标点,指纹就完全变了。
Python 里用 hashlib 模块可以轻松生成哈希。
3. 什么是“链”(Chain)?
把所有日记页按顺序装订成册,就是“区块链”。每一页都指向前一页,篡改任何一页都会导致后面所有页的“指纹”对不上。
实战项目:用30行代码写一个区块链
打开 blockchain.py,我们一步步来。
第1步:导入必要模块
import hashlib
import time
第2步:定义区块类
class Block:
def __init__(self, index, timestamp, data, previous_hash):
self.index = index # 区块编号
self.timestamp = timestamp # 时间戳
self.data = data # 数据(比如“张三给李四转了10块钱”)
self.previous_hash = previous_hash # 上一个区块的哈希
self.hash = self.calculate_hash() # 当前区块的哈希
def calculate_hash(self):
# 把区块信息拼成字符串,然后生成哈希
block_string = f"{self.index}{self.timestamp}{self.data}{self.previous_hash}"
return hashlib.sha256(block_string.encode()).hexdigest()
第3步:定义区块链类
class Blockchain:
def __init__(self):
self.chain = [self.create_genesis_block()] # 创世区块(第一个区块)
def create_genesis_block(self):
# 第一个区块没有“前一个”,所以 previous_hash 设为空
return Block(0, time.time(), "创世区块", "0")
def get_latest_block(self):
return self.chain[-1]
def add_block(self, new_block_data):
latest_block = self.get_latest_block()
new_block = Block(
index=latest_block.index + 1,
timestamp=time.time(),
data=new_block_data,
previous_hash=latest_block.hash
)
self.chain.append(new_block)
第4步:运行并测试
在文件末尾加上:
if __name__ == "__main__":
my_chain = Blockchain()
my_chain.add_block("张三给李四转了10块钱")
my_chain.add_block("李四给王五转了5块钱")
for block in my_chain.chain:
print(f"区块 {block.index}: {block.data}")
print(f"哈希: {block.hash}\n")
第5步:运行程序
在终端进入项目文件夹,执行:
python blockchain.py
你会看到类似这样的输出:
区块 0: 创世区块
哈希: a1b2c3...
区块 1: 张三给李四转了10块钱
哈希: d4e5f6...
区块 2: 李四给王五转了5块钱
哈希: g7h8i9...
恭喜!你刚刚亲手实现了一个最简区块链。
常见问题:新手踩坑指南
Q1:为什么我的哈希每次运行都不一样?
因为 timestamp 是精确到毫秒的时间,每次运行都不同。这是正常的!区块链正是靠这种“不可预测性”保证安全。
Q2:这和真正的比特币区块链有什么区别?
我们的版本是“玩具级”的,真实区块链还有:
- 工作量证明(Proof of Work):防止恶意添加区块
- 分布式网络:多个节点共同维护
- 数字签名:验证交易合法性
但核心思想是一样的:链式结构 + 哈希校验 = 不可篡改。
Q3:我写的代码能用在工作中吗?
不能直接用,但理解原理后,你就能看懂新闻、技术文档,甚至参与讨论。技术分享的价值,不在于你写了多复杂的代码,而在于你是否真正理解了它。
从代码到人生:躺平不是放弃,而是清醒
写完这个小项目,我想分享几点思考:
1. 技术是工具,不是枷锁
很多公司用“技术栈”、“高并发”、“分布式”制造焦虑,让你觉得不加班就落后。但你看,区块链的核心思想,竟可以用30行代码讲清楚。真正的技术,应该让人更自由,而不是更疲惫。
2. “躺平”是选择权,不是懒惰
我选择不熬夜改需求,是因为我知道:可持续的产出,比透支健康换来的“高效”更长久。每天写100行高质量代码,胜过加班写出1000行bug。
3. 文科生也能玩转技术
当初我连“变量”是什么都不知道,但现在我能用代码表达思想。编程不是理科生的专利,而是现代人的一种表达方式,就像写作、绘画一样。
学习建议:下一步怎么走?
如果你对这个小项目感兴趣,可以尝试以下延伸:
| 方向 | 具体行动 | 推荐书籍 |
|---|---|---|
| 深入理解区块链 | 给区块添加“工作量证明”(挖矿)功能 | 《区块链基础知识25讲》 |
| 学习Web开发 | 用 Flask 把区块链做成网页版 | 《Python编程:从入门到实践》 |
| 思考技术伦理 | 阅读《技术的本质》《代码大全》 | 《技术的本质》《代码大全》 |
我当初就是靠《Python编程:从入门到实践》这本书入门的。它不讲高深理论,只教你怎么一步步做出东西。好的技术书籍,应该像朋友一样陪你成长,而不是用术语把你吓跑。
最后:你的代码人生,你做主
在这个鼓吹“奋斗”、“狼性”的行业里,我选择慢下来,写清晰的代码,读有深度的书,过有节奏的生活。
技术分享的意义,不是炫耀我会什么,而是告诉更多像我一样的普通人:你也可以做到。
也许有一天,当你写出自己的第一个区块链,或者第一个网站,你会突然明白:所谓“躺平”,不过是拒绝被异化,坚持用自己的方式,活出代码人生的本真。
现在,关掉这篇文章,打开你的 blockchain.py,亲手敲下那几行代码吧。
世界不会因为你少加一次班而崩塌,但你的生活,会因为多一次主动选择而不同。
附:完整代码速查表
| 功能 | 代码片段 |
|---|---|
| 生成哈希 | hashlib.sha256(data.encode()).hexdigest() |
| 获取当前时间 | time.time() |
| 创建区块 | Block(index, timestamp, data, previous_hash) |
| 添加区块 | chain.append(new_block) |
记住:你不需要成为最卷的人,只需要成为最清醒的自己。

评论 0