成为专业程序员的 6 个技巧
1.在你责怪别人之前,先检查自己的代码
先想一想自己的假设和其他人的假设。来自不同供应商的工具可能内置不同的假设,即便是相同的供应商对于不同的工具,其假设也可能不同。
当其他人正在报告一个你不能重复的问题的时候,去看看他们在做什么。他们可能会做一些你从来没有想到过的事情,或者他们的做事顺序与你的截然不同。
我个人的原则是,如果我有一个不能确定的错误,那么我会先考虑是不是编译器的问题,然后再去检查堆栈是否损坏。特别是当添加跟踪代码会使得问题移动的话就更要这么做了。多线程问题是bug的另一个来源,有时候令人焦躁得简直想拔光头发,或者直接想摔电脑。当系统是多线程的时候,最好倾向于简单的代码。我们不能依赖调试和单元测试来发现任何一致性的bug,所以设计的简单性是最重要的。
所以,在你不分青红皂白地去责怪编译器之前,先想一想福尔摩斯的这条建议,"一旦你排除了种种不可能,剩下的不管有多么难以置信,一定就是真相"。
2.不断学习
我们生活在一个有趣的时代。随着软件开发逐渐遍布全球各地,你会发现有很多人都可以干你的工作。所以你需要不断学习以保持竞争力。否则,你就会落伍,停滞不前,直到有一天,这份工作不再需要你,或外包给一些更廉价的劳动力。
那么我们能做些什么?有些雇主很慷慨,会提供培训以拓宽你的技能。也有的人会说我没时间或者没这个资金去接受任何培训。所以,关键是要摆正心态,学习是对自己的负责。
这里有一些学习的方法。而且许多资源都可以在互联网上免费获取:
阅读书籍、杂志、博客、Twitter feeds和网站。如果你想更深入地了解对象,可以考虑添加到邮件列表或新闻组。
如果你真的很想学习某一种技术,那么就亲自动手写代码。
尽量与导师一起工作。虽然你从任何人身上都可以学到一些东西,但是从那些比你更聪明或更有经验的人身上,你能学到的更多。如果你实在找不到这样的良师益友,那么请继续往下看。
使用虚拟导师。在网络上找你真正喜欢的作者和开发人员,阅读他们写的内容。订阅他们的博客。
了解你使用的框架和库。知道事物的工作原理,有助于你更好地应用它们。如果你使用的是开源资源,那么你真的很幸运。使用调试器单步执行代码,以查看内部究竟是怎么回事。你也可以去看看那些确实比你聪明的人是如何编写和审查代码的。
当你犯了错误,修复bug,或者遇到问题的时候,试着去真正理解发生了什么事情。很有可能其他人已经遇到过同样的问题,并且发布在了网上。谷歌搜索真的很有用。
学习东西还有一个好方法就是所谓的"教学相长"。当别人在倾听你的言语,并问你问题的同时,你也会学到东西。可以建立用户组或本地会议。
为自己感兴趣语言和技术加入或启动一个研究小组(模式社区),也可以创建本地的用户组。
参加会议。如果去不了的话,也可以在网上看,许多会议会将其谈话免费发布到网上。
收听播客。
曾经对代码库运行过静态分析工具,又或者查看下你的IDE警告?了解它们报告了什么,以及其原因。
当然如果你有《黑客帝国》中Neo那样的超能力,自然这一切对你而言不过是小菜一碟。但很可惜,我们都是普通人,我们需要时间和精力,以及不断的努力才能促使自己不断的学习。不过,你不必成天学习。只要你能有意识地花点时间去学习就可以了,哪怕每天一小时,有总比没有好。人活着不是为了工作,你还应该有自己的生活。
3.不要害怕破坏东西
每个具备行业经验的程序员肯定参与过代码库岌岌可危的项目。系统很糟糕,并且改变这边总是会破坏另一边不相关的功能。每次添加模块,程序员只能想着尽可能少地改变代码,每次发布都胆战心惊。这座软件的摩天大楼随时有坍塌的可能。之所以改动代码会如此伤脑筋是因为系统太糟糕了。但是即使你知道系统出了问题,却又因为投鼠忌器,而不得不听之任之。任何一个外科医生都懂得,伤口要想愈合就必须得切除腐肉。虽然手术会带来痛苦,但绝对比任伤口发炎溃烂要好。
不要害怕你的代码。没有人会在乎当你捣鼓代码的时候有没有暂时破坏了什么东西。只要你做的改变不会让项目重新回到开始状态,就不会令人崩溃。投入时间重构,能让你受益于项目整个生命周期。这样做还有一个额外的好处是,由于你有过这种处理病危系统的经验,所以你对它应该如何工作非常内行。要善于应用这些知识,千万不要反感这些宝贵的财富。重新定义内部接口,重构模块,重构复制粘贴代码,并通过减少依赖来简化设计。你可以通
程序员 相关文章:
- 国外程序员耗时两年半 DIY真实版瓦力(Wall-E)(07-07)
- CTO到底应不应该写代码?听听硅谷大神们怎么说(07-29)
- LT3751如何使高压电容器充电变得简单(08-12)
- 三路输出LED驱动器可驱动共阳极LED串(08-17)
- 浪涌抑制器IC简化了危险环境中电子设备的本质安全势垒设计(08-19)
- 严酷的汽车环境要求高性能电源转换(08-17)