设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

2014,成为更好程序员的7个方法

2014-3-31 11:51| 发布者: joejoe0332| 查看: 2897| 评论: 0|原作者: haofly|来自: 伯乐在线

摘要: 程序员总是有很多的决定,不是吗?如果你的新年待办事项还是空白的话,那么可以考虑使用下面这些程序员的想法。即使是最聪明的人,也还有成长空间。以下内容摘录自 Kevlin Henney 的《程序员应该知道的97件事》。 ...

  // 译注:英文原文发布今年年初,所以开头提到了”新年“,请不要惊讶~


  程序员总是有很多的决定,不是吗?如果你的新年待办事项还是空白的话,那么可以考虑使用下面这些程序员的想法。即使是最聪明的人,也还有成长空间。以下内容摘录自 Kevlin Henney 的《程序员应该知道的97件事》。


  1.在怪罪其他东西之前先检查自己的代码

质疑一下你自己和他人的预设情况。来自不同供应商的工具,可能内置有不同的预设,也有可能相同的供应商提供不同的工具。

当有人想你报告一个你无法重复的问题之时,去看看他们做了些什么。他们可能会做一些你没有想到的事情,或者是按照不同的顺序来做那件事。

我 的原则是,如果我遇到一个我无法避免的bug时,我会首先考虑是编译器的错误,然后我就会去检查堆栈是否被破坏了。这可以通过跟踪代码来实现,可以有效地 移除问题。多线程问题是另一个绞尽脑汁也不容易找到的错误来源,通常还伴随着机器的错误。当一个系统使用多线程的时候,所有的简单的代码的错误都会成倍地 增长。不能依靠调试和单元测试去发现这样的兼容性问题,所以简单的设计是最重要的。

总之,在你怪罪你的编译器之前,请记住福尔摩斯的忠告:“当你把所有的不可能都排除了,那么剩下的东西,无论他有多么的不可能,都必定是真相。”Dirk Gently也说了类似的话。

——Allan Kelly


  2.持续学习

我们生活在一个有趣的时代。随着全球化的发展,你要知道有大量的人都能胜任你的工作。你需要不断地学习,以维持竞争力。否则,你会成为一个落伍的人,永远做着相同的工作,直到你不再被需要,或者这个工作被廉价外包给其他人的那一天。

因此,你打算做些什么呢?有些大方的老板会提供训练来拓宽你的技能。而其他的公司并不会给你空闲的时间和金钱去做任何的训练。所以为了工作的稳定,你需要为自己的教育负责。

这里是一些让你持续学习的方法清单。其中许多都能够随便在网上找到:

  • 阅读书籍、杂志、博客、Twitter和其他网站。如果你想对一个目标进行更深入的研究,考虑添加一个邮件列表或新闻组
  • 如果你真想专注于某一种技术,那就动起手来——写一些代码
  • 成为行业的顶尖人物可能会妨碍你的学习,你得尽量与导师合作。虽然你可以从任何人那里学到东西,但是从那些比你更聪明或更有经验的人那里你能够学得更多。如果你不能找到一个导师,那就继续去找
  • 使用虚拟的导师。在网上找一些作者或者开发人员,他们写的东西你都会喜欢并且都会看的。订阅他们的博客
  • 了解你所使用的框架和库。知道了他们是如何工作的,你使用起来就更得心应手。如果他们是开源的,你就很幸运了。使用调试器来单步执行,去观察他们内部是如何运作的。你将会看到那些真正聪明的人所编写和审阅的代码
  • 当你做错了或者是在修复bug,或者是碰到一个问题的时候,尝试去深入了解到底发生了什么。有可能其他人也遇到了同样的问题,并且把2他发布在了网上。Google这时候就非常有用了
  • 学习一样东西的一个好方法就是去传授和谈论它。当人们想要听你讲解并且想问你问题的时候,你就会更加积极地去学习。在工作中使用lunch-’ n’-learn方法,可以是一个用户组或者是一个本地的协会
  • 加入或者创办一个研究小组(社区的模式)或本地用户组,可以研究你们感兴趣的语言,技术或者是法律
  • 多去参加会议。如果你不能去,很多的会议都会把内容免费发布到网上的
  • 想要长期通勤?听一下博客吧
  • 你是否曾经在一个代码库上运行一个静态分析工具或者在你的IDE里看到一些警告?弄明白他们报告的是什么,为什么要报告
  • 遵循高效程序员的建议,每年学习一门新的语言。至少学习一门新的技术或者是一个新的工具。弄一个分支出来添加上你的想法,以便你能够在你目前的知识库里使用
  • 并不是你应该学的每一样东西都必须跟技术有关。学习你工作领域的一些东西,能够让你更加了解需求,并且能够给帮助你解决一些商业问题。学习如何提高工作效率,学习怎样更高效低工作是一个不错的选择
  • 返回学校

如果你有《黑客帝国》里的尼奥那样的能力就好了,能够直接下载我们需要的东西到大脑里面去。但是我们并没有,所以必须花费一定的时间去学习。你不必每时每刻都在学习。一点点时间足以,比如一周一次,有总比没有好。我们总得有一些工作之外的生活。

科技发展如此迅速,我们不要被甩在后面了。

——Clint Shank


  3.不要害怕破坏某些东西

每一个具有行业经验的人无疑曾在一个充满不稳定性的项目中工作过。这个系统是很难重构的, 通常改变一个地方就会触及到另一个不相关的地方。每当要添加一个模块的时候,程序员的目标都是尽量少改动,在每一个版本中都是小心翼翼的。这就和把建造摩 天大楼当做搭积木一样,容易造成灾难。修改对的时候是非常伤脑筋的,因为系统已经生病了。它需要一个医生,否则状况就会越来越差。虽然你已经知道了你系统 发生了什么错误,但是你还是害怕“打破鸡蛋去煮你的煎蛋卷”。一个熟练的医生知道,为了做手术就必须开刀,而且她也知道开刀只是暂时的,而且很快就会愈 合。对于最初的疼痛来说,做手术是非常有价值的,患者通常都会获得比做手术前更好的状态。

不 要去担心你的代码。当你在做事的时候如果暂时被打断,谁会去担心呢?对改变的恐惧会让你的项目将进入这样的状态。花一些时间去重构项目会让你节约很多的时 间。还有一个额外的好处就是一个团队面对这个损坏的系统的处理经验会让你们明白该怎样才能让它正常工作。要学会运用这些知识,而不是抵触他们。每个人都不 应该把时间花在自己所讨厌的东西上。重新定义内部接口,重组模块,重构、复制、粘贴代码,并通过减少依赖来简化设计。你可以通过消除极端情况来减少代码的 复杂度,他们通常会产生不当的耦合性。慢慢地将旧架构过渡到新的架构,边改边测试。试图在一个可能产生很多问题的大项目上进行一次大的重构,这些问题可能 慧然你在中途就放弃之前所作的所有的努力。

作 为一个医生,是不应该害怕切除患病的部位,以留出愈合的空间。态度是会传染的,并且会激励其他人去对那些一直拖延着的项目进行修改。去列出一个团队都感觉 良好的项目的清单。虽然这些任务可能不会产生明显的效果,但你得去说服管理层,他们就会减少开支,加速对新版本的开发。永远不要停止关心代码的总体“健康 度”。

——Mike Lewis



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部