• 【入门必看】如何快速学一门新语言?


    先说结论

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

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

    我是如何做到的呢?如何快速学习一门新语言呢?

    我认为核心就三点:

    第一:多动手

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

    第三:带着问题的多动手

    咱们具体讲讲

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

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

    第一阶段就是多动手

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

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

    第二阶段不依赖文档

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

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

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

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

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

    第三阶段带着问题去学习

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

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

    总结

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

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

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

    初识GoFrame

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

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

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

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

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

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

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

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

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

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

    以我的经历举例:

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

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

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

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

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

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

    todolist

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

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

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

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

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

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

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

    并且在提测之后,0 BUG。

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

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

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

    总结一下

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

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

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

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

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

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

    欢迎和我一起学习编程:

  • 相关阅读:
    Hadoop核心源码NameNode启动源码-尚硅谷大数据培训
    Java学习路线(13)——Collection集合类:List集合与Set集合
    vue实战中的一些小技巧
    [C]二叉树的实现——喵喵成长记
    展锐平台NewGallery2内存泄露分析
    uniapp 小程序 堆叠轮播图 左滑 右滑 自动翻页 点击停止自动翻页
    TwinCAT3库文件制作
    算法学习:LeetCode-593. 有效的正方形
    SpringBoot统一功能处理
    类型多样的石膏PBR多通道贴图素材,速来收藏!
  • 原文地址:https://blog.csdn.net/w425772719/article/details/127686370