我们教授编程的方式统统不对!

我们教授编程的方式统统不对!
2020年01月16日 14:41 CSDN程序人生

科技行业所有的重大突破都离不开多人的共同努力。

为了将某个功能添加到 iPhone 应用,前端工程师、用户体验设计师和图形设计师团队必须与网络安全专家、后端开发人员以及 iOS 开发人员合作。也就是说,如今优秀的工程师都懂得如何与他人合作与交流。但是,我们仍然培训了太多倾向于单独工作的程序员。

从在教室上课的第一天起,计算机科学专业的学生就把个人的成功看得比团队荣誉更重要,大多数作业都是学生单独完成并提交的。虽然文科专业的学生会研究交流方法,商科和医学等专业课程需要大量的团队工作,但许多计算机科学课程都过于重视技术成果,而忽略了所谓的“软技能”,例如协作和交流等。我们很少花时间解决冲突和进行批判性思考。

计算机科学课程的学生得分大都会呈现正态曲线的分布,因此这会变相鼓励同学彼此间的竞争,某一个学生获得高分就可能意味着另一个学生的得分降低了,有人发现这种方法会尤其会对女生造成特别的影响。

计算机科学的教授严重不足,导致许多课程都采用了“竞争式招生”模式,这也加大了入门课程的学习难度,学生们不得不努力竞争才能继续攻读这个专业。

即使学生想一起做作业,他们也会被严格的政策劝退,因为这些政策认为合作是作弊行为。然而,以“结对编程”(两个程序员在同一台计算机上一起工作)的方式学习的学生取得的成绩更高,创建的项目更强大,而且更加满意他们的计算机科学课程。

结对编程为女生带来的好处尤为明显:一项研究发现,某项入门课程采用了结对编程的方式,结果获得高分的女生比计算机科学专业的女生高出了36.8%,而且他们对自己的解决方案更有信心,更加享受编程的过程。另一项研究发现,结对编程的女性的自信心提高了24%,而男性则提高了15%。

对于那些在成长的过程中,未能在家或在学校学习过计算机课的学生来说,参与、社交关系和积极学习等涉及合作的学习带来的受益最显著。如果协作学习在编程教育中不那么罕见的话,也许该领域的多样性有可能得到改善:计算机和数学行业中,女性仅占25%,黑人占8.4%,拉丁裔占7.5%。在许多顶级公司中,这些数字还要更难看,黑人和拉丁裔通常只占员工的3%-6%。

与此同时,老板们总觉得新员工虽然是熟练的程序员,但缺乏合作能力。尽管绝大多数老板对基本“软技能”的重视程度甚至超过了大学的专业,而且招聘经理在招聘计算机科学专业的学生时,也认为沟通和解决问题的能力是前五大需要考虑的因素。

我们在硅谷的个人主义文化中看到了这种教育的结果,工程师们在团队内部争夺权力,甚至因为担心失去自己的工作而拒绝同事们的意见。代码审查本来是讨论问题的好机会,结果却成了知识竞赛。当新来的团队成员有疑问时,他们得到的答案是“去查文档”,或者去阅读手册中的小字。接受别人的帮助被视为弱者的行为,而给予帮助则被当成浪费时间。如果编程人员无法进行头脑风暴,或者不能给同事提供指导,那么这个行业终将走向失败。

硅谷花费了数年的时间讨论如何找到梦寐以求的“10倍工程师”(他们的工作效率是普通工程师的10倍)。然而,工程经理知道,如果想成为一名出色的工程师,除了编写大量的代码,还有很多方面需要加强。出色的工程师了解他们的同事,能够与人建立共识,并可以迭代其他人的工作。从根本上说,他们能够阅读和消化别人的代码,这与从头编写新代码完全不同,而大学生很少有机会进行这样的实践。一门心思单独写代码的大学课程缺少很多专业工程师的职责教育。

当程序员倾向于靠一己之力解决问题时,我们不能责怪他们,因为这就是他们接受到的训练和教导方式。

当我们告诉每位学生唯有个人的成败举足轻重时,就意味着我们把他们培养成了技术称职、缺乏合作精神的程序员。我们需要培养出不把自己看成“独行狼”的程序员。科技行业更加需要这样的人才。

原文:https://medium.com/bloomberg-opinion/were-teaching-coding-all-wrong-cd7e1d7fbbdb

作者:Nathan Esquenazi,创业企业家,CodePath.org的联合创始人兼首席技术官。

1月16日晚8:00, 哈工大屈教授在线直播课---『看得见 』的数学,带大家解密计算机视觉背后的数学知识!

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部