这个世界变化快,是咱们的共识。前端
纵观这几年,咱们能说出许多耳熟能详的新鲜事件:百团大战,快滴大战,区块链,人工智能,炒房,大数据,互联网寒冬等等,这些事情,仿佛就发生在昨天,轰轰烈烈,以咱们眼花缭乱的速度变化着。程序员
前两年还遍地都是小黄车,如今不只看不到小黄车,连摩拜单车都快看不到了。前两年还风风火火的区块链,到现在各类打着区块链的 app 都基本死光了。前两年房价还疯长,如今不少房价已经腰斩。算法
面对变化的世界,首先想到的就是变的比它还快。只要变得比这个世界还快,才有足够的主动权去掌控它。不至于被这个世界所淘汰。编程
对于计算机技术来讲,更新迭代的更快,要学的东西实在太多。weex
一方面是必需要学,一方面是不知道要学什么。数据结构
拿移动端来讲,Android 前几年 Java 还用的好好的,结果前年 Kotlin 来搅局了,Google 还把 Kotlin 做为了官方的语言,你说做为一个 Android 开发要不要学?app
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 年时间,有多少的技术被淘汰了,有多少的公司倒闭了。与其拼命往前冲,不如抓住一些本质的东西去打磨。
应对当下,更要应对将来。