极简设计

程序员内部培训

程序员其实不需要培训,只需要指点

  • 工作都必须去实践,几乎没有纯理论的领域
  • 由于互联网的开放性,程序员能找到大量的资源自学
  • 实践深入后遇到问题,除了靠智力解决外,大部分只需要知道答案的大致方位就能用时间来消灭掉

大牛之所以能成为大牛,就是知道了很多答案存在的地方以及发现这些地方的方法 优秀的程序员培训师懂得教方法而不仅是教答案。可惜很多培训师不是这样的,公司内部的培训流于形式,大家听完后就知道这是个很牛b的技术,却不知道怎么令自己也牛b起来

HR就算懂上面的道理,他们因为知识领域的差异也从根本上没能力推动发展程序员的内部培训 HR能做的事是帮助管理者在程序员心中培养技术为尊的意识,让他们有动力去自学并实践,并以公司内某位榜样为目标赶超他 HR无法有大作为,也令大多数公司很少重视培训。因为即使不培训也不会影响赚钱,工作效率的低下可以用加班来弥补。而且项目做到一定程度就会更新换代、推倒重来,原本写得多烂的代码都成过眼云烟 还有就是老员工们都有自己的习惯,较难通过培训来改变,基本都需要有人经常提醒

在实际中有时候还是需要培训的,这其中多数是因为负责人懒得写文档,或者文档很容易过时而懒得更新,不如口头说一遍算了,╮(╯▽╰)╭

业务技术培训

按内容区分,培训可分为业务技术培训和软技能培训,还有HR组织的集训

大家对技术培训的第一反应都是PPT式会议,因为这种形式多,而且也是最最初级的培训 PPT最大的意义在于做报告,内容凝练而简略,所以受众是没法得到很多的信息的。但是这并不等于没用 PPT式会议和网上的视频教程一样,能帮助零基础的人快速入门。此零基础指对这门知识几乎没接触过,但已有相近的知识。例如已知C学C++或已知C++学Java,也就是说,至少不用在培训中解释何谓关键字或者面向对象 连相近知识也没有的人,应该叫负基础,他们会连PPT式会议都听不懂,还是得回归书本

书本不仅适合负基础的人,也适合高级读者。因为看书有时间细想琢磨,有助于吸收 专家级则是阅读各种SDK和API文档 大神级的就是看各类源代码看出神的了

搜遍各种书籍和互联网都找不到的东西,才是真正有意义做培训的,多数跟本公司密切关联:

产品的整体架构、设计思路、业务逻辑,迭代历史等 各类工具/系统(IDE、需求、项目管理、测试与bug、文档等)的使用技巧 解bug、做优化等的经验 工作流程和制度 本部门的知识体系梳理。直接用例子说明是什么吧,请点击《iOS开发知识与能力体系 思维导图》。文章很久没更新,但能说明问题了,相信不做iOS的也能get√到 掌握技术知识需要花很多时间思考并经过实践,通过培训来达到目的的性价比很低,只有其中牵涉到工作业务的部分能带来实效。换句话说,“如何把技术应用到业务中”是公司内部培训要解决的核心问题,而实现业务所需要的“技术”本身,应该让大家边自学边实践

能让受众最大程度吸收的培训形式应该是手把手地教,这个贯穿在设计和编码过程中。实践过发现被培训的人确实能完整地吸收,而且时间长了他会有反馈并跟你讨论,你可能在讨论中反过来也学到东西。当然,这个很少发生在互联网公司里,大家都很忙碌

软技能培训

相对于编程能力、设计能力这些程序员的硬性要求,其它能辅助工作的技能都算软技能 大家能思考出这部分内容的意义吗?答案我写在最后吧。下面这些都是可培训的

高效会议

这一节放到前面很重要,因为不少人搞不清几种会议的差别。会议的主持人或主讲人对会议的高效性负有最大责任,如果都用同一种思路来召开,会议就变得没什么效果。IT界“尊崇”的会议是乔布斯的苹果发布会和各种技术大会上的交流演讲,可惜这些并不是公司内部会议的榜样,很多人找错了模仿对象

会议类型 用途 特点和要求
发布会 展示新产品、新战略 算是一种表演,要声色俱全,多媒体设备只是一种道具。
目的是引起轰动,传播的内容要能煽动观众的情绪,不断制造高潮。
交流 传播自己或本公司的经验(技术大会属于这个性质) 展示个人、团队或公司的优秀技术或成果,间接地卖广告。
讲授的内容具有高度概括性,不会讲细节。
不会很在意观众是否都听懂,甚至怕泄密而有所保留
培训 传播知识,提高工作效率 引导观众记忆和会后探索,目标是让观众最大程度地记住传授内容
宣讲会 传达信息或做动员 观众可能是被要求来听的,这在本质上是一种命令,所以不用在意讲得怎么样
评审 对方案的评审 主持人讲述自己的方案,观众提出意见和建议
对方案的描述要尽可能地细致,目的是让观众都理解后能发现问题,减少实施过程中的返工
总结 成果展示、述职 为了提高绩效评级,在符合事实的前提下,能怎么吹就怎么吹,你懂的
研讨 讨论、头脑风暴 没有主讲人,而要有主持人。非主持人都可以随意发言,有专人做会议记录。
主持人的最大职责是引导讨论有序进行且不偏离主题,并减少争论以至形成共识。
例会(日/周) 日常的信息交换 每个人都可发言,要尽量简短。发言内容只需在场有另外一个人听懂。
产生的问题会后再由各关联者自行讨论,不占用所有人时间

*请留意交流和培训的差异

在日常工作中,一个会议的性质可能会包含以上多种,主持人需要在不同的阶段完成不同的职责。特别是主持人也是作为主讲人的时候,应该留意场景的切换,如培训完毕后的问答阶段 一般来说主持人都需要做到这几点:

  • 宣讲会议议程或子主题,让参会人做好准备配合
  • 尽量使会议达成目标。如果没达成,商定后续的安排,可再开一次
  • 按时开始,不超时结束
  • 帮助观众理解发言人(包括自己)的讲话内容
  • 提醒其他发言人注意时间、语气等。不要因为一个人而耽误了全部人的时间
  • 确保重要的人员都到齐
  • 引导会议中的讨论达成一致意见
  • 记录重要的发言和待跟进事项

培训他人

好的程序员不一定是好的培训师,但好的架构师一定是合格的培训师,因为架构师必须向他人传达自己的思想,那恰是培训的意义所在 做培训的首要目标是让观众完全吸收你所讲的内容,当然这很难做到,但做得到让人吸收大部分的也太少了。这是令多数公司不重视培训的重要原因,但也不能完全怪讲师,因为好的培训是需要花费大量时间和精力的 如果不是专门设立培训师岗位或者把培训职责写入KPI,没有几个人会对把培训做到极致 交流演讲和培训的侧重点不同,不能说哪个的要求更高,但如果把交流的意义上升到代表团队和公司,那应该更重视

看看需要做多少功夫才能做好吧:

会前准备:

  • 冥想和模拟训练。在脑子里演练完整个培训过程,或者找个地方(培训现场最佳)对着空气讲。这能减小忘词的概率和减轻现场讲演的紧张感,还能发现培训逻辑的疏漏。如果还不够,可以先让少部分人来听,然后再面向全体
  • 如果怕会上遗漏一些事项没说,应准备一张小纸写上给自己做提醒的话语。非庄重场合写在手机里也行
  • PPT的制作技巧,很多书可参考,不赘述了。特别提醒,如果确认这是一个培训而不是一个交流演讲,PPT上的字不应该追求简略,特别是重要到需要观众记忆或记笔记的内容(也可能把PPT交给他们)。甚至可以考虑用Word或网页而不是PPT
  • 如果要讲到代码,不应该只用PPT。可以直接打开编辑器对着代码讲。在PPT里贴大段代码的都是耍流氓,因为代码占用的篇幅大,而且信息量较多,很难短时间理解透(这时候技术培训不如文档,但现实往往是相反的,本质原因是文档的糟糕。读者看不下去而希望能面授,集体的诉求自然转变成现场培训)
  • 如果需要演示操作或有多个培训材料,应提前打开所需的软件,并令其状态准备至一切换窗口过来就能讲(例如滚动条位置都拖好),不要在会议上花费这样的时间,因为一群人在等你
  • 发邮件提醒培训的适用人群。如有需要,提醒参会者提前阅读一些基础知识
  • 保证自己在培训过程精力充沛。为此,喝茶、喝咖啡、做几个俯卧撑什么的都行,用你喜欢的方式
  • 选择观众注意力容易集中的时间段。不饿,不困,不忙等
  • 选择好的场地,帮助观众集中注意力。不吵、无异味、气温适中(空调设好)、座位密度适中等
  • 培训内容的准备。思考如果你是观众,你最希望听到什么内容。培训的思路可参考下节“写作”
  • 其实,你的发型和服装都会影响培训效果,不信你cosplay来试试

进行时:

帮助观众保持注意力集中:

  • 如果讲授的内容很繁重,可尝试分节,每节40分钟左右,中间休息10分钟。是的,培训的本质是上课
  • 多微笑,声音洪亮。在旁人眼中,此刻的你应该比平常状态更兴奋和活跃。自己表现得越投入,观众就会越认真听,否则会变成一场催眠大会
  • 提到他的名字,让他的注意力集中回来,或让他有更多的参与感。比如“某某肯定也是这样想的”,“某某曾经说(问)过”,“这样就能解决某某的问题了”
  • 注意自己的姿势、手势,可用来引导观众的目光位置,但不要动作夸张到吸引走了注意力。如果一直拿着鼠标,记得不要乱动,观众的眼睛会跟着光标走
  • 开始讲述的内容可以不怎么重要,例如做自我介绍或描述一些东西辅助今天培训的主题,帮助观众慢慢进入状态

演讲的技巧:

  • 克服和利用紧张与恐惧。要理解这是人的天性,被很多人围观而自然产生的防御心理,实际上这能帮助你更集中注意力做好培训
  • 克服它们的方法有自我暗示(用特定的话语激励自己,想象过往成功的演讲,想象这只是普通的例会等)、深呼吸、转移注意力(喝口水,摆弄一下其他物品,跟别人说说话等)等
  • 事实上无论你犯多大的错,观众过几天就淡忘了
  • 不能用提问来考验人,更确切来说不能令被提问者尴尬而导致冷场,别学学校老师那套。提问可用于:现场调查,证明结论;开放式的,没有正确答案;让观众猜测,活跃气氛
  • 重复以强调。讲完例子或论据后重复一遍观点,加深观众的印象。或者更直接地,“这个很重要,我再重复一遍”
  • 不跑题。我就见过“我如何当好技术leader”这个主题花了三成时间讲“我如何当上技术leader”的人
  • 让观众跟上你的节奏。“承上启下,伏笔,呼应”这些写作技巧,在演讲中表现为“前面我们讲的都是理论,下面我们看看如何应用”、“这点我们后面会有详细描述”、“我们前面讲到的XXX在这里就是最典型的应用”
  • 适当的停顿。如果需要观众思考、消化理解,不妨直接说“给大家15秒时间思考一下”,就这样沉默着
  • 幽默。注意幽默是为了加深记忆服务的,不要最终变成展示个人魅力。“如何制造幽默效果”这个话题很大,不展开了,建议找书看。幽默感需要刻意地积累,而且要恰到好处地用在演讲上是需要锻炼的
  • 说服。最佳方式是列举好处,以利诱导,而不是把规矩硬塞入别人的思想。更厉害的方法是洗脑,这个也是可以找书看哦
  • 要会讲故事,在故事中蕴含你观点。故事的形式比理论好
  • 生动,运用打比方和对比、反比。观众一时难以理解你所描述的内容时,可以换一种角度来说。比如向不懂编程的家人解释架构设计是做什么,“就好比设计一辆汽车,要做到零件可拆卸组装(模块化),多个厂家都能帮助生产零件(可扩展性强),开起来省油又马力足(性能高)……”

控制会场的一切:

  • 利用好你的权力。无论发生什么影响会议进程的事情,如何处理都以你的决策为主。即使你的上司在场也请记住,这个时候你最大
  • 准备面对意外。比如投影仪或麦克风坏了你也能继续做培训;有人问你答不出的问题,你可以找后援团来回答或说会后私聊
  • 现场环境的使用。麦克风音量、笔记本电脑、灯光、投影仪、座位摆放、提词板、遥控器、激光笔、白板等

会后:

  • 收集反馈。提醒大家可以随意批评这次培训中做得不好的地方
  • 注意受众的当场反应
  • 观察受众的会后行为,是否有受你的培训影响而有所改变等

http://blog.csdn.net/hursing/article/details/50147549

to work SPDY、HTTP/2、QUIC协议

with :