{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

Go语言开发,月薪如何达到3万?

hzxhzx 回答0 收藏1
收藏问题

4条回答

Alfred

Alfred

回答于2022-06-28 14:32

对于 Go 程序员来说,月薪 3 万需要会哪些内容呢?希望本文对月薪不到 3 万的你有一定的帮助,祝你早日实现月薪 3 万+

在这里,我需要假定一些前提条件。首先,我们假定工作地点是北京。然后,我们分大公司和创业公司两个维度来看。

01

大公司

我们先来看一个滴滴的『Golang开发工程师(20k-50k)』招聘要求:

岗位职责:

  1. 参与滴滴基础服务平台的设计、研发工作,提升滴滴产品稳定性;
  2. 与产品经理尝试沟通产品需求;
  3. 进行相关产品的技术文档编写,方案设计;
  4. 学习研究业界先进技术,保持技术进步;

任职要求:

  1. 本科及以上学历,计算机相关专业,两年以上服务端研发经验;
  2. 深入理解计算机原理,有扎实的数据结构和算法基础;
  3. 深入理解linux系统及其原理,熟悉TCP/IP、HTTP协议以及网络编程;
  4. 良好的编码和文档习惯,对代码美感的追求孜孜不倦;
  5. 精通Go/C/C++/Python等至少一门语言,有Go开发经验者优先;
  6. 熟悉常用的sql、nosql数据库原理,阅读和理解优秀的开源系统代码;
  7. 具有分布式系统设计和开发经验者优先。


我们主要关注任职要求。

硬性条件

有一些是硬性条件,比如:学历、专业、工作年限。这些必须具备,否则简历可能都不通过。能力特别突出除外。

计算机基础

前段时间,我拉了一些大学生,专门为他们做学习和职业规划,已经做了两期 「1对1」 沟通,其中我一再强调,要注重基础知识。对于计算机来说,基础主要包括:数据结构和算法、操作系统、计算机网络、计算机组成原理等。另外,需要学习一些汇编知识,同时 C 语言最好能较熟悉。

然而,作为一个已经工作了的人,以上基础,如果不好,可能没法做到现在全面的补上来,但有一些应该花时间,至少换工作前,需要进行复习,比如:数据结构和算法、计算机网络等,如果你刚工作,我建议给自己定一个计划,什么时间好好补补哪方面的基础。

从上面滴滴岗位的要求可以看到,他们对基础很看重。这也是我一直很看重的。

良好的习惯

有时候我在想”处女座“的代码应该看起来会很美(你身边有处女座的程序员吗?)

程序员应该有一些洁癖:对代码美感的无限追求。永远记住,代码是写给人看的,只是偶尔让机器执行一下。

在这方面,Go 为程序员做了很多,通过 gofmt 可以很大程度让团队的风格保持一致。我们应该按照 gofmt 的要求编码,努力做到 gofmt 执行前后一致,好的习惯是需要长期养成的。

比如,我看到这样的注释就会忍不住改一下:

//这是注释 我会改为:// 这是注释

虽然只是加了一个空格,但看着更舒服!

精通一门语言

这里我们谈 Go 语言,所以我们谈谈怎么才算精通了 Go 语言。

对于精通,其实每个人的理解是不一样的,并没有统一的标准。但大体上,我们可以从以下几个方面来考察:

  1. Go 语言基本功。这方面相对来说是比较容易的,看书+项目实战,基本就没问题了;
  2. 核心特性的原理。比如:GMP 理论,slice 和 map 等数据结构的实现,内存分配策略,GC 策略等。这些知识我们可以通过一些资料和书籍获得,目前 Go 语言中文网就有这方面较多的资料,https://studygolang.com/subject/3。另外,如果能力够,可以阅读相关源码,实际来说也应该尝试啃啃,可以结合着一些资料来啃;
  3. 架构方面的知识。现在微服务架构很火,需要理解、掌握微服务架构的知识。掌握一些优秀的架构方案,有实际的架构经验;
  4. 问题排查知识和性能调优经验。CPU、内存问题排查,垃圾回收问题排查等,runtime 涉及到的调试工具熟练掌握,pprof 工具熟练掌握,有实际的性能调优经验;
  5. Go 生态的掌握和优秀开源项目学习。熟悉 Docker、k8s 等 Go 生态方案,了解持续集成工具和实施方案。Go 的优秀开源项目,像 BoltDB、Caddy,Web 框架 Gin/Echo 等,都是值得认真阅读的。https://github.com/avelino/awesome-go 该项目汇总了 Go 语言各种库。

数据库知识

现在的项目,都离不开存储,要求我们必须掌握数据库知识。现在数据库一般分为两种:关系数据库(SQL)和非关系数据库(NOSQL)。我们必须同时掌握这两种,因为项目中很可能都会使用。

目前来说,关系数据库一般掌握 MySQL 即可;而 NOSQL 方面,Redis 必须学习,MongoDB 也得了解。除此之外,缓存方面,Memcached 虽然现在貌似更多被 Redis 替代了,有兴趣也可以了解下。

其他方面,像 ElasticSearch 现在是很流行的,有些时候直接当数据库使用,我们也应该熟悉它的使用。

分布式系统设计

这方面的知识,很多人可能没有机会实践,更多只能学习别人总结的知识、经验。如果你工作中有幸能接触这方面的知识,一定要好好学习,这是对你职业很有帮助的。

关于分布式系统设计,市面上有不少这方面的书籍。我个人建议,如果你现在的项目,在不断向分布式方向演进,可以买这方面的书看,如果只看没机会实践,对自己的帮助会比较小,毕竟这是一个实践更重要的技能。

高性能、可扩展、高可用,这是架构设计常谈的一些方面,很多知识有实际的接触会更能理解。

其他知识

除了上面的知识,一般还建议了解一些前端知识,掌握 Nginx 等 Web Server,熟悉 Linux 下的 shell 编程、Vim 的简单使用等。

总结

通过上面的分析,你会发现,语言只是整个知识体系的一小部分。基础扎实,不断学习,有机会实践,工作 3 年左右进入大厂,月薪 3 万小 case。

02

小公司

由于各种原因,有些人可能没进入大厂,那么小公司如何能够达到月薪 3 万呢?

同样,我在网上找了一份小公司招人要求。职位:Go开发工程师,薪资范围(30k-50k)。


职责:

  1. 负责大数据平台和AI运维平台的服务端设计、研发工作, 保证服务稳定、可靠;
  2. 理解业务逻辑与分析产品需求并给出相应的技术方案;
  3. 学习研究业界前沿技术, 保持技术进步, 不断提高服务性能;
  4. 注重代码质量,有良好的自我驱动能力,工作严谨,责任感强,有协作精神;

要求:

  1. 计算机相关专业本科及以上学历,三年以上工作经验;
  2. 熟悉Linux系统及其原理, 熟悉Web服务端开发, 熟悉TCP/IP、HTTP协议以及网络编程;
  3. 熟练掌握golang等程序设计开发,有实际项目开发经验;
  4. 基础扎实, 熟悉掌握 mysql、redis等常用储存方案及基本原理,能够独立地设计合理的数据库结构;
  5. 具有分布式/高性能系统设计和开发经验者优先, 熟悉大数据hadoop相关技术经验都优先。


从这份 JD 可以看出,除了基础要求、算法方面和上面的不太一样外,其他的类似。

一般来说,大厂,特别是百度系(指初始团队从百度出来的),面试考核算法特别多。相较而言,小公司对这方面不会太看重。

然而,无论要求是什么,基础扎实永远是好的,无论是你的发展还是对你能力的提升都会很有帮助。

从上面小公司的 JD 看,似乎小公司更容易拿到 3 万以上。从这几年的行情看,情况确实如此,但这只是现金的部分。综合考虑,大公司性价比会更高。

小公司的详细情况,我就不额外重复分析了。这里对选小公司提一些建议,方便更快地实现月薪 3 万。

如何选择小公司

对于大学生,我强烈建议毕业时候要努力进入大公司。如何进入大公司,我以后有机会专门撰文分享。对于没有经历过大公司的,要给自己定一个目标,进入一家互联网大公司历练下,对自己的提升是很不一样的。

那么,如果选择小公司,我们该如何选呢?

我在创业公司摸爬滚打了快 5 年,对创业小公司有一些自己的理解。在这里给一些建议,供参考。

新人(0-2年)

如果你是一个工作年限不长的(0-2年),你进入小公司并不是选择创业,更多可能是进不去大公司。这时候,你一定要想办法了解这家公司是否注重新人的成长,公司是否会有现金流问题(可能不一定了解到,但一定要多打听这个公司的情况,否则很容易进去没多久就裁员)。这个时期的你,最关注的不应该是拿到多少钱,而是这份工作对自己的成长会有多大。进入公司后,除了工作之外,一定要注意保持“带薪学习”,否则几年后,你和同学的差距会越来越大。

老手(3年以上)

如果你工作有一定的年限了(3年以上),你选择创业公司,更多希望公司能够成功,能够实现自己财务的突破。这时,你要找一个自己看好的方向,找靠谱的团队,尤其是创始人,他代表了这个公司对这个行业的认知,能不能成功,创始人是关键。当然,进入创业公司,心里要有预期:成功的可能性是很小的。选择了创业公司,你就要做好准备,千万别只是简单的混日子,应该把自己定位成公司的核心人员,甚至进入公司管理层。关于待遇,在谈 offer 时,能多要就多要,创业公司的薪酬体系不完善,入职时的薪资很重要,切记!

总之,创业公司风险相对较大,适合想闯一闯的人。创业公司对你的要求,更多会是广度,你需要多方面提升自己,这一定程度上也是一件好事。如果你进入创业公司之前,在某个领域的深度足够,创业公司的环境对你来说是一个很好地机会,让你能够更全面的发展。同时,你要保持对技术的敏感度,别让手生!

还有更多想说的~

作为一个技术人,我们除了掌握技术本身之外,我个人强烈建议花些时间学学其他的东西,读读其他的书籍,别只是停留在技术层面,至少工作了 2、3 年之后,应该花 30% 左右的时间在其他能力的提升上,工作年限越长,这个比例应该越大。同时,应该学会总结,将自己的学习、工作等心得、体会记录下来,和别人分享。所以,强烈建议你尝试写作。

写作,教会别人,这也是掌握知识最牢固、最有效的方式,当然难度也较大,需要有毅力,要坚持!

总结

通过以上的分析,我想你应该对达到月薪 3 万以上是个什么要求有了一定的了解。这里的关键还是要自己制定目标,坚持学习,否则一切都是遥不可及!

祝你早日实现月薪 3 万!


最后附上一份 『Go语言月薪3万』思维导图。每一块会进一步细化,每一块都值得撰文细说,欢迎关注我,后续文章第一时间获得!

评论0 赞同0
  •  加载中...
codeKK

codeKK

回答于2022-06-28 14:32

谢谢邀请,

一种编程值多少钱除了自身的技术能力之外,主要还是看市场对于这种编程语言的需求,现在很多的招聘单位对于go语言的岗位上薪资都在3万以上,但是具体看细节要求除了对于这种编程语言的要求之外,对于经验以及行业经验的要求要大于对这门编程语言的需求。基本上go语言的工作经验2年以上,如果用go语言做过大型的项目,薪资就比较容易上去。

大致招聘go语言的公司主要分成几个类别,一种是大数据开发工程师,一种是区块链相关的,还有一种是物联网,还有人工智能以及算法相关职位等等,而且基本上5年以上的开发经验和java编程语言关联比较大,所以讲只靠单纯的学习一种编程语言就能拿到3万以上的工资对现在来讲不是很现实。基本上是掌握了大型的软件开发经验再加上2年以上的开发经验差不多能够拿到这个数字。

其实这就触碰到程序员基本功问题了,程序员基本功不完全是编程语言的编程能力,还需要具备一定的框架能力,以及实际项目开发经验,所以想要拿到高薪需要全方位的发展,只是掌握一种编程语言只是代表具备了一定的基础,现在简单看一个基本的招聘信息,简单做下分析。

这是要求的go语言的高级工程师,对于go语言的要求是2年以上工作经验,一直在强调数据结构和算法功底,这都不是一个编程语言所能涵盖的,而且任职的要求也不仅仅是就是用go语言进行编程,考察一个程序员的综合解决问题的能力,这就是所说程序员水平。

一个成熟优秀的程序员首先是不受到编程语言限制的,程序员水平不仅仅限制在一种编程语言身上,很多程序员学习一种新的编程语言只需要半个月就能跟上做项目,这就是一种综合能力的体现,所以真正的程序员也不会太在乎是不是要学习最新的编程语言,遇到项目需要直接上手解决问题。

可以说的再直白一点,如果是一个java高级工程师,切换到go语言去做项目,一样可以做的非常出色,优秀的程序员会脱离开编程语言本身,学的是编程思想,遇到一个并发处理的场景解决问题的方案大同小异,至于是用什么编程语言其实差异不是很大,所以能用java编程拿到高工资一样能够用别的编程语言拿到高薪水,都是一样的道理。

现在很多初学者在选择编程语言的时候犹豫非常多时间,觉得选择好一种编程语言有助于拿到高工资,C语言编程不像之前那么火热,但是掌握C语言编程的高手一样能拿到非常不错的薪水,作为一个技术人员不要把编程语言看的那么重,编程思想的锤炼才是核心。

编程能不能拿到高工资是水到渠成的事情,不是选择那种时髦的编程语言就能搞定,归根到底还是实力决定,希望能帮到你。

评论0 赞同0
  •  加载中...
kidsamong

kidsamong

回答于2022-06-28 14:32

看你的技术能力和你所在的公司项目前景

评论0 赞同0
  •  加载中...
chanjarster

chanjarster

回答于2022-06-28 14:32

简单,喝点酒,把窗帘拉下来,把门关好,睡觉

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<