培训的故事来源于一个巧合,2012年,我们刚刚开始我们的项目的时候,我们并非想做培训而是想做的一款股票产品,量化和大数据分析帮助用户做买卖决策的产品。这时我走近了河北师大软件学院,院长天花乱坠的故事让我觉得他们学生很牛,很快发现他们学生还是不上道的,缺乏编程的基本素养,也就在这里我认识了公司的第一个员工陈月同学。在我同学的建议下,我采取了边培训边开发的思路做起了这件事情。后来我们对教育劲头很足,因为我们都是毕业于三流本科学校河北科大,我又是一名三本学生,大学的教育资源匮乏,我们希望我们生活成长的土地能够优秀的教育,这导致我们后来专注于教育。总体来讲:我们希望以程序为载体能够培养出,独立求知探索,沟通理解完备,对生活充满希望的优秀的人。
第一批学员主要来自科大,我们是免费教育,然后输送到企业收取费用的模式。2013年2月他们正式来到公司进行学习。当时我们的教育很不成体系,先教一个月anglarjs,然后就会奔赴到客户现场,在客户的公司学习ruby on rails,说实话体验相当差,而学习期间淘汰率也非常高,我们觉得他不能胜任客户需求,或者客户觉得不合适就会被淘汰。我们从50个学生里挑选了30个面试,最后要了9个人然后最后又淘汰掉了5个。这个时期我们简单野蛮粗暴。由于我们教育形态是简单野蛮粗暴的,导致这批人充满了野性,适应性很强,而问题也随之而来了,他们缺乏对细节的把握,缺乏对程序的深入的理解。我们觉得可以这么说探索有余,精细不足。
我们不断的总结我们的问题,我们在学校里的口碑还算不错,很快迎来了第二批学员。
第二批学员一部分来自科大一部分来自师大,师大的学生很具灵活性,而科大相对死板。灵活性意味着没有耐心,很多师大的同学学不了几天就走了,所以观测的目标主要还是科大的同学。我们应对第一批人探索有余,精细不足的问题。制定了大量的教学计划,教学计划也不断的精细。
1.我们把敏捷思想引入了教学当中,我们觉得敏捷的核心思想是tdd,tdd的练习被但是实际上我觉得第二批的学员还不能够了解tdd,只是得到皮毛,对于一个有项目经验的人可以在短的时间内理解tdd,而对于学生他们可能只是有一个很初级的想法tdd是验证你写的程序能工作东东,不能够理解tdd是如何驱动设计的,tdd是如何建立快速反馈的,从而帮助我们工作,也不能理解我们为什么要有tdd,说白了就是给他们留了一个写了东西要测试念想。
2.我们把真实发布环境引入了教学流程,我们购买了阿里云,他们要自己将自己的项目部署到阿里云上面,搭建发布环境。我们希望通过这个过程让他们深入的理解http协议和服务器机制。要理解:一个http请求从浏览器发出请求,是如何到rails服务器的,这里面nignx做了什么,rails又如何去做处理的,然后rails如何回复请求的。希望可以对学习的知识能够深入的理解,并且起到一个反思梳理之前所学知识的作用。这块做的起到了一定的效果,学生们确实对http和rails理解也较为深刻了,但是问题并没有根本性得到解决。学生无法在没有问题的情况下问出问题,譬如他能够实现某个功能了,但是他不会深入的去思考我调用的这些接口内部是如何工作的,他的工作机制是什么。我用的这个框架为什么是这个样子,他的优势是什么劣势是什么,有没有什么改进点。从教育本质来讲,教育应该是传道的,我觉得我们并没有做到,所以我觉得我们仅仅做的是培训。
3.我觉得我们当时做的最成功的就是写blog。语言是人类的心灵的窗口,我们希望他们进行写blog,来进行梳理工作,并且能让我们发现他们学习中的问题所在,引导他们问出正确的问题。随之而来的问题就是学生写blog比较马虎眼,尤其是北方的学生收到官僚气息的影响,写出来的东西基本都假大空的东西,然后我们随之写了一些东西讲述如何写blog(链接如下:[url]http://open-edu.github.io/writing/written-works.html[/url])。之后写blog的起到了一定作用,对于学生来说他们能够在一定程度上有效的梳理自己的思路,引深问题;对于老师而言,能够通过blog起到了实时监控学习效果的作用,反馈周期降低到了每周两次,一定程度上提高了学生的学习效果。
4.我们引入了github,一方面为了更高的提高反馈速度,另一方面我们要求他们小步提交,小步提交就要求他们在写程序的时候能够把自己的工作拆分成更小的步骤,才能保持程序的完整性进行提交,强迫他们在精细方面进行思考。
我觉得这是我们在第二阶段做的最主要的梳理和改变,这个时候我们写了一个open-edu的东西,对细则进行了整理,地址如下:[url]http://open-edu.github.io[/url] 其中有我们对这个阶段的整理。
对于这个阶段培养出来的人我们发现,虽然精细有所改善,但是人缺少了一些野性,适应性也会差一些。
我们当时并不知道如何解决这个问题,我们希望通过加快反馈速度来观察问题,于是我们带领学生开发了一个网站,可以在线写编程的网站([url]http://codefordream.com[/url]),它可以实时做练习,并且能够快速的知道自己做的怎么样,在老师的带领下他确实提高了反馈速度,能够快速的做完作业,把以前一个月的课程缩短到了两周。但是从反馈中并没有观察到问题所在,学生并没有把减轻的负担用于思考,这里可以排除是因为课业负担太重而不去思考问题这个可能性。但是却有了新的发现:
1.加快反馈速度可以提高人学习的速度
2.程序不是理论学科,动手才能学得快。光看不练,写不出来好程序。
3.只有一部分人能通过学会一个典型问题,把同类问题都解决掉。
有了以上结论我们就开始设计大量练习,希望学生通过练习能够学习会更多的编程方法。这时候也进入了2014年的5月了,一次机缘巧合的机会,可以和thoughtwork进行合作,通过thoughtwork我们可以在四川成都开了一个培训点,由于成都的生源好于石家庄,于是我们很快进入了第三阶段,第三个阶段主要目标是想通过软技能的培训来提高自身素质,引导他们深入的思考程序本身。这时我们缩减了知识量的培训,加多了程序设计的培训,增加了软技能培训,我们希望通过语言改变思维的习惯,至少他们说的多了我们能够更了解学生是如何思考的了。进行了以下的措施:
1.读书分享,每个人读书一本,通过演讲的形式分享给其他的学员,希望能够提高语言能力。
2.减少了具体知识的培训,通过读书和课下时间进行练习,增多了程序设计方面的培训,尤其在tdd方面增加了培训的内容,希望他们能够理解tdd的意义。
3.增加视频环节,通过看ted了解科技前沿信息,讲述自己的观点,希望能够有更多的观点,希望他们懂得如何去思考。
thoughtworks的面试反馈就不一一说了,但是可以看出虽然软技能有所提高,思考深度也有所加强,但是在thoughtwork面试中还是有一些学生气,说话底气不足,面试的时候有些畏首畏尾,很多时候不能发挥正常能力,缺乏自信。
之后我们进行深入的思考、观察和讨论。由于我们主要招的是二类本科,而在二类本科中探讨的话题很少有争议性的话题,因为二类本科缺少优秀的学生,当一个人提出一个想法的时候,很少能够引发思维上的碰撞,结果就导致他们在讨论中缺少底气,因为缺少讨论环境,这是他们面试中因为学校环境产生的天然劣势。(观测地:河北科技大学)
相反我们观察一类本科中谈论的话题出现了讨论的时候,大家会习惯性的讨论哪种方案是更优秀的方案,各自陈述自己的观点,这让他们养成了思维的惯性,思考自己东西的优劣,正因如此他们思考会更深入,同时也让他们在讨论中也不会显慌张,因为这是他们习惯。(观测地:成都电子科技大学)
接下来我们准备进入第四个阶段,两个月的时间通过js高强度训练,养成良好的变成习惯,有一定基本的设计能力。通过真实的项目让他们去见客户,理解客户,理解我们如何去工作,正确的工作方式是什么样子的,培养自身的软技能和素质,在项目中去讨论,我们希望他们因需求而争辩,因项目进度压力而成熟,因完成任务而有自信。
我们希望通过这种方式使我们的学员对程序有高质量的要求,变成本身有深入的理解,对设计深入的思考,对敏捷理解到位,内心充斥着野性,但是更重要的是对自己的生活充满信心。
第四阶段即将开始,求知验证中。如果我们有一天我们能够改变人性的弱点,能够做到什么样的人都能够教好,我觉得我们就可以不再说自己是培训,我们就可以叫自己是教育了。
第一批学员主要来自科大,我们是免费教育,然后输送到企业收取费用的模式。2013年2月他们正式来到公司进行学习。当时我们的教育很不成体系,先教一个月anglarjs,然后就会奔赴到客户现场,在客户的公司学习ruby on rails,说实话体验相当差,而学习期间淘汰率也非常高,我们觉得他不能胜任客户需求,或者客户觉得不合适就会被淘汰。我们从50个学生里挑选了30个面试,最后要了9个人然后最后又淘汰掉了5个。这个时期我们简单野蛮粗暴。由于我们教育形态是简单野蛮粗暴的,导致这批人充满了野性,适应性很强,而问题也随之而来了,他们缺乏对细节的把握,缺乏对程序的深入的理解。我们觉得可以这么说探索有余,精细不足。
我们不断的总结我们的问题,我们在学校里的口碑还算不错,很快迎来了第二批学员。
第二批学员一部分来自科大一部分来自师大,师大的学生很具灵活性,而科大相对死板。灵活性意味着没有耐心,很多师大的同学学不了几天就走了,所以观测的目标主要还是科大的同学。我们应对第一批人探索有余,精细不足的问题。制定了大量的教学计划,教学计划也不断的精细。
1.我们把敏捷思想引入了教学当中,我们觉得敏捷的核心思想是tdd,tdd的练习被但是实际上我觉得第二批的学员还不能够了解tdd,只是得到皮毛,对于一个有项目经验的人可以在短的时间内理解tdd,而对于学生他们可能只是有一个很初级的想法tdd是验证你写的程序能工作东东,不能够理解tdd是如何驱动设计的,tdd是如何建立快速反馈的,从而帮助我们工作,也不能理解我们为什么要有tdd,说白了就是给他们留了一个写了东西要测试念想。
2.我们把真实发布环境引入了教学流程,我们购买了阿里云,他们要自己将自己的项目部署到阿里云上面,搭建发布环境。我们希望通过这个过程让他们深入的理解http协议和服务器机制。要理解:一个http请求从浏览器发出请求,是如何到rails服务器的,这里面nignx做了什么,rails又如何去做处理的,然后rails如何回复请求的。希望可以对学习的知识能够深入的理解,并且起到一个反思梳理之前所学知识的作用。这块做的起到了一定的效果,学生们确实对http和rails理解也较为深刻了,但是问题并没有根本性得到解决。学生无法在没有问题的情况下问出问题,譬如他能够实现某个功能了,但是他不会深入的去思考我调用的这些接口内部是如何工作的,他的工作机制是什么。我用的这个框架为什么是这个样子,他的优势是什么劣势是什么,有没有什么改进点。从教育本质来讲,教育应该是传道的,我觉得我们并没有做到,所以我觉得我们仅仅做的是培训。
3.我觉得我们当时做的最成功的就是写blog。语言是人类的心灵的窗口,我们希望他们进行写blog,来进行梳理工作,并且能让我们发现他们学习中的问题所在,引导他们问出正确的问题。随之而来的问题就是学生写blog比较马虎眼,尤其是北方的学生收到官僚气息的影响,写出来的东西基本都假大空的东西,然后我们随之写了一些东西讲述如何写blog(链接如下:[url]http://open-edu.github.io/writing/written-works.html[/url])。之后写blog的起到了一定作用,对于学生来说他们能够在一定程度上有效的梳理自己的思路,引深问题;对于老师而言,能够通过blog起到了实时监控学习效果的作用,反馈周期降低到了每周两次,一定程度上提高了学生的学习效果。
4.我们引入了github,一方面为了更高的提高反馈速度,另一方面我们要求他们小步提交,小步提交就要求他们在写程序的时候能够把自己的工作拆分成更小的步骤,才能保持程序的完整性进行提交,强迫他们在精细方面进行思考。
我觉得这是我们在第二阶段做的最主要的梳理和改变,这个时候我们写了一个open-edu的东西,对细则进行了整理,地址如下:[url]http://open-edu.github.io[/url] 其中有我们对这个阶段的整理。
对于这个阶段培养出来的人我们发现,虽然精细有所改善,但是人缺少了一些野性,适应性也会差一些。
我们当时并不知道如何解决这个问题,我们希望通过加快反馈速度来观察问题,于是我们带领学生开发了一个网站,可以在线写编程的网站([url]http://codefordream.com[/url]),它可以实时做练习,并且能够快速的知道自己做的怎么样,在老师的带领下他确实提高了反馈速度,能够快速的做完作业,把以前一个月的课程缩短到了两周。但是从反馈中并没有观察到问题所在,学生并没有把减轻的负担用于思考,这里可以排除是因为课业负担太重而不去思考问题这个可能性。但是却有了新的发现:
1.加快反馈速度可以提高人学习的速度
2.程序不是理论学科,动手才能学得快。光看不练,写不出来好程序。
3.只有一部分人能通过学会一个典型问题,把同类问题都解决掉。
有了以上结论我们就开始设计大量练习,希望学生通过练习能够学习会更多的编程方法。这时候也进入了2014年的5月了,一次机缘巧合的机会,可以和thoughtwork进行合作,通过thoughtwork我们可以在四川成都开了一个培训点,由于成都的生源好于石家庄,于是我们很快进入了第三阶段,第三个阶段主要目标是想通过软技能的培训来提高自身素质,引导他们深入的思考程序本身。这时我们缩减了知识量的培训,加多了程序设计的培训,增加了软技能培训,我们希望通过语言改变思维的习惯,至少他们说的多了我们能够更了解学生是如何思考的了。进行了以下的措施:
1.读书分享,每个人读书一本,通过演讲的形式分享给其他的学员,希望能够提高语言能力。
2.减少了具体知识的培训,通过读书和课下时间进行练习,增多了程序设计方面的培训,尤其在tdd方面增加了培训的内容,希望他们能够理解tdd的意义。
3.增加视频环节,通过看ted了解科技前沿信息,讲述自己的观点,希望能够有更多的观点,希望他们懂得如何去思考。
thoughtworks的面试反馈就不一一说了,但是可以看出虽然软技能有所提高,思考深度也有所加强,但是在thoughtwork面试中还是有一些学生气,说话底气不足,面试的时候有些畏首畏尾,很多时候不能发挥正常能力,缺乏自信。
之后我们进行深入的思考、观察和讨论。由于我们主要招的是二类本科,而在二类本科中探讨的话题很少有争议性的话题,因为二类本科缺少优秀的学生,当一个人提出一个想法的时候,很少能够引发思维上的碰撞,结果就导致他们在讨论中缺少底气,因为缺少讨论环境,这是他们面试中因为学校环境产生的天然劣势。(观测地:河北科技大学)
相反我们观察一类本科中谈论的话题出现了讨论的时候,大家会习惯性的讨论哪种方案是更优秀的方案,各自陈述自己的观点,这让他们养成了思维的惯性,思考自己东西的优劣,正因如此他们思考会更深入,同时也让他们在讨论中也不会显慌张,因为这是他们习惯。(观测地:成都电子科技大学)
接下来我们准备进入第四个阶段,两个月的时间通过js高强度训练,养成良好的变成习惯,有一定基本的设计能力。通过真实的项目让他们去见客户,理解客户,理解我们如何去工作,正确的工作方式是什么样子的,培养自身的软技能和素质,在项目中去讨论,我们希望他们因需求而争辩,因项目进度压力而成熟,因完成任务而有自信。
我们希望通过这种方式使我们的学员对程序有高质量的要求,变成本身有深入的理解,对设计深入的思考,对敏捷理解到位,内心充斥着野性,但是更重要的是对自己的生活充满信心。
第四阶段即将开始,求知验证中。如果我们有一天我们能够改变人性的弱点,能够做到什么样的人都能够教好,我觉得我们就可以不再说自己是培训,我们就可以叫自己是教育了。