给大二学生——重视课程为前提,课外学习要随心

【来信】

贺老师:

    你好!我是一名普通二本软件工程学生。现在大二下学期,马上要大三了。
    客套话我就不说了,直奔主题吧
    我是一名农村的孩子,在上大学的时候,就想努力学习,找一份工作(是不是好幼稚?)。所以,大一上期乖乖上课,编写了一些小程序。在大一下学期,无意间看到了一些培训机构的视频:c++,Java,php,Android.......然后就开始学习了,当时就想走开发方向,就努力学完了Java和php,学校一些创新团队接的外包项目都能做。
    但是,在大二上学期接触到几个大四的学长,他们主要学习网络安全。我就了解到了Linux,渗透,逆向什么的,我就感到自己很想做逆向方向,不想做开发了。但是学校的课程有javaEE,php,c++的课程设计,不得不做。我感觉做这些“浪费”了很多时间,而且学校的课程也太多了,我一周只有四节空课。自己学习的时间太少。我找了一些安全方面的视频,一直没有时间学习。
    我给贺老师写信,就是想贺老师能不能指点一下我,我现在很迷茫,不知道该做什么,怎么做。做课程设计或者开发觉得不喜欢,想做逆向,但是没时间。希望贺老师在百忙之中指点一下。谢谢!


【回信】
  看到来信,我首先感到的是一种欣慰。你在大学里表现出的这一份自主,是一种很可贵的品质,这也将使你在今后的求学、职业生涯中,能够主动地把握方向,有能力去达成设定的目标。这样的经历,事实上,已经使你“找一份工作”这一基本的目标有了保证。
  但是从你的讲述中,我隐约地有种担心是,你上大学的“成色”将会如何?因为你没有提你的课程学习,有的只是觉得这些在浪费时间。
  说到这些,作为大学老师的我,没有怪罪你的意思。包括我自己的教学中,也总是为了一些学习不顺甚至根本不投入的学生,而让那些学得很带劲的同学感觉到喂不饱。课程设置方面的问题,以及一些老师对教学的投入不足,总让一部学生失望。而越来越简单和走形式的考试,对想要学有所成的学生并不利。但我作为老师,知道学校各专业课程中承载的内涵,所以我极力地带着我的学生,课内找感觉,课外树特色;对找我咨询的所有学生,鼓励他们课外的精彩学习,但前提是不要忽视课程——为让你成为一名科班出身的专业人员的载体,在你的学习过程中的重要意义。
  因此,无论周围环境,无论有些老师是否尽力教课,对于很重要的课程,不要仅限于听讲、做作业,而是用自己的标准,真正去学得,去掌握。有些核心的课程,甚至要更多投入,以达到更好的效果。例如学完了数据结构,阅读《算法导论》作为学习效果的检验;学过了计算机组成,阅读《深入理解计算机系统》作为检验。你来信中说到的课程设计,我认为是作为一名要全面成长的专业学生而言不该放过的。所幸的是,课程设计的要求不会太高,以你已经有的项目开发的体验,你会从中得到更多、更全面的体验和营养,也不会是太大的负担。
  你所说的课太多,我深有同感。现在我国的大学中的问题之一,就是将学生困在课堂上的时间太多了。这对于不少不学习的学生而言,算是在形式上让他们好象还学习了,但对于有自主能力有想法的学生,这真是个不利的因素。所幸,有不少课程,是可以在课堂就将问题解决了的,有区别对待,大学生们好像都能做到。
  说一圈下来,我对你的建议是,优先将课内的学习保证了。我的建议,可能会让你更没有时间去做逆向,但我是从长远考虑的。若你做继续做逆向,会发现你要会想问题,想做更深入、复杂的分析,功底就是操作系统、计算机组成之类的课程中要传达的内容。作为专业人员,将计算机作为一个整体能够有深入的理解,这是大学的成色所在。上大学的价值,在于能将抽象能力与直接体验有效结合,你的一些同学的问题可能在于没有直接体验,只用应试的办法去死学所谓的理论了,但你也要避免只从实践层面上只追求那种直接的能力。
  至于课外的学习,我真心喜欢你还是能抽出时间做下去。见缝插针,这个学期课多,只能少投入些,课松一些就多安排一些。不要急燥,其实时间还真有不少。周末、假期是自主安排的整段时间,你有的是机会让你自己更出色。至于做开发和做逆向的选择,我主张想做什么就做什么,这是学习阶段的最大自由,工作后这样做就不方便了。大学里,就是要通过随心地不断尝试而找到自己最终愿意投入的领域的,这种自由安排也终将塑成自己的特色。在后面的时间,你可能还会“移情别恋”,甚至会再回到之前曾经投入过的开发上,但回归的你,已经是不一样的了。

  祝你能成为一名真正的班科的专业人员,也祝你课外的学习更顺利,当然,终将是累且快乐的那种感觉。


【再来信】

贺老师:
    你好,谢谢您的回信。
    我慢慢、仔细的读了几遍之后,感觉有了前进的方向,以前也看过很多方向路线方面的博文,但是都没有过这样的感觉。您提到了课程学习的”成色“,我理解的是学校的课程安排(不知道是不是),这样说吧,我没有挂过科,拿过奖学金,可能您看不上,但是普通二本学校的同学水平,您懂得。因为之前很“听话”,每节课都上,课后认真做题,拓展。所以,在周围的同学当中,还算得上是一个“学霸”。在平时的上机课,老师布置的任务我都可以在课堂上完成,老师也让我自己课外拓展,但是我也有自身的局限性,没有拓展的方向。拓展的东西都是在网上百度的,问老师,老师也让我百度。呵呵。
    学校现在的课程有计算机组成原理,算法设计与分析,Oracle数据库应用与开发,计算方法,javaEE.....如您所说,很多老师都是念PPT,念完了就完了,不去上课又要点名,很多的时候我自己看两节课,可以接收到更多的知识量(个人感觉),就不想去。
    还有一个问题,就是以前学过的东西,学完了,基本上不用,然后就忘了,这个搞得我好纠结。
    对于您提到学完数据结构就用《算法导论》检验,我觉得的这个很好,我会试一试,但是其他的课程怎么拓展呢?比如,Oracle应用与开发,算法设计与分析,操作系统...
    还是希望贺老师指点一下。谢谢!


【回复】
你好:
  作为一名对我周围某些同事的工作呵呵的老师,我理解所有想学和不想学的同学。但是,大学还是要学的,并且是要好好学的。我们不必也不能是同一标准下的优秀,但是都能做到自己标准下的优秀。
  你的回信给出了很多实际的问题。事实上,我很多年了,一直将自己放在“雪中送炭”的轨道做事情上,我的路线是让不想学的同学能在行动上通过体验,找到学习的感觉。大批的年轻人,只守着考试作为标准,厌学、不学,这不是他们的本意。为你提建议,纯粹是我所向往的“锦上添花”系列了,原以为愿做这方面事的老师多,没想到你说老师让你百度。不要怪他,你需要观察自己周围的老师,有像我这样爱叨叨的,只是,因为想解决问题的是学生你自己,你就要做老师的伯乐,主动发现并接触。
  直接说你信中的实际问题。坦然、骄傲地认同自己的学霸身份,但一定要清楚,你只是鸡头。这不是坏事,有课程体系帮着你掌控总体的系统学习,但你也不必受令凤尾们难受的制约。可以说,你的大学还是可以任性,可以自由的。
  我见识过了不同学习类型的同学,最后形成的观察结论,大学生该在课堂的时间,还是要在课堂。不只是说在课堂要听多少,而且事关自己学习的状态和心态。不过,不同的课,不同的老师,为了自己学有所得的不变目标,是可以采取不同的听课策略的。有些课,是可以抢前两排的,有些课,为了方便自己做些听之外的事情,后移一些更好。那幅教室中学生的分布图想必你见过,学神级人物一定不是在老师眼皮底下的。
  学过的东西,不用就忘了。这太正常了。我所强调的课外自主学习,其实就是要求同学们在课外解决这个用的问题。可以看我们周围的现象,老师布置点作业,抄一抄交了的,好像都是正常现象了。所以,在课外用知识的这个事,要重视。你在这方面做的应该还是不错的,如果说有隐忧的话,你上封信中说到的那些实践很不错了,但是没有看出同课程体系中知识的联系。话又说回来,我在帮助一些同学克服学习动力不足,爱不上计算机的问题时,也会给他出主意,不妨抛开课程折腾一番,比如说就集中一段时间学做网页,以此找到专业兴趣。你借着这种折腾,也开始注意“成色”问题了,大二大三,正是大学的黄金时期,从现在开始,将实践往正路上带,一点没吃亏。
  还有些东西,实践起来很难,其实忘就忘了吧,例如离散数学、线性代数之类的。中国武术中的最高境界就是得其意忘其形,越是宝贝的,越是不用你去记的。这丝毫不是你用不着好好学这些的理由,而恰恰相反,因为会忘掉,所以在开课的那个学期里,好好去学。其实所谓的忘掉的,只是表象,好好学过了,它会深藏在你的潜意识中,以你觉察不到的一种方式起作用。例如,你在构造一个算法的时候,收敛、封闭之类的概念在默默帮着你保持思维的慎密,一出手想都没想就拿出一个最优的方案时,计算机组成、操作系统中的内存管理的知识是不需要搬出来背一遍定义的。所以,坦然、轻松一些。
  关于课程的拓展,针对具体的课程,以及你自己的目标,可以灵活考虑方式。Oracle应用与开发,你做的项目中涉及到的数据库,就是实践;算法设计与分析,是不是可以有选择地刷些ACM题目;操作系统,读源码吧。不必每门课程都这么拓展,整理一下线索,有所侧重。
  如此学下来,你的专业味就有了。你之前的实践路线,走培训班模式了。他们那样做是对的,但是你用四年的时间,要的不只是那样的效果。你到大四时,在专业的各个方面尽力地体验了,再去专攻某一方向,不晚。到求职时,有眼光的企业,看重你长远发展的企业,是能发现你的厚度的。当然,你上手就干事的本领,我相信也不会差。
  就说这些。




你可能感兴趣的:(给大二学生——重视课程为前提,课外学习要随心)