Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


为什么有的程序员不会编程?

2014-11-24 22:22    评论: 23 分享: 20    

Jeff Atwood在Coding Horror博客上这样写道:

“这真的很难让人相信,但是通过Twitter和电子邮件的总结报道,我们可以发现:很多面试程序员岗位的应聘人员竟然一点儿也不会编程。”

我觉得这作者可能并不了解现今的大学教育情况。大多数程序员不会编程的最根本原因是他们所受的教育让他们盲目地觉得自己已经会编程了。

下面的两个案例可以用来说明我的观点。

我曾工作于当地的一家社区学院(两年制的大学教育)。他们聘请了他们学院中的一个学生一起来开发一个ASP.NET项目,原因是这个学生的教授极力推荐他,因为他所有的编程课成绩都是A。这位教授说,“这是我教过的最优秀的学生之一。”

也许光看成绩,他是最好的 ,但是事实是他一点也不会编程。最后没办法他只能退出项目,回过头来重新学习如何做一个真正会写程序的程序员。

没错,学校是在教当前比较实用的编程语言,但是学校教育也大多止步于此。我们是学了很多编程语言,就像学数学一样,这是公式,但是光知道公式是没用的,还需要练习如何联系实际解决问题,这是在课堂教育中所没有涉及的,甚至学校也不会教你如何解决面试中的任何问题。

我女儿读书的那个学校我发现情况更糟。他们有一个计算机科学编程课程,但是当我和一个刚毕业的大学生交流的时候,我发现我真的没法说服自己聘用他。这孩子自己也发现被这个破学校骗了,然后一箩筐地将事情的一切都告诉了我。

虽然他读的是Java语言,但是他竟然连多态性都没有听说过。当我问他,“什么是继承,举个实际例子?”的时候,他目瞪口呆,哑口无言。

他也从来没听说过JSP、HTML和JavaScript。我真纳闷,这学校教Java究竟是教了什么东西,为什么连这些基本内容都不教呢?

有评论认为,在这方面需要政府的监管和考核,淘汰掉那些不能真正教会学生编程的学校课程。我不否认有些老师会教学生写程序、关心学生的就业质量,但是我们真的需要改变教育体制以淘汰掉那些不会教学生、自己也不会写程序的所谓的“专家教授”。也许还可以加入认证测试之类的考核,有助于真正评价学生的能力,帮助他们顺利通过面试。

发表评论


最新评论

我也要发表评论

老沙 2014-11-26 05:47
1
老沙 发表于 2014-11-25 05:21 的评论:
有什么办法?学校里面面对的是一群一无所知的学生,一切要从基础开始,而且课时非常少,一般来说学习一门编程语言只有一个学期,大约是60到80课时,这点时间如果全用来讲课,也只能说个大概,如果学生再懒点,基本上这一学期的课就是催眠曲。我讲java课的时候,两个多月已经演示了50多个例子,但是没有学生自己做过这么多的程序,都是老师布置一下,自己做一点,还有点干脆就抄一下,对不对无所谓,反正是交给老师了——即使是再好些的学校,学生的情况也好不到哪里去。国内这种情况会更严重,因为国内的教材上面举的例子基本上都是解决数学问题,本来编程就不算有趣,加上更加无趣的数学,很难有学生对此感兴趣,总盼着赶紧考完试拉倒。而且学校“为了”就业,开了大量的课,C,java,网站开发,数据库等等,不仅多,而且相互之间的联系比较弱,结果就是每一种都只能讲个基础——不是学生学个基础,这样能好吗?我以为只有国内教育有问题,原来发达国家也没有好到哪里去。
2
来自 - 安徽合肥 的 MSIE/Windows 用户 发表于 2014-11-25 20:24 的评论:
太对了,我是一个本科数学专业转而考计算机研究生的,原因在于本科学了C语言,而我是在想不通这个一天到晚都在做数值计算的工具是怎么做出贪吃蛇、俄罗斯方块等游戏的
你有了搞数值计算的基础,至于做贪吃蛇也就是一层纸了,一捅就破。搞数学的脑子都比较清楚,再来搞计算机会容易些。你找本游戏编程入门,一看就明白了,其实就是各种基础的数学运算,以及各种模块的堆积——当然,我说的是那种可以运行的,不是符合良好开发规范的程序。
回复
老沙 2014-11-26 05:43
1
来自 - 上海 的 Chrome/Linux 用户 发表于 2014-11-25 09:08 的评论:
学校不是公司,学校要开设某门课程不是说开就开的,所以难免根不上时代,我觉得关键是学生自己不能在课外多学。
2
来自 - 湖南湘潭 的 Chrome/Linux 用户 发表于 2014-11-25 13:26 的评论:
以此类推,不是学校的责任,但是问题摆在这确实存在,是谁的责任?绝对不是学生的责任,学生是受众,受众没有选择的余地,因为如果学生选择在课外学习,那么他就不是以在校学生身份在学习了。那么到底是谁的责任,你说说看。
3
linux 发表于 2014-11-25 20:55 的评论:
我觉得还是学校和社会脱节的原因。
完全同意,教育和社会需求脱节了,而且似乎是必然要脱节。学校教育的目的在于培养一种思维方式,岗位需要一种工作技能。学校想教会学生如何思考问题,如果把学生直接当成码农培养就不会有脱节问题了,学校在前两年或者前三年教一下基础,最后一年直接请一线的高手过来做一两个综合项目,这种学生毕业出来直接就可以上岗了。
不过另一个问题又来了,学生毕业后一定要从事本专业的工作吗?学生难道没有学完了才发现这个专业自己不喜欢的情况吗?学校开设了这个专业就保证学生毕业后一定会有本专业的工作吗?那样看上去很美,其实和过去的计划经济的思路没啥两样——更不适合当今社会。
我们现在说的是学生上了学却不会编程的事情,其实还有另一个更极端的例子,麻省理工的学生出来就好找工作吗?也许他们在学校实验室里面做出了好东西,但社会上连生产这东西的机器都还没有造出来,难道他们就失业了吗?事实上他们确实好找工作。反过来,不会编程不见得也不对,这样的学生在学校里面已经有了基础,也许做一两个项目就上道了,也许可以做个比较专业的推销员——选择还是很多的。
所以,本科大学还是要培养思维方式,所谓的专业仅仅是个学习的例子罢了。学生有了好的思维方式,大
回复
linux 2014-11-25 20:55
1
来自 - 上海 的 Chrome/Linux 用户 发表于 2014-11-25 09:08 的评论:
学校不是公司,学校要开设某门课程不是说开就开的,所以难免根不上时代,我觉得关键是学生自己不能在课外多学。
2
来自 - 湖南湘潭 的 Chrome/Linux 用户 发表于 2014-11-25 13:26 的评论:
以此类推,不是学校的责任,但是问题摆在这确实存在,是谁的责任?绝对不是学生的责任,学生是受众,受众没有选择的余地,因为如果学生选择在课外学习,那么他就不是以在校学生身份在学习了。那么到底是谁的责任,你说说看。
我觉得还是学校和社会脱节的原因。
回复
来自 - 安徽合肥 的 MSIE/Windows 用户 2014-11-25 20:24
1
老沙 发表于 2014-11-25 05:21 的评论:
有什么办法?学校里面面对的是一群一无所知的学生,一切要从基础开始,而且课时非常少,一般来说学习一门编程语言只有一个学期,大约是60到80课时,这点时间如果全用来讲课,也只能说个大概,如果学生再懒点,基本上这一学期的课就是催眠曲。我讲java课的时候,两个多月已经演示了50多个例子,但是没有学生自己做过这么多的程序,都是老师布置一下,自己做一点,还有点干脆就抄一下,对不对无所谓,反正是交给老师了——即使是再好些的学校,学生的情况也好不到哪里去。国内这种情况会更严重,因为国内的教材上面举的例子基本上都是解决数学问题,本来编程就不算有趣,加上更加无趣的数学,很难有学生对此感兴趣,总盼着赶紧考完试拉倒。而且学校“为了”就业,开了大量的课,C,java,网站开发,数据库等等,不仅多,而且相互之间的联系比较弱,结果就是每一种都只能讲个基础——不是学生学个基础,这样能好吗?我以为只有国内教育有问题,原来发达国家也没有好到哪里去。
太对了,我是一个本科数学专业转而考计算机研究生的,原因在于本科学了C语言,而我是在想不通这个一天到晚都在做数值计算的工具是怎么做出贪吃蛇、俄罗斯方块等游戏的
13 回复
来自 - 湖南湘潭 的 Chrome/Linux 用户 2014-11-25 13:26
1
来自 - 上海 的 Chrome/Linux 用户 发表于 2014-11-25 09:08 的评论:
学校不是公司,学校要开设某门课程不是说开就开的,所以难免根不上时代,我觉得关键是学生自己不能在课外多学。
以此类推,不是学校的责任,但是问题摆在这确实存在,是谁的责任?绝对不是学生的责任,学生是受众,受众没有选择的余地,因为如果学生选择在课外学习,那么他就不是以在校学生身份在学习了。那么到底是谁的责任,你说说看。
回复
ruo 2014-11-25 09:58
大学就是个坑啊,坑了好多人的青春
23 回复
模数控 2014-11-25 09:33  新浪微博网友评论
社会大环境的急功近利、教育领域问题的积重难返。北大、清华、厦大之顶尖高等学府都能藏污纳“叫兽”了。对技术的追求总要胜过对安逸生活的享受。道还很长、感激那份让自己转型的辜负与悲伤、
回复
来自 - 上海 的 Chrome/Linux 用户 2014-11-25 09:08
学校不是公司,学校要开设某门课程不是说开就开的,所以难免根不上时代,我觉得关键是学生自己不能在课外多学。
回复
光喝水也长肉的Macauley 2014-11-25 07:33  新浪微博网友评论
这应该叫码农
19 回复
__SakuraChan 2014-11-25 07:33  新浪微博网友评论
高数么,英语么
回复
老沙 2014-11-25 05:21
有什么办法?学校里面面对的是一群一无所知的学生,一切要从基础开始,而且课时非常少,一般来说学习一门编程语言只有一个学期,大约是60到80课时,这点时间如果全用来讲课,也只能说个大概,如果学生再懒点,基本上这一学期的课就是催眠曲。我讲java课的时候,两个多月已经演示了50多个例子,但是没有学生自己做过这么多的程序,都是老师布置一下,自己做一点,还有点干脆就抄一下,对不对无所谓,反正是交给老师了——即使是再好些的学校,学生的情况也好不到哪里去。国内这种情况会更严重,因为国内的教材上面举的例子基本上都是解决数学问题,本来编程就不算有趣,加上更加无趣的数学,很难有学生对此感兴趣,总盼着赶紧考完试拉倒。而且学校“为了”就业,开了大量的课,C,java,网站开发,数据库等等,不仅多,而且相互之间的联系比较弱,结果就是每一种都只能讲个基础——不是学生学个基础,这样能好吗?我以为只有国内教育有问题,原来发达国家也没有好到哪里去。
2 回复
bug_yao 2014-11-25 00:33  新浪微博网友评论
@我的印象笔记
回复
被冻感冒的冰淇淋 2014-11-25 00:33  新浪微博网友评论
运用“公式”的过程需要自己去亲身体会。
回复
LeoSuMou 2014-11-25 00:03  新浪微博网友评论
看到这个我就呵呵了!!!
回复
Mark-zhouqi 2014-11-25 00:03  新浪微博网友评论
[嘻嘻]
回复
ThisIsGPY 2014-11-25 00:03  新浪微博网友评论
大学的计算机教育走的是通识路线,特别是本科,相对于专科,更偏向于理论的传授。同时,学校对现代大学生的定性错了,认为大学生都是具备自学能力,并且能够自觉进行自学的。说白了,成功学+网络上所谓的大神+时代背景,“造就”了这个情况!//@Ray不忘初心: 我们学校基本上也就是这样
回复
Ray不忘初心 2014-11-24 23:33  新浪微博网友评论
我们学校基本上也就是这样
回复
阿伦依旧艾弗森 2014-11-24 23:33  新浪微博网友评论
多态,继承什么我都学了[悲伤][悲伤][悲伤]可我还是不会编程
回复
酔開懐 2014-11-24 23:33  新浪微博网友评论
原因是学校并不试图让每一个学生都能变得优秀,它只想让其中极少部分得到认可,这就是很多人被糟蹋的真相。从小学到大学,无例外
回复
来自死神界的夏天 2014-11-24 23:33  新浪微博网友评论
感觉除了写 helloworld 之外,其他的都不会了。
回复
12下一页

热点评论

ruo 2014-11-25 09:58
大学就是个坑啊,坑了好多人的青春
23
光喝水也长肉的Macauley 2014-11-25 07:33
这应该叫码农
19
来自 - 安徽合肥 的 MSIE/Windows 用户 2014-11-25 20:24
太对了,我是一个本科数学专业转而考计算机研究生的,原因在于本科学了C语言,而我是在想不通这个一天到晚都在做数值计算的工具是怎么做出贪吃蛇、俄罗斯方块等游戏的
13
木_小贱 2014-11-24 22:33
@我的印象笔记
12
老沙 2014-11-25 05:21
有什么办法?学校里面面对的是一群一无所知的学生,一切要从基础开始,而且课时非常少,一般来说学习一门编程语言只有一个学期,大约是60到80课时,这点时间如果全用来讲课,也只能说个大概,如果学生再懒点,基本上这一学期的课就是催眠曲。我讲java课的时候,两个多月已经演示了50多个例子,但是没有学生自己做过这么多的程序,都是老师布置一下,自己做一点,还有点干脆就抄一下,对不对无所谓,反正是交给老师了——即使是再好些的学校,学生的情况也好不到哪里去。国内这种情况会更严重,因为国内的教材上面举的例子基本上都是解决数学问题,本来编程就不算有趣,加上更加无趣的数学,很难有学生对此感兴趣,总盼着赶紧考完试拉倒。而且学校“为了”就业,开了大量的课,C,java,网站开发,数据库等等,不仅多,而且相互之间的联系比较弱,结果就是每一种都只能讲个基础——不是学生学个基础,这样能好吗?我以为只有国内教育有问题,原来发达国家也没有好到哪里去。
2
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。