【来信】
老师,您好,我是一名信管大二的学生,现在的我是c 基本没怎么学,因为大一时跟不上又没有动力和兴趣(其实就是懒)去学习,而且不知道编程的具体用处何在(太急躁),然后现在发现很多信息系统都是可以做出来的,我的兴趣就来了,也开始重新学基础知识,希望做出点东西出来,为了寻找成就感,不愿意再荒废大学时光(但是也不知道自己是否适合做程序员),不知应该如何做。。老师有空的话可以指点一下么。谢谢老师。
【回信】
你用一段时间的荒废,换来了现在的明白,这也是很珍贵的了。你的两个括号,实际已经点出了你的努力方向,那就是在剩余的大学时光里,让自己持续地进步。“学习的行为”与“学习的动力/兴趣”之间的关系,有点类似鸡和蛋,什么时候我们将动力和兴趣当成能学习的必不可少的因素了呢?不去往前走一点,怎能看到路?这两者之间相互作用,才能创造出巨大的发展空间。
你正在大二,补上来的难度尚不是太大。要有信心,辛苦一些,你应该能享受到乐趣。学习C语言,他有可能会成为你做应用系统的要用到的工具,但更有可能,他会成为你了解计算机,了解软件开发的载体。就好比你到达了目的地,坐什么车去的,可能已经无关紧要了。要让学习有效果,要不断找到学习中的成就感,需要在学习中,将实践有效贯彻下去。如果没有其他更好的方案,你可以参考我让我的学生做过的C++题目(点击链接),秋季学期部分的内容,只有在输入输出方面有些区别。
是否适合当程序员,也是一个需要走在路上以后再回答的问题。先有体验,再自己回答。甚至于,这个问题并不重要。谁说学了信管,学了计算机,就永远将你钉在程序员岗位上了?这些专业在培养人时,有技术方面的训练,借此,毕业生可以进入这个行业。随着工作经验的积累,在IT行业有很多的事情可以选择。坊间流传的“程序员吃青春饭”有很大的误导,年纪大了不写程序的技术人员哪去了?做一个有准备的人,该转型时,有能力去做更有价值的事情。但前提是,现阶段好好学,让自己有资格进入行业,有能力得到发展。从这个意义上讲,入行时的程序员岗位,也必将是一个必走的阶段而已。
相信自己,你能做好。
【学生再来信】
谢谢老师。
其实我们大一学习的就是c 程序设计,但是据我所知,它是门槛比较高的一门语言,所以很多同学都学的非常吃力,以至于很多同学都放弃了这个语言,我在想是不是要退而居其次选择别的语言来进入编程行列,虽然我是文科生这种已经不是什么说的出口的理由了,但是也担心学c 没学成又去学别的,到头来会不会一事无成。
【回复】
说两个方面的事情。
首先,语言选择和学C语言的意义。
工作用的语言,随着需求发生变化,总是会变的,因此,我们的重点不是学会某种语言,而是借助学习一种语言,具备不断学习新语言的能力,更重要的是,学会语言背后的程序设计方法。很多人一学C,似乎就想着这辈子就要靠C吃饭了。即使选一个别的语言,这个语言被淘汰了,自己也活不下去了似的。这样的观点,在科技发展日新月异的今天,太僵化了。C的难度在于引入了些底层的内容,其附加的收益,在于对计算机本身的理解,这是学习计算机类专业必须要有的,即使对于信管这样只是和计算机近一些的专业。
其次,说培养方案和学习的两个“战场”的问题。
制定培养方案,对大学里的专业负责人而言是个重要而不好做的事情。培养方案是人做的,但也是在各学科的教学指导委员会定的框架下,结合专业的培养目标和师资特点等,做出来的。培养方案从总体上体现了一名大学生全面成长的目标的,当然,也会由于不同的理解造成争论。作为一名学生,一是为了毕业资格,二是真正地做到“科班”出身,需要认真修读相关的课程。C是难,但他是人造的,是人学的,困为难而放弃,可以成为一个理由,但好好想想,太窝囊了。一路唱着C的难,躲着C走,实际上,没有学好C,问题不在C,在自己,不是死在水平上,而是死在自己造出的温柔的陷阱中。这情景,就是列队准备迎敌,但听着敌方的号角,转身撒丫子就跑了。这样上大学,不行。
不好好学习培养方案里规定的课程,还有一个理由“XXX没用”。自己没有体会,通过某些片面的认识,或者有发言权或没有发言权的某些人的某些只言片语,就找着一个让自己退缩的理由,这是我们现在校园中另外一个学生学着不带劲的原因。这个话题,我在《逆袭大学》里专门有一节在讲,不多说了。总之,当学生的,该学的,不要放过。
我刚才说的是在学生学习的第一个战场“培养方案规定的学习项目”,另一个战场则是“课外自主的个性化学习”。这两者之间的辩证关系不难搞懂。第二战场,对每一个大学生而言必须要有,尽管一直被安排着应试的同学,很多人的学习找不到自主。你的同学们的问题,在于第一个战场窝囊地失守,却想着第二战场能打赢。事实上,这两个战场我们都要有,这样才能成就满意的大学。
最后是对你的建议。你今天的选择,如果在学C时没有过实践,不妨照我上次回复中的建议,老老实实地做些实践。当然也可以再选Java或C#去学,但学的过程,一定要将实践贯彻下去。你要清楚,你的再选择,极大可能也只是一个训练场,上战场前搞清战场,还有事要说。
【学生再来信】
谢谢老师,您的说的一语中的,我看了好几遍,也确是愧疚,不过也正如你所说要多实践,是不是就是实实在在的把那些练习做一遍,但要达到怎么样的一个层次才算可以呢,是不是要不看书能直接敲出代码。比如那些程序设计,是否是全靠自己把全部代码自行敲出来?
【我的回复】
要达到能自己分析问题,并写出程序的程度。在达到这样的目标过程中,阅读程序也好,甚至是照书敲也好,都是一种手段。将目标与手段分开来,你会发现达到目标的手段可以是无拘无束的。“不择手段”?就是这样!