我认为程序员不应该和一门语言绑定在一起
通常说 Java 工程师、C++ 工程师、Go 工程师,都是把程序员和一门语言关联在了一起。
但实际上,与其说你用的什么语言,还不如说你在做什么事情,比如做数据库,做存储,做电商,做直播,等等。
读懂一个行业比掌握一门语言要重要得多。
以前总是看到一些人在纠结到底应该学哪门语言,但实际上,你可以问自己,要解决什么样的问题,想要做什么样的产品?
一些大厂面试,可能根本不问语言,我们之前一个同事来之前是写 Python 的,入职之后才从零开始学 Go ,也能够很好的适应工作。这说明一门语言对程序员来说并不是最重要的。
我工作这几年看到的很多人,都至少掌握两门语言以上,很多时候都是根据实际情况进行调整,学习新的语言。
希望大家不要在纠结应该学习哪门语言了!
1
AoEiuV020CN 2022-07-28 19:11:41 +08:00 via Android 4
没到那个语言只是工具的级别,
|
2
lostpg 2022-07-28 19:26:36 +08:00 via Android 1
但是技术栈是和语言绑定的,除了部分语言无关的技术,多数时候某个技术栈就是和一个或少数几个语言绑定的。。这是技术生态问题
|
3
yaoyao1128 2022-07-28 19:29:51 +08:00 via iPhone
语言是通的 但是用人需求大多数是死的……
并且语言的互相通的能力一定程度上是有区别的,举例子 cpp 开发转别的一定程度上会需要学习包管理,但是对于对象就要比纯 c 的开发方便( |
4
SachinBeyond 2022-07-28 19:30:24 +08:00 via Android 1
不在乎语言本身,重要的是生态
|
5
Building 2022-07-28 19:33:55 +08:00 via iPhone
……你见过工人会和锤子绑定在一起吗?
|
6
abersheeran 2022-07-28 19:45:41 +08:00 1
语言生态真的不一样,换语言需要时间适应的。
|
7
0x2CA 2022-07-28 19:46:53 +08:00
工人和锤子不是绑定的,但是钉子和锤子是绑定的,工人可以学会用锤子或者锯子或者电钻
|
8
itskingname 2022-07-28 19:56:59 +08:00 25
那一批写 Java 的人,就最容易跟 Java 绑定起来。从此以后,无论换什么语言,都是一股 Java 的臭味。
|
9
yannxia 2022-07-28 20:00:04 +08:00
Java 语言是个锤子,Java 语言生态是一整套工具库,换个语言,等于换套工具库,不至于狗带,不过也会阵痛一下。
|
10
singerll 2022-07-28 20:19:33 +08:00 via Android
这个理论仅限于极少数资深程序员。有的人编程只为吃饱饭,有的人编程是为了兴趣为了研究。
就像腾讯不会跟 qq 绑定到一起一样,音乐,影视,金融,自媒体等等啥都能做。 但你如果是个 3 个人的小公司,完全就不一样。 |
11
janus77 2022-07-28 20:42:54 +08:00
主要是为了恰饭,没人在乎你用什么语言,只在乎你能不能找到高薪工作
|
12
xiangyuecn 2022-07-28 21:06:09 +08:00 3
人和代码有一个能 run 就行🐶
|
13
Cola98 2022-07-28 22:21:39 +08:00
主要还是生态问题吧,比如像 Java 如果脱离了 Spring 全家桶,那开发起来就很痛苦((
|
14
SunsetShimmer 2022-07-28 22:24:21 +08:00
就比如机器学习和 Python ,在性能上也许不是最好的搭配(我知道第三方库都是 C ),但人们就把他们绑定在一起了。
|
15
microxiaoxiao 2022-07-28 22:25:56 +08:00 via Android
大部分情况下公司社招程序员是直接上手的,你不熟悉,他哪有时间让你去慢慢摸鱼。大点的公司相对宽容一些
|
16
lmshl 2022-07-28 22:36:24 +08:00 6
数了一下工作十年以来,正儿八经做过生产项目的语言有以下这些:
万行以上经验的语言 Scala 、TypeScript(含 JavaScript)、Kotlin 、Java 、PHP 、C#、VB 千行以上经验的语言 Rust 、Python 、Swift 、Racket(含 Scheme)、C++(含 C) 我也认同程序员不应该和语言绑定在一起,假如哪天需要我去写 Haskell ,我也很乐意,毕竟学起来也不难。但要是让我去写 Java 、Go ,不给个 50%以上涨幅我不是很乐意去干 |
17
Aloento 2022-07-28 22:36:35 +08:00 3
程序员应该和桶绑在一起(?)
|
18
duan602728596 2022-07-29 00:27:08 +08:00 1
所以现在开始写 C#了
|
20
Suddoo 2022-07-29 00:45:51 +08:00 via iPhone 4
@itskingname Java 怎么臭了?请拿出证据。我觉得 Java 是一门非常优秀的语言,一直在与时俱进
|
21
Suddoo 2022-07-29 00:52:42 +08:00 via iPhone
大厂例子不恰当,大厂这么玩,是因为可以无止尽的烧钱,并不是因为语言对程序员不重要
中小企业,招个人过来,还要学习一段时间、才能有产出、从老板的角度看,这次招聘是失败的 |
22
CEBBCAT 2022-07-29 03:02:40 +08:00
@itskingname #8 不认可这个说法,难道 Java 有这个魔力吗?显然没有。我推测最可能是因为那些不注重软件工程的人大多深受 Java 生态影响的关系。而在别的语言,比如 Go ,很容易就能嗅出之前的 Java 味
|
23
flyqie 2022-07-29 07:56:42 +08:00 via Android
@Suddoo
莫激动,#8 说的应该是写 java 的某些人在用其他语言的时候会把 java 项目 /代码的层次照搬过去,结果搞得写出来的代码极其复杂不易维护,违背对应语言的社区标准做法,还没有什么收益。 在这种情况下来说,确实是沾染了 java 的"臭味"。 java 有很多思想确实值得其他语言借鉴,但是完全照搬可能并不是什么好事。 |
24
hoopan 2022-07-29 08:44:38 +08:00
语言只是工具,但是学习使用工具是有时间成本的,我们只能挑几样用得惯的工具,练熟后去搬砖。
|
25
dqzcwxb 2022-07-29 08:55:55 +08:00
说得对,我也觉得农民不能和锄头绑定在一起
|
26
guanhui07 2022-07-29 09:17:39 +08:00
写过些 java php lua js python golang
|
27
AyaseEri 2022-07-29 09:29:47 +08:00
这句话应该跟 HR 说,跟用人单位说。
|
28
liuidetmks 2022-07-29 09:31:54 +08:00
@Building 有的工人一辈子只和一种机床打交道
|
29
picone 2022-07-29 09:33:17 +08:00 5
@flyqie #23 😂 我现在的公司,用的 Go ,但是同事大部分都是 Java 转过来的,
- 该用指针不用指针,美其名曰容易出错,那么大的结构体拷贝就拷贝... - 上来就 DDD 一套,也不是不好,就是简单东西都复杂搞了 - 还整天吐槽 spring 有什么 Go 没什么。。 |
30
limiter 2022-07-29 09:36:47 +08:00 3
不深入你怎么过面试这一关,深入了难道不就是绑定了?你深入一门语言还有精力去搞其他语言吗
|
31
luffy 2022-07-29 09:39:29 +08:00
Well, 程序员跟语言绑定是有作用跟目的。
你可以把程序员 跟 公司或者品牌 类比起来,最主要的目的在于降低雇主这边的筛选成本。 比如,不同手机品牌都有自己的主打卖点,这里的 `卖点` 相当于程序员的语言, 这个卖点可以为用户节省很多购买甄别成本。用户根本不懂手机如何制造的,所以需要卖点来节约时间。 雇主也是一样,如果你不说你的编程语言是什么,那就意味着雇主得花更多时间来做甄别,你是不是有能力从事 A 语言或者 B 语言。这个成本太高了,而且现在市场上是供大于求,从雇主的角度来看,不限语言,完全是吃力不讨好。 |
32
zgc27wo 2022-07-29 09:41:16 +08:00
农民和锤子。。。 人家换工具和你换工具的成本是一样的吗? 真是服了。。。 你学的 c 突然叫你改 java , 你不得吧面向对象好好学一下啊?
|
33
qianxi0410 2022-07-29 09:41:21 +08:00
其实有点赞同。我其实更倾向于选择领域,一个领域里面必定会有一两门流行的语言的。
|
34
yunyuyuan 2022-07-29 09:43:15 +08:00 3
人不应该和程序员绑在一起
|
35
iosyyy 2022-07-29 09:46:28 +08:00
先把一门语言搞得门清再说吧 语言谁都能写但不一定精 就像学术研究 现在老搞什么多学科都是扯淡 先把自己的一亩三分地经营好 再去做别的语言
|
36
karatsuba 2022-07-29 09:47:49 +08:00
你以为人人都是二舅,看一眼就能学会木匠活吗
|
37
whywaoxaks 2022-07-29 09:48:06 +08:00
钱到位了,机器语言也照样写。
|
38
geekvcn 2022-07-29 09:50:17 +08:00
码农和程序员的区别不就是这样吗,码农只会单一语言甚至只会在单一框架基础上编程。但是人的精力毕竟有限,还是在精通一门吃饭语言的情况下,熟练掌握其他编程语言了解优点和适合的场景,没必要个个都精通
|
40
EIJAM 2022-07-29 09:50:39 +08:00 via iPhone
@picone 结构体直接拷贝真的要笑死了,难怪 Java 程序员买个开发笔记本都觉得 16G 内存不够用。
“吐槽 spring 有什么 Go 没什么”这个 java 味确实挺足的。 |
42
iosyyy 2022-07-29 09:54:16 +08:00
@EIJAM java 就没拷贝 和 java 电脑 16G 不够用有啥关系 32G 开服务快 我为啥要用 16G
“吐槽 spring 有什么 Go 没什么” 本身就是 go 生态 8 行 没有一个特别大的项目支撑 |
44
Leonard 2022-07-29 09:56:31 +08:00
语言只是工具,但是工人对每种工具熟悉程度是不同的。你给抹灰的工人一个电焊,人家不先学学的话,怎么干活?
|
45
EIJAM 2022-07-29 09:59:15 +08:00 via iPhone
@iosyyy 你说没有关系就没有关系吧。
go 生态确实是不行,标准库就干了不少事。不像 Java 生态好,干啥都要依赖第三方包。 |
46
EIJAM 2022-07-29 10:01:06 +08:00 via iPhone 1
@iosyyy 哈哈,你看清上面在说什么了吗?人家说的是有些 Java 程序员写 go 不会用指针,直接拷贝结构体。
|
47
wangtian2020 2022-07-29 10:03:57 +08:00
程序员不应该和一门语言绑定在一起
但是我只会 JavaScript JavaScript 的优点是可以写任何东西,缺点是你真的会用它去写这些东西。 nodejs 但是我真的会尝试用它去写任何东西 |
48
iosyyy 2022-07-29 10:12:39 +08:00
@EIJAM 你看清你自己再说啥了吗? 16G 内存的笔记本不够是啥意思不用我说吧 而且我寻思 java 标准库不啥功能都有吗依赖第三方就是为了方便
|
49
iosyyy 2022-07-29 10:13:56 +08:00
@EIJAM 还哈哈 说的你不是他 人家说的一点毛病没有 反而是你还在这秀理解 指东指西别人说生态不行你说标准库行 真就我说东你说西
|
51
fatyoung 2022-07-29 10:21:44 +08:00
天下苦 Java 久矣🐶
|
52
xz410236056 2022-07-29 10:23:20 +08:00
是这样,但是还不够。不仅不能跟某一语言绑定,甚至不能仅仅只是编程。未来各行各业都是需要多学科多领域的人的。像现在的土木,一些学校的土木教学已经不单单是土木了,还跨了其他学科
|
53
hello2090 2022-07-29 10:28:41 +08:00
数数我这么多年来
Java -> C++ -> C++, C -> Java, JS -> Groovy, Java, JS -> Java, TS |
54
777777 2022-07-29 10:38:17 +08:00
每种语言都是一种思想,只有认同这种思想,才会根深这门语言。如果思想随便换来换去,那就成为没有思想的麻木的工具人了。就像公司给电脑配了个人一样给语言配了个人。
|
55
chenyu8674 2022-07-29 10:41:57 +08:00 6
“框架不是为了提高老手的行动力,而是限制新手的破坏力”
|
56
uselessVisitor 2022-07-29 10:47:04 +08:00
公司要的是来了就能干活的,不是让你看文档学一个月才能磕磕绊绊开发的
|
57
jwautumn 2022-07-29 10:56:27 +08:00 2
工人和锤子的比喻不太合适吧。
我感觉类似学乐器,不同的乐器之前还是有差别的,不过也有些乐器是类似的。 |
58
RainCats 2022-07-29 11:09:55 +08:00
@EIJAM 内存不够用是因为服务开得多好吧。。。。。一个项目跑起来得一堆服务,比如我手头这个,我得跑这项目本身三个端的三个服务,还有其他比如网关、鉴权、以及其他相关联服务还有 10 个。。。
|
59
crazytudou 2022-07-29 11:18:34 +08:00
又是这种贴,只能说对于大部分人,选择很重要,特别是对于想入门的人。
|
60
javaisthebest 2022-07-29 11:23:11 +08:00
对于大师来说,语言只是他们知识体系中的垫脚石,他们已经上升到登堂入室境界了
对于普通人来说,能熟练的使用一门语言都已经够呛了,更何况精力有限 知识无限。 能把语言掌握熟练都还不错了。所谓的学习新语言 不就是学点 if-else-switch 使用,别太把自己的所谓那点熟练度当个葱,就和那个笑话一样 精通各种操作系统的开关机。 |
61
sin30 2022-07-29 12:22:16 +08:00 1
我觉得你说的还不够。
程序员不仅不应该和一门语言绑定在一起,也不能和某个公司绑定在一起(比如大公司),还不能和某项业务绑定在一起(比如电商、直播),甚至不能和技术绑定在一起(要产品、销售、运营全都行)。要和时代的运势绑定在一起,和宇宙大道绑定在一次?我还是俗了,应该超脱无界,不和任何事物绑定在一起。 有追求是好的,把自己逼死就没意思了,一辈子才能吃几顿饭,开心快乐不重要么? |
62
NoBugDie 2022-07-29 12:55:56 +08:00
站在开发者视角,似乎确实不用跟语言绑定在一起。
站在公司视角,特别是社招,公司需要的是即插即用,很难说给学习不同语言的时间。 拿楼主的例子来说,go 语言是一个特例,学习曲线平缓。如果换成写 go 语言开发者的转 cpp 或者 rust ,那么很多公司招聘人员就要犹豫了。 |
63
ihciah 2022-07-29 13:03:16 +08:00 via iPhone 1
绑定的其实是方向,而方向是会选语言的。就好比你不可能用 php 去写驱动一样,这个是方向和领域问题。
|
64
maotao456 2022-07-29 16:07:16 +08:00 1
许多公司是不问语言的内容,但是有一个例外, 它就是 Rust
|
65
wanguorui123 2022-07-29 16:16:48 +08:00
树挪死,人挪活
|
66
feirisu 2022-07-29 16:37:31 +08:00 1
这么搞的话,鄙视链还怎么运作?作为程序员,你看到中文编程第一感觉不都是“什么垃圾玩意”。
|
67
v2pxpx 2022-07-29 17:03:02 +08:00
适合,业务场景、各种成本、活多活少、程序员公司所处位置
|
69
notejava 2022-07-29 17:55:53 +08:00
话是这么说,但是每个人精力有限,不可能每一门语言都掌握得很深(包括其生态轮子)。一般说的 Java 工程师,不是指只会 Java ,他可能也会 Js 、Phthon 、Go ,但是没有 Java 掌握得深。
|
70
tairan2006 2022-07-29 18:20:58 +08:00 via Android 1
居然还有 java 吹…放个暴论,云原生时代 java 可以说是最差的几种语言了。几个 projectxxx 磨蹭了几年还没影,阿里天天吹自己的魔改,没见到社区有生产用的…
|
71
tcbbd 2022-07-29 20:15:18 +08:00
我只能说,能吊死在一个语言上的,大概率是半路出家转码。科班出身的,学过程序语言理论这种课,用过各种语言写过作业,那应该什么语言都轻松上手。
|
72
xiaofan305 2022-07-29 20:19:52 +08:00
人的认知能力不应该和他的母语绑定在一起
|
73
fzdwx 2022-07-29 21:32:52 +08:00
踩 Java 是不是政治正确?
|
74
chendl111 2022-07-29 22:17:08 +08:00
跟业务强相关,跟语言不是
|
75
qwq11 2022-07-29 23:49:53 +08:00 1
@Suddoo #20 Java 臭味是指的国内 java 还在用的侏罗纪的版本,缺乏现代语言的很多特性,比如异步、函数式、指针、包管理、再发行机制、习惯拿 xml 当做配置文件之类的,这些习惯带到现代语言里面就是奇臭无比
|
76
viwoqu 2022-07-30 00:43:25 +08:00
至少有有一门母语作为写程序的思考语言,做不同类型的程序员用的语言也不一样,底层或者嵌入式就是 C/C++,入门简单点就是 Python Golang ,语言规范适合大规格开发就是 Java C#
|
77
SeaTac 2022-07-30 01:14:37 +08:00 via iPhone
@tairan2006
Amazon / Oracle: ? |
78
tairan2006 2022-07-30 08:22:45 +08:00 via Android
@seaiaddca 社区两个字认识不
|
79
SeaTac 2022-07-30 09:02:20 +08:00 via iPhone 1
|
80
tairan2006 2022-07-30 09:22:38 +08:00
@seaiaddca 我都说是暴论了,java 对云原生极不友好,流行的框架和 k8s 不能说是格格不入吧,可以说是另立门户了。资源浪费大,启动速度慢,镜像体积感人。这些问题也不是一天两天了,在解决这些问题上 oracle 的进度缓慢到令人发指。
至于你后面那个问题,开源社区才是公司代码的基石,你的生产代码都是自己写的,不用任何社区贡献?像阿里这种大厂等不及 oracle 了,自己魔改 jvm ,一般公司有这能力么。 |
81
freakxx 2022-07-30 11:13:50 +08:00 3
这种话题就是傻逼话题,实话说。
属于他妈泛泛而谈的玩意。 我说,我是钢琴家,你说不行,钢琴是你来表达的工具,不应该局限你,你应该说你是音乐家。 我说,我是掏粪工,你说不行,你说掏粪只是一个内容,不足以囊括你的行业内容。 一个人喜欢一门语言,用语言来表达也可以,他爱绑定不绑定。 一个人喜欢多门语言,语言只是用来表达的用具,也可以,他爱绑定不绑定。 |
83
SeaTac 2022-07-30 11:36:20 +08:00 via iPhone
@tairan2006
我不太理解你想说的是 cloud native development 还是 develop cloud native tools cloud native development 你用 aws 那一套( ECS ,lambda ,S3 ,DDB ,SQS ,Kinesis ),java 不算是特殊优待吧,至少也是一等公民,更何况 aws 自己大部分东西也是用 java 做的 如果你说的是 infra development 的话…这倒也许 |
84
Suddoo 2022-07-30 11:36:47 +08:00 via iPhone
@tairan2006 这么喜欢云原生、这么喜欢 k8s ,你咋不说 k8s 自己配置繁琐?占用资源极大?还把问题归咎到 Java 身上,甩过也不是你这么个甩法吧?
|
85
SeaTac 2022-07-30 11:37:37 +08:00 via iPhone
@tairan2006
另外一般公司折腾 jvm 干什么…直接用第三方云呗 |
86
Suddoo 2022-07-30 11:39:19 +08:00 via iPhone 1
@qwq11 还有,按照你这个观点,C 语言早就应该被扫进历史的垃圾堆了,事实是人家活的好好的。这个世界并不是围绕着你转的
|
87
Suddoo 2022-07-30 11:40:33 +08:00 via iPhone 1
@seaiaddca 他就是瞎几把扯,k8s 本身就配置极其繁琐,占用资源极大,这根 Java 有半毛钱关系
|
88
tairan2006 2022-07-30 12:00:42 +08:00 via Android
@Suddoo 开源社区自己选择了 k8s
|
90
Belmode 2022-07-30 13:00:47 +08:00
@tairan2006 一直在说云原生 Java 不友好,你把其他用 Java 的行业置于何地?感情这世上,只有用云原生的行业,采用 Java?
|
91
KunMinX 2022-07-30 14:40:20 +08:00
赞同楼主所述。语言皆为更少代码解决特定领域问题而生。
basic:dim a as string c:string a 显然后者更简练。 语言是指令工具,故当计算机常识,如数据读写表示传输,备齐后,根据实际场景掌握相应语言即可。 |
92
tairan2006 2022-07-30 14:44:32 +08:00
@Belmode 我说的就是云原生环境 java 不行,我说其他的不行了么?有人吹 java 是最先进几门语言之一,到云原生这了就变成云原生不够先进了?那这样我没话说。
|
93
houhaibushihai 2022-07-30 17:13:51 +08:00
能到顶尖的程序员什么语言无所谓了。作为社畜,我只想选生态全,出活快的语言
下班自己折腾一下其它自己想折腾的 搞技术的人容易钻牛角尖,这都是站在程序员角度。 你尝试站在老板角度,业务实现快,招聘人容易,技术路线成熟才是王道 做拓荒者大公司才有钱养人慢慢搞,中小公司都是考虑怎么活下去,业务第一 |
94
charlie21 2022-07-30 18:47:11 +08:00
程序员不应该和程序员绑在一起
|
95
wxw752 2022-07-30 19:08:48 +08:00
这种月经贴下个月能不能轮到我发[doge]
|
96
WOLFRAZOR 2022-07-30 19:54:13 +08:00
8 楼和 23 楼说的这个太真实了。Java 这情况真不开玩笑,我看见 Java 转其他语言的人写的项目会晕。
|
97
FrankHB 2022-07-30 19:58:17 +08:00
@Building 加上镰刀,可以绑定装备了……
@Aloento 变成桶子去找 coser ,多好( @Suddoo 提到 Java 就让你想到辩护,而不是第一时间 me too 自己发现罄竹难书的问题,这种对思考能力的摧毁效果就够臭了。 正常的语言基本都是要么没人用要么都会骂。提到缺陷一头雾水的,几乎可以断定用得不够多和不够熟练。 至于别人骂的具体什么对你就未必那么重要了。比如我会骂所有静态类型语言设计残废,因为遇到类型系统的局限性我不能直接在语言里扩充而需要换语言,浪费时间看这些设计还不爽。比如连同像性都没还需要特设什么反射的傻大个看着就二。再如一开始设计者拎清楚常识没给 lambda 没 closure 就硬塞什么 class 什么 method ,结果事后跪舔又加进去的,增加维护 spec 和实现工作量的弱鸡语言就是该骂。又如钦定全局 GC 还有脸写客户端 GUI 应用逼最终用户调优的就是寻衅滋事。我都觉得特意针对 Java 掉价(甚至我对 Gosling 表示嫌弃因为他对 vi 有贡献而不是发明了 Java 都够了),然而这些 Java 就是不能免俗,还是典型恶俗代表。 但是我说的对你有意义么?你来混婊语言界? |
98
Suddoo 2022-07-30 20:55:48 +08:00
@FrankHB 你说了很多废话
首先,关于函数式编程,lambda 表达式,you can you up ,结果大家都用得好好的,搞的你很猛一样,可以设计得更屌,结果你只会对别人的成果评头品足,你又做出了什么比 Java 更屌的设计吗?要么,你拿出更屌的设计,要么闭嘴,OK? 把高司令拉出来就更傻逼了,现在的 Java 跟高司令时期的 Java 根本就不是一回事了,后面很多特性,新的项目,GraalVM, 巴拿马项目,ZGC....... 都不是高司令主导的 Java 并没有因为创始人的离职还死去,今天还发展等更好,正如,你的离职也不会导致你的雇主倒闭,地球离了谁都转,可能还转得更好 还特码罄竹难书,打个工,真把自己当回事了 |
99
pkupyx 2022-07-30 21:46:01 +08:00
确实一般绑定的不是语言,而是基于业务场景和语言组成的架构模式。
比如同样是后端写 java 转写 go 对着学一下常用技术组件就还是熟练工,而 java 后端转用 java 写安卓基本等于从零开始。 |
100
iosyyy 2022-07-30 21:57:16 +08:00
@FrankHB 上一次喊 me too 的叫库伯.. 另外谁和你说全局 GC 就不能写客户端的? vscode 啥写的?? 至于你说的同像性就没几款语言具有同像性的我知道的就一个 Lisp 那其他语言就不用了, 开什么玩笑, 这个问题就和有 lamda 就不用图灵机了一样属于强行绑定 :D
|