随笔:编程的路

Catalogue

昨天在一个微信群里,看到有人发了张海报,是个网络课程的报名宣传。内容还挺丰富,包括:ES6 原理和实践;九种跨域方法全揭秘;手写 React 中的 dom-diff 算法实现;Vue 中 MVVM 原理手写实现;手写实现一个简易 Webpack……看起来也很有深度。不过,图片右上角有个醒目的口号,让人感觉怪怪的:“想进阿里,找珠峰”。

浓郁的商业气息。很多人学编程的目标,可能就是进入 BAT 这样的大公司,得到一份待遇不错的工作。这倒无可厚非。我自己又何尝不是为了混口饭吃,找个大厂安身立命呢。

但是我相信,有一小部分人(包括我自己),对编程的热爱不是以进哪个公司来衡量的。无论是追寻工程上的精益求精,还是探索智能领域的种种未知,编程本身就足以让人痴迷。

在这个世界上也有一些人,即便不去培养,他们也拥有想要编程的欲望,这样的人虽然只是小众,但他们会通过互联网获取丰富的知识,并不断攀登编程领域的高峰。编程的领地不会像计算机的普及那样飞速地扩展,但水平最高的人,水平却往往变得越来越高。
——《代码的未来》,[日]松本行弘

这条路可能有些辛苦,不光是说工作时间里的辛苦,还有业余时间里也要持续学习(尤其是学习新东西)。很多的周末,我们可能都得背上笔记本电脑,找个咖啡馆,或者去图书馆,看看最新的代码,找找新颖的技术帖子,或者读读IT类的经典。总之就是让自己不要太松懈。像极了大学的时光。软件开发行业的这种辛苦有许多原因,说两个经典的。

一方面,当你的水平高于大部分人时,可能就无法再奢望有大牛能带你了。你要自己去突破自己的瓶颈,不断超越自己,去做那个大牛或者大神。OMG,这跟奥运精神太像了——更高,更快,更强。

另外就是软件开发行业本身的特征所导致。

与其他行业相比,软件开发行业的经验比书本知识价值要小,这有几个原因:在其他许多行业里,基础知识变化得很慢。即便晚你10年毕业的人,他所学的基础知识还和你那时学得一模一样;而软件开发,即使基础知识也变化很快,晚于你10年毕业的人所学的有效编程技术,其数量有可能是你的两倍。一些老程序员往往被看做另类,不仅是因为从未接触某些专项技术,还因为他们没有用过从学校毕业之后出门的基本编程概念。
——《代码大全(第二版)》

国内外可能有些差异,也许国外的工程师文化好一些,而国内有些程序员会在中途选择转做管理岗,或者转而从事其他诸如产品、运营的岗位。对于那些依然想继续编程的同学,需要有这样的危机意识,要始终保持一颗好奇心。扪心自问:如果你工作10年,你会得到10年经验还是1年经验的十次重复?

就像 Norvig(谷歌的研发总监)说的,Teach Yourself Programming in Ten Years。耐心点,Keep going, keep learning.

Share