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

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

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

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

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

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

有相同经历的童鞋们的感受是怎样的?
7242 次点击
所在节点    程序员
39 条回复
winiex
2014-10-23 14:21:01 +08:00
如果有 HUST 的师兄姐师弟妹,欢迎去我科技术宅小组一起来讨论啊。http://www.douban.com/group/topic/64405880/
nybux
2014-10-23 14:23:33 +08:00
我觉得只要基础知识扎实,换语言坑很少
cxe2v
2014-10-23 14:24:45 +08:00
看你从什么语言换到什么语言,比如从C#换到JAVA毫无压力。但是换到C就很痛苦了
winiex
2014-10-23 14:31:49 +08:00
@nybux

嗯,赞同你的观点。基础本身对于技术人员来说是必不可少的。
不过我觉得,问题在于涉及到换语言的这个问题的话,比较急需的一些基础知识大学教的挺少的。特别是和语言范式相关的一些知识。我还是看了《程序设计语言》[1]这本书才知道有动态语言这个东西的。

[1]
winiex
2014-10-23 14:32:04 +08:00
winiex
2014-10-23 14:33:57 +08:00
@cxe2v

我从 Java 切换到 Python 的时候,当时就对什么是属性,什么是 Lookup,什么是“动态”这些东西非常理解不能......。

我记得有个说法,就是程序员至少得各个范式的语言都学习一种,等到工作中切换语言的时候,受到的负面冲击就会小一些。
ren2881971
2014-10-23 15:04:30 +08:00
c + java +(python/ruby)都熟悉的话 就咋转都不怕了。
halfelf
2014-10-23 15:18:16 +08:00
毫无代价,目前可以直接写Ruby/Python/Clojure/Java
复习一两天可以直接写C/Cpp/Erlang/PHP
复习三四天可以直接写Scala/Objc/Rust/Perl/Scheme
其他任意可以在一周内上手。
用的越多,用新的边际成本越小
anjianshi
2014-10-23 15:22:04 +08:00
感觉换语言没有汽车换引擎那么严重吧,应该是相当于修摩托车的改行修电动车,呵呵
Mirana
2014-10-23 15:26:06 +08:00
@halfelf 用的越多,切换成本越小+1
winiex
2014-10-23 15:30:35 +08:00
@ren2881971

哟哟切克闹,各种语言来一套。
winiex
2014-10-23 15:32:20 +08:00
@halfelf

碉堡了......前辈你这是多少年的经验啊?
winiex
2014-10-23 15:32:43 +08:00
@anjianshi

搬砖的改行搬西瓜。
freeze
2014-10-23 15:41:42 +08:00
@halfelf

前辈入门语言是什么?
ioth
2014-10-23 15:45:46 +08:00
@winiex 3个月零五三就够了。
软件全身心学两年后,世界上已经没有新东西了。
halfelf
2014-10-23 15:48:08 +08:00
@freeze 科班出身,基础课是C,要说更早就是初中basic。。。
halfelf
2014-10-23 15:50:28 +08:00
@winiex 惭愧,耽误过两年青春,经验不多,觉得学新的有意思就看看,看多了看新的东西会自动将概念映射到已学的东西上,幸运的是现在能决定技术选型所以就越用越多。
special
2014-10-23 16:02:39 +08:00
我个人感觉最难转的是 Haskell 等函数式编程语言,其他的,你熟悉了某个领域后,一般都很容易转,例如熟悉 Ruby on Rails 并且有 Javascripts 基础的,看下 NodeJS 的基础教程后,都可以马上上手写了。

跨领域转的话,例如楼主从 APP 开发转向后端开发,难点不是在语言吧,而是前后端思维的差别。
semicircle21
2014-10-23 16:04:12 +08:00
如果你试图教半路出家的学软件开发, 你就会觉得, 其实换个编程语言不算什么事..
mahone3297
2014-10-23 16:17:52 +08:00
大家都说好像成本很小。。。
我个人还是比较同意lz的意见,成本还是比较大的,各种坑需要好好踩一遍。。。

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

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

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

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

© 2021 V2EX