有备者无患,徐徐以图之

我的第一份工作开始于 2008 年,作为 .NET 开发工程师加入了一家外企。当时主要使用 C# 做为后台语言,Javascript 写一些前端逻辑,JQuery 那时处于绝对的统治者地位,面试的时候还很流行问 Gang of Four 的设计者模式。一晃近十年过去,现在回想起来,刚参加工作的新鲜感还犹在昨日,但一些技术名词却显得久远而有年代感了。

大概在 09 年左右,我印象十分深刻,那时候的程序员也经常会把行业趋势,技术前景挂在嘴边,对新潮的技术趋之若鹜。作为 Web 开发人员,大家都在谈 Web 2.0,就和两年前谈大数据,今年聊 Machine Learning,AR 一样热门,我当时也因用 ajax 做了几个简单的后台刷新功能而暗自得意。可今年你要问刚入行的程序员什么是 Web 2.0,怕是会被当做老古董了。

我是在 2010 年左右转做的 iOS 开发,怎么转的也是机缘巧合,我因为在私底下折腾过一些 Symbian,碰巧公司有个 iOS 老项目需要维护,我又对那台刚上市不久的 iPhone 4 测试机眼馋不已,就自告奋勇的接手了。现在想来,当时突来的一念让自己走向了一条完全不同的职业道路,如果当时没有发出那封自荐邮件,我现在应该是一名拥有 9 年 .NET 开发经验的工程师了,一定会错过这波移动开发的热潮。

程序员这一行,十年里的变化用物换星移来形容也不为过。用十年前的技术储备想在新环境里找一份工作是绝无可能的。

技术更新快是这一行的特点,需要一直学习,接纳新技术以期不会错过下一波浪潮,但要预测技术走向从来不是件容易的事,站在十年前的时间点,很难预想今天移动开发和前端开发的盛况,那些看起来头头是道的分析文章只不过是事后诸葛亮。从来就没有先知,只有少数人是先驱,拓荒者,探索者,行动派,剩下的大多数随潮流而动。

一般而言,在先驱完成拓荒之后,可以明显感受周围技术气氛的变化,一些新的技术术语成为高频词汇,新的应用场景被不断的提出,甚至有可以直接运行的 demo 出现。在这个时间点,就只剩下行动派和固守成见者。人与生俱来的惰性很容易让我们待在舒适区,下意识的忽视周遭正在悄然发生的变化,而主动做出改变则需要极强的自我驱动力和执行力。

技术一直在推陈出新,比如每年 iOS 系统更新,更多的 API 被公布,新的语言 Swift 被更广泛的应用等,这是常态。但最近两年气氛有些不同,新的技术领域层出不穷,像 Machine Learning,Augmented Reality 这类前沿技术都在逐步进入公众视野,我隐隐约约感觉,我们很可能已经处于这样一个特殊的时间窗口,需要以归零的心态重新开始,不是新学一个 framework,也不是新掌握一门编程语言,而是进入一个崭新的技术域,从理论到实践,从底层到应用,大家都回归到同一起跑线,过往的经验起不了多大的作用,而对新事物的接纳度,学习能力,自律自控能力,执行力会成为筛选优劣的度量。

未来变化之大,对时间与精力的投入之巨,可能远不是从 Web 到 iOS 这么简单,对新技术的学习更非一朝一夕之功,调整好心态,选好一个方向,准备好一场长跑,三五年之后,当未来已然来临之时,方能有备无患,坦然应对。

子曰「君子不器」,程序员不能自我设限。


Hosted by Coding Pages