如果市场上有个调查,我相信 Go 程序员的平均薪资是能高出 Java 一节的.
第一, Java 不管是大小厂都在用,低级 java 数不胜数,工资也入门级的,这些金字塔低端的人拉低了 java 的平均薪资.
第二,Go 主要是大厂在用,小厂不敢冒险跟一种新技术(除非有强力 CTO 坐镇),而且 Go 基本上没有新手可言, Go 的使用者绝大部分集中在多年后端经验的老鸟,大部分由 Python、c++、java 转过来的,因此平均薪资极高,能跟 Scala、Erlang 媲美的高薪一族(注意这俩高薪也是跟 Golang 一个情况,多年 java、c++转的).
说到这里清楚了吗?
薪资一定是 Golang 高,然而对于题主而言,你除非水平极高,不然一个在校学生估计被老鸟秒成渣, java、php 起码岗位多,能养活菜鸟,Scala、Erlang、Golang 这种高薪语言不养菜鸟的.
还有一点,题主搞错了,不是你会一门 Golang 很有竞争力,而是转向 Golang 的那些后端老鸟本身就很有竞争力, Golang 语法简单地要死,老鸟尤其是 c++的转 Go 半个月都用不了,上手看着文档就直接干了,真以为 Go的语言会是你产生竞争力的原因?哪个职业程序员搞他半个多月写不了 Go? 但是你让那些金字塔低端的程序员去写 Go 会有用吗? Go是为高并发而生的语言,号称云计算时代的 c 语言,大量得被用在c++与 java 之间的中间地带,既没有 c++靠近底层也没有 java 靠近业务,更多的扮演的是消息缓存中间件、服务发现、服务代理、控制系统等功能,连个业务代码都写不好的菜鸡写这些东西是来坑爹的.
所以,请问题主如何学习用 Golang 开发中间件?如何开发服务代理?如何处理高并发的业务场景,如何保证高可用...兄弟你知道去哪学么?
根本没得学, Go 那些老鸟们也不用学这个,他们早在开发 c++、java 的时候就处理过这些问题,然后发现 Go 比 c++、java 更适合处理这些问题,然后就用 Go 开发了,而不是一个新手觉得 golang 高薪学了这门语言,然后其他的那些服务端知识自己就顺带学会了,你没有这种经验是学不会的,最后只会用 Go 写几行业务代码而已...
老老实实学 java, 我说的那些问题在 java 这个庞大的体系中全部有解决方案,相关的书多得你都不知道看那一本...