计算机专业新生很难入门程序设计?答一个师妹的提问

  前段日子一个师妹在微博里给我留言,表示大一开设的程序设计课程她学起来很吃力,摸不到门道,想从我这里得到一些指点。刚开始,我觉得这个问题很简单,毕竟自己也工作了好几年了,总能给一些建议的。后来又仔细想想,也许并不是这么简单,这里面也许有很多因素。大家由于学习工作环境和经历的不同存在这知识偏差,往往A觉得很容易的事情,在B看来是很困难的,所以A给出的建议对B来说并不具备实际参考性。我花了些时间思考这个问题,也和身边的同事交流了一下,谈谈自己的一些看法。 


为什么会觉得困难


个问题因人而异,大概有几个方面:
1.大学的授课形式与高中差异很大,信息量大,节奏快。这可能是所有理工科课程都会表现出的一个特点。对于刚进大学习惯了高中上课的新生来说,难免会有不适应。
2.学生自己的问题,经过高考后大概两个月的假期,再加上新生入学头一个月左右的军训,远离书本,一开始上课找不到学习状态。
3.程序设计这门课,有的学校叫C语言或者什么别的,总之就是你接触计算机编程的第一门课程。这是一门与实践联系很紧密的课程,随着你学习工作的时间越久,你就会越认同我的观点,我们在大学以前的学习习惯往往是基于书本以及大量的练习,都是停留在纸笔上,而计算机编程是离不开计算机的,你不可能只通过看书和做习题就能彻底理解他,即使你概念理解的再好,缺少了实际的编程经验,那么始终是不得要领的。同时程序设计是需要一定抽象能力的,需要一点感性的。


女生比男生学起来更难么


给我留言的是师妹,我也就顺带说说这个老生常谈的问题,答案是既对也不对。
1.为什么不对?因为从客观智力水平上来说,性别差异不会产生什么影响,所以对于同样的程序课程来说,老师都是一样的教,而且能考上我们大学(虽然比不上清华北大这些一线搞校,也是985,211的),说明高中的学习能力都不差。所以男女学生之间的起点是相同的,而且大学时期男生为了恋爱,游戏所花费的精力普遍是多余女同学的。
2.为什么对?从实际的学习和工作情况来看,这个行业里女生算是稀有群体,从报考上女生比例就很少,而由于后面的一些原因,女生会越来越少,而在这个行业里成功的女性比例也少。这样慢慢形成一个趋势,选择计算机专业的女性越来越少,导致行业里优秀女性的比例越来越低,反过来又让社会认为女生学计算机不合适,如此这般恶心循环。我得承认一个事实,女同学往往是不爱动手操作的,比如生活中的小事,修个拖把,装个电脑,拆个玩具等等,为什么会这样,我们不必去深究,但这是一个事实存在的情况。就我个人的经历,除了实验课以外的时间,女同学很少为了完成作业以外去动手编程,而男同学虽然动手比例不高,但还是会有一些的。长时间的积累,这种差距就不行拉大了。 


建议?


前面把问题抛出来,可怎么解决呢?我在开头提过知识偏差这个词,不考虑被建议者的实际情况提出的建议,往往给人"站着说话不腰疼"之感。我回顾一下自己的学生时代,再结合一些至今的工作经历,谈一谈我的一些粗浅见解。

1.认真上课,尽自己努力学好学校开设的每一门课,不否认确实有大学不怎么上课,但毕业后仍能在专业上有所成就的人。但大多数还是有必要学好学校教的课程,学校的课程理论性较重,让人觉得脱离实际应用,再加上社会上的一些谬论的误导,就会让不少学生不知道学这些东西有什么用,渐渐的就放弃掉了,即使天天去上课,考试及格了,也只是为了分数。我工作多年后,才深感理论知识在大学时代学的不够深入,给我带来的上升瓶颈。我再往下说,可能在校生也不理解,总之,尽努力学好老师教授你的课上。
2.勤写代码,如果新生去问他的前辈们,应该如何如何入门?差不多所有的回答者里都会包含一条,勤动手。应该说,计算机专业的内容,既注重理论性,也注重实践性,无论你学习多么高深的数学理论,最终要变成一行行代码让他在硬件上跑起来。反过来,缺少了理论知识的支撑,你也只能写写简单的代码,而无法进一步提高。所以说学习理论知识和实际动手编程是相辅相成的,二者缺一不可。计算机是一个复杂的体系,很多知识是相互交叉杂糅在一起,你只会一门编程语言也是成为不了一名优秀的程序员的。编程也是个熟能生巧的过程,大家都是从hello world起步的,坚持下来,养成习惯。就不会有一需要动手编程就怯场了。
3.抽象思维,利用计算机解决实际问题是需要一定的抽象能力的,当学习到面向对象编程的相关课程的时候,就会体会到这一点。简单来说,遇到一个实际问题,你需要对问题进行提炼,抽象成一个个逻辑实体,然后思考这些实体间的关系,找到处理这些关系的办法,最终使用编程语言把它实现出来。编程语言只是解决问题的最后一个环节,在整个过程中重要,但并不一定是最重要的,在学习过程中一定不要舍本逐末。
4.多读些书吧,我前面说多动手,这会儿又说多读书,其实不矛盾,这是相辅相成。读一些好书,我就这个问题问过我的同事,他给我丢过来几本国外大牛的神作,我是不同意的,不是说大神的作品不好,只是不适应刚学习编程的学生,我不给大家推荐什么书,对于编程入门来说,我想学校的教科书就可以了,也可以买一两门大家都看的那种,等你有了基础之后,就不要一直读这种没营养的,找一些业界公认的好书,花上一段时间,来认真啃。你的收获会很大。


写在最后


  随随便便写了上面的这一堆文字,不一定能给你提供什么帮助,权当是个前辈的碎碎念吧,在四年的大学生活里,会有很多很多经历,会面临很多很多抉择,你也一定会慢慢改变,毕业时找工作,也会有很多人放弃计算机专业,而计算机专业本身的分类有十分庞杂。时刻遵从自己的内心,把眼光放得长远些。四年时光,转眼就过去,也总有一天要走入社会,无论你日后从事什么职业,都不要虚度现在的光阴,大学的生活应该是多姿多彩的,但别偏离了主线。祝师弟师妹们都能学有所成。

  尊重他人智慧成果,若要转载,请注明作者esfog,原文地址http://www.cnblogs.com/Esfog/p/How_Newbee_Learn_Program.html 

原文地址:https://www.cnblogs.com/Esfog/p/How_Newbee_Learn_Program.html