写点什么

“程”风破浪的开发者|我是如何快速学 Go 的?GoFrame 只用了 3 天时间就从小白变大佬?

作者:王中阳Go
  • 2022-10-24
    北京
  • 本文字数:1755 字

    阅读完需:约 6 分钟

“程”风破浪的开发者|我是如何快速学 Go 的?GoFrame 只用了 3 天时间就从小白变大佬?

先说结论

我花了半个月时间学习 Go,就开发了商业项目,抗住了并发考验,并且成功被 Go 圈粉。


年初入职新公司后,花了 3 天时间,学习 GoFrame,保质保量提前完成了任务,在项目复盘会上成了同事口中的"大佬"。


我是如何做到的呢?

如何快速学习一门新语言?

我之前有写过一篇文章:# 给想转Go或者Go进阶同学的一些建议,没看过的同学可以先补补课,有个整体的认识。


核心就三点:


  1. 多动手

  2. 不依赖教程的多动手

  3. 带着问题的多动手



我在初学 Go 的时候,基于之前学习编程语言的经验告诉我:


入门阶段先不要给自己提出很多问题,也不要对自己要求过高。

第一阶段就是多动手

手撕官方文档,把文档中的知识点都手敲几遍,可以有不懂不理解的,这很正常,但是一定要手敲。


而且要尽可能多的手敲,盲敲,不看教程的敲代码。

第二阶段不依赖文档

自己通过思维导图或者更简单的方式,列出今天,或者这一个小时内要夯实的知识点:


  1. 第一步:只列出知识点,最多写出实现思路,不要写代码。

  2. 第二步:关闭教程和文档,自己去实践,手敲实现一个个知识点和小的需求。


期间如果碰到了问题,也不要去看当时学习的知识点,而是通过查看报错,或者 ide 的错误提示去尝试自己解决问题。

第三阶段带着问题去学习

当我们可以不依赖教程就能实现需求之后,这时候才建议大家带着问题去学习,去思考。


如果入门的第一阶段就带着问题去思考,很容易钻进牛角尖;更可能因为想不清楚某个知识点而烦躁易怒,如果因为这些小问题而“被劝退”可就太亏了。


所以,一定要分阶段进行,每个阶段做每个阶段的事情;每个阶段有每个阶段关注的重点问题。

GoFrame 从小白到“大佬”

我在学习 Go 语言的时候,和大多数同学一样,是使用的 Gin+gorm 完成的第一个入门项目开发。


年初换工作后,新公司用的 GoFrame 框架,开始接触时也是一脸懵啊,因为公司项目紧,也没有时间像上面介绍的一样,能有充足的时间分三个阶段去学习,只能一边查前辈们写的代码,一边实现新的需求。


看前辈的代码很头大,笔记做的很辛苦,效率也并不高。


如果你也有遇到类似的问题,我建议你这么做:


仍然是以官方文档为重点,带着项目中的问题有针对性的查文档。同时再花时间从头到尾系统的阅读官方文档。


以我的亲身经历举例:


当时入职后,公司给了我 2 天的时间熟悉项目需求、已有代码和架构设计,从第三天就开始参与需求评审做项目了。


前两天看前辈的代码可以说是一脸懵,类似的需求,每个人的实现方式都不一样,团队内并没有统一的代码规范。


我也和老大有吐槽过,老大给我的建议是:希望我能输出规范的代码,形成规范,之后让大家按照我的标准写。


好吧,压力和责任更大了:


  1. 于是我白天积极的和同事确定不清楚的需求,沟通之前的实现细节,为什么这么写等等问题。

  2. 晚上回到家带着疑问去刷官方文档,刷完对应的知识点后整理笔记,这些笔记不怕细碎,只要是对实现需求有帮助,能提高我工作效率的都会记录。(比如,我能复用的代码,方便我快速查找的代码,没有理解透彻的代码等等我都会记录到笔记,并且记录成 todolist)

  3. 细碎的知识点如果有不理解的,我也会先放放。我又花了大概 2 个晚上的时间,从头到尾刷官方文档,比较深刻的理解框架了的设计思想和最佳实践。

  4. 把细碎的知识点给串起来,这样就有了整体的认识;并且有的时候还会和之前的经验做对比,比如这篇有感而发的文章:# 什么时候用 Goroutine?什么时候用 Channel?对很多朋友也有帮助,已经收到了 120 多个点赞。


就这样,我花了大概 3 天的时间,带着问题系统的刷了官方文档,保质保量的完成了项目需求。


并且在提测之后 0 BUG。



后来项目复盘时,同事还说我是"大佬",一看就是很有经验的。(其实当时的自己并没有 GoFrame 的经验,并且对项目理解的也不深入。只是找对了方法,并且愿意花时间刻意练习,去实践去执行,而已。

总结

不管你是想快速学 Go,还是想学其他语言;不管你是有充足的时间去学习,还是像我学习 GoFrame 时一样时间紧迫,关键的问题都是找到合适的方法,不断去实践,多动手敲代码。


碰到理解不了的问题也不要懊恼烦躁,可以先列出 todolist,放到后面解决。


可能在你花了更多的时间,比较系统的学习之后,之前困扰你的问题都不是问题了。


所以:多动手,刻意练习,坚持实践。才是快速学习,从小白到"大佬"的王道。

一起学习,升级打怪

公众号:程序员升级打怪之旅


微信号:wangzhongyang1993


GitHub:https://github.com/wangzhongyang007

发布于: 刚刚阅读数: 4
用户头像

王中阳Go

关注

公众号:程序员升级打怪之旅 2022-10-09 加入

微信:wangzhongyang1993

评论

发布
暂无评论
“程”风破浪的开发者|我是如何快速学 Go 的?GoFrame 只用了 3 天时间就从小白变大佬?_王中阳Go_InfoQ写作社区