程序员内部培训与个人发展杂谈

简介: 前言文中的培训均指代内部技术培训本文是对《如何优化程序员的内部培训》的补充,但不需要前置阅读,可以读完本文再回过头来看看。

前言

  • 文中的培训均指代内部技术培训
  • 本文是对《如何优化程序员的内部培训》的补充,但不需要前置阅读,可以读完本文再回过头来看看。http://blog.csdn.net/hursing/article/details/50147549
  • 例子是针对iOS、Android客户端开发的,但不影响前后端的同学理解。

培训的发展过程

培训的内容是技术知识,要了解培训的发展,首先要知道技术的发展。技术从无到有再到成为热门,相关的知识也需要不断积累的过程,这个过程会滞后于技术本身。可以认为,技术需要时间被认可、打磨和消化,然后才更好地被表达和传授。

技术成熟度有个曲线,相关的“培训成熟度”曲线则是在x轴右向平移半年。

技术发展

换个角度看,亲身经历技术成熟度最高峰的人,它的知识体系是最完善的。在趋势开始向下时,通常伴随着人才转岗或跳槽,最有价值的知识也随之流失。

所以,行内人都会感受到技术在“成熟度上升期”是最“好玩”的。牛叉的技术可以带来优质的体验,好的体验吸引更多用户,用户规模引发的赚钱效应驱动更多资本和人力投入,投入带来经验总结,总结产出文档书籍,优秀的文稿成就业内专家。还有赚钱多的领头企业产生名人,名人的话语成为风向标,风口内汇聚更多人才。这些正向循环引发了技术大爆炸和革新。

可惜的是,多数新技术都不是中国先发明和流行起来的。这让培训产业也在中国有着特殊的形式。

一项技术培训在中国发展历程:

  1. 最开始的时候,每个人都是新手,全是半路出家,巴不得有人教你带你。Google是唯一救星,百度毫无用处。
  2. 懂得看书,然而有用的,还是英文版的多
  3. 英文好的人更快掌握新技术,开始崭露头角并做分享。英文差的人趋之若鹜,不管是否能听懂。百度开始出现有用的结果。
  4. 书籍都只是入门,不可能把你锻炼成专家。先头部队懂得直接看官方文档,这批人有的自己做翻译,翻译出来的东西随便一甩都能做培训,他们也就成了专家
  5. 翻译的东西多了,更多人用自己的话语来描述,有了主见,至此非翻译版的中文书籍增多,入门门槛降低。随着网络带宽提升,网上视频教学兴起。
  6. 能百度到的用中文说明的解决方案越来越多,更多人不再主动看官方文档,依赖于被动接触API来熟知SDK。除非是Google不到的东西,否则没人有兴趣做分享。
  7. 团队人数越来越多,每个人会专注于特定的领域,也没空去关注别的东西,于是视野和思维越来越受限。零散的知识无法贯通,这就再难以产生专家。
  8. 公司开始把培训委托外包,然而外部培训人员的能力也是参差不齐。
  9. 技术开始没落被淘汰,团队解散,风光一时的技术被尘封,当年的激情成为老一代人独有的辛酸回忆。如塞班、WinPhone。

某司内部的培训形式发展:

  1. 打印官方的英文入门文档,自己慢慢看。还有外国人写的入门PPT
  2. 项目结项期间的分享,每个人说说自己学到的东西
  3. 做PPT,在内部分享
  4. 鼓励写文档,详细地总结;邮件发送,IM群里讨论
  5. 学习成长系统,自选课题和导师,季末做总结和考核
  6. 分享培训成为KPI的一部分,必须在论坛或者文档学习系统里达成指定数量的分享
  7. 分享之星评比,有金钱奖励
  8. 职级评价体系中,高等级加入社会影响力,对外需有名声
  9. 请外部培训
  10. 关注技术影响力,内部分享成了晒业绩的工具

iOS和Android现在已经很多资料文档可查,和早期自己挖掘的时代已不同,这也导致后来加入的人,能力差一截。公司人数和业务快速发展,同为做iOS、Android的人也必须分开组,可以是每个组做不同项目,也可能是多个组做同一个项目的不同模块。更细的分工能成就小领域里的专家,但难产生具有大视野的人。

培训

缺陷

从发展历程看,内部培训就像是个牛人晒能力、懒人捡便宜的工具。然而,实际的情况连“牛人晒能力”都未必能达到。大家忙于业务攻关,根本就没有精力关注“培训效率”这个指标。培训本身有一套专门的知识体系,不是每个技术专家都可以成为好老师来高效传授知识,所以专业的培训公司才会有市场。如果内部培训不是由专职的人负责,那么它很可能就是个形式,参与的人鲜有收获。

很少公司会设立专职的培训师岗位,因为公司的天生属性是雇人来赚钱而不是“倒贴”输出知识。团队里的人通常都专注于业务业绩,在这种环境里很容易思维受限,只有少数人可以做到自身成长超越团队成长。好的公司会安排外训,然后参与外训的人会把外部知识融入公司,从而成为内部的专家。这种情况大部分只发生在管理岗位,如果这位管理者无心带人,那么属下的小兵一直都只会是小兵。公司也不可能把培训师请到公司里养着,因为根据人员流动规律,通常半年才会用他一次。

总之,不要指望公司把你培训成才。师傅领进门,修行靠个人!本文也只是指引大家看书的。

听者要有心

那培训是否一无是处?肯定不是。但它产生的价值是在于“言者无意,听者有心”。一场1小时的会议形式培训,真正对听众有用的信息可能1分钟就能讲完。这1分钟的信息如何被听众利用才是重点。举一反三、联想类比,这是听众必须做的事情。培训中直接传授的知识可能毫无用处,但引发的思考才是值得花费时间参加培训的东西。

(拿技术来举例就太具体了,)举个非技术的例子,如果你所在上市公司高管在内部说“我们正在努力提高利润率”,那么你可以思考“以后的财报肯定会很漂亮,股价会涨,即使不加仓也至少可以坚定持有本公司的股票”;但高管从来没直接说过这些话。再来个段子,《教你如何用一块钱赚到10亿》,都是一块钱,怎样才能钱生钱真的得看个人。

在使用的技术成熟度高的团队培训中,分享知识信息是最主要的目的。然而这些信息可能短期用不上,过一段时间就忘了。这样的培训,听众就像是在看新闻,跟我们平常在朋友圈看的行业资讯没什么两样。这就需要我们会做笔记,并对笔记做一定的分类整理,定期回顾,让它们成为自己记忆的一部分。

听众要会提问。讲师其实很喜欢被问Good Question,那其实是提醒讲师还有什么重要的信息没传授给大家。同时,观众问问题也是帮讲师刷存在感。只要问的问题不低级,讲师是很乐意回答的。

形式

  • 文档。针对某个主题的描述,在此主题上的知识深度大于书籍。要区别于笔记,笔记是给自己看的,文档是给别人看的。
  • 书籍。大部分是宏观和基础的知识,供入门用。少数书名中带有“实战”的,和文档的性质差不多。
  • PPT。如果是专业的PPT,那它在会后就不再有用。PPT如果写成文档那么详细,那就不能成为一场培训会议的引导物。
  • 会议或上课。上过大学的你,有认真听过几节课?能考过还是靠笔记和书。
  • 视频。最接近手把手教的形式,但看不到操作键盘——快捷键和手速。
  • 训练营或实战型的比赛。因为时间成本高,所以很少用这种方式,但收获最大。
  • 手把手教。最能保证知识传递到位的方式。(参看下一节)

会议的作用,在于大家知道有这个东西;文档的作用,在于知道这个东西怎么用。这两种最常见的形式,对受众来说都像是看新闻。真正能让人快点独当一面的方法,都是只有手把手教。

该怎么做

  • 成熟的技术,给一个书单,慢慢去研读吸收
  • 不成熟的技术,看官方文档(看Guide、Training、Tutorial,不是Reference)
  • 有深度的,写成文档
  • 实战技巧类的现场演练
  • 手把手教
    • Review他的代码,毫无保留地指出所有错误和不良习惯
    • 亲自示范怎么做出来的,在开始前让他注意观察,然后自己的动作慢一点
    • 重构他的代码,让他自己对比好坏
    • 指引他要看什么资料来提升自己
    • 从较高的角度说明这样做的原因、思路、意义。“授人以鱼,不如授之以渔,授人以鱼只救一时之急,授人以渔则可解一生之需。”

“如何做到都是干货”是个具体团队具体分析的问题,不妨一起讨论下吧!

技能的构成

不仅仅是知识

  • 理论知识
  • 编程实现
  • 设计:逻辑、架构
  • 动手,附属工具的使用,IDE、硬件
  • 辅助工具的使用
  • 迅速找答案的能力:相关领域的术语,懂得用什么keyword能google到答案,或者说怎样问问题能得到最有针对性的回答。
  • 已有的轮子
  • 这个圈子内的朋友
  • 业界,舆论
  • 自己如何“安置”以上的信息,要懂整理、总结

这书我没看过,目录中的话题值得大家思考。《程序员思维修炼》http://product.dangdang.com/23617275.html

你能想到怎么自动化刷王者荣耀金币吗?利用adb,只需要写一个20行左右的shell脚本。如果你想不出来,得问问自己是否真的很熟悉Android了。

如何提高工作效率

  • 英语很重要。说自己学不好的都是借口,只是不愿意投入时间精力。
  • 管理者的视野,先做最需要做的事
  • 国外公司的经验,Facebook,Google,Apple,可看看回国工程师写的书
  • 把官方文档都看完。官方文档的章节安排,也正是看待程序架构的借鉴。
  • 懂得做笔记,隔一段时间再将遇到同样的状况,能更迅速找到背景知识和解决方案

跨领域

只把一个领域的东西精研下去,那就一辈子都是程序员,做不了架构师,更谈不上CTO。不想当老板的程序员,除了Geek就是S**t。

  1. 从一个模块到多个模块,到整个app,再到不同形态的app
  2. 从一个端到多个端:客户端、服务器端、HTML5
  3. 从一个职能到多个职能:产品经理、测试、设计师、项目经理、运营、商务
  4. 从低层到高层:老板思维
  5. 了解创业过程和企业的发展路径

必须有自我驱动的能力才能持续学习,不当技术是赚钱工具,而是乐趣。要能得到跟打LOL、王者荣耀一样的成就感。

这是跨领域工作的示例,你能在总结中理解得更深刻:
- 《开发的知识一览》
http://blog.csdn.net/hursing/article/details/52586541
- 《跨平台知识一览》
http://blog.csdn.net/hursing/article/details/45603483

职场技能与素质

软技能:

  1. 沟通能力
  2. 表达能力
  3. 语言组织能力
  4. 组织能力
  5. 逻辑思维能力
  6. 创新能力
  7. 领导能力
  8. 团队协作能力
  9. 说服能力
  10. 战略思维能力
  11. 抗压能力

这书我没看过,目录中的话题值得大家思考。《软技能 代码之外的生存指南》http://product.dangdang.com/24000917.html

怎样才算是会沟通?

素质培养

  • 思考如何变得更好,而不是推卸责任
  • 多读好书
  • 敢于承认错误
  • 学习CEO的视野,大局观
  • 参加杂志、朋友圈,业内专家的微信群
  • 商业到技术映射能力
  • 有能力有自信的人,敢于向主管说NO

这本书我看过,可能不太匹配国内的情况,但足够引发很多思考。《程序员的职业素养》https://book.douban.com/subject/11614538/

时间管理

  • 市面上的讲时间管理的书籍都不适用于一线(基层)员工的,具有管理职能的人才应该看。
  • 对一线员工来说
    • 日历/日程软件就是唯一需要的帮手,这包括PC和手机上的app哦。
    • 可以尝试跟别人说,哪个时间段不要找你,你这段时间都专心做事
    • 上班时间不够用不是应该去学时间管理,而是要想怎样提高工作效率
    • 人和人的差异在于下班时间怎么利用,是玩乐还是学习
    • 学习也是要讲效率的,选择好的时间、环境来学习
    • 年轻的时候应该尽量拼搏,但这不等于要过劳
    • 身体是革命的本钱,学技术的同时要学健康,平时多锻炼。要懂生活小常识、日用医学、养生保健等

个人成长

怎样才算独当一面

先来看个故事:

两个年轻人和土豆 —— 在英格兰的一家餐馆里,老板同时雇佣了两个相同年龄、相同学历的年轻人,并且他们都拿一样的薪水。过了半年,叫阿诺德的小伙子得到了老板的嘉奖,加了薪。而叫布鲁诺的小伙子却还在原地踏步。布鲁诺很不满意老板的做法,他到老板那里发了一通牢骚。老板一边耐心地听他抱怨,一边思量着怎样消除布鲁诺的抱怨。“布鲁诺,你现在到集市上去,看一下今天早上有什么卖的,好吗?”老板开了口。 布鲁诺很快从集市上回来,向老板汇报说:“今天集市上只有一个农民拉了一车土豆在卖。” “有多少土豆呢?”老板问。 布鲁诺马上跑到集市上去,然后回来告诉老板,一共有40袋土豆。“价格是多少呢?”老板又问。 于是,布鲁诺第三次跑到集市上,询问了价格。“好吧,现在你坐到这把椅子上,一句话也不要说,让我们看看别人是怎么做的。”老板说。老板把同样的任务交给了阿诺德。他也很快从集市上回来了。
阿诺德向老板汇报说:“到现在为止,只有一个农商在卖土豆,一共40袋,批发价是每袋1英镑,土豆很新鲜,我带回来了一个样品,您可以看看。另外,这个农商明天还会弄来3箱西红柿,据我了解,昨天他运来2箱西红柿,卖的很快,价格也便宜。考虑到我们的库存不多,这么便宜的西红柿,我想老板您或许想进一些作为存货,所以我把这个农商请来了,他现在正在门外等着您的回话,老板。” 老板这时回头笑着对布鲁诺说:“现在你肯定知道为何阿诺德的薪水比你高了吧?加油吧小伙子”

如果凡事都要老板详细地告诉你做什么,说明你还不够成熟。要站在老板的角度思考问题,这就是老板认可的独当一面。

有没有人想过这个故事移植到程序员工作中的版本?老大招聘来两个同等条件的年轻人,一年后,一个升了高级工程师,一个还是低级。低级很不忿,来找老大抱怨。老大说,你研究一下业内的地图SDK好吗?你做研究后会给老板回复什么?

  • 业内有哪些sdk
  • sdk之间的功能和特点差异,优劣,是否定位准确
  • demo接入,看使用情况,性能,包size,稳定性,耗电
  • 安全性、权限要求,sdk会不会偷偷做事情
  • 成熟的客户,哪些app在用这些sdk,体验如何
  • 是否开源,开源的能自己参考再做吗
  • 从我们的实际出发,哪个是最好的选择
  • 跟业内的人交流
  • 接入后可以用来扩展什么业务。
  • 接入成本,是否收费,商业化程度,是否限制流量、IP、次数,是否要换量……
  • 工作量评估,人力,维护,sdk的升级频率……
  • 可能的收益。提升日活多少?从而能赚多少钱?

职业规划

这书我没看过,目录中的话题值得大家思考。《程序员必读的职业规划书》http://product.dangdang.com/23685308.html

选择也就4种:

  • 技术线
  • 管理线
  • 转职能
  • 转行、创业

无论哪条路,都得努力才能晋升。没视野,一辈子就是小兵。要看得远,也要看得广。

规划只是个人选择,没有对错之分

  • 选择平庸,那得配上不羡慕他人的心态
  • 选择奋斗,首先要和同样的人为伍
  • 工作和生活的平衡在于符合性格而不是需要。是工作狂就多赚钱养家,让家人过得更滋润。

时刻了解自己在市场中的价值

  • 更新简历,看知名公司的招聘岗位描述,跟猎头做交流。
  • 或者跟我做做交流,微信号是hursing哦。
  • 看看业界新闻,当前领域内的新技术,自己掌握多少

提升自己的竞争力

  • 买书的投入收益率是百分之几千,它们帮你带来的加薪幅度和年终奖远远超过买书的钱,无论炒股还是炒房都没有这个收益率,更没有这么安全。
  • 自费参加外部培训、大会
  • 懂得自我营销。写博客,当讲师,运营公众号……
目录
相关文章
|
7月前
|
程序员 数据安全/隐私保护
编程之外,生活的美好航程
编程之外,生活的美好航程
|
4月前
|
算法 测试技术 持续交付
技术感悟:代码之外的智慧
【8月更文挑战第14天】在技术的海洋中,我们常常沉浸于代码的编写和调试,追求着更高效的算法和更优雅的解决方案。然而,技术的世界远不止于此。它还包括了对问题的理解、对工具的运用、以及与他人的协作等多个方面。这些看似与代码无关的技能,实际上对我们的技术成长有着深远的影响。本文将分享一些在代码之外的技术感悟,希望能够为大家提供一些新的视角和思考。
|
6月前
|
设计模式 编译器 C++
【C++航海王:追寻罗杰的编程之路】特殊类的设计方式你知道哪些?
【C++航海王:追寻罗杰的编程之路】特殊类的设计方式你知道哪些?
31 0
|
6月前
|
Oracle IDE Java
启航Java编程:基础三部曲-第一部
启航Java编程:基础三部曲-第一部 揭秘Java:从Hello World开始的编程之旅
39 0
|
程序员 测试技术
身为底层码农,你见过最无理需求是啥?
身为底层码农,你见过最无理需求是啥?
89 0
|
SQL 安全 Java
硬核,腾讯内部整理的面向开发人员代码安全指南,适合所有程序员
硬核,腾讯内部整理的面向开发人员代码安全指南,适合所有程序员
123 0
|
缓存 前端开发 NoSQL
程序员该知道大型网站架构的发展历程吗?如何有效地增加服务器?
前面介绍了大型网站的业务需求和大致的工作原理,但是不能简单地理解为只要增加服务器就能把一个网站变成一个能应对大量用户的网站。 通过增加服务器来达到支持更多的用户是大型网站架构的目的。 本节简要介绍大型网站架构的发展,并介绍大型网站架构如何有效地增加服务器。 本节介绍的技术点只要了解即可,后续章节会有更详细的说明。 大型网站系统的内部是复杂的,一般是多种网站架构的混合(包括静态网站、动态网站和B/S架构网站等)。
|
前端开发 Android开发
我奇怪的安卓开发历程(内含本人不太成熟的技术观)(四)
工作一天下来,最大的收获便是我发现项目写了半年我还是不知道这是个啥架构的,通过几次和同事沟通交流,以及浏览许多介绍和实例MVP、MVVM架构的文章,还是不了了之,当然,不能否认的是同事认为这是MVP架构的项目,我也挺倾向这个观点。
|
程序员 开发工具 Android开发
我奇怪的安卓开发历程(内含本人不太成熟的技术观)(三)
半年的开发工作通过统计git的提交记录发现其实我提交行数最多的项目也就1228行:
108 0
|
存储 Android开发
我奇怪的安卓开发历程(内含本人不太成熟的技术观)(二)
初出茅庐的我在开发工作中成长,收获了许多,但其实也引出了一堆问题。
111 0
下一篇
DataWorks