重生之程序员的逆袭之路

重生之程序员的逆袭之路

作者:康梓潼 分类:都市脑洞 更新时间:2026-07-09 20:23:22
经典热门小说《重生之程序员的逆袭之路》是大神级网文作者康梓潼的代表作,这本书主角是陈燃。陈燃抱着纸箱回到宿舍的时候,张伟正在打魔兽世界。准确地说,是在排队。2008年的魔兽世界服务器一如既往地烂,黄金时段排队动不动两小时起步。张伟盯着屏幕上“位置:2458”的数字发呆,听见门响,扭头看见...

陈燃抱着纸箱回到宿舍的时候,张伟正在打魔兽世界。

准确地说,是在排队。2008年的魔兽世界服务器一如既往地烂,黄金时段排队动不动两小时起步。张伟盯着屏幕上“位置:2458”的数字发呆,听见门响,扭头看见陈燃抱着一个纸箱,满头大汗。

“这什么东西?这么大一个箱子。”

“Mac mini。”陈燃把箱子放在桌上,开始拆胶带。

“麦……就是你说的那个苹果电脑?”

“对。”

张伟凑过来,看着陈燃从箱子里拿出那台银白色的小主机。在2008年,苹果产品的设计领先同行至少一个时代。这台Mac mini虽然是一年前的旧款,但那简洁的铝合金外壳、那颗会亮的白色电源灯、背面整齐排列的接口,放在任何一台PC旁边都像是来自未来的产品。

“,”张伟伸手摸了摸机身,“这玩意儿是金属的?”

“铝合金。”

“得不少钱吧?”

“三千二。”

张伟的嘴巴张成了O型。“三千二?你花三千二买了这么个小盒子?这玩意能啥?打游戏?”

“能让你赚钱。”陈燃把主机放到桌面上,接上电源线和网线,然后犯了难。

他没有显示器。

宿舍里只有一台显示器,是刘洋的——他用来接笔记本电脑打游戏。王浩倒是有一台,但他那台是CRT的,又大又笨重,而且接口不匹配。

“张伟,你显示器借我用用。”

“我的?”张伟指了指自己桌上那台17寸的AOC,“我那台是VGA接口的,你这Mac能用吗?”

陈燃看了一下Mac mini的接口——DVI和Mini-DVI。他没有转接头。

2008年,一个DVI转VGA的转接头要卖三十多块钱。他不是买不起,但跑一趟电脑城又要花半天时间。

“算了,”陈燃说,“我先用远程桌面。”

他从书包里掏出自己的联想笔记本——一台大一入学时家里给买的神舟电脑,塑料壳子,自重快三公斤,散热口在底部,放腿上能烫出水泡。他开机,下载了一个VNC客户端,用网线把Mac mini和笔记本连到同一个路由器上,然后通过远程桌面连接Mac。

屏幕亮了。

Mac OS X 10.5 Leopard的欢迎动画出现在笔记本的屏幕上。一只Finder的笑脸图标,一条进度条,下面写着“正在启动您的Mac”。

张伟凑过来看。“这系统长得挺好看的。”

“嗯。”

“比Windows XP好看。”

“嗯。”

“你就能不能说个别的字?”

陈燃没理他。进度条走完了,进入桌面——蓝色的星空壁纸,底部的Dock栏上排着一排图标:Finder、Safari、Mail、iTunes、垃圾桶。

他深吸了一口气。

上辈子,他的第一台Mac也是二手的。2010年,他刚毕业,工资三千五,省吃俭用三个月在京东方买了一台二手MacBook Air。那台机子的屏幕有压痕,键盘有几个键不灵,但那是他第一次拥有属于自己的Mac。

他记得那一天。他把MacBook Air抱回出租屋,从晚上八点一直折腾到凌晨三点——装Xcode、配环境、写第一行iOS代码。

那时候他不知道,那台破电脑会陪伴他走过创业最初的子,会在一次深夜加班时从桌上摔下来,屏幕碎了,但还能外接显示器用。它一直撑到公司A轮融资,陈燃才舍得换了一台新的。

现在,他捧着这台更旧、更慢、屏幕都没有的Mac mini,心里的感觉和上辈子一模一样。

——值了。

开机设置花了他快一个小时。系统是10.5.8,需要升级到10.5.8的最新补丁。Xcode 3.1.3的安装包有1.2个G,以2008年的网速,下载需要三个小时。

他点开了下载按钮,然后去食堂吃饭。

晚上八点,Xcode安装完成。

陈燃打开Xcode,看着那个经典的蓝色图标和初始界面,觉得亲切得有些陌生。Xcode 3.1的界面和后来的Xcode 4、Xcode 5完全不同——没有storyboard,没有自动布局,没有ARC。Interface Builder是独立的应用程序,和Xcode分开运行。

你要先写代码,然后在IB里拖控件,再通过Outlet把两者连接起来。

别说Swift了,连ARC都没有,内存管理全靠手动retain/release。

陈燃闭着眼睛都能写。

他新建了一个:基于View的应用程序,语言是Objective-C。在2008年,还没有Swift,没有SwiftUI,每一个界面都要手写或者用IB拖。

他开始写FlamePop的iOS版本。

代码框架他早就想好了——一个主视图控制器,管理游戏网格、得分、计时器;一个自定义UIView,负责绘制火焰和处理触摸事件;一个GameEngine类,封装消除逻辑、下落算法、连锁反应。

他把头一天晚上在笔记本上写的架构图展开,按图索骥,一行一行地翻译成代码。

敲键盘的声音在宿舍里响起来。

噼、噼、啪、啪、噼、噼、啪、啪。

不是打字,是弹奏。

陈燃的十个手指在键盘上飞,速度比宿舍里任何人都快。他不需要看键盘,不需要查文档,不需要考虑语法——Objective-C的语法在他脑子里像肌肉记忆,一个类怎么写,一个方法怎么定义,内存管理怎么写,他闭着眼睛都能写对。

张伟在旁边看了一会儿,终于忍不住说话。

“你打字速度怎么这么快?”

“练的。”

“练了多久?”

“十四年。”

张伟以为他在开玩笑。

写到快十点的时候,陈燃遇到了第一个问题。

Mac mini的硬盘速度太慢了。

编译一次需要将近一分钟,运行模拟器需要再等三十秒。这对习惯了SSD和M1芯片的陈燃来说,简直是一种折磨。

上辈子,他的开发机是16寸MacBook Pro,M1 Max芯片,64G内存,2T SSD,编译一个中型只需要五秒钟。

现在,他坐在一把吱吱响的木头椅子上,面对一台转速5400转的机械硬盘,等着一行一行地编译。

但这也不全是坏事。

慢有慢的好处。编译跑不起来的时候,他会想得更仔细,写得更谨慎,尽量减少试错。

这让他想起上辈子刚入行时带他的老工程师说过的话:“代码不是跑出来的,是想出来的。跑得越快,想得越慢。”

那时候他不信。现在他信了。

写到凌晨一点,FlamePop的核心界面搭好了。

一个主游戏网格,4x4,每个格子是一个UIButton。这是最简单粗暴的做法,性能不好,但够快。上辈子他做第一款游戏时也是这样的,后来用户量大了才优化成了自定义绘制。

现在不用着急。先把产品做出来,再考虑优化。

陈燃把笔记本合上,揉了揉酸痛的眼睛。Xcode还在编译,进度条走到一半就不动了。他看了一下系统活动监视器——内存占用已经满了,CPU风扇在狂转,整台Mac mini烫得能煎鸡蛋。

这配置,放在2022年,连浏览器都开不动。

但在2008年,它就是他的超级计算机。

他站起来,伸了个懒腰。宿舍里的灯已经灭了,只有他的屏幕亮着,白色的光映在屋顶上。张伟已经睡了,刘洋和王浩也睡了,鼾声此起彼伏,像一首没有节奏的交响乐。

他爬上床,躺下,闭上眼睛。

脑子里的代码还在跑。一个视图控制器的生命周期,viewDidLoad、viewWillAppear、dealloc。内存管理要小心,谁alloc谁release,不要造成循环引用。触摸事件怎么处理,touchesBegan和touchesMoved的配合。

迷迷糊糊快要睡着的时候,手机震了。

他伸手摸过来,屏幕的白光照得他眯起眼睛。

是苏晚发来的短信。

「你今天怎么没来上大课?老师点名了。」

陈燃愣了一下。大课。马克思主义基本原理。

他完全忘了。

不是因为重生后记忆力减退,而是因为他脑子里装的App Store、Mac mini、FlamePop太多了,本装不下马克思。

他回复:「有事。老师说了什么?」

「说你旷课一次,扣平时分。你最好找老师解释一下。」

陈燃想了想。上辈子他从来不会旷课。他是不敢,他是太老实,他以为考勤分关系到绩点,绩点关系到奖学金,奖学金关系到简历,简历关系到前途。

现在他知道,这些都不重要。

但他还是回了:「知道了。谢谢。」

「没事。」苏晚的回复很快,「你的ACM选拔赛报名了吗?」

「报了。」

「那就好。晚安。」

「晚安。」

陈燃把手机放在枕头边,看着屋顶上那些被屏幕光照亮的裂缝。

苏晚在提醒他上课。

苏晚在督促他报名。

苏晚在关心他。

上辈子,这些事情也发生过。但那个陈燃没有注意到,或者说,他注意到了但没有勇气回应。

他觉得苏晚是天上的月亮,他是地上的泥巴。

现在他知道,月亮和泥巴之间,差的不是距离,是勇气。

他翻了个身,闭上眼睛。

这一夜,他做了一个梦。梦见自己站在纳斯达克的敲钟台上,手里拿着锤子,锤子下面是一个金色的按钮。他用力敲下去,钟声响起来,礼堂里所有人都站起来鼓掌。

他看见了张伟,穿着西装,笑得很开心。

他看见了林默,还是那副沉默寡言的样子,但眼角有泪光。

他看见了苏晚,穿着一条白色连衣裙,站在第一排,笑着看他。

然后他醒了。

屏幕还亮着,编译早就完成了,Xcode停留在“Build Succeeded”的界面。

外面天已经快亮了,鸟在叫,食堂的烟囱冒着白烟。

新的一天开始了。

周五傍晚,陈燃终于把FlamePop的第一个可玩版本跑起来了。

不是模拟器,是真实设备——他借了张伟的iPod touch。

2008年的iPod touch是第二代,3.5寸屏幕,320x480分辨率,200万像素摄像头,没有GPS,没有陀螺仪,只有重力感应器。

但在2008年,这就是神机。

陈燃把游戏装进iPod touch的那一刻,手都在抖。

图标出现在屏幕上——他用Photoshop随手画的一个火焰图标,红黄渐变,中间一个白色的“F”字。图标的像素边缘有点锯齿,颜色饱和度太高,放在2022年会被设计师喷成筛子。

但那是他花了两个小时做出来的。

双击。

加载。

网格出现了。

四个颜色,十六个格子,动画流畅得不像是在2008年的设备上运行的。他用手指拖动一个红色火焰和旁边的黄色火焰交换,三个红色火焰连成一线,消除——嘭——一个小型的动画效果在屏幕上炸开,得分加了一百分。

张伟凑过来,眼睛都直了。

“这个动画效果怎么做的?”

“Core Animation。”

“什么山?”

“苹果的动画框架。”

“你是说,苹果公司专门做了一个做动画的东西,让你们开发者用?”

“对。”

“免费?”

“对。”

张伟沉默了。他在魔兽世界里为了买一个飞行坐骑,攒了两个月的金币。现在有人告诉他,苹果公司免费提供了一套做动画的工具,让开发者做出这种效果,然后拿去卖钱。

“这东西……”张伟指着屏幕上的火焰,“我有点明白你为什么要借钱了。”

陈燃把iPod touch递给他。“你玩一局。”

张伟接过去,手指在屏幕上划来划去,三消、四消、五消,连击、加时、火焰风暴。他玩了一局又一局,每一局结束都会说“再来一局”。

六局之后,他抬头看陈燃。

“这游戏要是卖0.99美元,我会买。”

“真的?”

“真的。”张伟说,“比我玩过的所有手机游戏都好玩。不,比我玩过的所有小游戏都好玩的。”

陈燃笑了。

不是因为张伟的肯定。是因为他知道,张伟说的是实话。

但还有一句话他没有说出来:

——这还不是最好的版本。

等他把图形优化、加入音效、加入关卡、加网排行榜,那才是真正的FlamePop。

现在这个版本,只是婴儿的第一步。

那天晚上,陈燃把那台Mac mini放在桌上,拍了张照片。

照片是模糊的,光线不好,构图也不专业。但他在照片下面写了一行字:

「我的第一台Mac。陪我打下江山。」

他把照片存在了一个叫“逆袭之路”的文件夹里。

然后关机,睡觉。

明天的任务更重:bug修复、性能优化、图标重绘、应用截图、关键词分析、描述文案。

App Store不会自己上架。

钱不会自己飞进口袋。

他能做的,就是一行一行地写代码,一个bug一个bug地修,一步一个脚印地走下去。

就像他上辈子做的那样。

但这一次,他不会在中途倒下。

全部章节

共 重生之程序员的逆袭之路 章节列表

猜你喜欢