软件开发者路线图:从学徒到高手

题注:《软件开发者路线图:从学徒到高手》 阅读笔记

空杯心态:学徒所需的一种心态,已有的经验越多,你就越需要更多的努力进入到“空杯”状态,清除思想中的坏习惯,放下对技能水平的自鸣得意,敞开自己,从更有经验的同行那里学习不同的而且常常是违反直觉的新方法。

系上“白色腰带”表示不管你原来有多少专长,都要维持一种初学者的思想。“释放激情”将推动你跨越诸如灰心、迷茫和沮丧之类的新手障碍,使你敢于深入探究自己的“入门语言”。特定技术领域的“具体技能”会向你敞开大门,为你提供探索后续章节中更高级模式的机会。但不要让自己变得过于舒适!将最后四种模式合在一起使用,从而系统地获取知识,不断拓宽自己的技能领域。让自己在特定技术领域“暴露无知”,从而使注意力集中到下一步要学习的东西上面。然后“正视无知”,让团队和客户看着你雄心勃勃地获取知识。最终你将有机会承担一项冒险的任务,一次跳入“深水区域”的机会,要么学会游泳,要么沉入水底。这听起来挺吓人,但在你的职业生涯中没有比这更好的时机来尝试这类冒险了。当所有这些新知识和新思想的拓展快要把你淹没的时候,“以退为进”很重要,回想一下自己走了多远,开发了多少技能,然后打起精神去占领下一个高地。

                                                                                                                                                                         [第2章:空杯心态  Page37]


 入门语言

第一门语言学得越好,下一门语言学起来就越容易。尽管你将主要使用这门语言来解决日常问题并交付软件功能,你还是应该经常花一点时间来延伸自己在正常工作中对它的使用。在非常规的方向上延伸一下语言的使用能帮你发现语言的强项和弱点。

你不应该“嫁”给任何特定技术,而应该有足够宽的技术背影和经验基础,使自己能针对特定的情景选择好的解决方案。

                                                                                                                                                                        [第2章: 空杯心态-入门语言  Page43-44]


 白色腰带

  在新的知识有机会渗入到大脑之前,你必须设法避免将新旧知识混合在一起,并以初学着的心态着手解决问题。这可能意味着短期内生产率会降低一些,以期在掌握新方法之后能获得技能水平的飞跃。

  为了攀登高峰,你必须离开原来那个稳当的落脚处,放下已经取得的成果,甚至可能需要下滑到一个峡谷中。如果你永远不肯放下已经取得的成果,你仍可能不断取得平稳进步,却永远不能抵达高峰。

                                                                                      [第2章: 空杯心态-白色腰带  Page47]


 

释放激情

  软件及时智慧雇佣对软件开发工艺有强烈学习欲望的学徒。

  你(学徒)可能不会为团队带来深奥的知识和极高的生产率,但是,为团队注入一些兴奋因素,并对所有的事情表示疑问是你的责任。你(临时)处在一个独特的位置上,拥有新鲜的视角,这使你能提供一些有用的建议,从而改善整个团队。

                                                             [第2章: 空杯心态-释放激情  Page51]


 

具体技能

  你应该学会并持有一些具体技能,虽然学徒能把快速学习的能力带给团队,但在技能水平达到一定高度之前,在特定的工具和技术领域拥有具体的、可展示的能力还是会增大团队信任你,相信你能对他们有间接贡献的可能性。

  具体你能的例子包括使用各种流行语言编写构建脚本,了解像Hibernate/Struts这样的开源框架,基本网页设计技能,JavaScript,以及你所有语言的标准库。

  技艺高超的及时团队并不愿意冒险雇佣一名可能对团队没有直接贡献的人,而且还有一种可能:你对团队甚至连间接的贡献都不会有。比如说,他们已经把简单的任务全部自动化了。

                              [第2章: 空杯心态-具体技能  Page52]


 

暴露无知

  经理和队友需要对你有信心,相信你能够交付结果,但你对某学需要用到的技术并不熟悉。解决方法是向那些依靠你完成工作的人说明:学习过程是交付软件的一部分,让他们看到你在成长。

     暴露无知,最简单的方法就是问问题。但说起来容易做起来难,如果你要问的人以为你已经知道了答案,做起来就更难。别管那么多,坚持要问!当然,你可以保护自己的自尊,并通过不那么直接的途径来获取所需知识,但不要忘了,如果采用最直接的可用途径,通过熟练工的道路就可以被缩短。经过时间和实践,直接去问团队里最明白的人会成为你的习性。在暴露无知的同时,你也向团队展现了自己的学习能力。而且,有时他们也能从回答问题的过程中对自己的知识获得新的认知。

  要习惯这种学习过程,这是一种技能。有一些对这种过程感动不舒服的人,这类人不会成为技师,而会变成专家,即那种专长于某种平台或某一领域,并坚守这一平台或领域的人。这样的专家能在特定的上下文中交付功能,而且会做得比其他人都好,让我们这个行业拥有专家当然很重要,这也是必然的事情,但那不是学徒的目标。

  专家技能是我们走的这条漫漫长路的副产品,但不是目的地。在旅途中,技师的工作会接触到数不尽的技术和领域。如果,因为必须或者因为兴趣,他们“深入挖掘”,并在一种或多种这样的技术方面掌握了专家技能,那就再好不过了。这是可以期待的,正如马拉松长跑训练会锻炼出更强壮的腿部肌肉。她不是在锻炼腿部肌肉,她是在锻炼跑步。就像一个行动积极的开发者,在一个Python项目上做了两年之后,会获得对Python知识的深入掌握,马拉松运动员健壮的腿部肌肉也只是一种手段,而非目标。

  有些专家不遗余力地只与单一的上下文结合,收缩学习、实践和项目范围 。技师却恰恰相反,他们在拎起一门新技术或者学习一种新领域时,需要有勇气和谦逊来放下自己的专业技能并系上“白色腰带”。

  技师所拥有的重要品质之一就是学习能力,他们能找出无知的领域并通过努力工作来减少这样的领域。

行动指南:写下与工作有关,而且自己不甚了解的五件事。将这份列表放到其他人可以看到的地方。然后随工作内容的改变养成不断更新这一列表的习惯。

                                                               [第2章: 空杯心态-暴露无知  Page54-56]


 正视无知

  解决方法:选出一种技能、工具或技术,积极地填补跟它有关的知识空白。其他人可能通过直接动手构造一个“脆质玩具”才是理解一样东西的最有效途径。不管哪种方式适合你,都不要忘了问问周围的“同道中人”和指导者,看看是否有人已经掌握了这项技能并愿意分项所学。到某个时刻,你将在这个新领域达到令人满意的能力水准,这时你就可以做决定了,是继续深入挖掘下去更有成效呢,还是应该将注意力转到其他的技能空白上。每天只有24小时,你无法将每项技能能研磨到很高的水平,因此你必须学会在它们中间做必要的权衡。   公开的学习是学徒开始想熟练工跃进的途径之一。在人们能看到的地方学习,到可以向别人传授技能,期间只差一小步。

  该模式和“暴露无知”之间精心的维持平衡非常重要,仅仅正视无知会导致自负的食知动物,最终一事无成;而仅仅暴露无知却不视之为需要解决的问题则会导致过度的谦卑和无能。

  行动指南:针对“暴露无知”模式中列出的项目,努力学习其中的每一项,每学会一种就把它从列表中划掉。这些新知识又会揭示你以前没有注意到的新空白;别忘了把这些新发现的空白也加入列表中。

                                                             [第2章: 空杯心态-正视无知  Page58-59]

 


 

深水区域

   如果你从来没有一败涂地,那很可能你也没尝试过有价值的东西。

  你需要提供技能和自信,为自己增加成功项目的数量和多样性。你觉得有必要用更大的事情来挑战自己。包括更大的项目、更大的团队、更复杂的任务、新的业务领域,或者去新的地方。

  跳进深水区域吧。“一直等待直到自己准备好”会变成一张啥也不做的处方。因此,当你被安排扮演更高姿态的角色或者解决更加困难的任务时,要用双手抓住机会。只有承担艰巨的任务并做一些让人紧张的事情,你才会成长。

  这样做也有风险。如果估算失误,水位高过了你的头顶,那你可能溺水。谢天谢地,在IT行业,有许多领域你可以冒冒险,即使失败了也不会损害你的职业生涯。本来是机会,从半闭着的畏惧的眼睛里望去就成了风险。但这并不是教你在简历中撒谎来骗取一份本来无法胜任的工作,也不是在你没有充分准备的情况下迎接挑战。它意味着当提升或者外部的任务被安排到你头上时,即使面临着极高的失败率,也要勇敢地接受它。为失败做好准备并充失败中振作将为你打开怯懦者永远看不到的大门。

  你有责任对这种风险做些调整,方法是参考“找人指导”和“同道中人”模式,找到在你需要时能提供帮助的人。你也有责任“监理馈路”,从而当挑战性的项目失去控制时,你还可以抓住它并马上获得帮助。运用这一模式的时候,应该让人觉得你很勇敢,而不是很冒失。

                                                           [第2章: 空杯心态-正视无知  Page60]


 

以退为进

  当最终期限已经临近,或者当你在处理产品问题的时候。振作一点,这是“漫漫长路”上正常的、不可避免的现象。战胜能力不足的恐惧正式“暴露无知”和“正视无知”之间的桥梁。

  以退为进的模式跟那些将自己过度拉伸到能力之外的人最有关系。如果你在学徒期基于合理的步伐、逐步增加的责任和技术复杂度前进,那么你不需要接受这一模式的庇护。但如果你真的在挣扎,或者说在深水区域你难以让自己的脑袋浮出水面,那你就应该寻找暂时回退的机会。有时你需要后退一步才能前进两步。这是,要尽可能快地将这种后退的动作转变成前进的冲力,这一点非常重要。这种前进的冲力将表现为你拥有了比昨天更丰富的知识和更高超的技能。

  然后,向后退步也有风险,如果不能清醒地选择一个后退的距离,你会发现,自己不过是向失败的恐惧投降了。更深地投入到已经有能力做好的事情中,会让人非常宽慰。专长带来的回馈是直接而切实的,但这样做的风险不会立即浮现出来,直到有一天你采取任何措施都为时已晚。当你的专长最终变得过时,你将被迫再一次面临一片无知领域,而此时你可能已经失去学习新东西的习惯,重新开始会比原来痛苦的多。在这种情况下,克服那种被压垮的感觉比解决问题本身更困难。

  要避免折后总情况,你必须接受这一事实:该模式只是你聚集力量东山再起过程中的一个短期修正。为自己设定一个时间限制,比如“在优化提高数据的SQL查询之前,我将把接下来的10分钟用于重构这个页面的JavaScript验证。”该方案的另一个重要方面是:利用短暂的休息向聚集在你周围的指导者和同道中人寻求支持,有了他们的支持,再加上最近一次展现能力的推动,你可以准备得更加充分,从而能够应付再次尝试时前进道路上的碰撞。

                                                          [第2章: 空杯心态-以退为进  Page64]

 


 慢慢长路

   在学徒期,相比薪水和传统意义上的领导能力,你要更看重学习和长期的机会。

  渴望成为软件工艺师傅的人们需要做长期的规划。这一长远的旅程将带给你丰富的技能。你将精熟于学习、解决问题,以及同客户建立牢固关系的技巧。你将能娴熟地运用自己的知识和技术,就像一名侠客使用它的短刀和长刀。你将理解和领悟软件开发的深沉真理。所有这些都需要时间。

  你应该对这一旅程的漫长有所准备。当你“自定路线”时,应该牢记自己期望成为一名开发者,即使到中年仍然一直工作的软件开发者。让这一期望来影响你的工作选择,以及抱有雄心的领域。如果你还想工作20年,那你就可以做任何事。考虑到磨练技艺所花的时间,没有哪个人的技能水平是你跟不上的。也没有哪种业务领域或技术领域是对你关上大门的。

  这一模式不是为那些渴望成为CIO或者项目经理,或渴望非常富有的人准备的。一路上,你并非没有可能去扮演权利和责任角色,或发现自己已非常富有。然后,这些角色和利益不是成功学徒的主要目标——他们只是终身旅程的副产品。技师们不会数日子等退休,他们会开心工作,直到最后几年。

  闭上眼睛,想象一下在10年内你可能扮演的最奇怪的角色是什么。开心地为自己设想一个最古怪的未来。然后想象一下从现在开始20年、30年或40年以后的情况。到那是你希望自己都尝试过哪些经历?设想40年后,有人对你自己的职业历史和一路上对你影响最大的事情做个简单描述。利用这一思考练习的结果来帮自己规划未来的职业选择。

                              [第3章: 漫漫长路  Page70]

 


 

技重于艺

  作为技师,你的首要工作是构建能满足他人需要的东西,而不是沉迷于艺术展现。我们为客户构建的东西可以是没的,但必须是有用的,由这一模式所构筑的成熟过程,其中一部分就是培养在必要时牺牲美丽来换取效用的能力。

                             [第3章: 漫漫长路-技重于艺  Page73]


 

持续动力

  你所编写的软件会毫不费力地从你的大脑中流淌到你的指尖上,功能和设计看起来都很美,这些都是好日子,非凡的日子,换言之,它们不是你的平常日。

  在软件开发的阵地上致力于真是项目开发不是那么容易的,有时感觉沉闷乏味,有时让人疲惫不堪,常常让人灰心丧气,并频繁出现过度的混乱和拘束。一般的变成工作会使你直面那些沉闷乏味、定义模糊、而且复杂得让人觉得多余的问题。这些都是乱七八糟难以处理的问题。此外,你还会面对官僚作风和难对付的人,并接受不规范的领导。 你会在几天、几周或几个月的时间里怀疑自己对开发的投入。当遇到这样的问题,让自己编程的动力向着行走“漫漫长路”的目标看起就显得至关重要。

   行动指南:写下至少15项能为你提供动力的事情,稍等一会儿后,再写下另外5项。你有多少动力来自其他人的想法而非自己的感觉?它在前面15项和后面5项中分别占据的比例一样多吗?有多少动力因素是可以不要的?现在列出5项最重要的为你提供动力的事情。把这份列表保存到某个地方,遇到苦难时可以看看。

                                                     [第3章: 漫漫长路-持续动力  Page77]

 


 

培养激情

  要成为熟练工,你需要拥有对软件技艺的激情。不幸的是,你每天的活动常常使这种激情减退,你可能面对着混乱的企业制度,向着死亡前进的项目,满嘴脏话的经理,或者玩世不恭的同时,处在这种恶劣环境中,你很难培养自己的激情,但你可以采取一些基本的行动来维持它。

  做点自己喜欢的事情,从工作中找一些你感兴趣的东西,确定它确实是你喜爱的,然后让自己投入其中,如果工作中不能腾出足够的时间来做这事,考虑安排一点额外的时间,如果折不可行,抽点工作外的时间来构造一些“质脆玩具”吧。

  找一些“同道中人”,加入一个关注你要深入学习的某样东西的本地用户组。开一个博客,阅读一些你感兴趣的博客。

  “专研名著”,当你的激情陷入危险处境时,可以让自己沉浸到软件开发领域的杰出作品中,这可以帮你越过难关这些永恒的书籍能打开你的视野,让你看到不同的世界,一个一切可以变得更好的世界。

  

  项目死亡行军是最具破坏性的恶劣条件。当面对着死亡的行军时,很难想象如何保护自己的激情,它会耗尽你的时间和潜力,使你不能采取任何有效行动来保护自己的激情,因为有更重要的问题——比如个人的健康状况和紧张的家庭关系——需要你去关注。行走在“漫漫长路”上的人们并不是短短几年冲刺然后燃尽自己的英雄——他们是在几十年的时间里保持可持续的节奏,并不断前进的人们。

  要培养自己的激情,需要设置一个清晰的界限,基于这个界限来定义你愿意身处其中的工作环境。这或许意味着你早早下班而团队的其他人加班到很晚,你退出一次恶言相向的会议,你将一次玩世不恭的谈话导向充满建设性的议题,结果可能是你在加薪升职名誉声望方面被忽略了,但是,如果你希望打破恶劣的条件并保持自己的激情,这些界限就是必需的。

  行动指南:在上班路上准备三个可用于讨论的积极想法。在一天当中,如果某一个次交谈开始侵蚀你的精力,就把交谈内容导向你准备好的议题之一上去。目标是接过控制权,避免被周围的负面交谈拖垮。在回家的陆上,回顾一下自己成功的程度,并考虑一些改善环境的其它办法。

                                                       [第3章: 漫漫长路-培养激情  Page79-80]

 


 自定路线

   要小心那些不靠谱的批评家。在社会的某些场合,我们可能遇到一些同时或者一些人,他们视图证明:随着时间过去,编程...会变成一种不可持续的活动。他们认为软件开发只适合年轻的毕业生...而当我们结婚并有了小孩之后,便不能再做软件开发了。

  为自己的职业生涯确定一个合理但又须付出努力的下一步。到达自己的下一步,然后继续制定整个过程直到抵达理想的目标。确定好下一步职业目标之后,你要做的就是把中间的步骤具体化,也就是把自己前进所需采取的小步骤具体化。不仅仅要写下上层的目标,尽量制定细小的、可达成的步骤。这些小步骤会提供一些反馈,你可以利用它们来修改自己的路线,这些小步骤还能使你更容易从“同道中人”那里获得帮组,从而达成自己的目标。随着周围环境和自身价值的调整,你应该不断重新评估自己的路线,路线永远是自己的,你可以在任何时候重新描画它。

  使用“持续动力”和“使用头衔”模式可以避免当前的头衔和薪水减少了路线图上的潜在目标。如果你需要转到一个在等级上不太重要的角色才能保持自己不脱离路线,那可以考虑“漫漫长路”模式并比较一下两者的相对重要星:是(短期)更响亮的头衔和更丰厚的薪水重要,还是一个更符合自己的目标,从长期来看能让自己飞的跟高的公司重要。

                           [第3章: 漫漫长路-自定路线  Page81]

 


 

使用头衔

  不要被一个让人印象深刻的头衔所欺骗。妈妈或许会认为你当得起它,但让人印象深刻的头衔和责任并不表明你的学徒期已经结束。它只是用来提醒你:我们行业中技师还很缺乏。   另一种情况是:虽然你的技能水平已经超出自己的同事,但你的头衔依旧平淡无奇,出现不得赏识的挫败感,你应该通过这种情形来度量你的组织以及它跟你之间的切合度,而不应该让这种挫败感拖慢了自己的步伐。

  行动指南:为自己写出一个长长的且富有描述性的职位头衔,确定它准确地反映了你的实际工作内容和技能水平。以后不断更新这一头衔,使之保持最新,并不时想象一下:你会如何看待一个拥有同样头衔的人。

                                                    [第3章: 漫漫长路-培养激情  Page85]

 


 

坚守阵地

  你获得了一次提升机会,组织想把你提升到一个不再编程的职位上。提升的机会将会考验你是否拥有“持续动力”,是否愿意走“漫漫长路”。大多数人把提升到管理职位等同于成功,他们觉得接受一个管理职位的提升是不需要考虑的事情,是一个表明你走上正确道路的信号。胸怀大志的技师千万不要被蒙骗,去相信自己仍可长期做“技术管理”者。一个人一旦停止了实践,她对技艺的精通马上开始消退。每一个不写程序的日子,你都是在不断远离熟练工的目标。

  因此,为了让自己坚守在技艺精通的道路上,你应该跟老板一起想一想,看能否找到其他回报你的方式。这可能包括更多的薪资,或者非传统的技术领导角色,比如内部咨询工作。如果你的组织不够灵活,那你最好到别处找找机会(参见“自定路线”),而不要让自己提升到远离技艺的职位上。  准备一份具有三种不同回报方式的列表,这样当决绝那个提升机会时,你已处在一个可以协商的位置上,而且是基于你很清楚自己想做什么这一事实。

                                                 [第3章: 漫漫长路-坚守阵地  Page86]

 


 另辟蹊径

  你已经在“漫漫长路”上走了一些时候了,但因为“自定路线”,你现在认识到这条路不再是适合你的选择。你找到了另外一条路,其回报与你现在的价值更合拍:更多的时间与家人呆在一起,更多的薪水,或者你中新的职业引起了你的注意。不管是什么,都意味着跟你的技艺和“漫漫长路”说再见。可能是永远,也可能不是。

  你不必害怕在自己的一生中做点不同的事情,如果你离开了软件开发,你会发现不管自己去哪里,像严谨的思考以及将涉及大批量数据的任务自动化这样的习惯仍将对你有用。不管你选择怎样的未来,你过去做软件技师的经历都能使之更加丰富。

  如果由于某种原因,你不能继续做一名软件开发者,你会怎么办呢?写下一些你认为自己会乐于从事的其它工作,找一些正在做那种工作而且热爱它的人。问他们所爱的是什么,并将它们与你在软件开发中所喜爱的东西比较一下。

                                                 [第3章: 漫漫长路-另辟蹊径  Page88]

 


 

最求最差

  让周围多些水平比你高的开发者。找一个更强大的团队,在那里让自己成为最弱的成员并拥有成长的空间。作为团队中最弱的一员,你应该比其他人更用功。这是因为你的目标不是保持“最弱”,而是从最后面开始一路赶上来。

  如果没有集中精力向团队学习的意识,你将面临炒鱿鱼的风险,因为好的团队不会长期容忍某一个成员只是来做一回过客,如果你远远落后,以至无法赶上,你面临拖累团队速度的风险。

  但你可以通过“打扫地面”和“具体技能”来补充“只求最差”带来的风险。

                                                 [第4章: 准确的自我评估-最求最差  Page96]

 


 找人指导

  你意识到自己并不是第一个走这条长路的人,你花了大量的时间在探索死胡同。  找那些走在你前头的人,努力向他们学习。

  挑一个拥有活跃邮件列表的工具、库或者社区。订阅这个列表,但开始不要发布任何信息。潜水即可。过段时间你将开始理解这个社区的价值,并了解哪些订阅者是耐心的老师。有了这些了解之后,到下次技术会议时,你就可以去寻找这以列表中的成员,看他们是否有兴趣为你所学的功课提供一些非正式的建议。

                                                 [第4章: 准确的自我评估-找人指导  Page100]


 

同道中人

  你发现自己无人指导,束手无策,而且周围的气氛看起来与你的志向并不一致。为保持前进的势头,特别是当找不到全职指导者的时候,你需要找到那些所走道路与你相似的人,跟他们保持频繁联系,因此,你应该去找一些像你一样希望自己优秀的人。

  “漫漫长路”并不是单个人孤独行走的道路,特别是在学徒期的那几年中,你需要同志和友情。同道中人你们可以随意地相互展示各自学到的东西,谁也不必受谁的领导。指导者是那些你希望效仿的人,因此可能会让你觉得有点距离感,有时还让人敬畏,但通过一个“同道中人”组成的社区来补充“找人指导”模式,这个社区中都些让你交流起来没有心理负担的人。

  基于自己使用的工具、了解的语言、一起共事过的人、读过的博客,以及让你受过启发的思想,列举一下所有可以加入的社区。确认其中有哪些能在你的城市搞线下的实际聚会。逐一参加所有这些聚会,确认哪一组人最有趣。如果所有用户组都不会在你附近定期聚会怎么办?遇到这种情况,那你就获得了一次极好的机会:自己创办一个这样的集会。这个事情不会像你想象的那么麻烦的,只是不要过早地限制了成员和主题范围。随着组织的壮大,尽情去探索更宽广、更奇特的主题领域,久而久之就会产生核心小组。

                                                [第4章: 准确的自我评估-同道中人  Page103]

 


 

密切交往

  你的生产效率进入了稳定状态,你的学习停滞了,你感觉有更高级的技术和方法而自己却抓不住;

  解决方法:找机会跟另外一个开发者坐在一起,肩并肩完成一项实际动手任务,有些东西,只有当你跟另外一名开发者坐在一起完成共同目标的时候,你才能学会它。最理想的技师工场是这样一种地方:你在那里可以“吸收哪些只可意会、不可言传的知识;靠每天的点滴进步积累成一种实践习惯。”由于此理想的环境如今非常少见,我们不得不使用“密切交往”模式作为现代的替代品。

                                                [第4章: 准确的自我评估-密切交往  Page106]

 


 打扫地面

   你是某个项目中的新学徒,你不确定自己在团队中的位置,团队也不确定你的水平。你想找一种方法为团队出力,赢得团队信任,并提高自己作为技师的声望。  解决方法:主动去完成简单无趣却又必须完成的任务,这是一种可以尽早为团队成功付出努力的方法。但要避免永远都作为团队中的地鼠,另一方面也避免产生害怕去做除“打扫地面”之外的任何事心态,如果你发现自己处在这些风险中,那就努力去“培养激情”、“释放激情”,为自己打广告,并寻求各种机会证明自己能做更高级的工作。

                                                [第4章: 准确的自我评估-打扫地面  Page109]

 


 

恒久学习

  只有那些对知识非常渴求,以至于在不利的环境下仍能坚持探索的人才会取得更大的成就。从来就没什么“有利条件”。学徒期的主题就是学习,成功学徒的显著特点就是证明自己的学习能力。当一个学徒面对他必须应付的工作复杂度,还有看似把人淹没的信息量,这绝非易事。除了学习“具体技能”这种基础活动,学徒还必须学会如何学习。

                                                [第5章: 恒久学习  Page113]


 

提高带宽

  你一直像使用吸管喝水那样慢慢地吸取知识,在学徒时期,有时候你必须快速地吸收那些就像从消防水管喷涌而出的、大多数软件开发者都能获取到的知识。对学徒来说,提高获取新知识的能力是关键一步,尽管有时候知识会多得让人崩溃。你必须开发一些必要的方法和技巧来高效地获取、理解、维持并应用新知识。

  随着学徒期优先级的转移,你最终需要关闭这个消防水管,从而能专注与项目工作,但在学徒期中,至少应该有那么一段时间你在使用这一模式。

                                              [第5章: 恒久学习-提高宽带  Page118] 

 


 

 不断实践

  你的日常编程活动不会给你通过犯错来学习的机会,似乎你一直都在台上演出。

  “路数”是师傅为了让徒弟对武术基础心领神会而专门设计的一系列动作。路数是在没有对手的情况下练习的,强调的是流畅性、力量、速度可控制力。编码“路数”知识“不断实践”的方式之一(“质脆玩具”是另一种)。这一模式的关键是划出一些时间,在一种没有压力、又充满乐趣的环境中开发软件:没有发布日期、没有产品问题、没有外界打断。实践过程需要结合较短的反馈回路。

  行动指南:从某一本书中找出一个练习,或者自己设计一个来做。确保所找的问题比某个你能轻易解决的问题困难,但只是困难一点。第一次你应该需要努力才能解决它。接下来四个星期中,每个星期都将这个练习重做一遍并观察自己的解决方法是如何演化的。作为一名程序员,你应该考虑一下,这些演化道出了你哪些实力和弱点?运用这些发现,尝试找出或设计一个新的、能对自己的能力产生客观影响的练习。如此反复。

                                             [第5章: 恒久学习-不断实践  Page120]

 


 

posted @ 2017-01-04 13:56  小书生_Linwei  阅读(679)  评论(0)    收藏  举报