图灵社区是一个好地方,很多牛人在上面分享心得,俺不是高手,但是也扔块砖头。

本文所说的所有内容限于技术类工作,是写给真正希望做技术的人。我个人并不认同很多人说的打算“干几年技术转管理”这种说法。我觉得如果是大学毕业生,你要这么想,其实根本就不喜欢做技术,与其绕弯子不如找更直接的发展路径。写代码本身就很辛苦,如果没有内源性的驱动力,根本没法坚持到你能做的很牛逼并成功转到“管理”的位子。

其实做任何职业,都是相通的,根据我个人的一点理解,任何人要从事一个技术类职业,需要有三个方面的知识或者能力:

1:理论基础

理论基础非常重要,它实际上很大程度上决定了一个人最终能能飞多高。

比如要做和视觉相关的职业,无论是画家、美工还是摄影师,必须要一些理论作基础,比如平面构成、色彩构成等等。这个思路可以套用到各种行业。

比如要就当机械工程师,就得把力学和机械原理学明白。我认识一个汽车系毕业,已经转行很多年的哥们,有一次在随便聊天的时候,我说起不理解四轮驱动的汽车,前后轮之间怎么实现不打架的,这个哥们儿顺手找了一张纸,一边画图,一边讲,最后画出了若干我看起来很复杂的图,不同方向的齿轮互相套在一起,给我从头到尾讲了一遍,让我肃然起敬。我相信这哥们上学肯定学得很不错,而且无论干什么,应该都能干得不错。

就好像如果你是计算机专业的,如果能清清楚楚地讲清楚把CPU是如何从内存取指令并执行的机制比划清楚,其实足以胜任大多软件开发工作了。我相信在计算机专业的人里面比例也不太多。而如果你能再进一步,把编译器的原理说得清清楚楚,就更是高级人才了,甚至有可能当大师了。再如果你的数学又学得很好,就可以当科学家了。就我自己来说,我觉得编译原理这门课是我智力的上限了。

这些基础理论的认知是非常稳定的,不会快速变化,通常大学甚至中学阶段基本上就定了。所以上学还是很重要的,常听人说“重能力不重学历”,我觉得应该是 “重学历更重能力”。

2:工具知识和经验

有了基础理论,除非你专业做研究,否则必须要借助于一些工具,才能真正做产品。软件开发的领域非常广泛,工具种类繁多,任何人也不可能什么都掌握,但是掌握工具总体来说要比掌握理论容易得多。无论是掌握一门或几门编程语言、框架或者具体的开发环境,都不是什么难的事儿,如果对这个都觉得困难,就不适合干这行了,至少这些比学编译原理容易多了。

但是这里面有一个比较严重的问题,就是变化太快,人们常说程序员吃青春饭,其实变化快的就是这些工具,几年就一个新潮流。这确实是一个问题,如果一个人总是把时间花在学各种各样的工具上,确实是一件很辛苦,也没有前途的事儿。

但是这里有两个因素可以考虑:

  • 变化快的往往是和界面相关的东西,背后的逻辑其实很稳定。
  • 即使是界面,本质也没变,变化的是形式。20年前用DOS自己画界面,10年前用MFC/Delphi拖控件,现在用HTML/CSS描述界面,本质其实都没变,还是那些东西——菜单、按钮、数据表格、单选框、多选框之类的。

因此,对于相对不稳定的工具知识,可能需要注意两点:

  • 寻找其中稳定的、本质的东西,给自己选好技术路线,总体原则是跟上但不冒进,新技术总是有一些好处,才会成为被广泛接受的新技术,所以要有选择地跟上。对于一些主流的技术路线,其实演变并不那么快,如果每一步都跟上,并不困难,尽量别缺课,缺了课再补课,就费劲得多。另一方面,尽量寻找大众化的、普遍接受的技术,要相信技术是为产品服务的,不要为了技术而技术。

  • 避免迷失在这些东西里面,特别是不要跟风。千万不要看什么热门就赶紧上,新技术在刚刚开始的时候,会的人少,工资自然高,但是你要知道的是,这种门槛并不高,洼地很快就会被填平。如果你总在追这些东西,根本无法积累什么长久的东西,会累死。总有一天你的脑力、体力跟不上。

我个人觉得应该怎么做呢?就是要充分重视第三个方面的积累——领域知识。

3:领域知识

开发任何软件,总是要给某个特定人群使用,解决特定的某个领域问题的。因此必须要对这个领域的知识有所了解。而对于某个领域的知识,其实是非常稳定的。有人说,一个开发了5年财务软件的人,可以到任何一个公司去做CFO。这句话有点道理,财务规则和制度是非常稳定的,几十年也不会有大变化,而要开发财务软件,就必须要对这些规则制度非常了解,如果你能充分了解其中的背景知识,可以稳稳当当用几十年。避免掉所谓“变化太快”的问题。

因此,为职业生涯考虑,一定要从掌握基础理论、掌握工具知识,到最后的掌握领域知识。领域知识是可以积累的,这是最关键的。新工具出来,所有人在同一条起跑线上,谁也没有什么特别的优势,年轻人的年轻就是优势。而很多人大学毕业做技术的一个理念是“干几年技术转管理”,我个人觉得如果你一开始就不喜欢做技术,别给自己找罪受,绕弯子。另外即使你要去管理,从“领域知识”上入手恐怕也是最现实的途径。因为这是和客户最贴近的,显然谁和客户离的近,谁掌握最大的主动权,谁就挣得多,这是必然的。

总之,重视基础和本质的东西,这些是安身立命的根本。不要好高骛远,也不要枉自菲薄。既要低头拉车,也要抬头看路。或者换个说,既要仰望星空,也要脚踏实地,哈哈。