不一样的入职之旅

不一样的旅程

ThoughtWorks,新加入的应届生将获得为期五周的出国留学机会(ThoughtWorks University,简称TWU),社招加入的小伙伴将会参与为期三天的TWI。除此之外,公司还将提供诸如NHO、Session、Workshop、Buddy/Sponsor、TL、极光计划(领导力)等数不胜数的培训。所有这些培训都将让你的职业之旅变得不一样。

而更不一样的是,ThoughtWorks北京办公室联手思沃学院推出了一个本地化项目人才培养计划,针对某本地项刚刚入职的5位新人(应届生)进行 “封闭式” 脱产培训。旨在通过为期四周的高强度培训,帮助新人快速融入到项目中。作为教练,我来说说它到底不一样在哪里。

受思沃学院“以学习者为中心”的教学启发,我给此次培训起名为 以学习者为中心的项目驱动培训,一来培训目标很明确 – 让新人更好更快地上项目实战,二来以项目为驱动力的培训是一种强有效的能力培养方式。

不一样培训体系

不同于象牙中“以老师为中心” 的填鸭式教学,以学习者为中心强调的是以学生为中心的启发式教学。然而,初出象牙塔的新人可能仍然保留了较为强烈的学生 – 老师的象牙塔意识。所以作为教练,我们首要任务是识别出他们的意识形态,并帮助其调整。

整个培训贯穿了一个宗旨 – 让新人通过培训后能够更快、更好地为项目做贡献。在大目标的指引下,制定合理且可以落地的验收标准,以可验收的目标为导向。

ThoughtWorks的特色文化(敏捷)时刻在督促我们:在培训过程中坚持持续、反馈、优化、并将敏捷实践渗透到培训中。同时,通过教学过程的反馈环来强化技能成长。别出心裁的是,我们推崇辅以运动健身来提高培训的可持续性和高效性。

以学习者为中心的项目驱动培训的培训体系涉及以下几大方面:

意识形态的更新

意识形态,某种意义上又回到了认知的问题。对于刚从象牙塔中走出来的新人,他们对学习的认知会直接影响他们的学习方式和学习效率。

削弱象牙塔意识

之前当小Buddy的经验告诉我,刚步入职场的新人思维中往往充斥着较强的象牙塔意识。典型的表现是在遇到问题后的第一反应是跟老师索要答案,而非自己先冷静下来去跟问题对话。作为教练,如果每次遇到这样的求助都无条件的给予帮助,只会助长其这种意识。面对这种问题,我们会采取以下措施:

  • 拒绝出现老师词汇。从平时语言交流形式上淡化老师还在的心里暗示,以此帮助摆脱依赖心理。
  • 传授解决问题的套路。扭转他们的意识,在这个过程中需要通过一些新的工具去帮助他们养成新的习惯。

关于解决问题的套路大致可以分为如下几步:

  • 冷静下来与问题对话,了解问题是什么(核心)。
  • 找出关键错误信息,尝试独立解决(利用互联网/问题库)。
  • 如果在预期时间内没有解决,尝试寻求他人帮助,并带上自己的调研结果。
  • “放弃”。当上述三条都没有奏效的时候,起身活动,让大脑放松后再开始。

削弱象牙塔意识是一个持久战,我们会在培训过程中不断地加以引导。比如,在遇到这种现象时可以反复问他们:问题的关键信息是什么?可不可以快速验证一下你的猜测?应该去哪儿找到答案?谁可以提供帮助?通过这些问题激发他们去思考改变。

建立Owner意识

左边做减法,右边做加法。此时应该抓住机会培养他们的责任意识。像 Retro、Code Review、Standup 这些日常敏捷实践可以交由他们去主导。而一旦作为Owner,他们除了能自己快速地掌握,还会去思考其背后的本质。更重要的是,Owner意识的提高会驱使他们不断地自我学习,突破自己,追求卓越,给他们未来的成长打好基调。

明确且可验证的目标

某些项目(Account)在培训新人的时候,针对检验目标,通常是抽象模糊的,比如 能够进行良好的团队协作。对于培训,在开始之前我们得回答两个问题:新人将具备什么能力?能通过什么检验?这两个问题本身没有标准答案,我们会把握住一个核心点:基于项目的需求因地制宜。所以,目标的制定需要PM/TL的参与,我们邀请了PM/TL以及长期从事应届生培训的思沃学院的老师共同来落地这些目标。下图是针对5位新人制定的目标和Checklist:

有了目标,还需要一个循序渐进的培训计划针来达成目标。在做计划之前,教练会先画出一条技能培养主线,后续的每日计划沿着主线推进,并根据知识点的依赖性安排先后顺序。

关于目标,我们会做到公开、公平以及共享,即让每一位新人明确培训的目标。

围绕项目的技能树

教练在培训开始前花时间将项目上相关的技能进行梳理,并通过一些工具(比如思维导图)可视化出来。下面是我们项目的技能树:

下一步是要针对这些技能划分优先级,通过不同的Flag标记出来,比如图中橙色星星表示在培训中重点讲解和实践的,红色星星需要了解,蓝色会被提及。构建项目技能树可以遵循一个方针:技能树的枝枝叶叶都源于项目,两个关注点:关注技术栈 & 关注业务分析

那么如何让新人消化并吸收技能树枝叶的营养对教练来说是一项具有挑战的任务。除了需要大量时间去准备,还要非常用心,但也不是没有套路可循。

教学反馈环

针对每项技能的教学,教练会按照 讲解 -> 演示 -> 练习 -> 巩固 -> 拓展 -> 反馈 -> 分享的模式展开。

讲解。授人鱼不如授人以渔,最好的方式是莫过于让新人掌握技术框架的实现原理。比如在讲解Spring IOC的时候,可以使用Java反射、注解来实现一个IOC容器。然而,在较大的时间压力下,新人接受度达不到预期的效果,这就要求教练要学会讲故事,借用通俗的比喻来介绍知识点,通过必要的可视化工具(比如时序图)来提高讲解接受度。

演示。教练提前准备一些演示习题,在讲解完后通过习题来演示技能的应用。

练习。Time-box限时编程练习,建议使用表格记录下新人每次完成时间。通过反复的限时练习来培养他们编码的感觉并形成肌肉记忆,不用在意他们优秀的记忆力,因为后面还有验收环节。

巩固。布置一定量的课后作业,一方面是为了巩固学习,另一方面是不让他们松懈。实践证明,适当的忙碌和压力能够增强新人的安全感,但要当心过于繁重的作业影响睡眠和第二天的培训。

拓展。这是激发新人自我驱动去扩展知识的好机会。比如,绘制概念图 – 在绘制概念图的时候会扩展学习不少相关的技能。

反馈。针对编码训练,教练会通过验收习题(不同于练习题和作业)来Time-box获取小伙们对知识掌握的反馈。验收习题会 回归项目,从项目代码库中找出相关技能应用场景来验证。

分享。分享作为一个附加环节,针对重要知识点,我们会鼓励新人进行Session分享,在分享过程中检验学习成果,同时可以激发他们集体思考和讨论。

上述的反馈环帮助教练高效地传授和验收知识技能点,同时也对教练提出了较大的挑战,如何让这个过程发挥更好的效果?如何准备有针对性的习题?如何将习题有效的串起来? 等的都需要教练花大量时间去思考和总结。最后,提倡在整个教学过程中:多用肯定词,少用或尽量不用否定词

持续改进的反馈

持续改进是ThoughtWorks的优良传统。很多时候我们在收集/给予大家的反馈,目的是让自己和对方更好地成长。这在培训过程中也不应该有例外。在开始阶段新人的反馈意识并不强,教练会有意识地给予引导,引导他们去提出有效的反馈。对于教练,我们将尝试以下几点:

  • 提醒新人随时针对培训和教练提出反馈,以及互相之间给予和收集反馈,提高他们的反馈意识。
  • 肯定和赞美新人的进步和良好表现,提高他们的自信心和积极性。
  • 及时指出新人的不良编码习惯和学习方式,纠正他们的编码习惯,千万不要错过这个良机。

对于新人,他们同样可以给出有效的反馈:

  • 对培训整体的适应程度,帮助教练调整培训强度和进度。
  • 对知识点讲解的接受度,帮助教练优化知识讲解的方式。

除了及时的反馈,定期的Retro也是有助于持续改进的优秀实践。

特色的敏捷文化

敏捷跟ThoughtWorks关系就像社会主义跟中国的关系。

以敏捷著称的ThoughtWorks,敏捷是我们的特色文化,就像家常便饭存在于日常工作中。所以在培训我们不是把敏捷挂在口头上,而是让它们渗透在各个环节中。教练自身要对于日常的敏捷实践了如指掌,并能够担任敏捷教练职责。

Standup、Code Review、Retro、TDD、Pair、IPM、Kick-off、Desk-check 等敏捷实践都可以植入到培训中。关于这点,要把握的核心宗旨是:敏捷无处不在。教练在开始担任敏捷教练,之后交由新人去主导,让他们逐步具备成为敏捷教练的能力。

需要特别强调的是 TDD 和 Code Review(TDD 没有作为Check point)。TDD 对于新人会有较大的挑战,甚至引起一些抵触心理,但它非常值得为之付出努力。而 Code Review 是一个发现和纠正新人不良编码习惯的好时机。这两点对于他们日后成为优秀的程序员至关重要。

《我在ThoughtWorks中的敏捷实践》一文对敏捷实践做了详细的介绍。

保持运动健康的状态

作为程序员,辛苦是不可否认的事实,如何在辛苦的状态下持续快乐下去(痛快)。我们得拥有一个健康的体魄,并且不要吝啬让身体回归自然 – 生命在于运动。

说到运动健身,大家第一反应可能是健身卡、速干衣、跑步鞋、蛋白粉、功能饮料等。有人会雇专业的健身教练指导,我更建议将运动融入到工作生活中。如果能将久坐8小时之后去健身房锻炼1小时转换成8小时每隔1小时运动7分钟,便可以杜绝腰椎盘突出、颈椎病、肩周炎 等职业病。

在培训过程中除了保持合理的节奏,预留出休息活动的时间,我们会在办公室空旷区域开展集体的运动,比如平板支撑、开合跳等。更重要的是,加强身体锻炼有利于教练授课的可持续性和高效性。

我在《改善程序员生活质量的3+10习惯》中提到的一些小的习惯可以帮助你保持健康的状态。

不一样的宗旨

以学习者为中心,它与象牙塔中以老师为中心的填鸭式教学区分开来,如何找准这个中心,我们始终把握住以下三点:

  • 教练应尽量少讲课,多去引导启发学习者去思考和学习,并提供足够的辅导,通过必要的测试来收集和给予有价值的反馈。
  • 学习者应清楚学习理由和学习目标,并明确自己的目标(具体、公开、共享)。旨在提高学习者对学习目标的重要性认识,从而进行有效的自主学习。
  • 教练通过必要的课堂知识分享,并充分赋予学习者选择学习的权力,培养他们对自身学习成长的责任意识。

期待不一样的你

ThoughtWorks,学习是一件终身大事,培养人更是我司的立足之本。以学习者为中心能够激发学习者高效学习成长,以项目为驱动力,有助于打造一个短期内专注度极高的目标。

如此不一样的职业之旅,我想你一定会喜欢,如果你已经心动了,赶紧行动起来吧。聚集了一群优秀小伙伴的ThoughtWorks期待不一样的你。


更多精彩洞见,请关注微信公众号:思特沃克

Share

写给新人的一封信

情从何起

又是一年毕业季,回想起自己从校园到职场的过渡,也曾有过许多迷茫与困惑。而今已经踏入软件行业四年,自己也积累了一定的经验与认知,因此想要给想要进入这个行业以及已经身处其中的新人们分享一些Tips。

所谓新人

这里的新人包含在校的科班/非科班学生、半途转向培训班的培训生以及正在纠结于是否要进入软件行业的弟弟妹妹们。当然,这其中还包括一只脚已经踏进软件行业,却心存迷惘的探索者,正如2013年的我。

认知误区

不可否认,任何行业都存在一些流言蜚语,当今备受关注的软件行业更是如此。新人们或多或少听过一些,而这些流言蜚语也在无形之中影响甚至左右了部分新人的思考和最后的选择。我从其中挑了一些出来:

  • 软件行业薪资高,想拿高薪就削尖头进来?
  • 身体被掏空,青春饭只能吃几年?
  • 花点钱参加一个培训班,随意写写代码就能谋得一份好工作?

我特意将这些言论以疑问句的形式罗列了出来,如果你给出的是“肯定”回答,那么要提醒你,你已经进入认知误区。为什么是误区?下面就据我的经验来回答这些问题。

高薪蛋糕也得有我的一口

身边参加软件培训的人越来越多,女生偏多的是软件测试,男生偏多的是Java Web软件开发、Android开发、IOS开发,一般周培训期为3~6个月,费用从9k~1.8W不等。

需求的增长带来了市场的增长,被冠名为“速成班”的培训机构犹如雨后春笋搬层层冒出,随之而来的问题是,毕业于培训班的从业人员素质却达不到专业标准。因为他们不光想要速成,而且想要速速挣取高薪。可结果呢,真的拿到高薪了吗?真的找到好工作了吗?

不一定!

我所了解的主要有两种,一种是因为真爱来参加培训,他们在培训过程中付出了极大的努力,能够踏实的从低起点开始积累历练,这种人显然不是冲着高薪而来的,不过经过几年的积累,他们的薪水会快速增长。而另一种则是因为不喜欢自己所做的事情(或者觉得工资低),但又不知道要做什么,看着身边软件行业的朋友都拿着比自己高的薪水,于是花血本参加一个培训,挤进软件行业,拿了一份比自己之前工资高了不少的工作,可仍然因为没有太大兴趣,没有持续投入提升自己,几年如一日,不仅薪水几乎停滞不前,还要干着自己并没有兴趣的工作。

假如把这两种划分到两个极端的话,那么更多的人是处于这两个极端之间的。

如果只打算混一份较高薪水的人越来越多地充斥在这个行业,必然会导致这个行业的整体质量下降,越来越多的人就失去了本可以在找到自己喜欢做的领域之后去创造社会价值的机会。

360行,行行出状元。相对来说,软件行业目前是高薪行业,但不要只盯着面的光环,应该更多地去思考自己是否喜欢(适合)这个行业,即便不是100%真爱,也要有为这个行业去创造价值的愿望。如果只为生计,何苦找一个外界看来很苦逼的行业,苦了身体还苦了心。

最后,不可否认,软件行业的薪资水平确实要高于其他大部分行业。

培训班会送一份好工作?

现在软件培训班(速成班)肆起,而专业的讲师却供不应求,不少培训班的讲师鱼龙混杂,良莠不齐。这样一来就会产生一个问题,很多一腔热情的学生,在启蒙阶段,也是最重要的阶段被某些老师给误了。就我个人的亲身经历来讲,我在开始培训之前在网上找了一套黑马的Java基础教程(毕向东)进行自学,然后花巨款(学生时代的巨款)报名参加了西安某机构的培训。黑暗之神也降临到我身上,第一个老师授课水平很低(对比了视频教程的老师,以及在自学时发现很多知识缺失和疏漏)。而我比较幸运的地方在于没有被那个老师误得很深,因为我有那套视频教程,加上自己一直啃技术书,因此在一天满负荷的培训之后,还要用晚上和周末的时间来消化这些知识。还好在众多学生反馈下,老师被替换成一个学校的名牌讲师(注重传授原理,带着大家去亲手实现框架的原理),后来跟这个老师学习到了很多宝贵的东西。

如果你很幸运,在启蒙阶段遇到了一位良师,要好好珍惜!如何珍惜?无非就是多付出汗水。因为培训班的授课量很大,一天8小时的课程,留给你专门练手的时间不多,而这些课程都是承前启后的,一旦前面积累了太多未消化的知识点,越到后面就越吃力了。而消化这些知识就是一个非常有挑战的问题,也是必须要解决的问题。对于一般人而言,只有牺牲大量的课后时间,此时需要将几乎所有的逛街看剧闲聊时间都节省下来,反复地进行编码和思考,直到消化掉当天所学习的知识,这个过程是比较痛苦的,但一定要坚持:

  • 编码和思考,直到消化!
  • 编码和思考,直到消化!
  • 编码和思考,直到消化!

最后,不要过于相信和期望培训班给你分配工作,现在已经不是大锅饭的时代了,只有自己能够对你的前途负责,所以扎扎实实将基础打好,多付出汗水,勤加操练,方可在后期游刃有余。

畏惧身体被掏空?30岁就干不动?

双肩包、格子衬衫、衣衫不整、发如干草、加班狂魔、绝顶聪明、目光呆滞…

这些都是曾经或者正在被贴在程序员身上的标签,都在突出一个观念:程序员,一个苦逼的职业,缺乏个人生活,加班无极限,最终身体被掏空!

事实是这样子的吗?

的确,不可否认程序员加班是常态。可以将加班区分为主动加班和被动加班。先说说何为主动加班?就拿我自己身边的事例来讲,比如上一个新项目的时候,对新的技术栈不熟,那么晚上和周末得花大量时间啃书写代码,一方面提升自己的能力,另一方面能够更高效地开展项目,以及引导后续加入项目的人。又比如,学习新的技术、翻译技术书籍以及写博客等,都会占用大量的业余时间,这个时间不比那些经常加班到很晚的伙伴少,甚至多得多。主动加班需要有一个前提: 热爱你当前所做的事情,以及有强烈的欲望去提升自己。

我个人对被动加班没有太多的经历,但经常有所耳闻。被动加班大多是出于以下几个原因:

  1. 加班文化,领导没走,我也不敢走,或者公司有不成文的加班规定。
  2. Team给分配的工作量太大,不可能在工作时间完成。
  3. 自己的技术能力不足以胜任当前的工作。
  4. 项目上线前,需要几乎24小时值守。

具体对待加班的态度,因人而异。如果你是崇尚自由,热爱技术的程序员,你肯定更愿意主动加班,所以我不建议你去有浓厚加班文化的企业。我非常推荐你来ThoughtWorks

加班会不会让身体被掏空呢?(这其实触及到养生的范畴了)答案是几乎不会,对于热爱编码的程序员,写代码是一件快乐的事情,只要不连续熬到深夜凌晨(存在一些精力充沛的狂热者经常熬到深夜),注意饮食以及适当的锻炼,不会有太大的影响。当然,如果你不幸加入了一个黑工厂,经常连续加班到12点以后,我建议你果断离职。

劝君更近二行码

如果你正在犹豫要不要从事软件开发行业,如果你也有以上类似的认知误区,而且阅读完这几条仍然不能解惑。不妨先问问自己,是否有对软件开发的兴趣,是否享受实现一个复杂逻辑的成就感,是否愿意用自己的课余时间来敲代码。

如果你没有软件开发基础,也可以当下采取行动去做初步探索。不要着急掏巨款去报名参加培训班,先自己去尝试写代码,在写的过程中确定自己对它的态度。推荐两种探索途径:

  1. 自学。建议从视频教程开始,比如Java基础教程(毕向东)。
  2. 试听课。参加一些培训机构的免费试听课程,试听课程的老师一般都是授课能力不错的。

不管你采取什么途径,勤加练习是不可避免的。不能只做一个听客,动手去敲,将一个个从简单到复杂的逻辑用代码实现,然后收获实现后的成果,不断验证自己的兴趣点。 劝君更近两行码,编程高手从来都是源自于不断地操练和思考,勇敢迈出你的第一步!

最后

说的再绚烂,想得再周全,没有迈出第一步,都是空谈、空想

所以很多时候,有些人具备了想法,只是缺乏一丝丝勇气,有些人具备了勇气,只是缺乏一点点坚持。当不确定要不要做这件事的时候,去体验一下就知道了。

如果你是我所提到的新人之一,希望本文对你有所帮助,如果你不是新人,并且也想给新人一些Tips,欢迎在文章后留言评论。

本文来自:ThoughWorks袁慎建

博客地址:http://sjyuan.cc/a-letter-for-newer/


更多精彩洞见,请关注微信公众号:思特沃克

Share