更换主力编程语言的代价都有哪些?

2014-10-23 14:18:22 +08:00
 winiex
最近看到一些关于编程语言的讨论,其中有一个是关于程序员转换主力编程语言的代价的。

有从职业发展上看待这个问题的:高级工程师转换语言后,相当于重新开始采坑的历程,从初级工程师做起,薪水也有可能打折。

有从研发工作本身看待这个问题的:研发工程师的工作工具远远不止语言本身,还应包含所处的开发生态圈、平台、领域知识等。换语言但是不换领域的话,要学的东西不算太多。

有从纯技术角度看待这个问题的:深入掌握一门语言(不只是从技术底层细节,还包括语言社区的一系列最佳实践)可以让技术从业者写出高效、好维护的代码。程序员换主力语言这件事情就和汽车换引擎一样。

就我个人的经验来看,我去年六月份开始从 Android 平台的 Java 转换到后端服务的 Python 语言,中间最大的感受,一是跨范式后早期语言思维的接受有些困难,二是后端方面的领域知识和 Python 社区最佳实践也得花比较多的实践去学习,三是要去踩坑。

有相同经历的童鞋们的感受是怎样的?
7259 次点击
所在节点    程序员
39 条回复
winiex
2014-10-23 16:24:06 +08:00
@special

难道不是 Lisp 以及各种方言咩?

思维转换确实很大。跨领域其实比跨语言难多了。好多人说的跨语言难,其实是跨领域难。
winiex
2014-10-23 16:25:26 +08:00
@halfelf 前辈是在创业公司负责技术吗?技术选型应该是一个需要多方面尝试的过程啊。一般架构师都懂的领域非常多的说。
Mutoo
2014-10-23 16:31:28 +08:00
七周七语言...嗯,这是一本书名。
YORYOR
2014-10-23 17:07:09 +08:00
换语言没什么难度 关键是各个语言的框架。都是坑
winiex
2014-10-23 17:12:52 +08:00
@Mutoo

这个系列还有个七周七数据库来着。
mingzhi
2014-10-23 17:21:44 +08:00
学过的语言的越多,发现相识之处越多,切换成本越小.
ibudao
2014-10-23 17:43:29 +08:00
认真学习一下编译原理相关的知识,换语言分分钟。。
winiex
2014-10-23 17:46:14 +08:00
@ibudao

表示看过龙书,也尝试写过小型的编译器前端,换语言差别大了还是有些吃力啊。

编译原理是语言实现的相关知识,也很重要。但是个人感觉换语言还是对于语言核心的范式有接触过的话会更容易。
caoyue
2014-10-23 17:50:29 +08:00
从自己 C# 切换到 Erlang 的过程来说,感觉还行……
思维转换可能没那么快,但是多看多写多用,上手也不是太大的问题。
只能说达到使用的程度来说,不算太难。
不同语言互相印证的时候,还能有些意想不到的收获。

具体取决于工作内容吧,有的工作只需要会用,有的工作还需要创造性或者解决复杂问题,后者不是短时间能达到的。
Comdex
2014-10-23 18:50:21 +08:00
java切换到golang感觉还行
lygmqkl
2014-10-23 19:24:17 +08:00
思想的部分 会得到升华,毕竟各家都有特色,但是初期日子不会太好过,快速精通一门语言的高级部分是不现实的。。。

会增加学习成本,在初期会犯低级错误,比如用一些很“低级”的思想来处理问题。
SBv2ex
2014-10-23 20:06:21 +08:00
GeekGao
2014-10-23 20:09:23 +08:00
@halfelf 不能同意再多
zhouzm
2014-10-23 20:10:57 +08:00
快速精通一门语言的高级部分是不现实的+1

了解一门语言是一回事儿,掌握一门语言又是另一回事儿了,应聘材料上写的精通多门语言(技能),有几个能真正做到的,
iam36
2014-10-23 22:18:14 +08:00
@halfelf 结论尚可支持。

从你掌握的语言数量来说,你对掌握以及精通的定义太低了。

举个例子,我有用visual foxpro写网络爬虫,充其量自觉非常熟练,不敢称精通。
C,我写过银行用的商业代码,是代表公司的商业行为,而我对自己写c的认知是使用。干自己的活,绝不会首选想到用它…
onemoo
2014-10-23 22:37:23 +08:00
会C、C++,正在学python,因为对网站感兴趣,还打算学学与前端相关的语言。我觉得一段时间内不用换了...

其实主要取决于你对计算机系统和各种语言范式的了解程度。对此领悟颇深,同时又熟悉较底层的语言的话,对各种语言都会适应得很快。
rainysia
2014-10-24 10:50:16 +08:00
在公司经常3个月java,3个月php,3个月python,5个月c#.来回切
wickila
2014-10-24 10:54:52 +08:00
在公司内部转换语言,代价就不大.一个是公司有人带,踩坑相对容.,另外一方面薪资水平也不会下降.所以需要切换语言的时候,尽量选择在公司内部切换,而不要跳槽切换.
xujiazhe
2017-09-26 12:26:12 +08:00
https://www.quora.com/How-do-some-developers-learn-a-new-programming-language-in-one-night
这个帖子有几点挺认同.
1, 学习一门新语言并不难, api, 库, 工具, 语言开发生态(如蓬勃发展的前端), 才是大头.
2, 怎么算掌握呢, 熟悉语言的运行时, 和 特点(python 的 GIL, JS 的函数式, Java 的 GC 坑, 写出很符合 C++语义的代码).

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/140995

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX