我的学习方法(4)

       不知不觉,大学已经过了三年,最后一年开始了,我想回顾一下过去三年学到的东西。

       前两年还是很后悔自己听了家里人的劝选了师范生物理,而不是理科物理。直到第三年,在师范生课上到一定程度后,在科研项目结题后,回顾这两个几乎贯穿了我整个大学生涯的事情,我才庆幸,我当时选择了师范生物理。期间原由只有亲自走过,才能知道。

       师范生课我一开始是不想听的,因为我一开始就确认了自己不想当老师,这一点到现在都没有变,所以大一开始的师范课我基本上都是在课上做自己的事情。不是在背单词就是刷专业书,再不然就在看小说。可我这人有时候很敏感,一些课上老师说的词会突然的窜进我的耳朵里,哪怕我看书有多么的入迷。我也不知道这是种什么感觉,反正就是突然就听到了,从这些偶然的东西中我学会了自学的技巧,也纠正了以前学习中的错误,很多东西不记得当时的原话了,都被内化为自己的东西了,所以我会用自己的话来理一理。

 


       钻牛角尖的问题。

       在学习中你一定遇到过一些问题,比如老师一笔带过你却百思不得其解的问题,比如老师说这是扩展的知识只留几本书或者文献给你自己课后看,又或者是你自学的时候发现了老师都没注意到的东西。那么这些东西要不要深究呢?

       老师在很大程度上都是对的。如果是老师在课上没有细讲的东西,或者说没有明确提示你需要课下弄明白的东西,大部分都是只需要你记住就好,以后再去深入了解更好,但是记住,那是大部分,有时候你得相信自己的直觉。举个例子,力学老师在讲到质量的时候,曾经在板书上写过惯性质量和引力质量,但是她并没有说为什么要分成两类,就只是写上去念了一下,就过了,当时我在课上看着自己的书,突然听到老师说质量一词的时候前面带了两个不是物体名字的词,往黑板一看,就发现了这两个新奇的词,当时我就在想,这是什么鬼?那节课赶紧认真听,然而让我失望的是,老师就这样一笔带过了。

       课结束后我赶紧跑去图书馆查,然而不同版本的课本也少有提到这两个词的,一下子居然找不到。那时候我就在想,是不是我钻牛角尖了,这东西也许现在来说不重要。

       直到后来,在做实验的时候,我实在想不通为什么要用秤盘来测物体质量而不用牛顿定律,我才恍然发现是我对质量的理解出现了偏差,其中固然有方便的因素,但还有一点是因为物理的严谨性。因为从本质上来说,秤盘称的是引力质量,牛顿定律是惯性质量。我们日常所言质量其实指的是引力质量,这时候我才真正理解了为什么牛顿定律强调惯性是指改变运动状态的本领、当惯性一词加在质量前面时又代表了什么意思。此时往回看做过的习题,突然就能发现什么时候必须用引力公式,什么时候必须用牛顿公式了,虽然我们老是说习题傻逼可以抄,但是这时候我突然发现那些我以为傻逼的题其实都很严谨,我为此刻意去翻了课后习题,发现该表示改变物体运动状态本领的题里绝不会使用引力,反过来也是一样的。再之后又学了相对论,结合起来你就知道这两种东西是一个物体的两个性质,但是来源是相同的,这时候你就可以分辨什么参数能代表惯性,什么参数代表引力场了,这其中含着深刻的物理意义。

       例子有点长。其实还要很多例子的,比如压强体积温度的那三个积分式的来源、加速度与泰勒公式、傅里叶级数的含义等等。说实话,很多东西我都忘了,能写出来的只有记在本子上的,但是从这些东西里面,以及其它不该钻研最后好不容易脱坑的东西里面,我逐渐解决了怎么分辨课堂上知识学习的深度到底要有多少的问题,进而连接师范生技能,最终找到了自学时该如何跳坑。
       跟着课堂学自然是极好的,很多坑老师都会帮你跳过去,但是会有一点点坑反而是老师给你挖的,就看你能不能找出来。这需要你自己想办法,我的一个办法是,注意老师的措辞,有时候老师自己提出来,顿了一下,什么资料也没给你,也没说什么,就这样跳过去了,最有可能是坑,这种坑一旦你跳进去搞懂了,对后面的学习可能就起到事倍功半的效果。



      我一直觉得每个人是不一样的,纵观我自己的一生,我真正学到好东西的情况,基本都是我自学学来的,虽然跟着老师学很快很舒服,但是没有特别大的酣畅淋漓感,总觉得哪里不对,总觉得太容易了,不是什么“真理”。我还是喜欢自己学,亲自去踩坑。

       还有一个是,老师教学生,很少提到主观感受,都在说客观现实。虽然教的东西本来也都是客观的(理科),但是我总觉得这种捷径是有问题的,我觉得那些主观感受才是真正的财富。就像一个人带着你走山路,一路上告诉你这不好那不好,领着你走他的路,最终无非就是你到了他的极限,然后你自己走。这个时候也许已经是半山腰了,一步错搞不好就粉身碎骨。
       简单的说,是细节的把握上,你跟着别人学就失去了对细节的把握。虽然总是有人强调大局观,但是我觉得细节总是被这些人忽视。

       只有你自己去思考:为什么这个公式能用在这;老师往往只说了为什么适合这些,却没说为什么不适合那些,这就是细节,才是真正的学习之道,不要只记得正确的,还要思考错误的为什么错误。

       为什么会钻牛角尖?因为你不懂,这时候就好像看到一个计算机,你虽然不懂他是怎么搞出来的,但是你能拿他来打游戏就好了。但是如果你是一个程序员,你需要编写程序,那么你就需要懂一些原理————但是你别搞错了,编程序的时候你才需要懂那些,打游戏的时候你可不需要想那么多,就放心大胆的玩就好了。(抽象的说,遇到想不通为什么的东西,时间不够的时候,先记下来,等有时间的时候再想。有时间的时候,先别一上来就闷头想,先想一想这东西在整个知识中占的地位有多重要,如果不懂它会有什么后果,哪些东西不懂的时候会和这个东西有关系,然后在查查书,百度一下,看看学会它需要多久,最后下结论值不值得现在就学,该学到什么程度就可以放下)

       牛角尖是细节问题,大方向上也是需要考量的,比如基础物理的四大力学,学习的顺序该怎么定;扩展到自学某个专业的时候该怎么自己规划,甚至最后扩展到怎么规划主专业和辅修n个专业时的学习规划(这里要解释一下,比如学物理,你不单单是要学物理的东西,你可能还要学教师技能才能让你最后能当个物理老师,这种时候就不单单要规划物理的学习,你还得把教师技能纳入你的学习计划,甚至有些工作或者东西的实现需要更多的跨学科学习),那么这些要怎么搞呢?在学校学,这些自然不需要你去想,学校有一堆教学工作者帮你规划,基本上不会有太大问题。但是若是自学,这无异于生死存亡的东西——一旦你规划错了,不仅是学习上会造成知识点盲区,还会极大的拖延你学习的时间。

       在这里,我不得不说说自学和跟着课堂学的区别了。跟着老师学,老师的教学规划是按班里的平均水平去搞的,对于学习好的会留课外拓展,学习差的会划重点,而那些中间的就惨了,也就是说老师的教学规划实际上是极端的分成了三部分,但是一个班几十上百人,岂是三种情况就能概括的?哪怕是今后的研究生学习我都觉得还是有问题,因为研究生其实就是在跟着老师弄老师的东西,虽然教学规划内容上是可以专门为你定做,但是最终目标却可能与你相差甚远,这也是随着教师技能的学习后越来越讨厌当学生的原因之一。

       我始终觉得,别人的路不能沿着走,最起码不能沿着走完,要在适当的时候开始走自己的路。

       又说了一堆废话……总之,自学的时候该怎么规划自己的学习路径呢?
       首先,不要怕浪费时间,上网找些领域内的大佬,看一看他们的学习心得和书单,最好是能找到他们的回忆录,里面那些就是很主观的东西了,最能体现他们一路走来的心情和思维,但是不要看太久陷进去,就像看最完美的谎言一样去看(七分真三分假是最好的谎言),同时要时刻提醒自己,那是回忆,回忆必然有添油加醋或者遗漏的东西。这个阶段就当看小说一样去看,最好再看看一些不出名的回忆,那里面是小人物的心酸。就像我之前去西安旅游的时候专门花了一个晚上的时间坐在火车站看来来往往的人群,那一刻我突然觉得一些哲学的话语很搞笑,某些大话很空——看着那些躺着、站着等火车的人,看着小偷偷钱,看着有人赶车背着大大的麻袋拖着跑……只有看看底层和高层,你才能不被一些言论欺骗。

       然后就是找你想发展领域的大学规划,比如去北大、清华等大学看看计算机系的课表(北大官网有),看看网络课平台里的学习路线,再参考行业大佬的学习路线、书单,翻翻贴吧学习的路线书单等,初步了解领域内重要的东西有哪些,听听网络课平台里领域的导入课。

       现在,你基本上知道了这些领域都有什么,大概的学习路线是什么。现在,去图书馆吧,把那些相关的书找来看看序言目录,翻到感兴趣的一节看看,看得懂的看不懂的,看个几天,这时候你可能就知道哪些东西水深坑多,哪些东西很容易入门。(序言也算是书作者的心得)。

       好了,准备工作搞好了,接下来就是很个人的东西了,需要你根据自己的实际情况去规划了。我拿我自己举例子。

       首先我学过c语言,入门级的;科研的时候学过数据库,也是入门级;选修课选过计算机原理,大概了解过一点计算机组成的东西;高数线代等大学数学学得还不错,概率论也是我特意选修过的。以上,是我计算机方面的基础,现在我要开始规划自学编程的路线。

       首先,我在看领域大牛的文章中发现,编程中最重要的不是语言,而是语言特性(即c语言、C++语言等那么多语言没有好与不好,只有适合不适合的问题,比如编桌面游戏用C#配合Unity,或者C++配合vs开发游戏等,java开发游戏快容易上手等,也就是说是工具问题,所谓屠龙之术无用意思是你会杀龙,但是用杀龙的办法去杀牛就不适合了。),这时候我就可以确定,学编程语言的时候,我重点的学习点在于语言的特性,那么什么是语言特性?学的时候要注意什么?这些东西在大牛的学习心得里就有了,搞明白了这点,我就知道学语言的时候该怎么学,哪些坑可以跳过去,哪些坑要跳进去。

       以上这些可以用在应该用什么IDE,学什么语言上,最终我选择用vs学C++(还综合考虑了学习成本、招聘中常需要会的IDE有哪些等原因)。

       由于是自学,知识的延伸性会很差,因为一本专业书一般只会围着一个点写,科普书又太大太广泛,我需要的是一个适合范围内的知识延伸。比如我想当游戏编程师,我的知识范围就不需要扩展到网页协议这种东西上,我要考虑更多的就应该是平台选择、算法、api这种东西上(比如物理,你想学天体物理,那么数学分析就不要学太多了,好好学概率模型更好,不要太深入电磁学,应该重点学力学,这种就是知识延伸范围的考量),这个东西很重要,必须好好考量,这影响到今后的学习效率。

       以上这些,想通和花时间搞完,花了我今年半个暑假加开学后十多天的时间。这些也是我自学编程半年后,加上之前学习的东西才想到的。

       再然后,就是一个比较现实的问题了,怎么避免眼高手低,时间成本的考量。

       编程不是一门纯理论的东西,是一门很看重实际编程经验的东西,很多好的代码习惯,变量命名等都是要写到一定的程序后才能知道,我看过一些关于好的代码习惯的书,我总觉得里面的一些例子和习惯很奇怪,虽然说明了原因但是总感觉怪怪的————这就是眼高手低了,很多东西没有实际的遇到过,你自己就会觉得那是没必要提前考量的东西。避免这种问题的办法,就是不断的加大自己写代码的量,哪怕是错误的都必须亲身遇到后才能明白书里的意思,简单的说,就是实践出真知,这一点随着我写代码的总量上升,已经开始明白了,比如为什么写称int *a而不是写成int* a等。

       然后是时间成本的考量,这一点我到现在都不敢下论断。基于物理思维,我总喜欢看事情抓住一个根本,在时间成本上,我觉得作为一个学生,现在的根本任务仍然是学习,虽然已经是大学第四年,一年不到的时间就要考虑工作了,但是我始终认为,应该抓住现在能安稳学习的时间去好好学,而不是因为担心到时候会没工作而提前准备去实习,尤其我编程才学习不到一年的时间,我觉得这样做是不明智的。所以我决定,先不想太多,继续好好学C++,把基础部分的最后100多页看完,转过头复习一遍,期间在网上看看计算机入门的视频,在适当的时候再开始第一个游戏设计的完成(之前黑白框的不算……),这个适当的点是什么时候,我也不知道,我总是觉得我对C++的基础理解不够,至少还不到我心里认可的程度,我的直觉告诉我不应该考虑的太多,先好好搞定这个语言到我心里的预期再说别的。

       最后,我想说一个我无法用事实支撑的结论,我以为,一直沿着别人的路是超不过别人的,要在适当的时候开始走自己的路,大胆的走自己的路,让自己开心,让自己不后悔,不要太看重世人的目光和大牛的建议,走下去。正如毛说的:

       一步一步走下去,一点一滴做下去,世间事最怕的就是认真。

wuduojia
原文地址:https://www.cnblogs.com/wuduojia/p/7511947.html