今年已经大二了。大一上学期学了C++。下学期学了VC++,仅仅是MFC的简单入门。。现在大二上学期在学数据结构和操作系统,软件需求分析现在除了数据结构想去听课,其他的真不想花那些时间去扯淡,,大学里好多课程真是扯淡,老师讲课更是扯淡。一节课下来,PPT念到底,念就念吧,更坑爹的是PPT上全是书上的。这和念书有什么区别,,花了两节课讲的东西仅仅只有5%是书上没写的。。一直想自学,但是没有一条完整的自学之路。。我是一直喜欢编程,才学的软件工程虽然大学是个普通的二本,没有太多机会。但是我都在一直自学。而且整个班除了我是因为喜欢编程才来的,其他的全是调剂或者是无所谓才报的软工来的,也没找到志同道合的同伴。现在一直在迷茫,,到底是跟着老是的步子走,,还是自己走。。

解决方案 »

  1.   

    每门课都很重要,请耐心认真的学习完。不要说大学课程无用!!!
    误在空中筑楼阁。。推荐几本书:
    c++ primer 第四版 (这本不是入门用的)
    WINDOWS 程序设计 
    MFC(建意用孙鑫的入门)
    windows核心编程 练完以上几本后,建意选一个方向做下去,这时间你会发现,我靠咋还有这么多的东东没接触过。
    关键不是学过了,而是你把课后的题都练过了吗,有没有举一反三的去动手练过。
      

  2.   

    没有目的的去听课确实很烦,而且没有收获,记不牢。
    MFC不如直接自己看孙鑫的视频,全面了解一下。然后实践,写个完整的东西,实践了之后你才知道该学什么。该听什么课。
      

  3.   

    C++ Primer我在看。。孙鑫的VC++深入详解和视频我也在看,,,其实我并不是觉得大学课程没用,,只是老师太过于照本宣科,从小到大一直都是这种教育。谢谢你的意见。。我会继续努力的。。
      

  4.   

    回想那会读大学时,除了高数线性代数这些,其他的比如C,C++,数据结构,软件工程,MFC等都是自己自学的,碰到不会的问过1,2次老师以后就再也不问了,浪费时间还免得别人尴尬。
      

  5.   

    给你个建议,学校的考试一定要过,目前国内的教育还是靠“背”的,其实也不难过。自己的兴趣的要去钻,要花很多时间去钻,但是要记住,方向不要搞错。老师、教授的关系要打好,他们会带给你很多好处的,不单是学习方向,甚至可以帮你解决很多你找不到的资料问题。还有,比如说你说你们学的数据结构和操作系统,软件需求分析,相对来说,你所说的你感兴趣的“数据结构”属于小儿科了,与操作系统、软件需求分析的技术量相对比,可以说少之又少,那为什么你只对这种东西感兴趣?而不对与操作系统、软件需求分析感兴趣呢?为什么又人为这些东西是扯淡呢?估计是你还没意识到这些东西的复杂性与其魅力在哪吧。所以才要去听去见识,你才能够了解其中的魅力。在社会中,软件需求分析通常都是技术部高级人员才有能力做的事,这种人涉及的技术面可能很广,经验也很丰富,有时候可能涉及多种开发工具、从软件到硬件、从技术到管理都要了解,通常写代码的是最底层的人员,搞这种分析的才是真正的高手。这么说吧,普通的程序员会同时熟悉几种语言?有几个能软硬通吃的?有几个接触过大型的架构下的程序开发或管理工作,同时能并具备一定的经验?同时具备这么多能力才可以很好的胜任这种工作。再看看操作系统,其技术含量也是很多的,从x86架构到x64,还有单片机、ARM、PowerPC、Mips...等等,其系统的架构、程序的思路、相关的算法、历史演变过程都是很值得去了解的东西。怎么会是扯淡呢?当你自己写了一个BOOTLOAD,然后开始研究Kernel体系的时候你就会被这种架构和思路所吸引了。其实大学和中学不一样,大学主要是靠自学的,不要想老师可以在课堂上教会你多少。要想着老师只是带你入门的,最后学到什么程度还是看你个人的。不知道你有没有去上过培训班,我就去过,我当时什么开发语言都不会,就连 basic 都是自己乱学的,可以说没有基础,而且当时是 98 年,也没流行什么网络,身边更加没什么人有电脑,更别说编程了。后来我就报了名学 C 语言,因为当时也没什么人弄这玩意,那个班上只有我一个学生(很好,老师就是我一个人的了,呵呵),我第一天就完全听老师讲课,讲了一天,对我一个人只讲了一章课程,然后让我自己上机看看(还是586的机子),到了晚上,我基本上理解了很多概念上的问题,并且还自己预习了两章的课程,并且找出了一些我不是很理解一些问题。第二天,老师问我昨天学习的都明白了吗?还有什么不懂的问题,我就把我理解的一些问题与老师交流了一下,确定我的思路是正确的,然后我就让老师直接给我上后面两章,然后老师就初略的说了一下后面两章的关键内容,在说内容的时候我就把我的一些问题提了出来,甚至还和我理解的 basic 来做对比提问,后来都得到了老师的回答,因为我原来还自己买了好几本C语言的书籍,自己没看懂,但进过老师的讲解,把原来一直概念模糊的东西都一下搞通了,就这样,才4天时间,我就已经熟读了那本课本,并且全然的接受了老师所教课本上的所有东西。与此同时,我还同时看完了我自己买的两本有关C语言的书籍。因为课本教的都是一些基础应用,像那种DOS中断、BIOS中断、图形都没有讲,但我买的书籍中有提及,所以到了第五天,我就开始了做我自己范例实验了(没那本课本什么事了)。到了第六天,我已经尝试使用BIOS的10h中断实现了类似Win32的图形界面操作,里面还有窗口和一个简单的文件浏览器。当时我问老师的很多问题她都已经开始答不上来了,后来看到了我的图形界面,还想问我是如何实现的(她是的确不懂)。之后我又在那里玩了两天电脑就没去了。因为那个老师的确已经是极限了,也不好再为难她了,呵呵。
    还有一次,是我学单片机的时候,我们公司当时想搞一个设备,需要用到单片机,因为当时公司没人懂这一块,就打算把项目外包给别人弄,结果是等了又等,等了差不多半年,对方弄了一块超大的手工板过来(还特粗糙、特难看),结果还不能用,说是半成品还要改。其实无非就是个与PC通讯控制一个步进电机、两个直流电机、两个电磁阀门的板子。我看情况不对,就和老板说我来弄弄看,老板说可以,我就开始了单片机的研究。学起来很容易,在网上搜索了一下相关资料,然后到淘宝买了一块开发板,就开始了我的单片机学习旅程,才短短3天,我就做出了第一块控制板。并且做了好几个实验。之后的产品也是基于我那块板子做的,改动不大,还挺稳定的。只是最后因为自己控制步进电机那一块存在一些失步或高速运转停止过步问题,换选现成的步进电机控制盒来解决这种精度问题(不是盖的,的确有一定的技术含量)(解释:失步问题与步进电机禁止状态的启动加速度有关,如果电机在禁止时要移步,时间太短会失步,就像奇自行车的时候,启动需要一定的力量从慢到快的启动,而过步,则是处于高速运算的时候让其停止转动,但应为有缓冲力,会产生过步现象,特别是步进电机如果带动的物体也存在力量缓冲,这种问题就更为严重,有时候还需要回啦力才能阻止这种过步,在机械上看,可能就被说成精度不够)。后来我又花了一个星期左右的时间去研究单片机,搞定了LCD/TFT液晶屏的运用、SD卡读写(包括FAT16系统格式)、RFID读卡(em4095的电路及霍夫曼码)、AD矩阵键盘、外部时钟、MCU唤醒、无线收发、电压转换等问题。之后公司还招来了一批自动化专业的大学生(基本上都是本科),有些还是工作了一两年的。之后在与他们的工作中也学了一些我没学过的一些基础理论,搞清楚了很多原来有些模糊的概念,但是我发现,就我这个把月的自学基础,在实际工作中比他们掌握的都要多,所以这也就是为什么后面我除了做软件开发部经理同时间硬件开发部经理的原因。这是为什么呢?其实就是个学习心态和方法的问题,当然,也和我已经有了十多年软件开发经验有关,因为硬件开发上难点还是在软件上,正好这是我的强项而已。
    对于你而言,老师的水平要比我的高很多,不会这么容易就被问到答不出来,这不就是很好的环境吗?有什么好郁闷和迷茫的。是我的话最多花个一两个星期就弄完他的那几本书,然后把我的问题全部问完,再到图书馆、书店多弄几本书来巩固,把这些书上的问题也一起问完。然后觉得这个层次基本弄懂了,就升个级别继续弄下去,再去问他们些更深层次的问题,我就不相信,他们什么级别的东西都能答出来。如果真的这样,你可就捡到宝了,尽量多看书,多总结、多理解、多去问。反正从别人那学肯定比自学要快。不过说到问问题和总结与理解,这需要自己思考一下的。希望我的学习经验能给你点启发。