计算机专业的学生,是否应该掌握扎实的编程功底?
计算机专业的学生在大学期间,是否应该花大量的时间去掌握扎实的编程功底?
很多计算机专业毕业的学生竟然不会编程,他们在校期间也有很认真听课和学习,考试成绩也很优秀,但是真要上机编程却竟然不如培训班出来的学生。
这种现象很普遍,背后原因很多,比如不少老师虽然也是名校毕业,但是没有到互联网企业里面工作过,只有学术没有技术,或者年纪太大,已经跟不上技术更新迭代的速度。所以这些老师讲解时都是念PPT,考试时也是出笔试题,这样的教法学生怎么可能学会编程?
问题来了,大学期间,学生是否应该像技校一样学好编程?学校应该怎样才能教好编程?我们来看一下国外的名校是怎么做的。
1、每堂课都配有大量的助教,这些助教都是高年级的学长,通常都是学习比较优秀的学生,这样学生在遇到具体的编程细节问题时都是直接咨询助教,而不是老师;老师负责思想、原理,助教负责实战解答;
2、开设自步Self-paced课程,计算机专业的主课确实只应该好好教核心计算机科学知识,不过这些核心知识都需要学生要有一定的编程基础,通过开设一些自步Self-paced课程,指定教材、指定学习的重点、布置一些作业、设置一些测验,让学生根据自己的学习进度自己看教材学习,不占用主课时间。这些Self-paced课程的编程语言包括Python、C、C++、Java。
3、学习编程不能只停留在基础的语法上,而是要能掌握编程语言的生态做出实际的项目,在大三时必修三类实战课,一是去企业实习,二是根据学生的意愿选择一门编程主题去深入学习;三是学生必须能独立做出完整的项目。这些编程的主题包括:iOS应用开发、3D建模与动画、Linux嵌入式、React全栈开发、云计算和SaaS、机器人、数据挖掘等诸多当前流行的应用方向。
4、组织跨校的Hackathon,比如哈佛和耶鲁每年都联合举办编程的黑客马拉松,参与人数达2000人,比较知名的还有莱斯大学的HackRice、宾夕法尼亚大学的pennapps等,Hackathon以用编程解决实际的问题,做出项目为宗旨;
5、丰富的算法比赛,比如ACM-ICPC、TopCoder、CodeJam等等,既有ACM的,也有互联网企业在大学举办的跨校联赛;
6、考试形式不局限于笔试,包括作业(Homework)、测验(Tests)、实验课(Lab)、独立完成项目(Project)、期中期末考( Exam)等等。


