贺利坚给编程初学者的金玉良言

摘要:为了让那些在编程学习中迷茫的朋友找到指引方向的灯塔,社区之星第六期采访的嘉宾是长期奋斗在大学教育一线的老师http://www.w3school.com.cn/),完全免费,很适合初学者。前两天玩过一个用于操控机器人的简单语言RoboMind(http://www.robomind.net/cn/),学过几周其他语言程序设计的同学都有能力去自学。大二之前学语言,完全不要考虑将来要从事的工作,能让自己深入体验、好玩、能做出自己喜欢的程序,都可以成为学习某门语言的理由,到大三后,知道自己将来要从事的领域,再安排有针对性的学习即可。

CSDN:学习编程很多人都会有这样一个问题:A语言不是趋势了,B语言学出来也没有用,应该学C语言,而过了一段时间D语言又流行了,又开始放弃C语言去学习D语言……,针对这个现象,你是怎么看的/p>

贺利坚:将入门的语言学好,再学习第二门语言,这个问题自然就逐渐给出答案,进而真正理解大学中开出各门课程的意义。我感觉持这种观点的大学生一般是没有一门语言可以拿得出手。学习,还是要踏踏实实地坐下来,做过了,学到了,才算数。编程语言是表达工具,很重要,而更重要的是编程思想、算法素养和工程意识,这些与具体语言无关。作为一名职业IT人,精通几门语言,了解十几门语言,很自然的事。基础扎实了,这不是难事。多了解些语言是好事,但我不赞成仅从有用无用、流行不流行的角度去选择语言。

实践是学习编程最好方法

CSDN:很多初学者都不能过好程序设计这关,你能为他们规划下吗/p>

贺利坚:这是目前大学计算机专业教学的痛点,不少同学由于第一门程序设计语言不过关,整个大学学习都处在一种纠结中。我将教学重心投到大一学生身上,也正是想找出实现“让大一学生会编程”的办法。过不好程序设计关,问题不仅在程序设计上,更根本的原因是学习观念和方法的落后。

很多人学习目标只是为了通过考试,采取的方法是死记硬背,实践不顺利却不主动去突破,甚至为数不少的同学不去分辩“上大学就是要好好玩”、“学得再好也失业”之类不靠谱话题的真伪,根本不去安排有效的学习。在最有活力的青春岁月,要相信奋斗,相信由此带来的改变人生的机会。知识改变命运,不过有人将之理解为“大学改变命运”,伪命题一个。有人学了一肚子死知识,梦想靠这样的知识改变命运,也错了。

进入大学,真正去理解大学,学会学习,是一切的保证。这个回答看似走题,但却是在究其根本。过不好程序设计关,其他重要的课程如高等数学等,也学不好。我不赞成不结合个人实际泛泛地谈规划,有了健康的学习生活,每个人都可以根据自己的实际做出规划;否则,任何人的规划也只能落个“鬼话”的下场。

CSDN:你认为学习编程最好的方法是什么这么多年的教学过程中,你肯定也遇到不少学生或初学者的编程困惑,能简单列举其他一些常见的问题吗/p>

贺利坚:学习编程最好的方法就是实践。通过实践,享受程序运行正确带来的快乐,树立信心;通过实践,享受在错误中不断成长的快乐,训练出敏锐的感觉和与bug作斗争的耐心;通过实践,看书中可以不断找到“哦,原来是这样”的感悟,书本中的知识也能够鲜活起来。

初学者的主要问题在于急躁和信心不足。编程起步时,总是会遇到困难,一个错误横在前面,很正常。有人用积极的态度对待,自己查书思考,或者请教别人,解决一个,长进一截;有人面对错误急躁烦恼,连连抱怨枯燥乏味。平常要用积极的话引导自己,多去谈长进,也要时常留意自己的进步。遇到不顺时要去坚持,但不能硬撑着让自己感觉很差。有同学爱和周围的人比,比来比去却唯独不看别人的努力,而总觉得别人都比自己强而丧失信心。

程序设计起步有几个“坎”,突破几个“坎”就能走上正轨。“循环”是个坎,会用循环嵌套解决问题,是程序设计的良好开端;函数是又一个坎,会用函数,标志着用编程的方法解决问题到了一个新层次;对C语言和C++的面向过程设计部分而言,指针是另一个坎,搞清楚了指针,会明白计算机内部的很多问题。

初学者实践的第一个层次是做题目,可以帮助学习者掌握语法及初步的编程方法。这种题目到处都能找到,包括挑战一些ACM竞赛题。第二个层次是做项目,作为初学者,适合做一些有实际背景、相对完整,但并不一定完全实用的系统。我是支持和鼓励初学者能够适当地找找“做项目”的感觉,在教学中也专门写了一个“银行系统”系列题目,适合初学者不断地在“项目”中体会学到的新知识。做这些项目时,不断积累,稍不留意就会写出好几百行的程序,这对初学者找到感觉、信心和兴趣非常实用。

其实,还推荐初学者给自己出题目(或项目)的方式学习,有时可能就是在自己找到的题目(或项目)上提出一些功能和性能上的改进要求,能这样做的同学算是完全放开了自己的学习,必定能让学习更加有效和激情。现在国际上工程教育前沿有种CDIO模式,认为工程师需要培养构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate) 的能力,自编题目可以归为构思的初级形式。想想乔布斯的苹果总能够发布一些出人意料的产品,就可以知道这种能力和意识的培养是具有何等的价值。

优秀的教学和学习平台

CSDN:你起初使用的是新浪博客,是什么原因促使你带领着学生转到CSDN博客认为CSDN博客对学习计算机都有哪些帮助/p>

贺利坚:我新浪博客主题是“关注教育、热爱生活”,这里大多与专业无关。几年来也积累了一些人脉,尤其是现实中走得近的朋友。但是带着学生利用博客进行专业学习后,与原先我对新浪博客的定位已经严重背离。与此同时,也认识到了新浪博客作为编程交流平台的局限:

 新浪博客作技术交流的平台作用有限,学生博客的访客仅限于我们内部。新浪作为门户网站,没有多少受众关心技术;

 新浪博客对IT技术博文支持并不完美,比如C++程序中的注释符号总是被自动删除。

2011年4月,烟台大学CSDN高校俱乐部成立,学生找我做指导教师。我意识到这是带领学生在课外学习中找突破的好平台。由此关注到了CSDN博客,试用后意识到这个专业社区是教学可以利用的理想平台:

 学生在这里可以得到更多人的指导和关心,社会力量会成为指导学生的有生力量;

 学生从大一开始坚持写技术博客,更易于提升和树立他们专业学习兴趣和信心,将学习坚持下去;

 能够坚持的学生,更有可能受到IT企业的关注,甚至有利于获得好的职业发展机会;

 借助CSDN博客,将学生引到专业社区,可以让他们及时跟踪业界动态,主动参与行业发展;

 CSDN博客漂亮的源代码展示非常迷人,专业人员就应该这样。

经过一年多的实践,借专业社区开展专业学习,是最明智的选择。

CSDN:在CSDN博客或社区里你最佩服谁果CSDN下一个就采访他/她,你想对他提什么问题/p>

贺利坚:CSDN中有很多值得佩服的人。在教育圈中,我想到一名学生,是山东滨州学院的曹胜欢(CSDN博客:http://blog.csdn.net/csh624366188)。作为一名大三专科生,他课外学习以及专业学习的激情让我感到惊诧。

CSDN:你是什么时候接触到CSDN,有什么特别的故事分享吗外你对CSDN有什么建议,对未来有什么期待/p>

贺利坚:早在2007年我就注册了CSDN帐号,但由于工作性质及个人兴趣,更注重基础知识以及教育的话题,并没有在注重新技术交流的CSDN社区中深度参与。不过近一年,利用CSDN开展教学以及组织学生课外学习,真心感谢CSDN提供了这样的环境。有时想,带着一帮菜鸟在此胡闯乱奔,是否会让CSDN有看法。今年5月CSDN召开中国云计算大会之际,我作为指导教师,在第一届CSDN高校俱乐部工作交流会上作了发言交流。当时,蒋涛先生在致辞中谈到了CSDN希望在帮助IT在校学生成长方面多做些工作,这让我吃了定心丸,很赞赏CSDN的责任和眼光。

其实,现在的菜鸟也正是几年后行业的主力,借助CSDN成长起来的技术精英,正是将来社区发展可依赖的力量。如果要说点建议和期待,就是希望CSDN能推出更加适合初学者技术学习的产品,让IT菜鸟们能够在CSDN这棵大树上摘得更多果实。

写在最后

邮件采访结束后,记者在与贺老师后续的交流中问他,工作中不断尝试、试探和开展新颖地互联网教学除了辛苦之外,还有没有其他困难老师称,辛苦倒没什么,但是这种有特色的教学进行下去的时候,很多设备和活动都需要自掏腰包。虽然学校已经帮着解决了活动教室,但顾及到可能引起的不平衡和不和谐,他不愿意再张口寻求其他支持。

所以他也在探寻一种共赢机制,希望能得到一些社会帮助,比如企业提供奖品和资金资助,而他们给这些企业以活动冠名和优秀学生推荐实习等回报。贺老师同时还再三承诺,如果他们能得到帮助,所有资助将全部用于学生,且保证相关活动的质量。

聊完这些后,记者陷入了静静地沉思,是的,中国软件质量在世界上并不优秀,而现如今学校中的菜鸟,若干年后将会成为IT行业的中坚力量,倘若企业一开始就能对这些未来的准技术大牛进行“投资”,我想中国软件业的兴盛将指日可待。

来源:wwl33695

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年11月11日
下一篇 2012年11月11日

相关推荐