给编程初学者的金玉良言

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

发表于 2012-12-12 13:38| 5717次阅读| 来源 CSDN| 33 条评论| 作者 张勇
C++ 访谈 社区之星 互联网 教学 贺利坚
摘要:为了让那些在编程学习中迷茫的朋友找到指引方向的灯塔,社区之星第六期采访的嘉宾是长期奋斗在大学教育一线的老师——贺利坚。贺老师在教学中不拘一格,巧妙地将互联网引入到教学中,同时他在学生教育和专业教学中地真知灼见,对许多大学生和初学者来讲是金玉良言。

导语:这是一名特别值得尊敬的老师,他不仅与时俱进地带着他的学生在互联网上学习知识,努力解决当前高等教育教学中存在的顽疾外,还义务的在网络上开设《IT学子成长指导》栏目接受大家咨询,为迷茫的学习者指引方向。为此,CSDN记者对这位老师进行了邮件专访并发表成文,希望给大家带来以下收获:如果你是一名高校老师,看完此文后,你一定会在教学上有所收获;如果你是一名大学学生,看完此文后,你会规划好自己的大学生涯;如果你是一名编程初学者,看完此文后,你会获得方法并成功完成学习;如果你是一名技术大牛,看完此文后,你一定会喜欢上CSDN博客、喜欢上技术分享和乐于助人。最后,希望各位能认真看完本次专访,相信你总会有所收获。

给编程初学者的金玉良言_第1张图片

贺利坚认为学习编程最好的方法就是实践,而实践就是要多做题目和项目

贺利坚,烟台大学计算机学院副教授,博士。从1994年起担任高校计算机专业教师以来,主要精力投入到了教学一线的工作,期间做过横向课题开发、纵向课题研究,做过辅导员、班主任,还有过三年的教学管理经历。深知高校教师的责任,明确了“为IT菜鸟起飞铺跑道”的定位,全身心投入到学生的教育和专业教学中,用不断求新、注重实效的态度,和学生一起清除制约年轻人成长的障碍。

人有时候需要傻一些

CSDN:请和大家介绍下你以及所从事的工作

贺利坚:我是烟台大学计算机学院教师。上小学前的理想就是做老师,虽然几个人生转折点都差点离开这个理想,但最终还是当了老师。在十八年教师生涯中,历经考验,不惑之年终于再次明确,此生的追求,仍然是当一个好老师。目前的教学工作主要是两大块,一块面向计算机类专业学生的《C++程序设计》,另一块则面向全校学生的《大学生学习指导》。另外工作投入比较多的也还有组织和指导学生专业社团,借此挖掘和发挥学生自身的力量,促进大学生的全面成长。

CSDN:在那个计算机并不普及的年代,你为何会选择计算机专业?另外是什么原因促使你从机关回归到一线做老师?

贺利坚:选择计算机专业,主要是受我姐夫影响,他是学计算机专业的,和他不多的交往中,我也想见识见识他和我谈及,但从来没有见过的事物,因此就这么简单地走上了学习计算机的道路。至于有没有兴趣的成分在里面,其实那时比较简单,根本不想这么多,只是觉得上了这个专业,应该好好学,等学到东西了兴趣就来了。有时候,需要傻一些,想多了容易分神,反倒不知该如何走好下一步。从一线到机关,是抱着要做一些事的想法去的,当时感觉到作为一线教师有一些无奈的事情,希望通过学校层面的教学管理工作而带来改变。在行政机关的三年时间,我之前想到的工作,基本都做到了,而后来想到的工作,却不能再深入。

需要澄清的是,我不是在发牢骚,一方面我是认为管理是属于平稳进行的工作,但我这种喜欢改变和尝试的风格,并不完全适合行政管理;另一方面,通过三年的行政工作,体会到了管理岗位上的无奈,知道了教师岗位能干什么工作,还能有什么突破,最主要的是真正知道自己的缺点——科研能力差,对于想当一个合格的大学教师究竟意味着什么。于是,回归就自然了。后来,看乔布斯的自传,这叫“follow my heart”。

CSDN:你的CSDN博客ID是“迂者-贺利坚”,为什么要在名字中用“迂者”?想传达什么含义?另外你坚持在CSDN写博客已有一年多时间,有什么心得吗?

贺利坚:“迂”即“迂腐”。其实在现实中,我并不是处处招人喜欢。工作八年后的一次调动,最直接的原因之一是周围的学生、同事受不了我的认真。后来,在具体做事风格上有了些变化,其实过分、很直的认真对周围的人而言,确实是一种伤害。任何人受到嘲弄都不舒服,但自嘲除外。当有一天我告诉自己,你就是个迂腐的家伙时,我由于认真而引起的压力完全释放,也更加喜欢自己。曾经想过叫“愚者”,但那位搬山的老前辈太令人尊敬了。现在我对“迂”的解释是:迂在心中,某些行动,要看条件和环境,也要考虑周围的学生、同事的接受程度。

在CSDN写博客主要是教学需要,不过我写博文则是从新浪博客开始,科学网也还有个博客。目前这三个博客是这样分类:CSDN注重专业学习,新浪博客分享我的教育故事和感悟,以及我所热爱的生活,而科学网则发表一些高等教育方面的话题。我认为:写博客,发到合适的社区还是很重要的。

写作,是让一个人活得更明白的办法,在写作过程中,某些困扰突然之间就被破解了,有时候会给自己提出非常有意思的新问题、新想法。写作也让人能用一种更有激情的方式活着,这是我们这些大众最为需要的。用写作的方式,将平常生活和工作中的所做所想记录下来,写着写着,会发现自己真是不平凡的。通过博客,还让我发现了更多和我一样热爱教育的人,从而不再孤单,更让人心旷神怡的是,能得到很多的鼓励和支持自己的评论。

我的互联网教学之路

CSDN:在教学上你不拘一格提出了将互联网引入到教学中,是什么让你想到要带着你的学生在网上学习C++?互联网教学都有哪些优势?

贺利坚:大学很多课都采取大班教学的方式,当我如愿承担C++程序设计课教学时发现,让学生大量编程是一定要执行,但课外辅导如何开展,如何防止学生抄作业,是个棘手的问题。虽然学校有专门的网络教学平台,但只能在封闭的校园网中使用,不能满足我的需求。后来在新浪博客中,看到大二学生发博文,博文是日常编程的记录,有时加几句感想,有时就是直接贴源代码,甚至有的同学写得很上瘾。于是带着学生开博客的念头产生了,也就有了现在的实践。再后来,认识到了CSDN的优势,带着学生“搬家”。而今年的工作直接就在CSDN。

让学生将上机报告发到CSDN博客,给我解决了交作业途径的问题,同时,大班教学辅导渠道拓宽了,学生可以很容易找到我,我也可以很容易看到他们的进展,最大的好处是,打开了学生与外界交流的窗口,有很多高年级的学生,甚至社会上的业内人士给我的学生直接指导。我在动员学生开博客时,提到了记录成长历程、引发深入思考、塑造个人品牌、提高写作能力、创造成功机会,每一点都价值非凡,直指解决当前高等教育教学中存在的顽疾。

当一名计算机学生刚刚开始IT学习,就被老师带进CSDN这样的专业社区,了解最新进展、享受海量资源、接触专业人士、获得实践机会,也给自己创造了一个全新、开放的展示空间,可以想象到对他们的影响巨大。另外这种方式,也促进了学生间的交流,还把社会力量引入到学校的教育中,这让我进一步体会到开放的力量与价值。因此,我也鼓励学生们,一旦有能力,就要及时去反哺社区,帮助其他人,如同当初得到别人的帮助一样。

CSDN:从网友评论中获知你是一名非常值得尊敬的大学教授,创建的《IT学子成长指导》栏目帮助了很多迷茫的初学者,这必然占用了个人很大一部分时间,所以很好奇当初你为什么会创建《IT学子成长指导》栏目?作出这么大牺牲,除了老师责任之外,你最初的原因是什么?另外栏目创办至今,你都有哪些收获?

贺利坚:我的博文,其实都是日常工作和生活的原始记录,有时是学生写来的Email及回复(隐去当事人的隐私)。最初写下来,是觉得有些对学生的个别指导中,涉及到了共性的问题,只讲给了一个人,受益面太窄。如果不写出来就有点可惜了,因为很多观点、思维方式都很不错。可以说,写博文就是一个随手记录的过程,直到后来体会到其中的意义,有意识地想问题并及时记录。一开始在新浪博客发表时,点击量不是很多,后来带着计算机专业的学生来到CSDN,发现专业学习指导类的博文很受欢迎,意识到这可能是最能体现我价值的地方。积累多了,想到申请专栏,然后引来了更多来信,这一切都是自然发生的。

在教学中不断尝新、试探,不断解决问题,以及在网络上义务咨询,确实在时间和精力上需要投入很多。实际上,我已将写科研文章,以及目前体制下和待遇、前途挂钩的其他工作置于其次。也更正一下问题中所言,我只是副教授,不是教授,副教授也是当了十年讲师后才评上。现在的做法,在现行体制下和评教授要走的路相悖,但这是我喜欢做的事,是需要我做的事,是作为教师的正事,也是最有价值的事。follow my heart,很舒服。

至于收获,是在咨询过程中,遇到很多没有想过的问题,有些当事人的奋斗鼓舞了我,在唏嘘有些人的不幸境遇,为他指点迷津之余,真心感觉到自己帮助年轻人成长的价值所在不少来信都是看过一天后再回复,立刻回复总怕说不好。在这一天中会反复琢磨,直至形成比较完整的想法。在解答疑惑中,自己也会更加明白,越深入做事就会发现更多的问题和自己不足。教育别人相对容易,教育自己难,我最大的收获或许就是:得到了教育自己的机会。

CSDN:说个题外话,从整个学习生涯和教师生涯来看,你都非常努力和勤奋,能分享下是什么信念让你能够一直坚持下去?另外你还是梅花桩拳的传承人,这些额外的兴趣对你有没有什么帮助?

贺利坚:我的回答可能让人意外:这中间没有信念的成份。我是农民的儿子,我们全家都已经脱离了农村生活,但农村人的生活方式和态度却对我影响至深。和现代都市人不同,传统农民没有上下班、工作日和周末之分,每天的工作、生活融为一体,他们可以过自己可能清贫,但绝对幸福的生活。因为这是在做自己喜欢的事,我现在的方式就是这样,当然也受益于高校自由氛围。

作为大学生,也有条件安排出这种无功利,心无旁骛的学习。时下很多老师讲“教学是个良心活”,我提出过“不要良心要境界”,靠良心、信念之类的,让人太累,对大众而言注定不能持久,我也纯大众一个。如果一定要说和信念有关的,倒是我相信自己做法是对的,会得到承认,通过我现在费力的尝试,必定可以找出省力高效的方法供其他老师和学生参考,为根本改变我们教育局面,在底层上作出贡献。

通过习武,让我能真正地做个读书人。中国传统武术是中国传统文化的精华,习武,打开了我学习和领悟祖国传统文化的通道。读我的文章,应该能读出一些道家出世的自然和返璞归真,儒家入世的责任和豪迈,以及佛家处世需要的智慧。话说大了,这方面我仍在初级阶段,很多经典著作想看没有时间落实。作为中国人,应该学习中华文化,中华传统文化是个大宝藏,有我们需要的营养,需要我们去发扬光大。

梅花桩给我的最大财富是健康,这也是我超量工作的资本。我基本保证每天锻炼1小时,还能和全校各专业习武的学生度过不谈专业的时间。梅花桩的动作大开大合,很适合知识分子习练,可以想象到:坐了一天后,能够将自己全身舒展的撑一撑会是何等的享受。

学习心态很重要 多数人学C++是被“吓住”

CSDN:很多人都讲C++入门难,你觉得如何规划和深入学习C++?对于初学者,你有哪些建议和书籍推荐?

贺利坚:不管用哪种语言学习编程,由于涉及到一种新的思维方式,都会感觉到困难。C++需要涉及一些计算机底层知识,相对而言更难一些,不过,其难度被人为夸大了,以至于有些学生背着心理包袱起步,他们不是被难住,是被吓住了。初学者学习心态非常重要,只要有勇气体验即可,做不出来无所谓,本来就菜鸟一个,继续尝试,多看几遍书,感觉就会有。自己编程序编不出,看别人编出的程序,然后再自己写出来。看完后自己写出来非常关键,光看不练,注定白看。

初学C++,要跟好老师,按老师的指导完成学习任务,可以自己找一些题目额外多练,还可以直接找老师咨询。一方面自己要尽快学会自学,但也不要忽视主动找老师寻求指导。有人感叹学C++时遇到我这样的老师就好了,我不同意这种说法,我只是在“忽悠”学生好好学习上有点办法,但归根结底还是靠学生自学,哪怕没有人给你鼓劲,也要学会自己找机会。人总是站在此山觉得那山高,以这样的心态,即使好老师就在身边也会被忽视。即使周围学风差,你单独找老师,老师也是愿意点拨,这点知识对任何一位老师而言都不是问题。

至于书籍,首先用好选用的教材,即使有人批评教材很烂,择其善而用,借此练出评价能力也是好的。入门之后,《C++ Primer-经典》、Bjarne Stroustrup的《C++程序设计语言》等书籍可以作为参考书。

CSDN:除了C++,你认为还有哪些语言值得学生关注,为什么?

贺利坚:如果C++是学的第一门语言,可以在用C++编程的实践中获得足够多的体验,不必着急学太多的语言。整个大学期间,Java语言是需要了解,甚至成为自己编程的主要语言。另外,也需要掌握一两门脚本语言,毕竟现在是网络时代。建议大学低年级的学生可以早点自学HTML,难度不大,但可以提前开启Web开发的体验之旅,此外还可以逐渐了解更多如CSS、JavaScript、XML等。这方面的学习可以看W3school教程(http://www.w3school.com.cn/),完全免费,很适合初学者。前两天玩过一个用于操控机器人的简单语言RoboMind(http://www.robomind.net/cn/),学过几周其他语言程序设计的同学都有能力去自学。大二之前学语言,完全不要考虑将来要从事的工作,能让自己深入体验、好玩、能做出自己喜欢的程序,都可以成为学习某门语言的理由,到大三后,知道自己将来要从事的领域,再安排有针对性的学习即可。

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

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

实践是学习编程最好方法

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

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

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

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

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

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

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

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

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

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

优秀的教学和学习平台

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

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

  • 新浪博客作技术交流的平台作用有限,学生博客的访客仅限于我们内部。新浪作为门户网站,没有多少受众关心技术;
  • 新浪博客对IT技术博文支持并不完美,比如C++程序中的注释符号总是被自动删除。

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

  • 学生在这里可以得到更多人的指导和关心,社会力量会成为指导学生的有生力量;
  • 学生从大一开始坚持写技术博客,更易于提升和树立他们专业学习兴趣和信心,将学习坚持下去;
  • 能够坚持的学生,更有可能受到IT企业的关注,甚至有利于获得好的职业发展机会;
  • 借助CSDN博客,将学生引到专业社区,可以让他们及时跟踪业界动态,主动参与行业发展;
  • CSDN博客漂亮的源代码展示非常迷人,专业人员就应该这样。

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

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

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

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

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

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

写在最后

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

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

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

若想获悉贺利坚更多动态,请关注:

你可能感兴趣的:(给编程初学者的金玉良言)