Home » Blog » 大三的学生的编程困惑(摘自CSDN)

    大三的学生的编程困惑(摘自CSDN)

    Author: xuyibo From: xuyibo.org Time: 2021-07-25 11:16 AM

    原地址:http://community.csdn.net/Expert/TopicView3.asp?id=5472583

    lzblqq ():
    我是计算机专业的大三学生,对于C++来说也不算是 新手了。但是从高一开始我就对编程感到非常的恐惧,觉得非常的可怕。每当我的手放在键盘上准备敲写程序的时候,我的脑子里就一片空白,一个字母也写不出来。
    大三了,专业课开了很多了,都需要编程,可现在 的我真的是一个都编不出来。在编译原理实验课上,看到别人都把自己写好的程序拿给老师看,而自己只能面对电脑不是发呆就是玩游戏,我真的是又嫉妒又痛心。都大三的人了,连个程序都不会写,到底是什么原因,我一直在问自己到底是怎么回事??
    大一初学C++,充满了兴趣,但当我调试了N遍一段仔细抄的课本上的检查了好几遍都没发现错误的例题的时候,我的兴趣瞬间边毁了。对于大一的生活我一直非常的后悔,没有意识到学不好C++的严重性。
    大二的时候学JAVA,还好,老师讲的都基本能听的懂,实验的时候也能够把课本上的例题调试出来,觉得很高兴,以为自己可以学好JAVA了。但当老师给我们布置作业,让我们自己写程序调试的时候,我发现自己对JAVA原来是一窍不通的,根本不知道该怎么写一段30行以上的程序,就连在DOS 窗口下打印出“Hello world”的程序都得抄课本上的。于是对编程的兴趣又一次被摧毁了。
    大三了,上学期在昏昏噩噩中度过了。这学期开学后意识到了问题的严重性,于是重拾课本开始练习编程。虽然书看了够10本了,但是仍然不能写出一段象样的程序,还是把手放在键盘上的时候脑子一片空白,根本就不知道往下该怎么写了。上帝啊,我连个实验程序都写不出来,毕业后哪个公司要我啊,对于未来我感到了巨大的迷惘。
    到底编程该怎么编?作为一个毫无长处的计算机学生,我对人生充满了困惑。虽然这不象是真正的我,但我还是真的害怕了。
    写这么多,就是想问一下CSDN里的编程高手们,我到底该怎么办呢?救救我吧?
    困惑压抑了这么久,我真的快要绝望了。


    sxguo_1():
    首先声明:1我并非高手2我也是大三计算机学生。我很同情lzblqq()君的境遇以及现处于与lzblqq()君类似境遇的网友;我实际学习软件设计的时间其实只有7个月左右(初中肤浅地玩过电脑,大一大二因某些特殊原因基本没有进入学习的正轨),而这7个月中我自以为软件设计水平的前后差距不可以道里计,感悟也颇多,我愿用这或许不成熟的感悟来尝试帮助lzblqq()君们脱离困境。这是我发帖于此的原因。
    1.我认为lzblqq()君之所以陷入当下困境的一个重要原因是学习不得法(从帖子可看出lzblqq()君有学好的欲望,且并非智商低下),很少或没有尝到学习的快乐和创造的快乐(我个人认为学习的终极目的就是创造),只有焦虑、郁闷甚或痛苦。而我认为学习得法的一个衡量标准是*最高效率*,即在最短的时间内扎实地掌握最多的知识。当然,“最高”是理想状态,很难或几乎无法达到,但我们应“虽不能至,心向往之”。那如何达到最高效率呢?
    2.我认为对于学习软件设计的人来说那些*优秀的开源软件*是座巨大的宝库,不去探究甚至接触它们是巨大的愚蠢!当我第一次接触到这些人类思维精华,当我深入去探究它们的源代码(至今我也只是研读了部分软件的部分代码),我才认识到什么叫编程,什么叫学习,同时我也意识到了现存的整个教学模式和教学方法是多么有问题!这里借用linux之父Linus Torvald 的名言:“Read the F*king source code!’没错,就是要读这些’F*king source code’!那为什么要去读呢?因为 3.要学好一件事物最基本的要点是要抓住它的本质,这是学好学精的前提!反观我们的教学模式,像赶鸭子上架,不管你是否真正理解它的本质了,反正接下来就要立即学习更高层的东西。学生由于学习不得法疲于奔命,而当今很多(我用“很多”这个词相信不为过)教师水平低下,又缺乏责任心,导致不少学生到头来很少或没有学到知识,更严重的是使学生无法领悟到学习的真谛!所以,要学好编程和更高级的知识,我认为应首先对整个计算机架构有比较清晰的理解,其次是操作系统的原理。但是,对这些的理解不必要也不可能一步到位,而应凭你的兴趣或实际需要一点一点地、不断循环地去学习,直至全面、深刻地理解。譬如我现在在研读x86_64版的linux源码,但对amd64处理器中的long mode模式不熟悉,那我其实只需要查相关手册中的long mode介绍就行了,而不必要将手册从头读到尾,甚至去死记硬背。当然我若对那16个64bits通用寄存器感兴趣也可捎带了解。而了解的程度则视乎你的需要了,总之要灵活多变,多去参考令狐冲的独孤九剑:-)。说到操作系统学习我认为于渊的《自己动手写操作系统》可读一下。对我个人来说,这本书是将我的学习导入正轨的第一推动力,虽然我对他的某些观点并不很赞同,这里向于渊君致谢!学习这本书的过程中我以为我们不但要能大致理解现代操作系统的原理,还应注意思考于渊关于学习方法的观点。要能独立思考,并勤于思考,要不断解放思想,时刻警惕他人的思想对自己头脑的侵占(我想这也是中国大多数学生所缺乏的素质)。当然,《自己动手写操作系统》只是入门书,要真正理解现代操作系统还需要深入去研读linux、openbsd等的源码。当然如何阅读源码特别是像如2.6.x版的linux这般庞杂的源码是个值得研究的问题,我个人认为在阅读时要有大局观,切勿陷入小陷阱。如有些代码嵌有很多层函数调用,如非特殊原因不要跟进去,对系统不熟悉的人极有可能被搞得晕头转向而一无所得。还有在阅读过程中要打开关闭很多文件,这就需要寻找一个高效快捷的方法如写个脚本文件,需要打开某个文件时只在命令行中输入文件名就行了。我个人在探究高效快捷的学习手段时逐渐感到windows的局限和自由软件的开放优势,所以,我只能投入自由软件的怀抱了。我经常看到一些网友强调要多动手编程,我却认为应多研读优秀的源码,对其中精彩之处应多动脑思考其实现原理和目的。还要扩大知识面,追综最新的相关科技动态,根据最新的科技发展不断调整自己的学习方向,对已过时的技术如非特殊需要我认为只需简单了解就行了,当然,前提是你要能理解它的本质。那不用实际编码吗?非也!放飞你的思想,去自由地畅想,也许你能找到自己渴望实现的程序或系统,那么将其作为一个学习分支,需要用到什么知识就去征服,直到你完全实现了它。这就包含了实际编码,而这种方式能让你极大地体验到创造的快乐,这种快乐不是简单地实现某个算法可比的。在学生时代,我们有条件这样做,出去工作了则要受限于工作的需要了。可多看些优秀的科幻电影,尝试去欣赏艺术。
    4.学好一件事物还有一个最最基本的前提:兴趣。所以lzblqq()君,你若百般探索后发现自己对计算机实无半点兴趣,我劝你还是转移阵地吧,别再浪费时间了!人只有一次生命,要把握好!
    我很少写文章,因此这篇文字难免松散,挂一漏万,无法很好地表达出我的观点。
    若有网友有兴趣与我讨论,欢迎之至!不过,应当是理性的。
    Regards,
    sxguo_1

    User:

Email:xuyibo@live.cn QQ:85521028
Copyright ©2008 xuyibo.org All rights reserved. License | Contributor