我原本不是从事教育工作的专业人士,这几年来,一不小心成为了“人民教师”。这两个月觉得自己好像又落入了四处讨论教育的漩涡中。之前怎么做好教育是我的一份工作,自从小洋(我刚刚出生的宝宝,学生们都叫他小洋,其实叫王瑞)出现了以后,在家里也在探讨着教育问题。

我的学生
       前些日子,我和J060619班的同学们共同承接了一个项目。班里有一个学生的哥哥开办了一家二手房中介公司,我们根据他对软件的需求,决定用一个半月的时间开发相应的软件,同学们从客户的角度完成需求分析、对项目进行详细设计分工、团队合作编写各种功能文档、最后编写代码,独立实现整个项目。
       这个任务对于仅仅接触软件开发三个月的同学们来说是艰巨的。问题的关键在于――所有的学生都不愿意写文档。我尽我所能,带领着他们写那些枯燥无聊的文档,甚至请来用友公司资深项目经理李俊毅先生给学生们介绍企业中项目开发的经验,李经理的精彩演讲,激发了同学们对于项目开发的热情,他们当天就开会,研究讨论这个项目的计划与实施细节。 
      几天后李老师(这个班的班主任)找我说她的担心,李老师问我的第一句话是:“这个项目能够顺利完成吗?如果不能完成该怎么办?”而我的回答是:“我希望这个项目以失败告终”。李老师当时吃惊至极,她非常不解:既然开始了一个如此有商业价值的项目,为什么期盼它失败?经过两个多小时的争论、探讨、分析,我总结了我的理由。
      我教过北大青鸟的课、教过清华IT的课、IBM的课(以下的讨论不针对任何机构,仅仅是就现象讨论问题,不当之处敬请原谅)。清华IT的课程比北大青鸟的课程晚五年诞生,所以课程的技术内容要深得多(好像有点像Java和.NET的关系:) )。但是在两个机构任教一年以后发现,北大青鸟的学生就业的能力比清华IT的学生要强很多。细分析,似乎由于北大青鸟学习的课程比较浅,所以学生毕业的时候更加容易“感觉到”掌握了某些技术;而清华IT恰好相反,课程设置较深,导致学生毕业时对自己所掌握的技术没有认知,所以北大青鸟的学生往往有更强的自信心去应对面试官。
       我和很多老师讨论过这个问题,也看到过有些老师在网上发表的一些教学感言,观点竟然惊人的一致:“成为一个优秀的编程教师很容易”,似乎是很容易!一个写过半年程序的人,成为通常意义上的编程老师仅仅需要半个月的时间(我很长一段时间从事的工作就是培养编程老师)。但是能够成为我所理解的真正优秀的编程老师非常困难。两者的差别在于前者仅仅讲解技术;而对于后者,清楚的教授技术(注意是教授)都仅仅只是一个必需的基础。除此以外,真正优秀的老师还必须给学生带来自信心、学习的能力、编程以及工作的习惯和态度、对探索的热情、对成功的渴望······
       至今为止,我还没有能力做到这些。我在班里和学生们说,我没有能力教给大家高薪就业的技巧,因为我还没有拿到理想中的高薪,我还在为生存不停的努力,学我是没有前途的。那么我能做什么呢?我能带领大家入门,扎扎实实的掌握基础知识,然后创造艰难的环境和尽可能复杂的任务,让每个学生在过程中体会、成长。
       我大学毕业后的第一个项目是失败的,当时的我很痛苦,不过也因为这个项目的失败,使我意识到了文档的重要性。每一个程序员都或早或晚的经历着这样的蜕变。当我成为教师之后,我期望在我的教学中,能够早一天让我的学生体会到这个阶段。
      我以前任职的培训机构,也有类似项目实训的过程。可惜在他们看来,失败总是不好的、恰巧学生刚开始特别不喜欢写文档,所以这些老师将详细设计文档准备好,分发下去,学生的项目开发工作成为“实现代码”的过程。为了确保项目完成,老师提前完成这个项目开发的所有代码,每个学生得到的任务只是各自完成这些代码的某个部分。如果某个学生没有完成任务,老师会把已经写好的代码参与到整个项目的合成。几个班过后没有人写那仅有的一点代码,看上去每个项目都是成功的,但是学生却什么都没有体会到。
       所以,我关心的不是项目结果,我希望能够在完成项目的过程中为难我的学生。我认为如果希望让我的学生在今后的工作中少犯错误,最好的办法是让他们在学习期间尽可能的多犯错误,犯错带来的这种真切的体会才能提高学习的价值,帮助他们很快超越我所能够教授的知识。

我的孩子
      儿子出生以后,我开始关心早期幼儿教育的知识、理念和机构。我发现0-2岁的早期教育有两种类型。一种是特长班,这种培训班发展方向单一,如音乐、美术、体育等。很多家长会发现,像这类的机构,接收了孩子后马上开始强化训练某一首歌或某一个舞蹈,一个月之后,参加培训的孩子就可以给家长一个精彩的汇报表演。这有点像是绝大多数的软件工程师培训,在最短的时间内强化训练某项技能。我否定了那些所谓的特长班。恰巧刚刚看到杂志上的一篇文章,一个美国的母亲将孩子的幼儿园告上了法院,理由是幼儿园教她的孩子“0是0”。这位母亲指出幼儿看到了这个圆圈会有一百种理解,而幼儿园过早的定义这是零,会剥夺孩子的想像力和创造力。由此可知,这种教学会让多少软件工程师的培训扼杀学生的想像力和创造力,只是在不断地将原本拥有梦想的人培养成写代码的“工匠”,还沾沾自喜地把自己标榜成优秀的编程教师。我听到IT职业教育的群体性悲鸣呀!
        另一种是我所认同的。他们带领孩子一起玩耍,使孩子在玩耍中学会认知。其中有一个叫金宝贝的早教中心,上个周六他们约我去听讲座(哈哈,煽动力极强的周末招生咨询会!)。我了解到金宝贝的课程费用非常高,不是我所能够承受的。所以,决定让我父亲去试听。
父亲试听回来后,果然深受课程影响,立即对我儿子实施这种教学思想。我和我父亲向来争吵很多,时间久了,如果不是原则性的问题,我便不说话。但这次关心到孩子的教育,我认为是原则性问题,所以和父亲争论了很久,最后我提出了两个原则:
        一、永远不要谈论教育。我认为只要去教育孩子,我们就是错误的,原因有两个:其一,我们希望孩子远远超过我们,我们又怎么能强加自己的观点给孩子。原因和我上一个部分的理由一样:我们没有资格教育!其二是,我们的教育思想太过理想主义。如同我们的父母,他们刻意的灌输给我们社会是完美的,我们应该是善良的、社会是没有欺骗的…… 但当我大学毕业后进入社会,我才发现社会不是没有欺骗的。我用了5-6年才慢慢的融入这个社会,这就是我们接受刻意的教育所造成的结果。
我们应该给孩子一个真实的社会,陪伴着他成长,以身作则。如果我们不喜欢音乐就不要强迫他喜欢;如果我们会懒惰,就不要强迫他必须时刻勤奋。所以永远不谈论教育,而是努力的提升自己。
       二、不要使用语言,做老师后才这样真切的发现,语言是多么的苍白无力。我们过分的信赖自已语言的能力,去批评、指责、夸奖、激励、甚至去欺骗,其实孩子是在每个方面模仿你、学习你,按照你的一言一行去理解这个社会,语言只是辅助工具,所以,不要过分的信任自己的语言。

讨论到这,我发现我所分的两个部分是愚蠢的,他们本来就是一回事!按照我们曾经习惯的观点,无论是做学生的讲师还是做孩子的父亲,结果注定是失败的。可能很多的老师都认为讲台下面坐着的是学生,持有这种观点,作为一个人民教师,就已经有50%注定失败。
坐在讲台底下的人,你是天才,你是要不了多久就将超越我的人,是推动软件产业发展的重要力量! 

王洋:任何人都没有资格培养软件工程师!相关推荐

  1. 中级计算机技术工程师报名资格,中级软件工程师证书报考条件有哪些要求?

    中级软件工程师证书报考条件有哪些要求?软件工程师资格证认证考试分助理,初级,高级工程师.考试合格者由国家人事部和信息产业部颁发相应级别的计算机软件专业技术资格证书.报考资格考试又达到水平考试合格标准者 ...

  2. 软件工程师和程序员到底有什么区别?

    有些人说程序员主要是指写代码的人,而工程师着重在于设计. 有些人说程序员和软件工程师的区别是:软件工程师不但要有编写程序代码的能力而且更重要的是要懂得如何去开发一个软件,怎样去学习实际的UI的观念. ...

  3. 软件工程师应具备什么样的素质

    软件工程师是从事软件开发相关工作的人员的统称.它是一个广义的概念,包括软件设计人员.软件架构人员.软件工程管理人员.程序员等一系列岗位.这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发 ...

  4. java软件工程师就业招聘信息_Java软件工程师就业前景为什么这么好呢?

    从各大招聘网上我们就能看出,同等软件工程师的就业前景是远比网络工程师就业前景要好很多,年薪在10万以上的软件工程师还只是一个起点,随着经验的增加,年薪超20万的也是很常见的,而其它专业的发展前景是远比 ...

  5. java软件工程师就业招聘信息_Java软件工程师就业前景为什么这么好

    我们从各大招聘网上来看,同等Java软件工程师的就业前景是远比网络工程师就业前景要好很多.年薪在10万以上的软件工程师还只是一个起点,随着经验的增加,年薪超20万的也是很常见的,而其它专业的发展前景是 ...

  6. 九 Python 类与对象详解,这是软件工程师的分水岭

    目录 1 为什么要面向对象编程 2 核心思想 3 初次体验 4 初始化方法 5 类专用的方法 6 继承(有点像生物的基因传递) 7 灵活的Python,属性自由 8 一切皆是对象 9 OOP的设计方法 ...

  7. 破解技术人才招聘难、培养难!CSDN 软件工程师能力认证标准正式开源开放

    对于企业.高校.开发者个人而言,我们总面临这些问题: 个人没有明确的成长路径,学习资源越来越分散: 从学校里学到的知识无法很好地运用在工作中: 能力泡沫严重,一纸简历随意美化,无法检验真实能力: 企业 ...

  8. 【CSDN软件工程师能力认证学习精选】吐血整理!140 种 Python 标准库、第三方库和外部工具都有了

    CSDN软件工程师能力认证(以下简称C系列认证)是由中国软件开发者网CSDN制定并推出的一个能力认证标准.C系列认证历经近一年的实际线下调研.考察.迭代.测试,并梳理出软件工程师开发过程中所需的各项技 ...

  9. 软件工程师资格认证,你合格吗?

    软件工程师资格认证: 1.精通某门语言---------------------------------------------25分 2.对一个或几个行业有深入的了解,并开发出相应的软件作品---- ...

最新文章

  1. 揭秘|多伦多大学反人脸识别,身份欺骗成功率达99.5%
  2. [Oracle]为何Archivelog 没有马上被删除
  3. PAT甲级1093 Count PAT‘s :[C++题解]DP、状态机模型dp
  4. Python--day6
  5. jooq_jOOQ API设计缺陷的怪异事件
  6. 844. Backspace String Compare
  7. GridView 通用分页
  8. Nginx 笔记与总结(12)Nginx URL Rewrite 实例(ecshop)
  9. android 中xml解析方式
  10. Silicio for Mac(迷你播放器)免费版
  11. 阿里巴巴中台战略--事务与柔性事务
  12. 读书笔记(10)网络规划与设计
  13. 解决新版 Edge 浏览器无法使用 IDM 的问题
  14. 一文带你认清运维岗位
  15. 汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp这些都是什么意思啊?
  16. 0316复利和单利计算更新4
  17. Hexo之静态+动态背景设置
  18. PIE-engine 教程 ——新疆石河子市棉花种植面积提取(阈值法)案例分析
  19. 计算机操作系统底层相关知识
  20. 计算机麦克风,简易计算机麦克风的制作

热门文章

  1. 帧同步和状态同步笔记
  2. 看过小马哥的成就,你们谁敢说自己做过项目?
  3. java微信无感支付怎么开通_微信无感支付是什么 微信无感支付怎么开通
  4. 再看《肖申克的救赎》
  5. jsp+ssm计算机毕业设计游戏战队考核系统【附源码】
  6. qt 移植 xp 的问题
  7. Wireshark抓包——qq分析
  8. 3D游戏设计读书笔记九
  9. javascript算法排序之桶排序
  10. linux命令:将一行数据根据指定符号转换成多行