编者按
最近很多人都看到了郝林通过大病筹款平台轻松筹发起筹款的事情,小编受作者所托,感谢开发者们在他生病期间的经济与精神上的支持和鼓励。
关于郝林老师的近况及技术专栏的说明
目前郝林病情暂时稳定,并已决定把筹集的 10 万元捐款退回,接下来将会通过在极客时间写专栏筹集医疗开支,极客邦科技也将从企业公益基金中拿出 10 万帮助其治疗,如果你喜欢这个专栏,请订阅并推荐给需要的人,这是对郝林老师最好的鼓励。
近日,Hacker News 发布了 2018 年 7 月的编程语言招聘趋势排行榜,其中,Go 语言已经反超 Java 进入了前三名的行列。从浅绿色的 Go 语言走势图可以看出来,企业对于 Go 语言的采用情况在逐年上升。
从公司角度看,许多大厂都已经开始拥抱 Go 语言,包括以 Java 打天下的阿里巴巴,更别提深爱着 Go 语言的滴滴、今日头条、小米、奇虎 360、京东等明星公司。同时,创业公司诸如轻松筹、快手、知乎、探探、美图、猎豹移动也钟爱 Go 语言,因为 Go 语言具有入门快、程序库多、运行迅速等特点,也比较适合快速构建互联网软件产品。
说到 Go 语言的应用场景,它基本可以用在所有对于性能有较高要求的系统中,比如分布式系统、网络编程、高并发系统、服务端编程。目前流行的 Docker、Kubernetes、istio、nsp、etcd 等开源项目都是基于 Go 语言的。
对某种语言的需求也同时意味着人才的需求,2018 年的春招刚刚过去,Go 语言开发工程师的薪水也随之水涨船高。腾讯、阿里巴巴、今日头条等热门公司甚至一度在招聘条件中特别标注了掌握 Go 语言优先考虑的字样。
对于 Go 语言来说,这样的火热程度仅仅是一个开始。去年是 Go 语言的 10 周年,Go 语言之父,Google 大神 Rob Pike 曾在自己的博客中说道:“Go 已经成为云计算时代的标准语言,它已经逐渐成为这个行业的主导者,特别是在中国。”七牛云 CEO 许式伟就曾一度预测:Go 是互联网时代的 C 语言。
Go 语言俨然已经成为互联网时代的 C 语言,它融合了 C 语言的小巧和 Python 语法简洁的优势,性能极高,使用 Go 语言实现一套完整的 MVC 开发框架,集成 HTTP Server 的同时,整个框架的核心代码不会超过 300 行,从这样的案例中,你就可以实际感受到 Go 的语言描述效率之高。
2015 年初,我开始帮助公司招聘 Go 程序员,我面试过的 Go 程序员已经有几百个,虽然一场面试的交流内容远不止技术能力这种硬技能,更别提只限于一门编程语言,但就事论事,在所有的应聘者当中,真正掌握 Go 语言基础知识的比例恐怕超不过 50%,而真正熟悉 Go 语言高阶技术的比例也不超过 30%。我们不能因为希望快速掌握一门语言,而忽略了稳扎稳打建立一个牢固知识体系的重要性。
我是从 2012 年底开始关注 Go 语言的,不敢自称布道师,但算得上国内比较早期的使用者。我希望通过我多年对 Go 语言的研究、实战总结、还有大量一线的面试经验,帮助 Go 语言爱好者以一种比较友好的路径去精通这门语言,当然在应聘 Go 语言相关岗位的时候,也可以更加游刃有余。
我是谁?
我是郝林,是 GoHackers 技术社群发起人,畅销榜书籍《Go 并发编程实战》的作者,前轻松筹大数据负责人。13 年软件开发从业经验,做过银行、电信软件和互联网社交产品。从 2012 年底开始关注 Go 语言,对 Go 语言和 Docker 技术都情有独钟,是 Go 语言的忠实拥护者。
我希望本专栏能帮助或推动你去做更多的实践和思考,当然我也会通过先点、后线、再面的方式帮你占领一个个重要的阵地。别的不敢说,如果你认真地跟我一起走完这个专栏,那么基本掌握 Go 语言是肯定的。为什么说基本掌握?因为软件技术,尤其是编程技术,必须经过很多的实践甚至历练才能完全掌握,这需要时间而不能速成。不过,专栏里的几十篇文章足以成为你学习 Go 语言最重要的敲门砖和垫脚石。
课程介绍
在这个专栏中,我会为你梳理出知识脉络,把 Go 语言的精华共分成 5 大模块,共 36 篇 精拆细说。
第一模块基础概念: 讲述 Go 语言基础中的基础,包括一些基本概念和运作机制。它们都应该是你初识 Go 语言时必须知道的,同时也有助于你理解后面的知识。
第二模块数据类型和语句:Go 语言中的数据类型大都是很有特色的,你只有理解了它们,才能真正玩转 Go 语言。我将和你一起与探索它们的奥妙。另外,我也会一一揭示怎样使用各种语法和语句操纵它们。
第三模块 Go 程序的测试: 很多程序员总以为测试是另一个团队的事情,其实不然。单元测试甚至接口测试其实都应该是程序员去做的,并且应该受到重视。在 Go 语言中怎样做好测试这件事?我会跟你说清楚、讲明白。
第四模块标准库的用法: 虽然 Go 语言提供了自己的高效并发编程方式,但是同步方法依然不容忽视。这部分还涉及了字节和字符问题、OS 操控方法和 Web 服务写法等,这些都是我们在日常工作中很可能会用到的。
第五模块 Go 语言拾遗: 这部分将会讲述一些我们使用 Go 语言做软件项目的过程中很可能会遇到的问题,至少会包含两篇文章,是附赠给广大 Go 语言爱好者的。
有疑问加站长微信联系(非本文作者)