如何快速学一门新语言?关键问题是什么意思_一门新语种app

Php (60) 2023-03-24 21:04

大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。

先说结论

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

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

我是如何做到的呢?

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

我认为核心就三点:

第一:多动手

第二:不依赖教程的多动手

第三:带着问题的多动手

如何快速学一门新语言?关键问题是什么意思_一门新语种app_https://bianchenghao6.com/blog_Php_第1张

咱们具体讲讲

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

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

第一阶段就是多动手

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

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

第二阶段不依赖文档

自己通过思维导图或者更简单的方式,比如列出todolist,集中1小时的时间强迫自己独立完成知识点的复现。

具体的操作方式是这样的:

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

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

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

第三阶段带着问题去学习

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

对于初学者来说,如果入门的第一阶段就带着问题去思考,很容易钻进牛角尖;更可能因为搞不清楚某个知识点而烦躁沮丧,如果因为这些原因“被劝退”可就太亏了。

总结

所以,学习一定要分阶段进行。

每个阶段做每个阶段的事情,每个阶段有每个阶段关注的重点。

不要胡子眼睛一把抓,贪多嚼不烂。

初识GoFrame

下面再分享一下学GoFrame从小白到“大佬”的故事。

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

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

当时很好奇,公司为什么选择GoFrame框架。

问过同事才知道,原来公司之前全是PHPer,经过充分的调研发现:PHP转Go最合适的框架就是GoFrame。

我在查文档的时候还看到了这么一条评论:

如何快速学一门新语言?关键问题是什么意思_一门新语种app_https://bianchenghao6.com/blog_Php_第2张

好吧,因为我之前做了几年PHP,也非常喜欢Laravel框架,听到这个说法,还是有些窃喜的,感觉对于PHPer来说,学习GoFrame的成本应该不高。

如何快速学一门新语言?关键问题是什么意思_一门新语种app_https://bianchenghao6.com/blog_Php_第3张

但是,我看公司前辈的代码很头大,学习笔记做的很辛苦,效率也并不高。

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

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

以我的经历举例:

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

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

如何快速学一门新语言?关键问题是什么意思_一门新语种app_https://bianchenghao6.com/blog_Php_第4张

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

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

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

  2. 晚上回到家带着疑问去刷官方文档,刷完对应的知识点后整理笔记,这些笔记不怕细碎,只要是对实现需求有帮助,能提高我工作效率的都会记录。

todolist

记录todolist是个非常好的习惯,和大家重点分享一下:

  1. 比如,能复用的代码,方便我快速查找的代码,没有理解透彻的代码等等,我都会记录到笔记,并且记录成todolist,最后统一花时间逐个解决。

  2. 细碎的知识点如果有不理解的,我也会先放放,不用因为一两个不懂的知识点影响整体的学习进度。

  3. 我又花了大概两个晚上下班后的时间,熬夜刷文档,从头到尾刷官方文档,比较深刻的理解框架了的设计思想和最佳实践。

如何快速学一门新语言?关键问题是什么意思_一门新语种app_https://bianchenghao6.com/blog_Php_第5张

  1. 最后花了1个晚上的时间,把细碎的知识点给串起来,这样就有了整体的认识。

并且有的时候还会和之前的经验做对比,比如我有整理过一篇有感而发的文章:《为什么我觉得GoFrame的garray比PHP的array还好用?》,已经收到了 120 多个赞。

就这样,我花了大概三天的时间,带着问题系统的刷了官方文档,保质保量的完成了项目需求,分享了我觉得比较优雅的实现方式(其实就是通过官方文档学的)。

并且在提测之后,0 BUG。

后来项目复盘时,同事还说我是"大佬",一看就是很有经验的。

如何快速学一门新语言?关键问题是什么意思_一门新语种app_https://bianchenghao6.com/blog_Php_第6张

其实当时的自己并没有 GoFrame 的经验,并且对项目理解的也不够深入。时间太紧张啦~

只是找对了方法,并且愿意花时间去实践,刻意练习,去执行,而已。

总结一下

不管你是想快速学Go,还是想学其他新的语言;

不管你是有充足的时间去学习,还是像我学习GoFrame时一样时间紧张。

关键的问题都是找到合适的方法,不断去实践,多动手敲代码。

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

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

所以:找到合适的方法,每个阶段有每个阶段的学习重点。多动手,刻意练习,坚持实践。才是快速学习,从小白到"大佬"的王道。

如何快速学一门新语言?关键问题是什么意思_一门新语种app_https://bianchenghao6.com/blog_Php_第7张

一起学习

如何快速学一门新语言?关键问题是什么意思_一门新语种app_https://bianchenghao6.com/blog_Php_第8张

公众号:程序员升职加薪之旅

微信号:wangzhongyang1993

B站视频:王中阳Go

发表回复