极客时间微信Truth61203|初程:带上一份技能地图2018-08-08胡峰程序世界是一片广阔的大地,相比我十多年前进入这个世界时,这片大地的边界又扩大了很多倍。初入程序世界难免迷茫,要在这个世界立足、生存,并得到很好的发展,应首要具备怎样的技能呢?未来的程序之路,先给自己准备一份基本的技能地图,先有图,再上路。在程序的技能地图中,需要先开启和点亮哪些部分呢?回顾我过去的经历并结合现实的需要,可以从如下两个不同程度的维度来说明:掌握了解掌握,意味着是一开始就要求熟练掌握的硬技能,这是生存之本。而至于掌握的深度,是动态的,倒是可以在行进过程中不断去迭代加深。了解,相对掌握不是必需,但也需要达到知其然的程度,甚至知其所以然更好。一、掌握上路之初,需要掌握的核心生存技能有哪些呢?1.开发平台开发平台,它包括一种编程语言、附带的平台生态及相关的技术。在如今这个专业化分工越来越细的时代,开发平台决定了你会成为什么类型和方向的程序员。比如:服务端、客户端或前端开发等。其中进一步细分客户端还可以有Windows、Mac、iOS和Android等不同的平台。编程语言语言的选择基本决定了开发平台的性质,但有些语言可能例外,如:C++、JS、C#等,这些语言都可以跨多个平台。但即使你选的是这些语言,基本也会归属到某一类平台上。好比你选了C++,如果你去做了客户端开发,就很少可能再去用C++写服务端程序了。关于语言的选择,前面我已经写过了选择的逻辑,便不再多说。但选择了语言,我们不仅仅是熟悉语言自身的特性,还需要掌握支撑语言的平台库。Java若仅从语言特性上来说,有其优点,但其瑕疵和缺陷也一直被吐槽,要是没有JDK强大的平台库支撑,想必也不会有今天的繁荣。平台生态与语言平台关联的还有其技术生态以及各种技术框架的繁荣程度。这些平台技术生态的存在让使用这门语言编程完成特定的任务变得容易和简单得多。Java的生命力除了JDK的强大支撑,实际还有其平台生态的繁荣,也起了决定性的作用。在选择了开发平台后,除了语言和平台库之外,其生态体系内主流的技术框架和解决方案也是必选的掌握内容。2.常用算法在学校学习的算法,基本是解决各种计算机科学问题的通用方法。还记得在学校时看过一本算法经典书《算法导论》。刚又把这本书的目录翻了出来过了一遍,发现已经忘记了百分之七、八十的内容。因为忘记的这部分内容,在过去的十多年工作中我基本都没机会用上。那么掌握算法的目的是为了什么呢?有...