别人走的路(看看)

  与你所相信的恰恰相反,单纯地每天埋头于工作并不能算是真正意义上的锻炼——参加会议并不能锻炼你的人际交往能力;回复邮件并不能提高你的打字水平。你必须定期留出时间,集中锻炼,这样才能把事情做得更好。

  我认识很多杰出的程序员——这是在亚马逊工作最好的额外“福利”之一。如果仔细观察他们,你会发现他们时时都在锻炼。他们已经很优秀了,但他们仍然不忘锻炼。他们锻炼的方法林林总总,而我在这篇文章中只会介绍其中的几种。

  据我了解,这些杰出程序员之所以如此成功,就是因为他们一直在锻炼。完美的身材要靠定期的锻炼才能获得,而且必须坚持锻炼才能保持,否则身材就会走形。对于编程和软件工程来说,道理是一样的。

  这是一个重要的区别——我每天都开车去上班,但我的驾驶水平远远不如专业车手;类似的情况,天天编程可能并不足以使你成为一名专业的程序员。那么,什么才能把一个普通人变成一名专业车手或者专业程序员呢?你需要锻炼什么呢?

  答案就在《科学美国人》的一篇名为“TheExpertMind”(专家思维)的文章里:

  爱立信提出,重要的并不是经验本身,而是“努力的学习”,也就是要不断地挑战自身能力之外的东西。一些狂热的爱好者花费了大量的时间去下棋、打高尔夫球或者玩乐器,但他们可能始终停留在业余水平上,而一个训练有素的学生却可以在相对较短的时间里超越他们,原因就在这里。值得注意的是,在提高水平方面,花费在下棋上的大量时间(即使参加各种比赛)似乎还是比不过专门的训练来得更为有效。训练的主要价值在于发现弱点,并有针对性地进行提高。

  “努力的学习”意味着,要常常去处理那些刚好在你能力极限上的问题,也就是那些对你来说有很大可能失败的事情。如果不经历一些失败的话,你可能就不会成长。你必须不断地挑战自我,超越自己的极限。

  那样的挑战有时会在工作中碰到,但也未必。将锻炼从职业工作中分离出来,这在编程领域常被人称为“编码套路”(CodeKata)。

  CodeKata的概念是由DavidThomas提出的,他是《程序员修炼之道:从小工到专家》的作者之一。这个概念主要指的是,针对某一种特定技术或技能进行重复性的练习,从而将其熟练掌握。——译者注

  所谓套路,就是一系列的招式。这个概念借鉴于武术。

  如果你想要看一些编码套路的例子(也就是努力学习和磨练编程技能的方法),SteveYegge的文章里倒是提出了一些不错的建议。他把它们称作为“实践演练”:

  写一份自己的简历。把自己所有的相关技能都罗列出来,然后把那些在100年后还用得到的标出来。给每个技能打分,满分为10分。

  罗列出你所景仰的程序员。尽量包括那些与你一起工作的人,因为你会在工作中从他们身上获取一些技能。记录下他们身上的1~2个闪光点,也就是你希望自己有所提高的方面。

  查看维基百科上的“计算机科学”栏目,找到“计算机领域先驱者”这个分类,从这个列表中挑选一个人,阅读他的事迹,并且在阅读时打开任何你感兴趣的链接。

  花20分钟通读别人的代码。读出色的代码和读糟糕的代码都是有益的,两者都要读,轮流切换。如果你无法感觉出它们之间的区别,可以求助于一位你尊敬的程序员,让他给你展示一下什么是出色的代码、什么是糟糕的代码。把你读过的代码给别人也看看,问问他们的看法。

  罗列出你最喜欢的10个编程工具——那些你觉得你用得最多、非有不行的工具。随机挑选其中的一个工具,花一个小时去阅读它的文档。在这一个小时里,努力去学习这个工具的某个你不曾意识到的新功能,或者发现某种新的使用方法。

  想一想,除了编程之外你最擅长什么事情?再想一想,你是通过怎样的锻炼才变得如此熟练和专业的?这对于你的编程工作又有什么启发呢?(怎么把这些经验应用到编程方面?)

  拿出一叠简历,并和一组面试官在同一个房间里待上一个小时。确保每份简历都至少被3个面试官看过,并且要给出1~3分的评分。针对那些不同面试官评判大相径庭的简历展开讨论。

  参与一个电话面试。事后写下你的反馈,抛出你的观点,然后与主持电话面试的人聊一聊,看看你们是否达成了一致的结论。

  进行一次技术面试,并且被面试的人应该是某个你不太了解的领域里的专家。让他假定听众在该领域里一无所知,因此请他从最基础的讲起。努力去理解他所说的,必要时问一些问题。

  有机会参与别人的技术面试。期间,你只是认真地听、认真地学。在应聘者努力解决技术问题的同时,你也要在自己脑子里尝试解决这些问题。

  找到一个能和你交换实际问题的人,每隔一周,相互交流编程问题。花10~15分钟来尝试解决这些问题,再用10~15分钟进行讨论(无论能否解决)。

  当你听到任何你一时之间也无法解决的面试问题时,赶紧回到你的座位上,把这个问题用电子邮件发给自己,以留作日后的提醒。在那一周里找出点时间,用自己最喜欢的编程语言来解决它。

  我之所以喜欢Steve开出的这个清单,是因为它看上去很全面。有些程序员一想到“锻炼”,总认为就是一些编码上的难题。但在我看来,编程更在于人,而不是代码。因此,通过解决世上所有的、并且晦涩的编程面试题目,在提高你的个人能力方面,这种方法是有局限的。

  关于“努力的学习”,我也很喜欢PeterNorvig在“TeachYourselfProgramminginTenYears”(花10年时间自学编程)一文中提出的诸多建议:

  与别的程序员交流。读别人的代码。这比任何书籍或培训课程都更重要。

  动手写程序!最好的学习方法就是边做边学。

  在本科或研究生的课程中学习编程课程。

  找一些项目来做,并且需要与其他程序员形成团队来合作。在项目的进行过程中,学会辨别最出色的程序员以及最糟糕的程序员。

  在项目中跟随别的程序员一起工作,了解如何维护那些不是你写的代码,并且学习如何写出利于他人维护的代码。

  学习多种不同的编程语言,特别是那些与你现在所熟悉的语言有着不同的世界观和编程模型的。

  了解硬件对软件的影响。知道你的电脑执行一条指令需要多少时间,从内存中取出一个字(在有缓存或没缓存的情况下)需要多少时间,在以太网(或者因特网)上传输数据需要多少时间,从磁盘中读取连续的数据或者在磁盘上跳转到另一个位置需要多少时间,等等。

  你还可以从DaveThomas的21种实用的编码套路中获取灵感(CodeKata.com),或者你更愿意加入一个你家当地的“编程武馆”(CodingDojo.org)。

  对于“努力的学习”,我无法像Steve,Peter或者Dave那样提供一个长长的建议列表。我远不如他们有耐心。实际上,在我看来,“编程套路”只需两个招式:

  1.写博客。我在2004年初创办了CodingHorror.com博客,作为我自己努力学习的一种形式。它在一开始很不起眼,到后来成为我职业生涯中做过的最重要的一件事。所以,你也应该写博客。最后“闻达于天下”的人,往往就是那些能够有效书写和沟通的人。他们的声音最响亮,是他们在制定游戏规则,并且引领世界的潮流。

  2.积极参与著名的开源项目。所有的高谈阔论听起来都很好,但是,你是一个大话王还是一名实干家呢?别光说不练,这个非常重要,因为人们会用你的行动来衡量你,而不是你的言论。努力在公众面前留下些实实在在有用的东西吧,到时候你就可以说,“我在那个项目中出过力。”

  当你能编写精彩的代码、并且能用精彩的言辞向世人解释那些代码时,到那时候,我会觉得你已经掌握了最牛的编码套路!

时间: 2024-10-31 03:22:28

别人走的路(看看)的相关文章

别人走的路-1

1.编程是你的兴趣所在,当然,你想混口饭吃也是可以的,但是它会让你觉得更无趣. 2.路线:(由于之前是不知道黑马训练营有详细的路线图)我是问我的同学(现在就职于百度)他的历程,他是怎样走过来,我们必须知道“路”是怎么走的. 3.入门:基本按照黑马训练营的路线图,一直学下去就可以了,这个过程最好制定相应的目标,跟着计划走. 4.学习建议:有空的可以直接去读书,没空的(在职的)可以直接学习到SSH,基本就可以找到一份编程工作了,如果想薪水高,后面会说到. 5.入职必须条件: 独立完成一个项目模块(能

别人走的路--2

程序员是一份很特别的职业,他们的工作是跟机器打交道,需要长时间待在电脑旁边,工作的成果是一堆神秘复杂的代码.要胜任程序员的工作,是非得有一些特质的,例如: (1)能享受编程的乐趣.(2)坐得住,对着电脑一整天也不会觉得累.(3)有很多关于软件的想法想要去实现.(4)逻辑思维强,做事情,或与人争辩时,都很有条理性.这一点非常重要,一个人的逻辑思维能力决定了他写出的代码的质量.(5)喜欢改进自己的成果,精益求精. 虽然我主张项目不应追求完美,但一个人的学习进步必须是精益求精的.(6)热爱学习,愿意接

读书笔记:《少有人走的路1----心智成熟的旅程》

读书笔记:<少有人走的路1----心智成熟的旅程> 这不能算做一本励志的书,只是从心理学的角度分析我们大多数人的心理和行为,原来我们大多数人或多或少都有心理方面的问题,从本书中第一次了解了规矩.爱.信仰和恩典,也算是一种重生了. 2012年3月读完第一遍,2012年10月断断续续地读完了第二遍,透过全书重新理解了四条规矩.爱的定义.相信科学也是一种信仰.人生中充满恩典,这本书应该是对我人生影响最大的第二本书了,第一本书就是<搞定1>,通过实践GTD让我遇到了第二本好书. 第一部分:

一只放弃银行路转走IT路的小猿的内心独白

今天是开启IT路的第一天,回顾大学,现在已经走到了大学时光的夕阳中了,然而内心却刚装一颗初升的太阳,并不觉得自己时间来不及,只要你想去做,马上就去做,不会迟.在此之前已经思考一周,让自己做好心理准备,走上这条路会遇见很多困难,但是我都不会放弃,必须赢. 博主本科专业是经管院下面的信息管理与信息系统,学的课程涉及很广,从技术C++.JAVA,到会计学.财务管理.可以说选择职业多,也可以说广而不精.博主在家人的期待中,选择了走金融之路,在大一的时候就坚信,自己会一直走金融路,记得在一次专业教育课上,

PPT制作,别让我们走错路

PPT之所以在职场工具中被推到了前端,因为这是一个跨界的工具,它一脚踩到了思想.设计和演讲的结合处,这精确的定位,让它天生就是焦点. 演讲需要PPT,这对于职场中人来说,就像是吃饭少不了筷子一样,已经成为常识.我们都会用ppt制作这种视觉化的方式,让沟通更便利,让细节得到更好的展现,让自己显得更酷,或者让PPT成为自己的保护伞. 在如此大环境之下,PPT制作理所当然的成为了职业人的热门功课.不过这门功课有不小跑题的风险. 殊不见市面上越来越多的书籍告诉你如何做一个美丽的PPT,它需要你有良好的设

PPT,别让我们走错路

演讲需要PPT,这对于职场中人来说,就像是吃饭少不了筷子一样,已经成为常识.我们都会用ppt这种视觉化的方式,让沟通更便利,让细节得到更好的展现,让自己显得更酷,或者让PPT成为自己的保护伞. 在如此大环境之下,PPT制作理所当然的成为了职业人的热门功课.不过这门功课有不小跑题的风险. 殊不见市面上越来越多的书籍告诉你如何做一个美丽的PPT,它需要你有良好的设计感,对色彩有着常人不能及的敏锐,甚至对photoshop都要有一定的研究,最好还要是动画大师,这样你就能作出让人眼前一亮(或者一黑)的作

别在意别人走多快,专注于自己走多远

外界的欢呼.嘈杂是属于他们的,你有自己既定的目标和要走的路. 调整呼吸,专注并享受你正在做的事. 这个世界有时像个漩涡,稍不留意就被卷入其中. 你看着大家都在做的事,听着大家都在说的话,不知不觉,你也成了别人口中的「大家」一员. 突然有一天有人问你,你的理想是什么? 你就像被远射灯照射的迷途小鹿,一脸茫然与惶恐. 你似乎什么都想做一点,又好像什么都做不了. 一时间,专注成了一件难事. 有人相伴固然很好,但别让太多嘈杂迷失了自己: 有时候你需要关上一些窗户,独留一扇自在呼吸. 专注你想做的事,心无

让你走向成功的人生九则,学会了,你会少走错路!

引导语:成功者都是从失败的炼狱中走出来的.成功与失败循环往复,构成精彩的人生.成功与失败的裁决,不是在起点,而是在终点.学学这些吧,人生之路会用上的! 一,胆量决定财富 1:想常人之不敢想,做常人之不敢做 2:不拼,怎么知道不行 3:有没有勇气走出第一步,往往是人生的分水岭 4:人的成功是被冒险逼出来的 5:不冒险就是最大的冒险,我们坚决不做老实人 6:害怕失败,就等于拒绝成功 7:要想知道梨子的味道,就要亲口尝一尝 二,机会青睐于果断(果断法则) 1:一个有魅力的人,必定毫不犹豫,说到做到 2

程序员的迷茫之码农走的路在哪?

为什么许多公司不招大龄码农,这个问题最近很欢娱,初看这个问题时扎心了,终有一天,咱们都会成为大龄码农,那么首要界说下大龄码农,一般以为是35岁以上.按现在推算是1983年(含1983)前身世的.有许多还在一线开发,有些现已是中高层处理人员了.我接触到的这类朋友较多,有伙伴,有朋友,也有一些读者.并不是他们现在没有作业,而是他们在换岗去下家时,是个较长的进程,不想一些3-5年的小伙子,放到市面上,大把公司招人,坑位也多,大龄码农,得有适合匹配的岗位才行.大龄码农身价一般较高,不是一般公司给报酬给予