程序员是否都要了解多种编程语言?
世界上现有的编程语言数以百计。常见常用的有C、C#、C++、java、php、ruby、Python以及javascript等,有的是刚出现没几年或者是边缘化的如R、go、scheme、Rust等。编程语言如此多,我们又该关注哪一个?然后,课课家开始思考:一个程序员是否真需要知道多种语言?
程序员需要学习一种语言以上的原因:
1. 懂得不同的编程语言意味着能在解决问题时拥有更多的方案。老话说得好,揣着弓时,瞅着马桶盖都像箭靶。
2. 拥有复数语言能力,更容易胜任高阶的职位。当然了,这还是取决于你所学习的语言是否应用广泛,或者说是否稀有。但无论如何,多一项技能总会多一个就业筹码。
3. 新语言的学习表现,能让你的雇主了解到你是能持续学习的程序员。
4. 学习新语言确实可以充实你的知识量,帮助你在编程领域中持续成长提高。
5. 紧追技术趋势,知道哪行哪业是眼下社会资本的新宠,便于使自身技能用不过时。
6. 让你更喜欢自己的“主业”编程语言,或者让你知道如何让你的事业做得更好。毕竟在你还未接触其他语言时,你不一定知道自己的主业语言有多牛逼。同时,新语言也可能会出现一些让你惊讶的新功能。
7. 帮助你成为一个更好的程序员。新语言的学习可有助于提高程序员在语言切换方面的技能。例如对模块设计和架构算法,或者处理不同的数据结构。
8. 针对工作任务使用最适合的语言。每一款语言都有自己的特性,某一些语言更善于处理某些特定的事情。了解不同的编程语言有助于在工作中更便捷的解决问题。
9. 磨练自己的学习能力。持续学习新语言可以让你提高自己的语言学习能力。
不想学更多语言的原因:
1. 单个语言更易掌握。一门心思放在一项工作才能做精做熟。如果总在不同的语言间进行切换,那对单项语言的掌握程度就必然会降低。
2. 绝大部分的程序员只会同时进行一项工作,大部分企业只使用一种语言。当你被录取以后,多重编程语言的优势不一定起到作用。但如果你知道所负责项目的语言,就够了。
3. 加深对一门语言的学习,这表示你可以对自己所掌握的语言有更多空间来研究。
4. 做的广不如做得精,单项语言的权威者在大多数情况下都可以要求更高的薪酬,企业更乐意给权威投入更多。相比之下,成为多面能手不会总是一个好主意。
5. 即使一个人一辈子只精通一项语言也能被认作是一个伟大的程序员。而一个程序员的伟大与自身掌握多少种语言无关,只与所构建的内容功能性、通用性有关。
6. 只掌握单种语言意味着需要学习的开发工具更少了。大部分语言的开发工具数量都不多。而切换语言一般就等于切换工具,当你只需要一种语言时,对单种开发工具的掌握更便捷,工作效率也会快速提高。
7. 对自己定位自身的市场价值。只用一种编程语言,即便那不是出于自身意愿,也能往这个职业方向里规划下来。
8. 任何一种语言都可以基本解决大部分软件问题。如开发新功能是你的主要目标,那拥有多种语言知识并不能对其有所帮助。
9. 深入理解一件事比表面了解10件事要好。
语言的选择不是一道是非题。与其他问题一般,最好的办法还是取因势利导。如果你只是一个程序初学者,那深入学习一种语言,然后开发多个项目,明显更简单些。但往后,课课家建议初学者们把自己逐步塑造成一个T形开发者。
何为T型开发者?
通指在某种特定领域造诣特别深,单种语言的专家,这就是T字里的竖直线,水平线则代表了在竖直线上应广泛学习的其他技能。
上面提起过,单项语言能为你解决大部分的软件问题。在全面掌握这门语言以后,再学习第二项最适合工作任务的语言或技能。
故此,T型开发者不止精通单种语言,也要成为一个多面手。而在学习的过程中,你不难能感受到成为单一领域的重要性,还会从多种语言的了解中增加工作的灵活性与适应性。
如何选择初学者的主业语言?
如果你刚刚进入编程语言的领域,估计很多人都会疑惑自己应先学什么语言。对于语言的选项中,课课家会建议选择那些已经有一定存在历史的语言,而不是最近发展起来的。语言应为多个行业使用,且有一个或多个稳定的交流社区,并拥有许多固定更新的、功能完善的开发工具。符合上述标准的语言例如有:C、java、php、ruby、Python、swift等。
#p#分页标题#e#
每个月定期查看tiobe编程语言排行榜,可以查看完整的编程语言列表。排名和使用情况每月更新,课课家认为,一般前20名的大部分语言都是不错的选择。害怕自己选择的语言会在几年内被摒弃?至少课课家看见C语言和java、php等语言从来没掉落过20位以后。
语言的选择只取决于你的目标
一般如果只是在企业环境中开新项目或者实现业务需求,深入掌握一种语言就够了。而如果你正计划换行或者驾驭技术趋势,走在最前沿的项目,你需要知道的语言就不止一种了。