编程目标开发人员如何提高能力.docx_第1页
编程目标开发人员如何提高能力.docx_第2页
编程目标开发人员如何提高能力.docx_第3页
编程目标开发人员如何提高能力.docx_第4页
编程目标开发人员如何提高能力.docx_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编程目标:开发人员如何提高能力英文原文:Programming Achievements: How to Level Up as a Developer一个优秀的程序员如何能练就成一个卓越的程序员?先等等,暂时不谈卓越,先谈谈如何成为一个优秀的程序员。从第一步到第N步并没有明确的路线图。事实上,第N步到底是什么还不确定。就像逻辑型思维的开发者一样,缺乏明确的目标会让从入门到精通的道路变得异常崎岖。过去的几年中,我花了不少时间来思索这个问题。我该如何从一名能力尚可的程序员修炼成一个真正优秀的程序员呢?成功是什么?当我对成功有清晰的目标、量化的标准的时候,我就能发挥我的最大潜力。比如,我想实现5分钟跑完一英里这个目标。好吧,这个路程很容易测量,成功的界限分明。我很容易知道跑一英里需要多久,网上也到处都是提高跑步速度的建议和训练计划。我可以选择一个计划并付诸努力,我深信我最终能够实现目标。这是一个神奇的可量化的计划,因此,每个星期我都可以检测到距离我的终极目标还有多远。但是如何界定你是否成为了“足够优秀的程序员”呢?一言蔽之,难以界定。这个目标从一开始就太主观,太模糊,太简单,无法量化。那么我们能找到能量化的东西吗?我们都有过一些提高我们技能的经验。我们可能曾经学过一门开启我们思路的新语言。我们也可能曾经有过一套完美的设计方案,但直到最终投入生产时才发现它漏洞百出,但我们因此而成长。有一些经验增长你的技能,有一些让你遇见反模式(注:反模式是指软件开发中经常被用到的但效率不高的模式。),并让你认知它们为什么是反模式。正是这些经验给你上了课,影响了你的思维模式,改变了你解决问题的方法,最终改善了你的设计。而你是否获得了某种经验,这是显而易见的。把经验当做是我们的收获或许很有趣。所以,虽然这需要付出时间,但我现在学会了适应成为“一个真正优秀的程序员”这一目标的不可量化性。如果一个程序员依靠经验取得了某些进展,那么我们就能有一个清晰的路线图来实现“成为真正优秀的程序员”这一终极目标。我想这个路线图应该是这样的: 1. 确定哪些技能能够帮助程序员进步 2. 着重积累某一个技能的经验 3. 直到这个技能完全掌握(成功攻关!) 4. 反复思考这个技能,直到融会贯通A 5. 重新回到第二步,选择一项新的技能如何更好的开始第一步呢?下面列出了一些编程目标,我粗略的分了一下类。B我会在本文的结尾和你一起讨论下想法。编程目标学习不同的编程语言范例 用汇编语言写一个应用 用函数式语言写一个应用 用面向对象语言写一个应用 用基于原型的语言写一个应用 用逻辑编程语言写一个应用 用Actor模型写一个应用 用Forth语言写一个应用C扩宽对我们开发时使用的基本组件的了解: 写一个网络客户端(如HTTP, FTP客户端) 写一个设备驱动程序 写一个B叉树数据库 改进一个现有的库包,来获得更好的用户体验 写一个提供插件模型的应用或框架 写一个测试框架 写一个程序语言更上一层楼:不断的练习,积累 完成五个code katas (Kata是来自日本武术的概念,通过不断的重复和练习来提高技艺) 用Koan编程来学习一种你想学的语言 参加编程进修课程 阅读SICP,完成所有的练习编写程序并开源: 为开源项目贡献力量 让别人接受你的补丁 获得一个重要的开源项目的提交权限 发布一个开源项目 优化一个开源项目的代码,详细记录并分享出来。通过教导别人来提高自己D 做一个绘声绘色的演讲 在一个本地用户组面前演讲 在一个会议上演讲 开设一个训练课程 发布一个教程 发布一个开源项目的有建设性代码审核 写一本有关编程的书关于这些目标现在让我们来多说一点。注意这些目标都是可量化的。每一个都有个布尔值:你要么完成了,要么没有。例如,虽然很难界定你是否掌握了一门函数式语言,但是非常容易确定你是否用函数式语言写了一个应用。后者是可观测的,可量化的,布尔值。以上所有的目标都具有这一特性可量化性。无可否认,这个可量化性并非无懈可击。就拿在一个会议上进行演讲来说,你当然可以做一个很烂的演讲,然后还可以拍拍胸脯说你实现了这个目标。不过既然你是我这篇博客的读者,我假设你想成为一个优秀的程序员,你是一个对自身要求很高的人,不会是仅仅完成了某个任务就沾沾自喜的人。既然我们在讨论改善,那么你对这份列表有什么改进意见呢?这个列表作为GitHub的有效依据,你们可以随意fork并添加更多的成绩。(确保它们是可量化的)或者fork之后,你可以划分出你已经取得的成绩。你还可以为你正在努力的目标做上标记。(可以参考Justin Blake, Pierre Chapuis, Yann Esposito的分支)你也可以写评论,什么经验让你变得更为优秀,以及你希望下一步实现什么目标。注释A不得不强调下第四步。想要更出色的实现目标,你必须在你进行下一步之前停下来回想一下,问问自己到底学到了什么。花些时间写下些想法,更好的做法是,和他人分享,与其他完成同样任务的人作个对比,看看你的学习效果。B在这个网站,你可以更详细了解以目标为驱动的学习方法。CForth本身就是一个语言范例。D我想起Paulo Freire 的一句名言:“传授知识本身就是在学习传授知识的艺术.”-译文出处:伯乐在线- 职场博客 -

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论