该如何才能更快且有效的学习?

作者分享学习编程的经历,起初整理一天学会Go语言的内容无价值,意识到要找适合自己的学习方法。回顾从C语言学习时的“重复造轮子”,到网上找视频学习,再因工作效率问题回归看书、文档和源码学习,强调学习方式应随时间和环境调整。

昨天花了一天的时间,整理了如何一天学会Go语言,写完后,我把我自己当成一个从没接触过Go语言的学习者,看了几遍,发现对一个没学过Go语言的人来说,根本没有任何帮助

而对于已经学习过Go语言的读者大人们来说,也仅仅是起到了一个梳理的作用,读了几遍后发现没什么价值可言,最后还是删了

到晚上幡然醒悟,发现要一天掌握Go语言,并不是需要别人帮自己整理,而我们需要的是快速掌握一门语言的方法,掌握好的方法之后,不管是Go语言还是别的什么语言,我们都能以很快的速度进行学习并掌握

我们每个人都有一套自己的学习理论,每个人都有一套自己的学习方法,之所以有的人能比你学的更快更好,并不是说他的学习方法比你更好,而是因为他掌握的方法更适合他自己

我们要找到更适合自己的学习方式,没有捷径可以走,只能慢慢的尝试,一点一点的改进自己的学习方法

我这篇文章并不是要告诉你怎样做才能做到快速掌握一门语言的方法,而是想把我自己的学习经历分享给你们,希望各位读者大人能从中得到些许启发,从而能慢慢的改进我们自己的学习方法

我的小白历程

在我刚入计算机编程这一行的时候,对编程完全是一脸懵逼,记得最开始接触编程是学校里教的C语言,当时完全不知道该怎么学,连IDE都不会装,写个计算器这种简单的东西都全是Bug

我也比较愚笨,当时老师布置的作业,同学们都跑去百度上去找答案去了,而我却认为,编程这东西,不是自己想出来的就不属于自己的,打死也不百度,室友去百度找解决方案,我还劝他们要自己想,现在回想起来,可能当时多半是因为看人家那么轻松的完成作业,自己有点心理不平衡吧

说实话,人家五分钟解决战斗,而我这个沙雕,天天“无用功”的花个好几个小时去倒腾,最后都是达到一个目的:完成作业

而我要是不解决问题,都睡不着觉的,不是因为明天就要交作业了,而是因为自己确实喜欢编程。记得有好多次躺下后辗转反侧睡不着,凌晨2,3点从床上爬起来敲代码到中午

不要以为我这么努力,我在学校就是个好好学生,是在学校里名列前茅的那种大牛,其实我最后的结果反倒是不如那些上网百度的同学

后来我才发现,当自己什么都不知道的时候,不管怎么想,就算最后即使想到了解决方案,其实也就是重复造轮子,因为我想出来的解决方案早在几十年前就有人想出来了

可能你想说,咱们自己自创的解决方案,那种成就感是无与伦比的,但是我们得明白,创作一个解决方案,成本是无比之高的,而学习一个解决方案,相对来说却是非常简单的

说小案例大家可能没啥感觉,就说个差距比较大的吧,我想各位读者大人都知道Vue,那我就拿Vue来举例吧

如果让我们从零开始开发一个现在这样成熟的Vue框架,牛逼的人需要花个好几年时间,但对于绝大多数人来说,根本就是一个不可能完成的任务,而我们要学会Vue,只需要按着官方文档把所有示例敲个几遍,不出两天的时间就能用Vue做开发,而精度读了他所有的源码以及思想后,再来开发一个一模一样的Vue框架,牛逼的人可能一年时间都不需要,而我们普通人也从一个不可能完成的任务,变成了能在几年内完成这个框架

这其实应了一句业内比较流行的话:不要重复造轮子。所以在自己创作解决方案之前,最好先去找找曾经是否已经有人解决过这种问题了

看视频学习好还是看书学习好

这个问题是没有一个标准的答案的,还是之前的那句话,适合自己的方法才是最好的方法,在这我就聊聊我是怎么从看书学习,到看视频学习,到现在放弃视频教学再回到看书学习的经历

当时因为重复造轮子,自己一个人埋头苦想的日子并不好过,当我想通了这一点后,我就学会了网上找视频学习,老师没讲到的内容我也进行提前学习

之后因为已经在网上学习过,提前学习了新的编程思想,所以再也没有以前那种憋几个小时来做一个解决方案的日子

再加上看视频学习时,并不需要动脑筋思考,咱们也来不及思考,每当老师抛出一个问题时,老师立马就会给你答案,或者立马引导你往哪些地方想

学习的时候,只需要跟着视频中的老师,一边听课一边跟着他敲代码就好了,老师说什么就记什么,当时感觉这样的学习方式又轻松又快速,跟看书自学比起来,那些书籍简直是又晦涩又难懂,看书本来就没有看视频课程来的生动有趣,再加上一边看书一边敲代码,更是让人难以静下心来,基本上弄着弄着就打游戏去了

到后来我就完全不看书了,要学什么知识点就直接去网上找各种相关视频

因为在学校里,网上看教学视频的这种学习方式让我尝到了甜头,所以这种学习方法一直使用到我毕业后工作一年,遇到视频课程实在无法解决我的难题时,我才放弃了这种学习方式

是什么原因让我最后放弃了这种学习方式呢?其实是因为工作所迫

当我们在工作中遇到难题需要解决时,最快的方式是请教有经验的同事,其次就是网上直接搜索,再然后就是看文档,最后就是看相关的源码,分析问题找原因

很多时候都是先把后两步走完后还解决不了再请教同事,基本上看文档看源码还解决不了的问题,多半是因为自己基础知识不到位,看不懂才导致无法解决

而这时候我们看不懂,就需要快速的了解相关基础知识,因为公司不会给我们好几天的时间去学习,然后再回过头来解决这一个问题,所以这时就形成了一个矛盾,公司不愿意给我们时间,而我们最需要却是时间

如果这时候还是去找相关视频去学习,那时间肯定是不够的,因为一个视频课,一节课随随便便就是一两个小时,而绝大多数视频,为了保持课堂的活跃性以及趣味性,这一两个小时内只会说1~5个知识点

而这一两个小时的视频课程,如果做成文章,我们可能只需要花一分钟时间简单浏览一下,就能知道这里面有没有我们想要的东西,而筛选视频课程,我们打开2倍速观看,再加上快进,筛选一节课的时间也需要半小时

就是因为这个效率问题,我又放弃了视频学习,再加上后来自己学新技术玩,也没有视频的教学课程可看,这样反而倒逼着我自己看文档,看论文

因为我此时已经经过了好几年的学习,对很多东西都有了一定的认识,我已经不需要再去看视频让人家手把手的教我了,我就完全放弃了看视频学习的这条路,就走到了看书,看文档,看源码的路上

时至今日,我自己也慢慢的找到了阅读的方法,并且也养成了阅读的习惯,阅读的速度跟当年比起来,也是快了好几倍,学习的效率也是更高

可以看到,我的学习方式是随着时间的推移,环境的改变,在不断的做出调整,从而找到最适合我自己当时的一种学习方式

我们大多数人读书的时候是为了学习而学习,工作后的学习更多的是为了解决问题而学习,这两者最大的不同就是前者是为了丰富我们的知识而学习,并且有着充足的学习时间,而后者的学习是为了解决当下无法解决的问题而进行学习,并且时间紧迫,不得不快速学习并且解决问题

简单来说,我们工作后的学习,有着更明确的目的性。

当我们带着明确的目的性去学习时,就能很清楚哪些内容是对我们“无用”的,就可以先束之高阁不予理会,从而达到高效的学习

写在最后

这篇文章的最后,我本是想写写我自己的阅读方法供大家参考一下,但是后来想想,得给你们留点自己的思考空间,不能因为你们看了我的学习方式之后,在思想上就产生了局限性

所以为了避免对大家产生误导,经过思考后我还是把它给删了。在此仅把我自己的学习方式变化的经历分享给大家

而且我也不认为我现在的学习方式就是最好的,但是我知道这在当下是非常适合我的一种学习方式,以后可能会有更好的方式,到时候我再改进吧。

五一假期内就不更新技术干货了,毕竟大家难得放假,得轻松愉快的放松一下,毕竟劳逸结合工作起来才更有效率嘛

你的学习方法是什么呢?分享一下让大家学习学习呗~

微信扫码关注公众号「闹闹吃鱼」,领取大礼包!内容都是经过我本人筛选,整理后的好资源,不仅仅只是技术~!

【四旋翼无人机】具备螺旋桨倾斜机构的全驱动四旋翼无人机:建模与控制研究(Matlab代码、Simulink仿真实现)内容概要:本文围绕具备螺旋桨倾斜机构的全驱动四旋翼无人机展开研究,重点探讨其系统建模与控制策略,结合Matlab代码与Simulink仿真实现。文章详细分析了无人机的动力学模型,特别是引入螺旋桨倾斜机构后带来的全驱动特性,使其在姿态与位置控制上具备更强的机动性与自由度。研究涵盖了非线性系统建模、控制器设计(如PID、MPC、非线性控制等)、仿真验证及动态响应分析,旨在提升无人机在复杂环境下的稳定性和控制精度。同时,文中提供的Matlab/Simulink资源便于读者复现实验并进一步优化控制算法。; 适合人群:具备一定控制理论基础和Matlab/Simulink仿真经验的研究生、科研人员及无人机控制系统开发工程师,尤其适合从事飞行器建模与先进控制算法研究的专业人员。; 使用场景及目标:①用于全驱动四旋翼无人机的动力学建模与仿真平台搭建;②研究先进控制算法(如模型预测控制、非线性控制)在无人机系统中的应用;③支持科研论文复现、课程设计或毕业课题开发,推动无人机高机动控制技术的研究进展。; 阅读建议:建议读者结合文档提供的Matlab代码与Simulink模型,逐步实现建模与控制算法,重点关注坐标系定义、力矩分配逻辑及控制闭环的设计细节,同时可通过修改参数和添加扰动来验证系统的鲁棒性与适应性。
### 学习目标与方向选择 在开始自学编程之前,首先需要明确学习的目标和方向。不同的编程领域有着不同的技术栈和知识体系。例如,如果目标是成为一名嵌入式软件开发工程师,则需要了解工作中所需的技术能力,并以此为基准展开系统性学习[^1]。而对于希望进入互联网行业的开发者来说,掌握数据结构与算法是非常关键的一环,尤其是对于那些希望加入大型科技公司的求职者而言,必须熟练掌握链表、树、排序算法以及动态规划等经典算法问题[^2]。 ### 制定学习路线图 制定一个有效学习计划应从基础语言语法入手,逐步深入到高级主题。建议从一门主流编程语言开始,如Python或JavaScript,它们不仅语法简洁易懂,而拥有丰富的学习资源和活跃的社区支持。在此基础上,可以进一步学习相关的框架和技术栈,如Web开发中的React或Django等。 为了更好地理解编程概念,推荐通过实际项目来加深理解和应用。比如,可以尝试构建个人网站、简单的应用程序或者参与开源项目。这些实践不仅能帮助巩固所学知识,还能积累宝贵的项目经验,为将来找工作或接项目打下坚实的基础。 ### 知识点优先级划分 对于初学者来说,在众多的知识点中找到重点非常关键。根据市场需求和个人兴趣,优先考虑以下几点: - **核心编程技能**:包括但不限于变量、控制流、函数、类和对象导向编程。 - **版本控制系统**:熟练使用Git进行代码管理几乎是现代软件开发的标准要求。 - **调试与测试**:学会如何有效地查找并修复bug,编写单元测试确保代码质量。 - **数据库操作**:无论是关系型还是非关系型数据库,都应当具备基本的数据处理能力。 - **网络协议基础**:特别是HTTP/HTTPS等常见协议的工作原理,这对很多类型的软件开发都很重要。 此外,随着人工智能领域的快速发展,对AI相关技术的理解也越来越受到重视。这不仅仅局限于机器学习模型的训练,还包括了如何将AI集成到现有的软件解决方案中去。因此,即使不是专门从事该领域的开发者,也应该对其有一定的认识和实践经验。 ### 实践驱动的学习方法 除了理论上的学习之外,更重要的是要不断地动手实践。可以通过完成在线课程提供的练习题、参加编程挑战赛(如LeetCode)、或是自己构思一些小项目来锻炼解决问题的能力。记住,“纸上得来终觉浅”,只有真正动手做了,才能深刻体会到编程的乐趣所在。 ```python # 示例:一个简单的快速排序实现 def quick_sort(arr): if len(arr) <= 1: return arr else: pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quick_sort(left) + middle + quick_sort(right) ``` 通过上述方式,结合清晰的学习路径规划,大多数人都能够在几个月内达到能够利用编程技能赚取收入的程度。当然,这个过程中的持续努力和不断探索是必不可少的成功要素之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值