写点什么

一个普通 IT 人的 20 年奋斗:从小白到编程教育布道者

作者:编程启航栈
  • 2025-07-31
    广西
  • 本文字数:3532 字

    阅读完需:约 12 分钟

最先发表于公众号:一个普通IT人的20年奋斗:从小白到编程教育布道者

1.缘起

2003 年,金旭亮老师写了篇《一个普通 IT 人的十年奋斗》,在网上流传颇广,他的坎坷和自强不息的经历引发了万千读者的共鸣。而彼时我还是一个懵懵懂懂的学生,读到他的文章应该是两年后,也就是我开始走上编程之路的那一年。我当年还在网上打趣道:十年后我要看看金老师的二十年奋斗史。二十年过去了,酒我早已准备好,但一直没看到金老师故事的续集,好酒不可辜负,所以我决定对自己二十年的漫长经历进行一番忆苦思甜。

2.求学记忆

曾经有人跟我说,他们想回到小时候或者某个其它的时期,因为无忧无虑,就像朴树歌里唱的:“不忧愁的脸,是我的少年”,而我不一样,我永远都不想回到童年或中学时期,因为我的记忆里有很多的贫穷和饥饿。虽然我小学成绩一直是乡里第一名,然后考上县重点中学,接着考上地区重点高中,并进入高中重点班,最后考上重点大学,这些在我们村里是前所未有,但我还是不想再经历一次,那些小小的荣耀不足以驱散贫穷和饥饿的阴霾。

大学毕业初期还在住的房子


上大学之前,平时我在学校上学,寒暑假就在家里干农活。因为村里没通电,点煤油灯为了省油,每天晚上都是早早睡觉,所以整个假期基本都是:起来干农活->睡觉->起来干农活......。也就是上大学前,我基本没看过什么电视,电脑更不用说了,所以每当有同学提到他们小时候看过的各种电视剧时,我只有沉默或附以哦哦表示在倾听。


高考填志愿的时候,我没有询问任何人,也没有途径去了解各种专业的不同,完全是凭感觉。第一志愿我报的是计算机,第二志愿报的是应用数学,因为我隐隐约约觉得计算机应该比较有前景,以后能赚钱。

然后,我被第一志愿填报的院校录取了,而谁又能想到,等待我的却是长时间的痛苦和折磨。


大学第一学期我们上了计算机基础课程和 C 语言课程,我完全不知道在学什么东西,那些东西我没碰过,所以在我脑子里是极其抽象的存在,我只能靠死记硬背来应付考试。当然考得也很差,这也让我从刚进大学时“争取保研”的目标降级为“及格万岁”。大学第一个学期之后,我再没买过学校的课本了,去上课都是带着一本文学著作去看,临近考试一个月时再去图书馆借一本相似的教材来突击以实现我考试及格的目标。期末考试我经常第一个交卷,因为我知道我能及格了,就没必要检查,多一分我也不想要,只是为了保险一点我得争取多答对一些题目。


还记得大二时候我选修了一门 3DMax 课程,但很快我就学不下去了。有一次老师在我们做练习之后,说要把作品保存到电脑上。我既无法完成练习,而且也不会保存。我问老师怎么保存文件,老师说你的电脑基础太差了,根本不适合学这门课。后面我就再也没去上那个课了,还好我通过选修其它课程来补够了学分。


可能有人会说了,你怎么不知道去学校机房里恶补计算机知识呢?我不是没有想过,只是学校机房收费对我来说也不便宜的。我当时在北京一年三千块钱的生活费,处处都得省着,看到舍友吃方便面都会嘴馋,但还是忍着。所以,计算机基础、经济方面的差距让我有很大的心理落差,平时我在宿舍基本上也不说什么话。

转机出现在大三。因为得到高中校友会的一些支持,我买了一台电脑,512MB 内存的,但在当时我觉得已经挺好用。我开始自学 C++了,并且一发不可收拾。通过上网,我了解到更多的信息,拓宽了视野,知道哪些东西是重要的,哪些没那么重要,也了解到业界有哪些比较厉害的人,看看他们的事迹。如果没有那台电脑,我会一直处于闭塞的状态,两耳不闻窗外事,现在想想都有点后怕。


没想到,有了属于自己的电脑之后,我开始在专业课上有点如鱼得水了,但因为大一大二成绩不好,保研念头早断了的我对自己的要求仍然是及格万岁。虽然对考试成绩不在乎,但对于自己有没有学到东西还是比较在乎的,而且我通过自学真的学到东西后,也让我能更轻松地应对专业课的考试。考试前舍友们都在宿舍里突击复习,我还在电脑上编程序,有次一位舍友忍不住问我:“你真的不怕考不过吗?一点都不用看啊”,其实我也突击看过了,而且因为我有编程实践,有些东西我理解得比较好,我不担心考试过不了,所以考试前两天我就放松不复习了。大一的 C 语言让我很痛苦,是因为我根本没碰过那些东西,完全不懂是什么概念,而大三的 C++课程,我有点如鱼得水了,考试半个小时就交卷照样拿到比较高的分数。


毕业的时候,我已经有了两年的自学编程经验,当初那些看到我在宿舍里练字打字时投来异样目光(人家可能小学就练过了)的同学,对我有点刮目相看了。虽然他们可能小时候接触了电脑,但更多的是玩游戏,就算读了计算机专业,到大学毕业也没有真正自己写过几行代码,而我的编程能力,已经比一部分在外面做软件开发一年左右的职场人士要好一些,这是我在大四下学期去公司实习的时候就知道的。

就这样,毕业时我比较顺利地找到了一份软件开发的工作。

3.职场沉浮

初入职场,我没有任何规划,而且很诧异怎么会有职业规划咨询师这种角色,估计我潜意识里认为很多东西根本是没办法规划的。我比较唯技术论,认为技术好才是好,对管理非常的不屑,认为那是谁都可以做的事情。不过现在看来,当时我看到的那些技术管理和我今天认为的技术管理确实有一定的差别,有些技术管理者不过是一个监工罢了。


也因为这样的想法,让我在技术上更愿意往底层钻研,比如学习操作系统内核、编译器、调试器、编程语言的实现等,这些东西普通开发人员在日常工作中基本上用不到,起码没有直接用到,但我不希望自己对很多东西的理解浮于表面。从客户端应用到服务器端应用开发、从 Window 内核到 Linux 内核原理,我都要去深究一番。


当我从很熟悉的 Windows 开发转向 Linux 和云计算的时候,也经历了一段比较痛苦的摸索过程。要在技术转型期还能拿到比之前还丰厚的待遇,这个转型期必须很短,否则没有人愿意提供给你一个转型的机会,一般来说如果你熟悉哪一方面,招聘方就希望把你招进去做那方面的事情。我现在想想还是蛮庆幸自己当年能在薪酬增加的同时进行了技术转型,而多年后我有个同学想转型却一直没有机会,直到我把他招到自己的团队里然后给了他一个转型的机会。


类似于大学时期的计算机学习,职场上技术转型的镇痛之后,我又有点如鱼得水了,因为各种开源云计算项目我都折腾了一篇,对计算、网络、存储都有了比较深入的理解。转型三年后,我觉得我大概是公司里对云计算理解最深入的人,视野也被极大地打开,经常有同事来问我问题或者问哪里有相关的学习资料之类的。还记得邻桌一位同事摸鱼时不知道看什么书好,我推荐他看了吴军的《浪潮之巅》电子版,他读着觉得很过瘾,一天下来看完后满意地收拾东西下班了。


不过一晃我已经工作八年了,我的某些想法也开始有些变化。我渐渐觉得,一个人单打独斗能做的事情太有限,而且经济上回报的上限不太高,毕竟大部分人不是求伯君之类的能单枪匹马搞出 WPS 的人。于是,我开始寻找带技术团队的机会。


接下来的八年,我无论在哪个公司就职,基本都是带领技术团队,并让自己成为公司技术决策者的角色。这个时期,我主要的做法是根据公司下达的技术任务,带领团队相对高效地去完成任务就好了。高效这个词说起来容易,要做到挺不容易,必须要有比较好的配套的研发流程、组织架构、工具支撑以及研发文化。这个阶段,我经历的职位有:系统架构师、技术经理、技术总监


再接下来,我想着的不仅仅是带领团队完成公司下达的技术任务而已了,而是要站在公司的战略高度去进行技术战略的设计,思考如何通过技术来驱动业务增长,同时要有让技术战略落地的战术。对合作伙伴进行技术宣讲和布道,让公司在对外合作中具有更大的影响力和话语权。这个阶段,我的职位是:技术副总裁/CTO。

4.编程教育者

现在,我作为一位编程教育者,为广大的编程初学者提供编程教育咨询和答疑服务,希望他们的编程之路不至于像我那样曲折。有人说我在技术岗位上已经做到了一定高度,应该继续这样的道路才能创造更大的价值,可是给青少儿以良好的启迪,让更多人能在编程学习之路初启时不那么迷茫和痛苦,难道不也有很大的价值吗?编程的普及程度越来越高,这是不可逆转的趋势,我希望自己摸索出来的经验可以一部分被复制,另一部分给初学者以启迪,免得重蹈我的覆辙。


而且,给青少儿进行编程教育,即便像我这样有 20 年研发经验的职场人士,也不是大材小用。教学是一个厚积薄发的工作,可能我只能把自己 20%的知识和技能传授给他们,但其它 80%的知识和技能让我有更好的全局视野和审视自己教学工作的能力,从而能把那 20%进行更高效和高质量地传授。


女儿快两岁了,今天去图书馆玩,她自己从书架上抽出一本书,碰巧是和编程相关的,难道预示着小家伙以后也会从事和老父亲相似的行业?哈哈,纯粹是开玩笑了,如果她真的有兴趣,我倒是支持的,而且我相信站在老父亲的肩膀上启航,她一定可以飞得更高更远。

发布于: 2025-07-31阅读数: 4
用户头像

AI时代的云编程,让编程学习无处不在。 2017-11-26 加入

还未添加个人简介

评论

发布
暂无评论
一个普通IT人的20年奋斗:从小白到编程教育布道者_技术人成长_编程启航栈_InfoQ写作社区