先说结论吧。花了半个月的时间学习了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的成本应该不高。但是看到公司前辈的代码量很大,学习笔记很辛苦,效率不高。如果你遇到过类似的问题,我强烈建议你这样做:关注官方文档,而不是前人的代码,查看项目中有问题的文档。同时,抽空从头到尾系统地阅读官方文档。以我的经历为例:刚进公司时,公司给了我两天时间熟悉项目需求、现有代码和架构设计,我从第三天开始参与需求评审和项目工作.前两天看前辈的代码,可以说是一头雾水。类似的需求每个人都有不同的实现方式,团队中没有统一的代码规范。我也跟老大抱怨过,老大给我的建议是:我希望我能输出标准化的代码,形成一个规范,然后让大家按照我的标准来写。那么,压力和责任就更大了,所以:白天主动和同事确定不明确的需求,沟通之前的实现细节,为什么写这个等等。晚上回到家,带着问题去找官方文档,看完相应的知识点后整理笔记。这些笔记不怕细节,只要对实现需求有帮助,能提高我的工作效率,都会记录下来。在todolist中记录todolist是一个很好的习惯。分享给大家:比如可以复用的代码,方便我快速查找的代码,不太懂的代码等等,我会记录笔记,记录到todolist中,最后Unity把是时候一一解决了。小的知识点不懂,我就先放过,这样我就不用因为一两个知识点不懂而影响整体的学习进度。下班后大概又花了两个晚上,熬夜复习文档,把官方文档从头到尾看了一遍,对框架的设计思想和最佳实践有了更深刻的理解。最后花了一个晚上把小知识点串起来,让大家有个整体的了解。就这样,我花了大概三天的时间,系统的梳理了有问题的官方文档,保质保量的完成了项目需求,分享了我认为比较优雅的实现方式(其实是通过官方文档学习的).并且经过测试,0BUG。后来项目恢复的时候,同事也说我是“大佬”,看来我很有经验。其实当时我并没有GoFrame的使用经验,对项目的理解也不够深入。时间太紧了~刚好找到合适的方法,愿意花时间去实践,刻意去实践,付诸实施。总结一下,无论你是想快速学习Go,还是想学习其他新语言;不管你学习的时间多不多,还是像我学GoFrame的时候一样紧张。关键问题是找到合适的方法,不断练习,多敲代码。遇到看不懂的问题不要灰心丧气。可以先列出todolist,以后放上去解决。也许在你花更多的时间,更系统地学习之后,之前困扰你的问题就不再是问题了。所以:找到合适的方法,每个阶段都有每个阶段的学习重点。多做,刻意练习,坚持。从小白到“大老板”,快速学习才是王道。
