目前大二在读,有没有必要从 Java 转到 go,坐标二线城市,有意去一线城市发展,但无意扎根,问一下 V 友,如果现在转去学 Go 有没有好的前景呢?
1
tomato1111 2019-09-01 14:46:03 +08:00
楼主用 java 写出过产品了么
|
2
dabaibai 2019-09-01 14:49:07 +08:00 3
大肠都在用。小肠都死了。
|
3
sunriz 2019-09-01 14:54:27 +08:00
学语言很快的,我刚入职的时候 go 就学了三天,用起来基本上也没什么问题,当然更深入的东西也要平时积累。先学好计算机的基础课程吧,这个才是重点,公司招人并不是很看重你用过什么语言,看重基础知识和解决问题的思路。实践方面,多做些有意义的东西,目的在于用语言的特性做出高效的东西而不是语言本身。
|
4
reus 2019-09-01 14:57:00 +08:00 4
rust 才是世界上最好的编程语言
|
5
sls 2019-09-01 15:00:49 +08:00 1
慎重,自从用了这个简单的语言后,其他复杂的语言都学不动了,但是选语言还是看使用场景和生态。所以先学其他的吧,从繁入简容易,由简入繁难啊
|
6
iPhoneXI 2019-09-01 15:12:59 +08:00 via Android
大学时间那么多,当然是都学
|
7
linsijia1002 2019-09-01 15:16:54 +08:00 via iPhone
Go 是比较年轻的语言,直接机器码运行,效率比 java 快很多倍。编译配置方便简单,导入包很方便,相比于 java 的配置麻烦 xml 语法,极简主义者表示有点密集恐惧。
|
8
troywinter 2019-09-01 15:44:51 +08:00 23
无意引战,目前在 web 开发领域 go 还是没法和 java 相比,如果你是那种完全不写测试的人,认为自己写的代码都可以手工测试或者不需要测试,那你用什么语言其实都没有区别,java 语言提供的动态性以及 jvm 的 jit 和一系列的运行时优化,都使得一是做 di 非常简单快速并有庞大的库帮助你在十几分钟内构建完善的单元测试流程,二是 jit 的优化,在一些 critical path 上的性能可以达到非常高的水平。在开发关键大型系统时,良好的测试覆盖可以有效减少 bug。
一些人总是提出直接 go 是直接机器码运行,比 java 快,其实不全对,没有 jit 加持的 java 确实性能很差,go 的方式是通过确定性的机器码的运行方式,使得性能是可预见的,不会出现 java 那种 jit 优化之后性能极速上升的例子,但性能可以维持在比较平稳的状态。 至于配置麻烦的问题,你如果不用 di,那也不需要什么配置,反正我司都是一套 bazel 构建到底,构建也都不用操心。 换语言时,要考虑到方方面面的问题,以及很多问题可选的解决思路,不应该迷失在别人的观点中。 如果你决定转 go 了,那么祝你找到心怡的工作,可以多交流,我也在写 go。 |
9
jss 2019-09-01 16:53:47 +08:00
有人说:我们现在不是考虑要不要学 Go,而是考虑怎样挤出更多的时间了解学习 Go。
|
10
jamesliu96 2019-09-01 16:58:18 +08:00 via Android
去看看著名的屑 openbilibili/go-common,只要写得比它好就行(
|
11
qinxi 2019-09-01 17:03:44 +08:00
@linsijia1002 #7 9102 年了
|
12
MMMMMMMMMMMMMMMM 2019-09-01 17:08:24 +08:00 1
我永远喜欢 node(划掉) Python(划掉) Go(划掉) Rust(黑体 加粗).jpg
|
13
misaka19000 2019-09-01 17:21:44 +08:00
都学,这样工作你都能胜任
|
14
salamanderMH 2019-09-01 17:24:21 +08:00 via Android
@troywinter 这个是正经回答
|
15
xmge 2019-09-01 17:40:39 +08:00 1
哈哈,这个我说一下,从 java 转 go 两年,go 的应用场景呢,高并发,为什么高并发,创建的协程消耗比线程少。
一般都是大公司在用,因为大公司目前才有高并发的场景。 目前的岗位不是很多,面试的机会其实也不是很多,自我感觉,前几天去找来着。 但是,未来,如果物联网发展越来越迅猛的话,感觉 go 会起来 |
16
y0bcn OP @tomato1111 写过几个比赛的项目
|
17
tourist2018 2019-09-01 18:24:24 +08:00
头条 滴滴 微博 阿里 腾讯 小米 这些是我去面试过的公司 基本也都是核心业务部门在用了
我觉得如果你的目标是一线二线互联网公司的话 完全不用担心现在 golang 没有工作机会 但是我感觉和语言没啥关系 只要别学特别偏的。。。比如 C# 这个是真的不好找互联网公司的工作 |
18
tourist2018 2019-09-01 18:25:20 +08:00
补充下 面过的 小米视频业务 微博是广告业务 阿里是阿里云 腾讯腾讯视频企鹅号
|
19
swulling 2019-09-01 18:31:09 +08:00 via iPhone
go 的第三方库质量和数量都不太好。如果你是业务为王,还是用 java 吧
|
20
hst001 2019-09-01 18:34:38 +08:00
@MMMMMMMMMMMMMMMM #12 戏很足
|
21
pursuer 2019-09-01 18:55:15 +08:00
现在各个领域有最适合的语言,可以看看自己感兴趣的领域
|
22
ScepterZ 2019-09-01 18:57:44 +08:00
都学吧
|
23
mamahaha 2019-09-01 19:46:19 +08:00 1
大公司用 go 可以节约服务器成本,如果进不了大公司就别瞎起哄了。
|
24
AX5N 2019-09-01 19:53:26 +08:00
@linsijia1002 胡扯,java 也就比 c/c++慢一点,你 go 能快很多倍那岂不是比 c 还要快?
|
25
ZoolYe 2019-09-01 19:54:15 +08:00
@linsijia1002 都什么年代了,Java 还用 XML 配置吗?你当 SpringBoot、SpringCloud 不存在吗? JVM 这么多年的优化,你敢说 Go 还比 Java 快很多倍?
|
26
bakabie 2019-09-01 22:05:06 +08:00
不是非必要,但是有时间可以学
|
27
Srar 2019-09-01 22:16:01 +08:00 10
|
28
akring 2019-09-01 22:26:07 +08:00 3
@troywinter 像您这样有价值,态度又平和诚恳的回帖真的太少了,必须点个赞
|
29
janus77 2019-09-01 22:37:21 +08:00 via iPhone
大二在读谈什么转?我寻思你靠他混饭吃呢。当然是都学啊
|
30
cheesea 2019-09-01 23:53:08 +08:00 4
我觉得最忌讳的就是给自己划定圈子,然后就只关注这个圈子的东西,这样不好。
比如我是 java/go/python 工程师,我是后端 /前端 /运维,甚至我是程序员,然后其他领域的就什么都不懂,也不去了解,这会限制你的发展和眼界。 你才大二,应该多去接触和了解各个领域的东西。 |
31
ihciah 2019-09-02 01:46:57 +08:00
作为一个 Golang 用户,暑假去了阿里,然后学了两个月 Java。。。
|
32
blless 2019-09-02 02:16:11 +08:00 via Android
@troywinter 测试我还是觉得 go 写得爽,测试文件就在对应代码一起,我觉得很舒服,因为测试用例不仅仅只是测试,其实也算使用方式教程之类的。接口测试天然 mock,自带 benchmark。
jit 虽然快,但是也要预热外加消耗大量内存,用起来还是不如 go 爽 |
33
ericgui 2019-09-02 03:18:39 +08:00
你才大二,着急干什么
先把 Java 学好,如果你 Java 学好了,找工作不愁,而且你再学其他任何语言,都小菜一碟 |
34
qbmiller 2019-09-02 08:11:51 +08:00 via iPhone
@jamesliu96 #10 哈哈
|
35
jss 2019-09-02 08:21:20 +08:00 via iPhone
@AX5N 保守估计在相同的环境和执行目标的情况下,Go 程序比 Java 或 Scala 应用程序要快上 2 倍,并比这两门语言使用少占用 70% 的内存。如果说 Go 比 C++ 要慢 20%,那么 Go 就要比任何非静态和编译型语言快 2 到 10 倍,并且能够更加高效地使用内存。
|
36
jonsun30 2019-09-02 08:35:56 +08:00
@jss 你的 Java 程序 JIT 优化过了吗?还有更高效的使用内存这句话真的太主观武断了吧?
'Will your toy benchmark program be faster if you write it in a different programming language? It depends on how you write it!' |
37
tt67wq 2019-09-02 08:39:06 +08:00
搞 k8s 很赚,其他的一般般
|
38
fuxiaohei 2019-09-02 08:51:46 +08:00
如果是二线城市,还是用的人多的语言机会更多
|
39
tairan2006 2019-09-02 08:55:06 +08:00
都学啊
不过写的话还是 go 比较爽,除了没泛型 |
40
jianson2006 2019-09-02 09:06:00 +08:00
@sls 十分赞同你的观点,我是零基自学 PY,但我觉得总缺对代码的理解。现在学习 C 语言。我认真对待学习还是从 C 开始,效果确实有很大的不同。
|
41
encro 2019-09-02 09:19:26 +08:00
如果自认为 NB,学习 GO,写一个 NB 的开源项目,比如 NPS,frp,bleve, beego, etcd 这样的,基本找工作不会有问题了。
如果自认为不太 NB,学习 JAVA,慢慢来,毕竟 JAVA 生态环境摆在那里,还有很多螺丝需要拧。 打算回二线,具体是哪个城市,去搜索下看看,目前用 GO 的机会很少。 |
42
kilen3a 2019-09-02 09:22:52 +08:00
都学啊,反正才大二,时间多的是
|
43
phantomzz 2019-09-02 09:27:48 +08:00
目前 90%以上的程序员写的代码还触及不到语言的性能瓶颈。
|
44
notreami 2019-09-02 09:48:07 +08:00
为啥总有人盯着语言呢。java 用来做业务、大数据处理。golang 用来做运维工具。
那么你想搞业务、大数据,还是服务运维?? |
45
no1xsyzy 2019-09-02 10:04:56 +08:00
除了提供新的思维方法外,新语言无意义
一般人们所称转换语言是转换生态圈,还有就是少打几个字符(懒) 不同语言间生态割裂其实是个问题 唯一的纽带是 C |
46
no1xsyzy 2019-09-02 10:06:25 +08:00 1
@jianson2006 (但是 Python 对于代码抽象的处理程度不是比 C 高吗?
|
47
daryl 2019-09-02 10:17:30 +08:00
巧了,我想从 go 转 java。
|
48
luckRay 2019-09-02 10:17:31 +08:00
推荐还是 JAVA 为主吧,毕竟体量在这里。
|
49
jss 2019-09-02 10:23:55 +08:00 via iPhone
|
50
jianson2006 2019-09-02 10:52:24 +08:00
@no1xsyzy PY 学习下来我只其用法,但不知道为什么要这样用?有很多原理我是不懂的,所以,我想从 C 中获取。就是编码到底是如何与硬件沟通的?我只是想把在提高的过程中可以把一件原理也可以搞明白。
|
51
hyl24 2019-09-02 11:15:26 +08:00
学 java 吧 以后 java 往中间件方向走 就学 GO
|
52
DovaKeen 2019-09-02 11:19:28 +08:00
你才大二,可以多了解一些的
|
53
Galileo 2019-09-02 11:19:41 +08:00
请谨慎考虑
|
54
jonsun30 2019-09-02 11:33:25 +08:00
@jss https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go.html
Btw it's just a benchmarking game XD |
55
Raymon111111 2019-09-02 11:38:51 +08:00
语言完全不是重点
把基础知识学好吧, 比如数据结构, 操作系统 |
57
jonsun30 2019-09-02 11:47:50 +08:00
@gz911122 其实我想说的是这种 assumption 是没有意义的,每个语言都有其诞生的理由。绝大部分程序员(包括我自己)所写的程序还真的触及不到语言的瓶颈,有时候是你摸不到性能的天花板,还有时候是我们的代码由于各种各样的原因真的很屎。
|
58
richzhu 2019-09-02 12:37:52 +08:00
一提语言就吵架,我真的服了,性能高能怎么地? 能高多少? 性能高的代码你能写出来?写出来了别人能看懂?你的业务多少 qps 就性能性能的....好好学学计算机基础,哪个场景就用哪个语言,个人喜欢 go 就学 go,总之就是学起来别犹豫,学会了一个再学另一个也很简单,不能因为犹豫学哪个而耽误时间。
|
60
solaro 2019-09-02 16:23:50 +08:00
先学 JAVA,JAVA 能让你进银行或者国企、事业单位混日子,能混日子才有时间学 Go,然后用 Go 做东西玩,玩到一定成都又可以当成敲门砖进大公司
|
61
securityCoding 2019-09-02 16:35:09 +08:00
上手写 , 不要想这么多
|
63
zibber 2019-09-02 17:18:48 +08:00
新项目不出意外我感觉都会用 go 去尝试,机会还是很多
|
64
conver 2019-09-03 09:26:49 +08:00 via iPhone
大学的时间,都学绰绰有余
|