发布时间: 2017-06-22 17:28:59
有些初入职场或还在学校的同学总问,到底我该选哪个技术方向?我现在该学哪门语言?你觉得未来 Java 的发展趋势如何?这些问题的本质其实都是技术的投资决策问题,即现在我该把时间精力花在哪个方向上,未来的受益才可能较大?
这个问题并不好回答,因为这个问题的本质和“我现在应该投资哪只股票”一样。没有人能回答好这个问题,回答这类问题最好的方式,小编认为就是从投资的出发点而非终点来选择一条路径。至于这样选择的一条路径是否能获得很好的未来收益,这个是没法预测的。但选择技术方向和选择股票不同的是,只要你在一个路径上持续努力、学习和进步,可以保障能和「大盘」持平而不至于有亏损,但是否能取得远超「大盘」的收益,其实是看运气的。
选择语言
现在选择技术方向,从某种意义上讲就是选择语言。虽然有一些大牛的说法是语言并不重要,必要的时候可以在各种语言间自由切换。但实际情况是,能做到自由切换的前提是你得对一门语言掌握到通透之后,再学习其他语言才可能触类旁通。
计算机的程序语言虽然很多,但种类其实有限。2017 TIBOE 程序语言排行榜上的前三位:Java、C、C++,本质上其实是一类语言。但大部分人只能选择去熟悉并精通一种,因为围绕这些语言背后都有庞大的生态圈。要做到精通,只熟悉语言本身是远远不够的,其实是要熟悉整个生态圈。而三门语言中最年轻的 Java 都有二十多年历史了,足够你耗费数年时光去熟悉其整个生态圈,而且目前其生态圈还处在不断扩展状态,显示出一种蓬勃的生命力。所以,若是小编自己要如何选语言?我会选择那些显示出有蓬勃生命力的语言,但其实十多年前小编只是凑巧选到了Java,它就像是被潮水推到我脚边的漂流瓶,顺手捡了起来。没想到居然蓬勃的发展了十多年,还没见衰退迹象。那时的 Java 刚诞生不过七八年,和今天的 Go 语言很像。Go 语言在排行榜上的位置蹿升的很快,而且在云计算时代的基础设施上大放异彩。
那么在 Java 之前小编学的是什么?是 Visual Basic、ASP 和 Delphi/Object Pascal。我想今天不少年轻的程序员未必听过这些语言了。但神奇的是,在 TIBOE 的排行榜上 VB 加了个 .NET 排名尚在世界广泛的Web语言 PHP 和 Javascript 之上。而十五年前小编用的 Delphi/Object Pascal 居然也仅次于 Javascript 之后。这些老牌语言还值得学吗?当然不值得了,因为早已进入暮年,没了蓬勃的生命力。但为什么排名还这么高?因为它们也曾经有过蓬勃生命力的热血青春。留下了大量的软件和程序遗产,至今还没能退出历史的舞台吧。
选择回报
选择技术方向,选择语言,都是一种投资。我们为此感到焦虑的原因在于技术变化那么快,就怕自己选了一个方向,投了几年的时间精力,最后却被技术迭代的浪潮拍死在了沙滩上。越年轻的语言和方向,风险越高。一个今年刚出现的新语言,你怎么知道它能在明年幸存下来?所以,考虑回报的确定性和更低的风险,你应该选择有一定历史底蕴的语言,也许不能带来超额的回报,但稳定的回报足以让你在现在这个行业里立稳脚跟。在此基础上,再去关注新潮流、新方向或新技术,观察它们的可持续性。 技术的选择,都是赚取长期回报,短期的波动放在长期来看终将被抵消掉,成为时代的一朵小浪花。
选择行业
搞清楚了语言、技术方向和回报的关系后,最后做出选择的立足点通常会落在行业上。当你问别人该选什么语言时,有人会告诉你,你应该学习 Javascript,互联网 Web 时代的通用语言,到了移动互联网时代依然通用。也有人告诉你也许从 Python 开始更合适,语法简单,上手容易。还有人告诉你,现在学 Java 找工作最容易,平均工资也高。有各种各样的说法充斥在你的耳边,让你犹豫不决,其实,选择什么语言通常不在于语言本身的特性。选语言,就是选职业,选职业首先选行业。先想想自己想从事哪个行业的软件开发,再看看这个行业的现状如何?行业的平均增速如何?和其他行业相比如何?这个行业里最好的公司相比行业平均增速又如何?那么,再看看这些最好的公司都用些什么样的技术和语言,如果你想进入这样的公司,那就很简单了,就选择学这样的技术和语言。这样选择是不是太功利了?选择不是应该看兴趣么?注意,这里选择的前提可不是发展什么业余爱好,而是获得安身立命的本领,获得竞争的相对优势。兴趣,就是这件事里有些吸引你的东西,让你觉这是很好玩的事。但有个通常说法是,一旦把兴趣变成了职业也就失去了兴趣。因为,职业里面还有很多不好玩的事。
想想你为什么要选择学习一门编程语言,学习编程的一部分是学习语言的语法结构,但更大的一部分耗时更久且更让你头痛的部分是学习如何像一个程序员一样解决问题。
上一篇: 云计算使用的九大误区
下一篇: 腾科快讯-论数据科学家的七种具体类别