共计 1018 个字符,预计需要花费 3 分钟才能阅读完成。
给 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 起源于国外,大部分优秀资源都是英文的;国内虽然有翻译,但水平因人而异,很容易在 知识传播 中造成误解。鉴于写的代码本身就是英文,建议有志提升代码能力的朋友,还是需要了解一定的 程序员英语。
这里,提供三个样例链接:
官方博客
Go2.0
gopheracademy
共同进步
最近互联网行业裁员风波迭起,个人觉得,这是行业开始从 劳动密集型 过渡到 技术密集型 的公司了。如何保持自己的 技术竞争力,是一个值得每个从业者深思的事情。