这个世界变化快,是我们的共识。
纵观这几年,我们能说出许多耳熟能详的新鲜事件:百团大战,快滴大战,区块链,人工智能,炒房,大数据,互联网寒冬等等,这些事情,仿佛就发生在昨天,轰轰烈烈,以我们眼花缭乱的速度变化着。
前两年还遍地都是小黄车,现在不仅看不到小黄车,连摩拜单车都快看不到了。前两年还风风火火的区块链,到如今各种打着区块链的 app 都基本死光了。前两年房价还疯长,现在很多房价已经腰斩。
面对变化的世界,首先想到的就是变的比它还快。只要变得比这个世界还快,才有足够的主动权去掌控它。不至于被这个世界所淘汰。
对于计算机技术来说,更新迭代的更快,要学的东西实在太多。
一方面是必须要学,一方面是不知道要学什么。
拿移动端来说,Android 前几年 Java 还用的好好的,结果前年 Kotlin 来搅局了,Google 还把 Kotlin 作为了官方的语言,你说作为一个 Android 开发要不要学?
iOS 的程序员之前一直在用 OC 开发,14 年的时候 Swift 来了。苹果的东西,你想不学做不到吧。学也就罢了,但是每次 Swift 的更都有很多的变动,真是苦了程序员,但是你能不学吗?
Android 和 iOS 存在 10 几年了,突然大前端又跑出来说要做跨平台,要统一 Android 和 iOS,于是一堆跨平台的 SDK 浮出水面,facebook 的 React Native,阿里的 weex,还有 Google 的 flutter,你怎么办,学还是不学?
前几年出了区块链需要学习,出了 Tensor Flow(AI) 需要学习,出了 Kotlin,Swift 要学习,很多人抱怨,学不动了呀。
但是变是永恒的主题,是一个不以人的意志为转移的事情,而人的生命有限,以有限的生命去追赶无限的变化世界,显然这不是一个长远之计。
另外一个思路是寻找一些不变的东西,或者变化慢的东西,影响深远的因素,把握好他们,以不变应万变。
亚马逊的创始人杰夫·贝索斯曾经在一次演讲中说:“人们经常问我,未来 10 年什么会被改变?我觉得这个问题很有意思,但也很普遍。从来没有人问我,未来 10 年,什么不会变?”
什么东西不会变呢?
在计算机的世界里,数据结构,算法,编译原理,编程思想这些至少在可见的时间范围内不会变,也只有原理,本质和设计思想才是经得起考验的,才不会被平台,被语言绑架。
很多和数据结构,算法相关的书籍,都被称为经典。什么是经典?那些不变的,经得起时间考验的才能成为经典。任世界如何变化,至少在有限的生命中,这些都是不变的东西。
掌握好了这些,任计算机的世界如何变化,都可以以不变应万变。这就好比一个习武之人,开始的时候只是不断练习某些武器的使用,一旦换了全新的对手,旧武器可能就不适用了。而一个懂得制造武器的人,不论对手如何变化,总是能够知道出克敌制胜的武器。
那么,当前具体的 Android 和 iOS 技术是不是不重要了呢?这些当然重要。这些技术聚焦的是当下,应对是当前世界的变化,这些选择会决定你在未来很长一段时间的技术方向。
但是我们如果能够拉长时间线,在未来来看,也许这些框架,语言,平台,都不是那么重要。
而数据结构,算法,编译原理,编程思想这些应对的是未来。
互联网变化太快,从互联网开始到现在,不过 20 年时间,有多少的技术被淘汰了,有多少的公司倒闭了。与其拼命往前冲,不如抓住一些本质的东西去打磨。
应对当下,更要应对未来。