前言:天气愈来愈热了,笔记本也开始发烫,写一篇文章也开始变得艰难。我最近一直在写读书札记,也许很多人不喜欢看,我却乐此不疲,能够把自己的感悟跃然于纸上,感觉就像一个“好”的程序员,你觉得呢?今天继续来看编程之道的下半部分,看看我在通往优秀程序员的路上还需要做些什么。
最开始的时候,我的手机贴膜都是找伙伴做的,而如今,我都是自己来做的,并且认为做的不错。
其实贴出来没有气泡的模还是比较容易的:
按照Jeff给出的观点,代码编程似乎也有迹可循:
- 使用源代码管理系统
- daily build
- bug跟踪
- 开发计划表
- 安静的工作环境
- 要有测试人员
这几点是我认为我每天有尝试在做的,并且所能做到的。尤其是有专门的测试人员,我认为很重要,他们能够不按照你编写代码的逻辑来check代码,保证了代码的质量;工作环境,安静是必须的;开发计划表,如果没有一份的话,总让人内心不安。
我在思考如何把坚守一个目标应用于我自身的环境,我该怎么做?
社会在激烈的竞争,如何让自己更具有竞争力,也许很简单,就是把自己打造成特长生。作为一个名不见经传的程序员,我想,在技术上,我就专注于Java开发,而在管理上,让自己能够负责一个项目,并且取得成效。
有的时候,选择太多,就会让我们不知所措。
在软件编程中,看看Jeff给我们的建议:
Dont repeat yourself。不要用多种表达方式来实现同一件事情,往往最后会失去同步。
重复代码。当你回头再去翻看你完成的代码时,你往往都能找到一大片重复性质的代码,那么这个时候要毫不犹豫的进行重构,去除重复。
单一职责。往往很多时候,我们习惯把一个类中写各种各样的代码,导致类的长度无限增长。
当一个类的长度达到这个长度以上时,如果你是个新手,你一定会疯掉的。所以,“科力定律告诉我们,要有意识的选择你的代码不做什么。”
的确,如Jeff所说:“回复邮件不能提高打字水平”。我使用电脑已经有10年的经历了,但是我的打字水平并没有一直不断的提高,我的打字速度已经到瓶颈了。这是应为,我并没有花费一定的时间来锻炼,我没有去发现我打字的弱点在哪里,没有针对性的提高,当一天和尚撞一天钟,日复一日的重复着我的习惯。
Jeff给出的编程套路是:
- 写博客。
- 积极参与开源的项目。
写博客,我坚持了将近9个月了,在CSDN上也发表了100篇文章了,既使浏览量不尽人意,但是我能明确的感受到自己组织语言的能力在提高,更重要的是,这样的我在进步。
积极参与开源项目,目前我还没有这个机会。
的确,孤独让人难受,就连风清扬大师都耐不住寂寞,出来教令狐冲独孤九剑。我有一个同事,很喜欢自己埋头苦干,一个人写自己的博客系统,微信开发,但是我曾劝他,尽量抽出一些时间去读一些书,和我多交流一些。
CSDN的回复到现在还没有改善,其糟糕的回复功能,简直就是在抹杀程序员们积极交流的天性,我非常讨厌。
总之,如果你对待编程是认真的话,你应该要求有同伴和你一起。
也许这个话题,和上一个话题是重复的。但是从Jeff的内容上看,两者又有所区别,本篇推荐我们向同伴展示和解释自己的代码。
最近,我渐渐地尝试在自己改完代码后,找我的同事进行check,在很多时候,他能够发现一些问题,这让我兴奋无比,我还需要做就是,把我的代码展示给他看,并且解释我所作的改变,这也许更能检查出问题,其实这就是所谓的代码review。
Jeff给出的数据显示,代码审查在发现缺陷的功效上远远超出单元测试、功能测试,甚至集成测试,达到了60%的水平,而其他只有25%、35%、45%而已。
有一个同性的编程伙伴就很让人惊喜了,如果还能有一个异性的编程伙伴,那人生简直就太美妙了。
其实在很多公司,都会有师徒制,让有经验的同事带一帮新来的同事,我之前公司的领导也曾在公司推崇学徒制,并且如果徒弟表现好的话,师傅会得到不错的奖励。
我现在就非常渴求有以为精神导师,能够让我从其身上获取教导,指引我前进,而如今,这都是一种奢望,我只能自己摸摸的探索属于自己的发展道路。
学徒制强调的是,如何做和评审,而当今很多软件培训公司只注重于学生的看和听。
我最近在读各种程序员必读书籍,然后在工作当中不断去实践这些观点,这让我受益匪浅。