习而学的软件工程教育 之 思考
很认真的读了邹老师的这篇文章和茅先生的博客
首先,我要说,我是很支持“习而学”的
实践是检验真理的唯一标准
在与前大班的同学的聊天中,对比两种软件工程课
我们很容易得到了这样的比较结果:我们现在的软件工程课更有意义
我们的软件工程课是没有考试的,而前大班的是要考试的
以上学期的面向对象建模课为例,分数分为平时与考试两部分,各占50%,其中平时包括几次小作业与一次大作业
小作业与大作业即是分别完成一个“小程序”与“小工程”,可以归为实践
考试则是考概念,UML,等等等等
如果要我来评价,大作业对我更有意义
我是在OO的大作业中学会Java的,这样又引申到了“很有名”的Java课
全年级200多人,在Java课上学会Java的,我想不超过10个吧,每年每届学生都是如此
老师在讲台上空谈概念,没有课后练习,没有实际例子,考试考什么是接口,try...catch有什么用
由于是开卷考试,我们都“答出”了“标准答案”,但谁也没学会
与之对应的,7班的一些同学可能听过刘禹老师的C++课
刘禹老师的C++是这样讲的:
没有PPT,打开电脑,打开投影,打开VC6.0,大家一起跟着做
输入一段代码,问大家觉得会出什么样的结果
按照我们的学习经验,这代码肯定是有问题的,比如编译错、结果错、各种错,然后再讲解
这样下来,每个同学对这个“知识点”的印象都非常深刻
但是
方法上面说到的只是实践对学习是很有必要的
也就是说,习而学是很好的学习方法
这不必意味着学而习就不是好的学习方法
现在有着这样一种说法:说大学学数学,研究生再学专业
也就是说,我们是以理论为基础,然后再加以实践,最后在实践的过程中回归理论
这与先实践,在实践中感受理论是有区别的
软件工程的工作职位中,有需求分析师、有架构师、有PM、有Dev
很显然,Dev是供大于求的,而需求分析师是最难的
茅先生的话有些道理,但我想对每一点都挑点刺
不一定非得到四年级(五年级)才算大学毕业,而是任何一个年级都可以毕业就业。
对于社会来说,可能我需要的Dev就是比架构师多,就像工头只有一个,但工人有很多
这样的大学模式可能符合社会规律,但对个体本身而言,如果你只是当一个技师,而且只学过怎么当技师,那他永远就只能当技师
任何一个年级都可以招收新生。
我可以不上一年级就上二年级吗?如何考量是否有上二年级的水平呢?
学习不仅仅是知识的简单积累,而是一个系统的过程化行为,连续上一、二年级,与上一年级、上二年级肯定是有区别的
新体制下,大的工厂、施工现场都可以开办正式大学。
理论很美好,现实很残酷。如果他们开办的不是“大学”,而是“培训班”,我想可能更准确一些吧
现在还有种说法,说公司愿意找一个学其它专业,比如自动化、电子的,而不愿意找学计算机的编程
他们认为编程这个随便学学大家都能编,但其它专业的人有一些计算机专业不可能有的才能
那么,对于计算机专业的学生来说,重要的就是be professional
如果以实践为基础来学习,但我们与其它专业对着本书自学C语言的有什么区别呢?
我们正因为是从理论出发的,了解的不仅仅是表层的知识,还了解底层的的知识,才能说明我们是专业的
综上,理论是基础,我认为只有在理论上才能加以实践
特别是在大学这个学习的时期
还是应该打好基础,从理论出发,再辅以实践
学习学习,学在前,习在后
先学,再习,有新的收获,再学,再习
才能获得最好的学习成果