本文作者Paulo Ortins在这里分享了对于选择哪种编程语言作为软件开发工作的起点的话题,并阐述了自己的观点。其实道理很简单,不管你选择了什么语言,不管你在这门语言上花了多少时间和精力,你对这门语言的掌握程度是最有说服力的。(以下为编译内容)
有的人经常抱怨软件开发行业的技术、概念、工具等更新换代的速度实在是太快了,用他们的话说就是:每周都有新的算法、新的框架、新的编程语言等之类的新东西问世,让人有种应接不暇的感觉。而作为一名软件开发者,我们所要做的就是从这些新的工具里面挑选出适合自己的。
但是,你觉得花时间去熟练掌握每一款新的技术值得吗?或许也未必。即使我们做出了选择,花时间和精力去学习使用新的东西,可是到了第二年的时候又得面临同样的状况――说不定又有一款新技术正在变得很热门,很有潜力。所以,我们不得不在市场上充斥着各种各样的新事物的环境下,静下心来熟练掌握一门技术。
软件开发行业就像是一个股票市场,关键看你怎么选择股票。以下通过一些分析数据来证明这一观点。
软件开发领域就像一个巨大的股票市场
对于我来说,软件开发这一行业的特点和股票市场有点像,每天都会有很多以软件开发为主的科技公司诞生,这就相当于可投资的公司数量在不断地增长;投资者需要考虑的问题就是该把钱投资在哪家公司?开发者需要考虑的问题就是该把时间花在哪些项目上?!而这两者之间最大的区别在于:投资者可以把钱投资在许多家公司,而开发者,很难在同一时间学习超过2-3个新的东西。这就给开发者带来了很大的压力,一旦在决策上连续出现2-3个问题的话,那就会让整个团队处于不利境地。
以下根据对股票行业的数据分析,来探讨一下一位年轻的投资者在软件开发行业里应该怎样选择合适的股票?
选股票,大学问
股票市场里有三种赚钱的方法,第一种就是Fundamental Analysis(基本面分析,以判断金融市场未来走势为目标),投资一个真正有价值的公司,这在现实中已经得到了充分的证实,例如股神巴菲特就是很好的例子。第二种方法就是推测股票价值,以低买高卖的方式挣钱。第三种方式就是small caps(小型股),这样的公司市值较低,正因为如此才导致这样的投资风险更高。可是在软件市场我们不能像推测股票价格一样推测技术的价格,一旦选择了某项开发工具,就必须掌握那项技术,用最短的时间发挥它最大的效用。所以,年轻开发者投资自己的时间且获得高效回报的方法就是――Fundamental Analysis和small caps。
作为一个年轻的软件开发者,哪一种方法最好呢?是将时间花在一个新技术上还是选择一个已经很成熟的技术上呢?
时间是证明一切的最好方法
(下面所说的开发语言只是为了举例而举例,并不是希望引起争执。)
回顾2005的时候,Rails刚刚兴起,而Ruby和Java已经存在很长时间了,但是使用Ruby和Java的开发者并不是特别的多,Java和.NET的地位也很稳固。如果那个时候的年轻开发者选择了Ruby来开始他们的职业生涯的话,不知道会出现什么样的结局?如果选了Java或.NET的话,结果也很难预测。
假设一个开发者选择了Ruby作为自己的开发语言,并且具有8年的开发经验,基本上可以说他是这个行业里最有经验的Ruby开发者了,作Ruby之类的经验分享演讲、发表Ruby论文应该都是很有分量的。想要招聘他的公司应该也是一大把的,毕竟这样的开发者是很罕见的。
作为一个拥有8年经验的.Net开发者或Java开发者的话,有一份舒适的工作应该不成问题,但他不可能成为这个行业里经验最丰富的.Net开发者或Java开发者,毕竟,行业里还是不缺乏拥有15年开发经验的Java开发者的,如果一个公司需要一个真正的专家的话,那么拥有15年开发的经验是最好不过的了。
当然,这样的例子可以用在其它时期的案例上,例如:iOS和Android现在正炒的火热、Big Data和Machine Learning也被捧得很高、Cloud Computing、Node、Clojure、Scala也不乏人气等等。只不过要是将所有的精力都押注在以上所说的这些新事物上的话,估计是一个很不明智的选择。
个人观点
对于给年轻开发者的建议,最好是选择将更多的时间用在新技术/算法上,这也是一个很好的机会――在这项技术取得很好的市场份额之前熟练掌握它。也就是说,通过这么长时间的钻研,你成为世界级专家的可能性就会加大。以这种方式追赶其他方面的开发者,甚至会比他们更有经验。
原文来自:Paulo Ortins Blog (编译/薛梁 责编/王果)