Go语言学习路线 - 3.准备篇:打造个人专属的学习环境

简介: 终身成长 一词已被广泛认可,意味着我们将比前人花费更多的时间在学习成长中,才能将个人的认知跟上社会的步伐。且不论是否应该放慢脚步,但我们大部分人不得不跟随社会的节奏,持续学习并提高自己。

为何我们需要持续学习

终身成长 一词已被广泛认可,意味着我们将比前人花费更多的时间在 学习成长 中,才能将个人的认知跟上社会的步伐。且不论是否应该放慢脚步,但我们大部分人不得不跟随社会的节奏,持续学习并提高自己

相信有不少朋友跟我一样,在学习的过程中经常会 半途而废。那么我在这里分享一些方法和技巧(包括但不仅限于Go语言),希望能给大家带来一些启发。

这部分内容依旧会带有一些强烈的个人主观色彩,大家按需选用~

心理建设

在正式开始聊工具和方法前,我先聊聊自己学习前的心理建设。这一点看过去 很“软” ,但我吃过很多次亏:

与其在学习的过程中,给自己找100个理由放弃,还不如在一开始就否定这些理由。

以Go语言为例,常见的放弃理由如下:

  • Go真的能长期“火”下去吗?
  • Go的就业面不广,是否另选其它编程语言
  • 学了基础的Go语法后,没有实践的机会
  • 一段时间提升很不明显,感觉什么都懂、但什么都不精通

我就是抱着这样的想法,走走停停,错过了很多快速提升的时期;不过也是由于这段经历,让我对许多朋友的想法有切身体会。今天我不会对着上面的问题一一回复,只强调一个重点:

学技术带着功利心(跳槽、升职)是正常且必要的,毕竟只有解决问题的技术才是有价值的。Go语言是非常依赖“云原生”这一体系的:它实现了云原生的基石-Kubernetes及其余组件,也依赖云原生、提供了非常优雅的微服务解决方案。如今公有云和私有云的建设如火如荼,注定是一个不可逆的过程,所以Go语言是一个需求很大的方向。

学习环境的准备

下面,正式进入准备的细节:

操作系统

尽管Go语言支持跨操作系统,但我还是强烈建议大家使用Mac OS,关键在于 提效

既然可以花7分力气做一件事,为什么需要10分呢?

不排除后期Windows系统越来越完善,但目前来看,所有的大厂提供给开发者都是Macbook,这点就不言而喻了吧。如果你有在windows/Linux环境上高效开发的经验,欢迎与大家分享~

Go语言版本

官网任意挑选。

如果公司没有要求,那就直接上最新的版本吧~

如果公司还在用1.13之前的版本,可以尝试着跟领导沟通,升级到较新的版本。

使用低版本会不断发现不兼容某些开源库的情况,比如有些依赖库引入了context的特性

代码编辑器

强烈建议准备 VSCode + Goland !对,不用二选一,而是两个都要!

  • VSCode对各类语言、组件兼容都很好,面对轻量级的开发时完全可以胜任

  • Goland在面对重量级项目时效果很棒,尤其是对重构项目时,效率能提升一大截

这里提供两个官网: VSCode / Goland

这两款软件的配置,前期尽量用默认的即可。

而如果有大量私人化的配置,记得将整个配置方案导出并保存。

其余提效工具

  • git 不要把git单纯地当作公司的版本管理工具,它更是你私人代码的管理工具
  • iTerm2 + Oh My Zsh 这是在Mac下我非常喜欢的一套终端配置方案,大家可以借鉴
  • 笔记类:这块大家按自己的习惯选用,常见的如 印象笔记、Microsoft TODO、typora、幕布、系统自带的笔记本等
  • 上网助手:技术渠道有不少是在国外的网站上,不清楚具体访问方法的话,可以多和周围的开发者交流

欢迎大家留言谈谈自己最喜爱的工具,分享给我~

Markdown技术写作

作为一个技术工作者,文档是一个必备技能。我们不应把写文档当作一个负担,大部分的时候它是一种沟通与协作上的提效工具。

这里不得不提一下Markdown,它的语法简单,产出的文档样式也满足基本的场景。大家可以根据这个链接或者自行搜索教程。

学习Markdown就是一个很小且价值很高的技术点,可以拿这个作为练手,先使用起来。

补充一句:Markdown在社区中的支持度不同,但基本大同小异。为了兼容性,少用html的相关特性。

Markdown尽管简单,也有很多语法点,建议大家分阶段使用:

  1. 标题、粗体、代码、链接、列表
  2. 图片、引用、分隔线、表格
  3. 其它

第一阶段的5种语法已经可以满足日常的文档协作,第二阶段的特性可以让文档更具专业性,而其余特性完全可以在使用到时再去查询。

切忌一次性想掌握全部,分阶段使用才是最有效的学习路径。

这里推荐一个我常用的本地Markdown文档写作工具 - typora 。尽管有Web文档工具支持在线编辑,但我更喜欢本地编辑后再复制过去,这样也方便留档。

个人博客系统

为什么要玩博客

  1. 根本价值 - 作为个人的知识输出,沉淀到文档
  2. 附带价值 - 面试前后,让心仪的公司更好地了解你
  3. 持续价值 - 形成 正反馈,持续激励自我

有些人玩博客会将价值颠倒,比如将面试筹码作为根本价值,那么这个技术博客就会明显变味。

搭建教程

搭建博客系统的方法有很多,我这边推荐一个 hexo + github pages 的。

这种博客的优点在于2点:

  1. 发布非常方便、非常方便、非常方便!
  2. 原始文档为Markdown,可在本地编辑、存档

写博客的Tips

  1. 降低“成本” - 让一篇博客从创作到发布变得简单,这点比较依赖博客系统,例如上面的 hexo+github pages
  2. 分享作品 - 分享个人的文章,有利于形成“正反馈”;对于比较腼腆的朋友,可以在小规模的圈子中先进行尝试
  3. 多元化 - 博客不仅仅停留在技术上,工作上的心得或者生活上的感悟,都可以写进来
  4. 适当拆分 - 不要过分追求长篇大作或者系列形式的文章,小步快走 在这里也适用

总结

打造个人专属的学习环境,我认为主要包括三块:

  1. 个人心态 - 坚持
  2. 开发环境 - 快速便捷
  3. 正反馈路线 - 文档博客

当然,你可以根据实际情况,添加一些个人专属的内容:

  • 如果你是windows用户,你需要搞一套虚拟机
  • 如果你已有一套成熟的文档系统,那就继续使用
  • 如果你想快速地了解Go而不计划深入,那么没必要过于完善学习环境

希望大家在 心理环境 都做好充分的准备后,再去走这条长期的技术学习路线,并能坚持下来。

目录
相关文章
|
6天前
|
存储 JSON 监控
Viper,一个Go语言配置管理神器!
Viper 是一个功能强大的 Go 语言配置管理库,支持从多种来源读取配置,包括文件、环境变量、远程配置中心等。本文详细介绍了 Viper 的核心特性和使用方法,包括从本地 YAML 文件和 Consul 远程配置中心读取配置的示例。Viper 的多来源配置、动态配置和轻松集成特性使其成为管理复杂应用配置的理想选择。
23 2
|
5天前
|
Go 索引
go语言中的循环语句
【11月更文挑战第4天】
13 2
|
5天前
|
Go C++
go语言中的条件语句
【11月更文挑战第4天】
16 2
|
8天前
|
程序员 Go
go语言中的控制结构
【11月更文挑战第3天】
85 58
|
7天前
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。
|
5天前
|
Go
go语言中的 跳转语句
【11月更文挑战第4天】
13 4
|
4天前
|
JSON 安全 Go
Go语言中使用JWT鉴权、Token刷新完整示例,拿去直接用!
本文介绍了如何在 Go 语言中使用 Gin 框架实现 JWT 用户认证和安全保护。JWT(JSON Web Token)是一种轻量、高效的认证与授权解决方案,特别适合微服务架构。文章详细讲解了 JWT 的基本概念、结构以及如何在 Gin 中生成、解析和刷新 JWT。通过示例代码,展示了如何在实际项目中应用 JWT,确保用户身份验证和数据安全。完整代码可在 GitHub 仓库中查看。
18 1
|
8天前
|
Go 数据处理 API
Go语言在微服务架构中的应用与优势
本文摘要采用问答形式,以期提供更直接的信息获取方式。 Q1: 为什么选择Go语言进行微服务开发? A1: Go语言的并发模型、简洁的语法和高效的编译速度使其成为微服务架构的理想选择。 Q2: Go语言在微服务架构中有哪些优势? A2: 主要优势包括高性能、高并发处理能力、简洁的代码和强大的标准库。 Q3: 文章将如何展示Go语言在微服务中的应用? A3: 通过对比其他语言和展示Go语言在实际项目中的应用案例,来说明其在微服务架构中的优势。
|
8天前
|
Go 数据处理 调度
探索Go语言的并发模型:Goroutines与Channels的协同工作
在现代编程语言中,Go语言以其独特的并发模型脱颖而出。本文将深入探讨Go语言中的Goroutines和Channels,这两种机制如何协同工作以实现高效的并发处理。我们将通过实际代码示例,展示如何在Go程序中创建和管理Goroutines,以及如何使用Channels进行Goroutines之间的通信。此外,本文还将讨论在使用这些并发工具时可能遇到的常见问题及其解决方案,旨在为Go语言开发者提供一个全面的并发编程指南。
|
6天前
|
Go 调度 开发者
探索Go语言中的并发模式:goroutine与channel
在本文中,我们将深入探讨Go语言中的核心并发特性——goroutine和channel。不同于传统的并发模型,Go语言的并发机制以其简洁性和高效性著称。本文将通过实际代码示例,展示如何利用goroutine实现轻量级的并发执行,以及如何通过channel安全地在goroutine之间传递数据。摘要部分将概述这些概念,并提示读者本文将提供哪些具体的技术洞见。