英文原文:Do You Need To Know More Than One Language?
我在谋杀自己的职业生涯。没错,很多人都这样说我。
我的同事刚刚得知我即将离开公司的消息。大多数表示理解。但让他们困惑的是,我现在的公司是一家 Windows 商店,用 C# 和 .net 编写代码。然而,我要去担任的是 Linux 环境下主要语言为 Java 的开发工作。因为语言的改变,他们觉得我抛弃了自己的优势,抛弃了自己这么多年的工作经验,正在自寻死路。很多人都秉持这样的观点。
编程语言很多很多,数以百计。有些很常见,如 Java,C#,PHP,Ruby,Python 和 JavaScript,而有些则比较边缘化或是新出现的,如 awk,Go,Julia,Rust。选择如此之多,我们又该关注哪个呢?于是,我开始思考这个问题——我们真的需要知道多种语言吗?
你会想要学习不止一种语言的 9 个原因
你不想学习更多语言的 9 个原因
这并非是一个非黑即白的问题。和其他问题一样,最好的解决办法是取中间值:总会有一个灰色地带。如果你是一个初学者,那么光学一种语言,然后用它开发个十几个项目,明显更容易。但在那之后,我建议你成为一个T形的软件开发人员。
什么是T形的软件开发人员?
所谓T形的软件开发人员在某一个特定的区域拥有很深的造诣,而且是一种语言的专家,这就是T字母中非常坚实的竖直线,而T的水平线则代表了在此基础上还应该继续更广泛地学习其他技能。
那么,这与软件开发,更具体地说,是学习编程语言有什么关系呢?我的建议精通一种语言。 这种语言将成为你解决大多数问题的左膀右臂。你应该尽你所能掌握这门语言。然后你才可以学习最适合工作的第二种语言或技能。可以阅读我先前写的《 Finding What To Learn Next 》这个帖子。
T 形软件开发人员不光精通于某一领域,还是一个多面手。
在成为T形开发者的历程中,你不但能享受成为某一领域专家的好处,还能因了解多种语言而增加灵活性和适应性。
你应该选择掌握什么样的编程语言?
看到这里,很多人或许就要问了,那么我们应该选择学习哪种编程语言呢。亦或者,你才刚刚步入编程这个时间,你想知道你应该先学习什么语言。对于主要语言,我会选择那些已经存在了一段时间的语言,而不是新出来的。语言应为多个行业使用,并且有一个坚实的社区基础,拥有大量的开发工具。 一些符合这些标准的语言是:Java,C#,.NET,Ruby,Python 和 Swift。
软件排行榜基于这些标准持续跟踪软件语言的人气指数。你可以点击这里查看完整的编程语言列表。指数每月更新,前 20 名中的大多数语言都是不错的选择。那么 10 年之后,这些语言还会依然名列前茅吗?我也不知道。不过至少在未来 4 年内是准的,我想,4 年时间应该已经足够你从现在开始开发无论什么项目了。
是否需要了解更多的语言取决于你的目标
想开始新的业余项目或业务?你可能只需知道一种语言。
想换行业或驾驭技术发展趋势?你可能需要知道不止一种语言。
想在企业环境中工作?你可能只需要知道一种语言。
想工作在前沿项目?你可能需要知道不止一种语言,因为潮流总是在变化。
说实话,关于是否需要了解更多的语言,其实并没有绝对正确或绝对错误的答案。最后的决策结果取决于你。