# 前言
本文致力于统计Golang需要具备的技能点,让广大网友学习Golang指明方向,了解并清楚现在企业,大厂对Golang开发者的要求。
作者经历有限,也希望有更多Golang开发者提出宝贵的内容,丰富并统计企业对Golang的要求,大厂对Golang的要求。
# Go学习地址
[Golang资料补给包(满血战斗),包含文章,书籍,作者论文,理论分析,开源框架,云原生,大佬视频,大厂实战分享ppt](https://github.com/0voice/Introduction-to-Golang)
# 国内正在使用Go的大厂
* Baidu
* Alibaba
* Xiaomi
* Tencent
* 163yun - github - Netease Public Cloud
* BaishanCloud
* ByteDance
* Ciprun
* CS2C - github
* deepin
* EasyAR
* Feiyu
* FunPlus - We Create Leading Innovative and Fun Experiences Worldwide
* FutureBots
* iDCOS
* CloudBoot
* Inke - the most popular broadcast platform
* Kidswant
* KLOOK
* MegaEase
* Megvii
* Mili
* MobiExchanger - Mobile Internet advertising company
* Momenta
* MZD - github
* OPPO
* Qiniu
* Shihuo - github
* Teambition - github
* TiDB
* Udesk - github
* XiaoChuan
* Xiaoying
* Xunlei
* YeePay
* Yeeuu
* Youmi
* DiDi
* meicai - Catering supply chain service provider
* 360
* xueqiu
[世界正在使用Go的企业](https://github.com/golang/go/wiki/GoUsers#china)
# 大厂开源的Golang项目
列举一些大厂使用的微服务框架,基本上都有工具链,生成代码、docker、k8s部署文件等:
1. 字节跳动:kitex,开源
2. 滴滴:有自己的一套微服务框架,未开源
3. 腾讯:TarsGo,开源,并且是Linux基金会项目
4. B站:kratos,开源
5. 斗鱼:Jupiter,开源
6. 好未来:go-zero,开源
7. 阿里:dubbo-go,开源
8. 华为:Go Chassis,开源
9. 知乎:内部改用go重构后端
# 国内大厂招聘对Golang的要求
## 总结大厂对Golang的要求
1. 计算机科学,数学与应用数学等相关专业,本科及以上学历优先
2 熟悉Golang语言和常用框架
3. 深刻理解计算机原理,有良好的数据结构和算法基础;
4. 有些需要C/C++/Java/Go/Python/ShelI/PHP/Scala等至少—门后端编程语言
5. 有gin,gorm开发经验
6. 熟悉Go语言,了解Gevent、Tornado等异步开发框架或模型
7. 了解Go语言的运行原理,熟悉Go语言的性能调优和Bug排查手段
8. 具有大型Go项目研发经验优先
9. 深入理解Go Runtime,包括但不限于G-P-M调度模型、并发原语、内存空间结构、GC等,熟悉常见的性能问题排查及优化方案
10. 熟练使用Linux操作系统,有shell脚本编写能力
11. 熟悉网络、多进程和多线程编程
12. 熟悉TCP/IP、HTTP/HTTPS、UDPIdns等协议
13. 熟悉Web安全及预防网络攻击, 有安全平台系统开发经验, WAFIDS/IPS/DDOS等
14. 熟悉常见的消息中间件原理及适用场景,熟悉各类开源MQ组件
15. 熟悉常用的数据结构、算法和开发框架
16. 熟悉分布式,缓存,消息队列等机制
17. 熟悉常用的SQL、熟悉MySQL数据库设计、查询性能优化和存储优化方面经验。随时贯彻最优化开发的思想
18. 熟悉Redis/Memcached,local cache缓存框架技术
19. 了解主流开源NoSQL系统(Memcached、Redis、MongoDB等)使用和原理,有Redis或其他缓存系统大规模使用经骚
20. 熟悉 Nginx,有大规模在线服务设计和开发经验优先
21. 有Nginx模块开发或Lua模块开发经验
22. 熟悉Socket和多线程编程
23. 熟悉redis等kv存储优先
24. 熟练掌握mc等基础组件技术,了解ES,TIDB,Clickhouse,Greenplum
25. 熟练掌握kafka,rabbitMq,RocketMQ等至少—种消息队列,有对应的应用经验
26. 对message queue,zookeeper等中间件有了解更好;
27. 熟练运用存储、队列、缓存、网络、大数据处理等技术解决问题;
28. 有自动化部署,自动化运维等领域经验,有熟悉微服务框架,对组件化、插件化改造过程
29.掌握流媒体相关协议和标准,如RTMP、FLV、Mp4等,有CDN开发经验者优先。
30. 有微服务开发经验,熟悉 Thrift、Protocol Buffers, 在开源社区有作品,或向社区提交过bug 或 patch
31. 熟悉互联网常见基础设施的原理与应用,包括但不限于Dns/Lvs/ETCD等
32. 有分布式,高可用,高并发服务开发经验,对数据库,网络等基础设施如何应对高并发挑战有很好理解
请问你所在公司对Golang的要求有哪些?欢迎在评论区贴出来
优先考虑
1. 有ERP、零售进销存、SaaS产品开发经验者优先
2. 有国际化产品、电商系统研发经验者优先
3. 带领过小到中型分布式系统从无到有设计,实现和演进,或者是大型系统中某个子系统的负责人或主程优先。
4. 熟悉容器和云原生技术,如Docker、K8S、CNCF项目等,深入源码者优先。
5. 有微服务治理的相关项目经验优先。
6. 有C++开发经验转Golang者优先。
7. 从事im、实时音视频、cdn、熟悉nginxifmpeg等相关经验或项目者优先
8. 具备较强的逻辑思维能力,表达能力,团队协作能力
9. 有大数据处理经验者优先
10. 有高并发系统设计经验者优先
11. 有互联网工作经验者优先
12. 有hadoop/spark/flink/kafaka等大数据处理工具使用经验者优先;
13. 具备推荐系统、广告系统、搜索系统后台开发经验者优先,有推荐算法相关经验者优先。
14. 研究过优秀开源软件的源码并有心得者优先;有开源项目者优先;
15. 熟悉结构化与NOSQL数据库的原理,使用场景以及限制,有PostgreSq|iMongoDB|Elasticsearch/Redis等应用经验优先。
16. 参与过大型复杂分布式互联网系统的设计、架构经验者优先;
有疑问加站长微信联系(非本文作者))