在大公司做Go开发需要会哪些内容

 go教练   2019-08-02 15:31   57 人阅读  0 条评论

随着go语言的普及越来越多的大小公司开始运用这款编程语言,那你知道在大公司开发Go编程需要会哪些内容吗?在大公司做做Go开发的月薪收入是多少?

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

岗位职责:

参与滴滴基础服务平台的设计、研发工作,提升滴滴产品稳定性;

与产品经理尝试沟通产品需求;

进行相关产品的技术文档编写,方案设计;

学习研究业界先进技术,保持技术进步;

任职要求:

本科及以上学历,计算机相关专业,两年以上服务端研发经验;

深入理解计算机原理,有扎实的数据结构和算法基础;

深入理解linux系统及其原理,熟悉TCP/IP、HTTP协议以及网络编程;

良好的编码和文档习惯,对代码美感的追求孜孜不倦;

精通Go/C/C++/Python等至少一门语言,有Go开发经验者优先;

熟悉常用的sql、nosql数据库原理,阅读和理解优秀的开源系统代码;

具有分布式系统设计和开发经验者优先。

我们主要关注任职要求。

 微信截图_20190612092925.png

硬性条件

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

计算机基础

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

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

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

 微信截图_20190802112920.png

良好的习惯

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

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

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

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

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

精通一门语言

 微信截图_20190802112940.png

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

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

Go 语言基本功。这方面相对来说是比较容易的,看书+项目实战,基本就没问题了;

核心特性的原理。比如:GMP 理论,slice 和 map 等数据结构的实现,内存分配策略,GC 策略等。这些知识我们可以通过一些资料和书籍获得,目前 Go 语言中文网就有这方面较多的资料,https://studygolang.com/subject/3。另外,如果能力够,可以阅读相关源码,实际来说也应该尝试啃啃,可以结合着一些资料来啃;

架构方面的知识。现在微服务架构很火,需要理解、掌握微服务架构的知识。掌握一些优秀的架构方案,有实际的架构经验;

问题排查知识和性能调优经验。CPU、内存问题排查,垃圾回收问题排查等,runtime 涉及到的调试工具熟练掌握,pprof 工具熟练掌握,有实际的性能调优经验;

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。

以上就是今天给大家介绍的在大公司做Go开发需要会哪些内容,如果你还想了解更多关于go语言的知识技巧,可以继续关注我们http://www.fastgolang.com

本文地址:http://fastgolang.com/124.html
版权声明:本文为原创文章,版权归 go教练 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?