“程”风破浪的开发者|我是如何快速学 Go 的?GoFrame 只用了 3 天时间就从小白变大佬?
先说结论
我花了半个月时间学习 Go,就开发了商业项目,抗住了并发考验,并且成功被 Go 圈粉。
年初入职新公司后,花了 3 天时间,学习 GoFrame,保质保量提前完成了任务,在项目复盘会上成了同事口中的"大佬"。
我是如何做到的呢?
如何快速学习一门新语言?
我之前有写过一篇文章:# 给想转Go或者Go进阶同学的一些建议,没看过的同学可以先补补课,有个整体的认识。
核心就三点:
多动手
不依赖教程的多动手
带着问题的多动手
我在初学 Go 的时候,基于之前学习编程语言的经验告诉我:
入门阶段先不要给自己提出很多问题,也不要对自己要求过高。
第一阶段就是多动手
手撕官方文档,把文档中的知识点都手敲几遍,可以有不懂不理解的,这很正常,但是一定要手敲。
而且要尽可能多的手敲,盲敲,不看教程的敲代码。
第二阶段不依赖文档
自己通过思维导图或者更简单的方式,列出今天,或者这一个小时内要夯实的知识点:
第一步:只列出知识点,最多写出实现思路,不要写代码。
第二步:关闭教程和文档,自己去实践,手敲实现一个个知识点和小的需求。
期间如果碰到了问题,也不要去看当时学习的知识点,而是通过查看报错,或者 ide 的错误提示去尝试自己解决问题。
第三阶段带着问题去学习
当我们可以不依赖教程就能实现需求之后,这时候才建议大家带着问题去学习,去思考。
如果入门的第一阶段就带着问题去思考,很容易钻进牛角尖;更可能因为想不清楚某个知识点而烦躁易怒,如果因为这些小问题而“被劝退”可就太亏了。
所以,一定要分阶段进行,每个阶段做每个阶段的事情;每个阶段有每个阶段关注的重点问题。
GoFrame 从小白到“大佬”
我在学习 Go 语言的时候,和大多数同学一样,是使用的 Gin+gorm 完成的第一个入门项目开发。
年初换工作后,新公司用的 GoFrame 框架,开始接触时也是一脸懵啊,因为公司项目紧,也没有时间像上面介绍的一样,能有充足的时间分三个阶段去学习,只能一边查前辈们写的代码,一边实现新的需求。
看前辈的代码很头大,笔记做的很辛苦,效率也并不高。
如果你也有遇到类似的问题,我建议你这么做:
仍然是以官方文档为重点,带着项目中的问题有针对性的查文档。同时再花时间从头到尾系统的阅读官方文档。
以我的亲身经历举例:
当时入职后,公司给了我 2 天的时间熟悉项目需求、已有代码和架构设计,从第三天就开始参与需求评审做项目了。
前两天看前辈的代码可以说是一脸懵,类似的需求,每个人的实现方式都不一样,团队内并没有统一的代码规范。
我也和老大有吐槽过,老大给我的建议是:希望我能输出规范的代码,形成规范,之后让大家按照我的标准写。
好吧,压力和责任更大了:
于是我白天积极的和同事确定不清楚的需求,沟通之前的实现细节,为什么这么写等等问题。
晚上回到家带着疑问去刷官方文档,刷完对应的知识点后整理笔记,这些笔记不怕细碎,只要是对实现需求有帮助,能提高我工作效率的都会记录。(比如,我能复用的代码,方便我快速查找的代码,没有理解透彻的代码等等我都会记录到笔记,并且记录成 todolist)
细碎的知识点如果有不理解的,我也会先放放。我又花了大概 2 个晚上的时间,从头到尾刷官方文档,比较深刻的理解框架了的设计思想和最佳实践。
把细碎的知识点给串起来,这样就有了整体的认识;并且有的时候还会和之前的经验做对比,比如这篇有感而发的文章:# 什么时候用 Goroutine?什么时候用 Channel?对很多朋友也有帮助,已经收到了 120 多个点赞。
就这样,我花了大概 3 天的时间,带着问题系统的刷了官方文档,保质保量的完成了项目需求。
并且在提测之后 0 BUG。
后来项目复盘时,同事还说我是"大佬",一看就是很有经验的。(其实当时的自己并没有 GoFrame 的经验,并且对项目理解的也不深入。只是找对了方法,并且愿意花时间刻意练习,去实践去执行,而已。)
总结
不管你是想快速学 Go,还是想学其他语言;不管你是有充足的时间去学习,还是像我学习 GoFrame 时一样时间紧迫,关键的问题都是找到合适的方法,不断去实践,多动手敲代码。
碰到理解不了的问题也不要懊恼烦躁,可以先列出 todolist,放到后面解决。
可能在你花了更多的时间,比较系统的学习之后,之前困扰你的问题都不是问题了。
所以:多动手,刻意练习,坚持实践。才是快速学习,从小白到"大佬"的王道。
一起学习,升级打怪
公众号:程序员升级打怪之旅
微信号:wangzhongyang1993
版权声明: 本文为 InfoQ 作者【王中阳Go】的原创文章。
原文链接:【http://xie.infoq.cn/article/d65a9add42eaa8b4e47ee62c6】。文章转载请联系作者。
评论