我的一些关于编程语言学习和使用的观点如下,因为最近谈到这个事情,就记录下来吧,但是我只想简单的表述出来。当然,我不想陷入语言孰优孰劣这种争论的圈子里。
多掌握一门语言有没有价值?如果一门新的语言能改变你对编程的理解,它就是值得学习的。另外,每一门语言对应着一种或几种 “编程范型”,接触不同的编程范型是很有价值的,这是扩展视野的好机会。
编程语言只是工具,工具都是用来解决特定的问题的。特定的问题使用适合的工具来解决。但是很多情况下,我们的选择太多。选择这一门编程语言的原因可能只是因为 “它很酷啊”,或者 “因为大家都在用它”。另外,还有一种极端的滥用的情况:“当手上有一把锤子的时候,你看什么都是钉子”。
许多优秀的团队和企业不招 “Java 程序员”、“C++程序员”,只招 “软件开发工程师”,如果程序员仅仅因为 “不会 Ruby” 这样的理由被拒之门外,是荒唐可笑的。把优秀的工程师安插到适合他们的团队,以便让他们可以做自己喜欢的事情。如果让一个对游戏开发没有任何兴趣的人去做一个游戏的 C++项目,他肯定不会开心。当然,也有很多企业和团队,要求来之能战,业务、平台都很清楚,那么就要把这些要求说清楚。
如果要做一个 Web 项目,有一个聪明、基础扎实但没有用过 Java,没有做过 Web 开发的 C++工程师,还有一个 JavaEE 领域有丰富经验、但是过往绩效却比较糟糕的员工,你更需要哪一个?对我来说,只要不那么急功近利,语言类别对于工程师的选择的影响很小。
优秀的软件工程师往往都至少使用过 4、5 门语言,有一门精通就可以。技术的宽度和广度并不矛盾。在招聘的时候每个面试官都会有自己的偏见,对我来说,如果应聘者技术面非常窄,比如说他只熟练使用过一门编程语言,我往往会对他说 No。还有一种被视为偏见的让我放弃他原因是,他做过类似 GFW 这样没有节操的项目或产品。
我觉得 C、C++是初学编程应该介入的语言类型,有人说是难了一点。但是你看看 C 和 C++基础扎实的人算法和数据结构都不差,而且你可以明白一些底层的机制,之后再转向其它语言就比较快了。当然,初始的时候,学什么都不要学 Basic。要知道它可能害了你。另外,千万不要去相信那些三个月的 “XXX 速成班”,基本上那只是坑钱而已。如果你有兴趣速成,我可以教给你 “21 天学会打开显示器” 这样的速成技能。
如今语言本身被给予了过度的关注,每一种编程语言都有自己的不合理性,都有所谓的 “坑”,但是过多地把精力放在这上面没有什么价值——语言的类库、社区、平台,还有语言背后的机制、设计都是更有价值的东西。
文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》