加班内卷的IT行业,我选择躺平:一个文科生的代码人生

闪电鸟
2026-01-21 10:33
阅读 755

三年前,我还是一个每天在图书馆里啃《西方哲学史》的中文系学生。如今,我坐在电脑前敲代码,却不再为凌晨三点的加班焦虑。不是因为我成了技术大牛,而是我终于明白:技术不是用来卷死别人的工具,而是帮自己过上想要生活的手段

今天这篇教程,不教你如何“高效加班”,也不鼓吹“35岁危机”。我想用最朴素的语言,带你亲手写几行代码,理解一个听起来很酷但其实很简单的技术——区块链。更重要的是,通过这个过程,我们一起思考:在人人都在奔跑的IT行业,普通人是否可以“有选择地躺平”?


为什么是区块链?它和“躺平”有什么关系?

很多人一听“区块链”,就想到比特币、炒币、一夜暴富。但其实,区块链最核心的价值,是“去中心化”和“信任无需中介”

什么意思?举个例子:

  • 传统转账:你给朋友转100块,要通过银行(中心机构)验证。
  • 区块链转账:你和朋友直接交易,系统自动记录,全网共同验证,不需要银行。

这种“不依赖权威、人人可验证”的思想,恰恰呼应了我对“躺平”的理解:我不需要靠拼命加班来证明自己的价值,我的代码、我的作品、我的思考,本身就值得被看见

所以,今天我们不谈金融,不谈投资,只用Python写一个最简化的区块链原型,亲手感受它的逻辑。


环境准备:零基础也能搭起来

别担心!你不需要买服务器、不用装复杂的软件。只要你的电脑能上网,就能开始。

第一步:安装 Python

第二步:验证安装

打开终端(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

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝