5

给 Go 语言学习者的三点建议


Golang 被称为 云时代的编程语言 ,周围越来越多的人开始接触 Golang 。本人从事开发已近6年,写了3年时间的 Golang 的服务端和中间件的相关程序,也面试了不少面向 Golang 的开发者,有些话想和大家分享下。总结起来,有以下三点建议:

打好系统基础

很多开发者只是为了写 Go 而写代码,很快就会遇到技术上的瓶颈,就找各类 框架开源库 来解决问题,解决之后又抛到脑后。一旦技术有变,又疲于搜索他人的解决方案。

我个人认为, Golang 是一门很 高层 的语言。这里说的 高层,是指其 API 封装了系统基础,尤其是以下三块:

  • 操作系统
  • 网络
  • 算法

对应地举三个面试时的问题:

  • Go 语言是怎么实现跨平台的?
  • Go 里怎么处理 http 长连接?
  • 你了解 Go 里的 map 是基于什么算法结构的?

有不少面试者,认为掌握这些知识没有必要,搜索一下就知道了(前期我也是这么认为的)。但随着工作经验地积累,越发感觉这些系统级知识的重要性。了解底层,才能写出最合适的实现方法。

再掌握一门相对底层的开发语言

这里,我个人比较推荐 C/C++Java,是真正意义上的 工业级语言,已大规模地应用。

其中,C/C++ 偏向于操作系统底层(Unix/Linux),会让我们对 系统底层原理与资源分配 有更好地了解;而 Java 会让你了解 面向对象 的强大,也是实践 各类算法 的很好选择。

很多开发者将自己闭塞于 Go 语言的小圈子里,遵循公司或老员工的规则来写代码。本质上来说, Golang 是非常灵活的,所谓的 Best Practice 因人而异。盲目遵循他人的规则,很容易抑制了个人的思考。这时,学一门工业级的语言,他山之石,可以攻玉

持续从一手资料里学习

Golang 的最大优势,在于它能高效地进行编程、快速地实现需求。那么,这就令开发者节省了大量时间。如果这些时间花在学习上,那么就会不断提升个人能力,也就有更多的空闲时间。

有不少人跟我反馈,找不到好的学习资源,效率相对较低。这里提一下,Golang 起源于国外,大部分优秀资源都是英文的;国内虽然有翻译,但水平因人而异,很容易在 知识传播 中造成误解。鉴于写的代码本身就是英文,建议有志提升代码能力的朋友,还是需要了解一定的 程序员英语

这里,提供三个样例链接:

共同进步

最近互联网行业裁员风波迭起,个人觉得,这是行业开始从 劳动密集型 过渡到 技术密集型 的公司了。如何保持自己的 技术竞争力 ,是一个值得每个从业者深思的事情。


Junes
24 声望3 粉丝

A Growing Programmer