先说自己的情况,16 年大学毕业,这四年多基本上前两年多写 node 后两年写 go,天赋有限,学艺不精,两种语言写的感觉都一般。。
最近因为项目组解散,并入另外一个组了,要求一定要写 java 了,而且毫无回转的可能。
换语言的问题还是那些,要从头开始,尽管有之前语言的基础,上手写的问题可能不大,但是 golang 还没学太好,换成 java 又是学一些皮毛,感觉沉淀不足。
就语言本身来讲,我挺喜欢 golang 的,主要是轻巧,现在项目用 k8s+docker (这俩学的也不是很深入),搞起来十分舒服,除了没有范型写代码挺难受的,启动快编译快部署快,还是挺爽的。handling errors 我倒是觉得还能接受,有点像特别早年 node 的 callback,都要返回一个 err 。
java 呢,我就觉得太重了,写法、启动、编译和部署这些方面,启动个 ide,小破 mac 动不动就风扇狂飙的,可能学的不多,所以觉得写起来还有些麻烦。
换语言这个问题我想过很久,现在临近年底,我感觉现在最好的选择应该是在新团队写 java,学习学习,如果觉得不好,明年立马走人,就当多了点经验,继续找个写 go 的。
但是如果觉得还行,我就不知道怎么选择了,我只是一个普通的打工仔,首要还是面向工资编程,最好能兼顾写的开心
想了不少天,不知道大家有什么好的想法,希望给我一点输入,先谢谢大家了
1
Jooooooooo 2020-12-17 20:47:52 +08:00 5
java 这么傻的语言你 21 天绝对学会
|
2
yannxia 2020-12-17 20:50:28 +08:00
讲真,Java 除了虚拟机太吃性能,我现在另可写 Java 也不想去写 Go,也复杂点的系统,Go 就好难啊
|
3
chenqh 2020-12-17 20:55:04 +08:00
能内部转 Java 很好呀,java 找工作比 golang 好多了
|
4
hoyixi 2020-12-17 20:55:34 +08:00
真不好说,个人偏好不同。
反正 Java 是常青树,需求一直都在,天花板也高; Go 集中在云,基础系统、区块 L 之类,感觉都是热点,但是偏基础设施的系统开发需求能不能长久就不好说了 不如你去招聘网站,看看 Java 和 go 的薪水,以及公司的质量,对比下再自己选择。 |
5
sagaxu 2020-12-17 20:57:51 +08:00 via Android 4
java 招聘需求大,但是卷的也厉害,各种面试八股文,恨不得从 jdk6 一路问到 11,把 4 种 gc 实现细节问个底朝天
|
6
chippai 2020-12-17 21:01:25 +08:00 1
好巧,我们 java 转 go
|
7
wellsc 2020-12-17 21:01:30 +08:00
求之不得的好机会,golang 这种零抽象的语言写起业务来不要太难受,Java 就业市场还好,很多东西都有现成的解决方案,背背八股文就好了
|
8
crclz 2020-12-17 21:03:28 +08:00
java 我个人认为不重,没它的某个特性就浑身难受。
SpringBoot,Asp.NetCore 非常相似,就证明了语言的形态和框架的形态都几乎收敛到现在的最优状态。 |
9
f6x 2020-12-17 21:06:01 +08:00
就说一句:
go 弄个略懂要 7 分力, java70 分力也不敢说略懂吧. 当然,只写业务什么语言都没区别. |
10
skypyb 2020-12-17 21:06:33 +08:00
Java 求职应该是最卷的。。 如果想跳到 Java 得做好准备
|
11
xuanbg 2020-12-17 21:14:15 +08:00
Java 一样 k8s+docker 。写 Java 代码,找个人给你指点下 spring boot 怎么用就完了。语法什么的看看项目代码,会百度抄作业就行。一开始遇到疑难问题多问就是,半个月绝对能正常开展工作。
|
12
qfdk 2020-12-17 22:47:11 +08:00 via iPhone
我们 java 转 nodejs
|
13
syrupofplum 2020-12-17 22:54:38 +08:00
主要是看业务是否喜欢吧,语言顶多算实现功能的工具。学会一门新语言,写出符合这个语言味的代码,掌握这门语言的生态,这不也是挺让人兴奋的事情嘛。
|
14
skydiver 2020-12-17 23:15:54 +08:00
多工作几年就什么语言都会了…没必要纠结这种问题
|
15
ZRS 2020-12-17 23:18:08 +08:00 1
语言就是工具而已
|
16
Kirsk 2020-12-17 23:24:10 +08:00 via Android
看来 Java 在鄙视链最底层
|
17
djoiwhud 2020-12-17 23:31:40 +08:00 via Android 1
骑驴找马。
或者猫着做 java 。 我个人建议如果公司或者业务有前景,就留下做 java 算了。 我 9 年多后端经验,做过八九种语言的开发。我需要什么用什么,不讲任何借口。我们是软件工程领域,工程,这两个字多想想。 |
18
wangyzj 2020-12-18 08:05:31 +08:00 via iPhone
各有优缺点
如楼上所说 语言只是工具 我们做的是软件工程 |
19
v2orz 2020-12-18 08:59:17 +08:00
两个都不难
最近我们业务需要嵌入式 C/C++,这个才是让人头大好吧 |
20
xx6412223 2020-12-18 09:25:32 +08:00
说 Java 重的其实就是 jvm 耗内存问题。但对开发者没太大啥影响,而且 Java 的生态完全成熟,学起来目标更明确。
Java 语法啰嗦,但是读起来很清晰,当然不要乱用继承。面向对象的特性也比 golang 更彻底。 虚拟机给开发者带来很多好处,比如运行时可编辑字节码,更多的调试分析手段 |
21
ren2881971 2020-12-18 09:46:28 +08:00
逆流而上。。
|
22
walkOnly 2020-12-18 09:46:45 +08:00
LZ 可以建议 TeamLeader 考虑下 Kotlin,比较成熟了
|
24
seanxx 2020-12-18 10:26:03 +08:00
发错节点了,你应该发 go 开发者,不应该发程序员
|
25
raaaaaar 2020-12-18 10:34:56 +08:00 via Android
java 语法挺丑
|
26
yingo 2020-12-18 10:40:38 +08:00
建议学一点 Java,这是个好机会.
|
27
qwzhang01 2020-12-18 10:48:59 +08:00
跟着项目换语言,简直不要太容易,一周上手,半个月就熟联了。
多花精力在基础、底层以及业务上。 |
28
GopherDaily 2020-12-18 10:49:31 +08:00
@HerrDu 是像 google 那么大,还是像 XX 那么大,这点会有区别。
语言自己的味道也很重要,按 Java 的思路去写 Golang,或者按 Golang 的方式去写 Java,都会导致一些主观的评价。 |
29
Rwing 2020-12-18 10:51:59 +08:00
C#/.NET 欢迎你
|
30
mamahaha 2020-12-18 10:53:43 +08:00
你们老板可能是看上 java 的哪个库了,随便换语言证明老板对你们的实力信心不够。只敢让你们搞调库调参这套。
|
31
shuizhengqi 2020-12-18 10:54:48 +08:00
java 也还行吧,做时间长了,就知道语言这些区别不大了,只是 java 可能面试的东西稍微多一点。例如 jvm,数据结构,线程安全,常用一些 api 的源码,像 hashmap,线程池,concurrentHashmap 什么的看一下就行,gc 基本就会问两种,cms 和 g1 。然后就是其他的东西了,mysql 最多吧,主要就是索引,锁,mvcc,引擎的区别,然后还有 dubbo,redis,zk 等中间件的一些常用的知识。基本看一段时间就能应付面试了
|
32
echo1937 2020-12-18 10:54:50 +08:00
如果你的一套业务可以用 SpringBoot 全家桶解决,Java 不要太爽。
|
33
tcfenix 2020-12-18 11:00:47 +08:00
工作五年多, 在之前的工作中写过 Js, Python, PHP, Ruby, C++ , Golang, Java, Scala
其实我也很喜欢写 Golang, 历史包袱少, 语义简单, 设计的很工程化, 可以说写代码就是一个享受 但是在你找到下一份工作之前, java 还是值得你花时间投入进去学习的, 整个生态里面很多实现都还挺有学习的意义的 加油吧 |
34
coderxy 2020-12-18 11:02:17 +08:00
我原来也是 node,现在转 go 了。 打算一直干 go 了,还是要在某个语言尽量深入,不然这儿几年 那儿几年,不太好。 如果你是大佬,建议 Java,毕竟市场大。 如果你不是,建议不要贸然,内卷太严重了,岗位虽多,竞争者更多。
|
35
subpo 2020-12-18 11:02:40 +08:00
在工作两年就知道语言和框架都是浮云,看个 2 3 天就能写了
|
36
cloverzrg2 2020-12-18 11:20:03 +08:00 1
我公司业务里写过 node,go,java,只要基础好,换语言没多大问题,但是团队里要有该领域的大牛,不然项目容易变得很乱
|
37
seven123 2020-12-18 11:21:09 +08:00
语言只是工具,每个语言都是自己的特点,在合适的场景使用合适的语言。但是在我看来 java 不失为一个不错的选择,可以让你对编程有个系统的认知,当你学习源码时你可能会慢慢理解会什么要这么做,不由感叹设计的精妙,当然前面说的 java70 分力也不敢说略懂吧...这是一条任重而道远的路... 互勉
|
38
kios 2020-12-18 11:31:37 +08:00
语言都是相通的,学起来很容易
|
39
bk201 2020-12-18 11:36:08 +08:00
java 的天花板太高了,东西巨多。
|
40
zhangdawei 2020-12-18 11:38:27 +08:00
Java 和 go 都挺好的,其实国内主要看业务,做久了一定是某个方向的技术+业务专家,
|
41
zarte 2020-12-18 11:41:21 +08:00
好跳槽,是好事。
|
42
gowk 2020-12-18 11:56:22 +08:00 via Android 1
Java 语言规范 1000 多页,Go 顶多 200 页。说实在的,写 Java 我不抵触,抵触的是他概念太多,心累,尤其是现在 Spring 一统天下的情况下,能写 Go 我绝不写 Java,Go 泛型发布后它几乎是新项目的唯一选择
|
44
xcstream 2020-12-18 13:26:35 +08:00
混就是了
|
45
Rob007 2020-12-18 14:31:49 +08:00
语言是为业务服务的
|
46
Leigg 2020-12-18 15:52:42 +08:00 via iPhone
Java 面试机会多,竞争也非常激烈,也就是"卷",go 在发展上还是一门年轻化的语言,前途一片光明,你要考虑好。个人建议,不要随大流,趁年轻,定个方向深耕。
|
47
securityCoding 2020-12-18 15:58:06 +08:00
@gowk 同意,go 的泛型+错误处理上了后 应该可以大规模上业务项目了
|
48
Jiers 2020-12-19 11:38:36 +08:00
python--->go
|
49
xmsz 2021-08-13 16:51:18 +08:00
我现在的看法就是
php:如果是小公司(不管规模大不大),或者是个人网站编程爱好者,那非常的合适,简单生态丰富,就是你去捡垃圾拼起来也能跑 nodejs:前端必备,因为以前很多情况下后端同学是不乐意去做一些非『重要业务』的事情。加上现在 serverless 解决了运维的问题,那对于前端来说简直不要太爽。 后端呢?性能和线程是大问题,所以大公司肯定是不会用,还是只能拿来个人自己玩玩 go:还没开始实践之前,我的想法是 go 因为是新语言没有历史包袱,而且很多特性都是非常符合未来发展的。 当我实践以后,发现这玩意根本满足不了期望 你说想要简单,你和 java 比,其实其他语言也很简单。语法简单,大家都差不多,方法简单,其他语言封装一下也差不多。所以这个真没什么特别大作用 你说想要性能,JAVA 肯定更好 最重要的是生态,Java 一套 Spring 干趴所有人,特别是大公司的需求 然后 php 有国内无敌的生态,nodejs 有无数造轮子的人,基本上生态也很好 而 go 生态真的太烂了 除了 b 站七牛在硬推,真的差强人意。 详细的说 对于单体应用 最重要就 2 个东西,web 框架和 orm 工具 web 框架就是简易 orm 工具都不能说简易,gorm 和 xorm 真的都称不上 orm 工具 对于什么微服务、云原生 rpc 通信,大家都有啊 所以 go 的场景真的很尴尬,我觉得很噱头还不如其他语言(各种非主流语言) 总之,如果你想要当一辈子的程序员,或者想去大厂混几年,那选 Java 肯定没错,毫无疑问 其他情况的,随便了 |