兰 亭 墨 苑
期货 · 量化 · AI · 终身学习
首页
归档
编辑文章
标题 *
URL 别名 *
内容 *
(支持 Markdown 格式)
# 非科班程序员的二十年自学编年史:从记事本抄代码到 AI 时代的冷思考 > **摘要**:高考差 15 分错过计算机系,从记事本抄 Delphi 代码起步,到玩单片机顿悟指针,再到魔改 Node.js 底层实现协程。一位完全自学出身的程序员,用二十年时间绘制的“避坑地图”,以及对 AI 时代程序员价值的冷峻思考。 --- ## 一、 缘起:差 15 分的计算机梦 我高考差了 15 分,没能进计算机系。 那个年代,互联网刚刚起步,学习资料匮乏,开源项目更是闻所未闻。但我心里的那团火没灭。从大学算起,我花了五六年时间,才真正算是“入门”了编程。 这是一条完全靠自己摸索出来的野路子。回头看,全是弯路,但也全是风景。 ## 二、 迷途:在 IDE 和记事本里“假装编程” 自学最怕的不是笨,而是**不知道自己在哪**。 **1. 记事本里的 Delphi** 最开始看书,照着书抄代码。那时候连“编译环境”是什么都不知道,我在机房用记事本一行行敲 Delphi 代码。老师凑过来看了一眼,说了一句让我记到现在的话:“你在记事本里输入,编译不了。” 那是我第一次意识到,**代码不仅是文本,它需要工具链的支撑。** **2. VC 里的“拖拉拽”幻觉** 后来跟着学长学 C++,大家都在用 VC 集成环境。我也跟风,在 VC 里拖拉控件做计算器。那时候根本分不清"VC 环境”和"C++ 语言”的区别,更别提 Makefile 了。 我在控件堆里玩得很嗨,但一旦离开那个环境,我就什么都不会。 **结论:在集成环境里打转,学不会编程。** ## 三、 破壁:两个“开窍时刻” 真正的转折,发生在我不再“看书”,而是开始“玩”的时候。 ### 1. 网页版传奇与 JS 启蒙 工作后流行 JavaScript,我业余时间模仿网页特效,甚至用 JS 写了个网页版的传奇 Demo 放在新浪上。 现在看那些代码很丑陋,但很多编程概念(循环、事件、状态)就是在那个时候,一边玩一边建立起来的。 **JS 让我明白了什么是正反馈:代码写下去,立马就能看到东西在动。** ### 2. 单片机与指针的“物理映射” 我真正入门 C 语言,是买了一块单片机回来玩。 当你在代码里写下 `*p = 0x01`,然后看到板子上的 LED 灯真的亮了时,**指针就不再是课本上那个抽象的星号,而是你指挥物理世界的手。** 学了 C 语言,就像打开了一扇门。理解了内存和指针,再学其他语言都很容易。 ### 3. 魔改 Node.js:造轮子的快感 Node.js 火的时候,为了搞懂原理,我深入阅读了关键代码。那时候还没有 Promise 和 async/await,全是回调地狱。 为了弄明白异步原理,我用 Node.js 的 `libuv` 库绑定 Lua,实现了一个基于有栈协程的伪同步模型(思想类似后来的 Golang)。 虽然因为能力有限,项目最后只停留在验证原理阶段,现在还躺在 GitHub 上吃灰。但**只有造过轮子的人,才知道坐车的人为什么不会翻车。** ## 四、 转身:32 岁入行,回归务实 凭着手头这些硬核项目,我在 32 岁那年找到了一份编程工作。那家公司正好用 Lua 和 C 做网络,我的能力在小组里算是拔尖的。 我对自己的自学成果很满意。 但干了两年,频繁加班让身体吃不消,我辞职回老家,干回了本行。 现在的我,不再像年轻时那样热衷于死磕底层原理,而是变得更加**务实**。 我主要用 Golang 写后端,TypeScript (Vue) 写前端。虽然代码编写效率不如年轻人,很多新东西也要现学现卖,但**保留一份爱好,用代码解决行业里的具体问题,做点小工具,还是挺有意思的。** ## 五、 给后来者的“避坑地图” 总结我这十几年的自学路,核心就两个字:**实践**。 编程是一门实践性极强的技术,看书看不出来,在 IDE 里拖控件也拖不出来。基于我走过的弯路,给现在的自学者几条建议: 1. **别一上来就啃 C++**:除非有人带,否则一开始就在复杂的语法和 IDE 配置里打转,很容易放弃。 2. **先找正反馈**:从 JavaScript、Python、PHP 或 Lua 入门。结合一些算法和 OS 基础,先做出能看、能用的东西。**人是短视的,需要立即看到成果才能坚持。** 3. **再补底层**:有了兴趣和正反馈,再去学 C 语言、操作系统、编译原理,就不会觉得那么枯燥。 4. **多读 GitHub 代码**:有了方向,就去 GitHub 找相关的高星项目,阅读、模仿。看看别人是怎么组织文件、怎么命名的。 ## 六、 AI 时代的冷思考:程序员会被替代吗? 去年 AI 编程刚出来时,很多人鼓吹程序员要失业了。 但我看得很冷静。 **1. 程序员的本质是“解决复杂性”** 很多老板说程序员可替代性强,那是外行话。他们只看到了代码产出,没看到过程中的艰辛。 编程工作的本质是**管理复杂性**。在模糊、矛盾的需求中,梳理出一个能跑、可扩展的逻辑结构,这才是核心能力。 **2. AI 目前只是“高级搜索”与“辅助”** AI 确实能写代码,但它主要起辅助作用。 很多强行用 AI 生成的代码,一旦项目规模扩大,就会变得**不可维护**。AI 暂时还没有**架构能力**,它只能模仿人类已有的代码模式。 而人类程序员的价值在于:**通过架构设计和重构,减缓代码腐败的速度。** 这一点,AI 还做不到。 **3. 向行业渗透** 互联网的风口结束了,但编程技能向传统行业渗透才刚刚开始。 把编程和你的本行结合起来,做一个懂业务的开发者,这才是未来的护城河。 --- 自学编程本来就很难,但困难是可以攻克的。 多动手,多实践,别怕写出丑陋的代码。 **只要你还在写,你就已经在路上了。** *雨轩于听雨轩* 🌧️🏠
配图 (可多选)
选择新图片文件或拖拽到此处
标签
更新文章
删除文章