《当程序员的那些快乐日子》(十六)我是怎么上班的(下)

ps: 前面两篇都在吹牛,这一篇开始写点有意义的东西。回想自己的工作经历,总结了一下以前犯的一些错误,用案例的形式展现出来,希望对后来者有所帮助。

一:用户体验

那时候,我还是个处男,在通用汽车实习。混了一段时间以后,总监要我单独完成一个项目(J2EE),给我做需求的是业务经理(技术牛人,是技术转业务的那种,而且是我的学长)。我充分展现了自己的实力,用最快的速度,完成了所有的功能。但是业务经理验收的时候,整整教育了我一个下午,而且不是从技术方面教育我,完全是站在用户角度指出项目的不足(也就是所谓的用户体验)。大家也知道,网页程序里面,都会有大量网页元素,比如这个:

我做的时候,只求速度和功能的完整性,对一些细节非常不注重。本来输入框和“百度搜索”按钮必须水平对齐,我居然没有搞定。当然,我也不是凤姐那种二货,我也知道对齐,只是对齐的不是很完整。业务经理给我举了一个例子:“你买一双鞋,质量非常好,外观整体也还不错,但是有部分地方的缝纫线对的不齐,弯来弯去的,你会觉得这双鞋是精品吗?”我一下子感觉到了问题的严重性,不是技术方面的问题,而是心态的问题,技术随时都可以学习,但是心态很难改变。我们做程序,不应该像搅屎棍一样,总是搅在技术里面,而更应该重视用户体验,毕竟,做程序的最终目的,就是用户。用户永远不会关心你是用什么技术实现的,也不管你用了什么高深的算法,他们只是需要你的最终成果。所以,重视用户体验,是一个程序员的基本准则。(多少两句,你现在写的程序,后面来的程序员就是用户,所以,你应该多写点注释,如果你不写注释,那么变量名,方法名一定要取的浅显易懂,如果你不写,画个圈圈诅咒你,以后接手的项目都是经过10几批人修改的遗留项目,你应该知道的,这种项目是程序员杀手,做多了这种项目,会影响那种能力的)

二:在合适的时候,做合适的事情

整体来说,我还是一个非常热爱学习的人,主要是觉得自己矮穷龊,如果再不努力一点,怎么和人家高富帅抢女人?但是发现,做软件这一行,由于技术方面的东西太多,盲目的学习,只可能导致效率底下。举两个例子:第一,想当初,php很火,那就搞php哇,下载了视频,买了书,倒也爽快,把知识点全部掌握以后,由于没有实际的项目练手,就做几个随心所欲的demo,一年之后,再看php的代码,感觉就像见到前女友——陌生了。第二,工作以后,从事的是J2ME开发,觉得Android火爆,就想转Android,老大给我说,做好手上的事情,积累,等机会来的时候,你再爆发。于是我就那样做了。后来有了Android的项目,我才开始学习Android,由于J2ME基础很好,所以转Android非常轻松,而且刚学习Android基础以后,马上就可以动手开发实际项目,效率很高。ps:我老大更厉害,以前做塞班开发的,后来开始搞J2ME,黑莓等一系列平台,但是iphone不怎么会,自己有点名气,出版社找他写本iphone的书,他还真敢接,接下来以后,随便买了几本国外的iphone资料,把那些知识点整合一下,再把以前他做过的塞班平台的项目简单移植一下,作为书本后面的项目。就这样,一本畅销书就诞生了(其实现在国内大部分的技术书,就是这样诞生的)。从我老大的例子可以看出,他是多方面收获的:首先掌握了iphone平台的开发,其次,写书了,赚钱了,最后,出书了,名气也就更大了。大部分人根本不知道,一本技术书的编写一般也就4个多月(当然,有些书要花很长时间),而四个多月以前,我的老大还是iphone小白(但是人家是移动开发专家,平台的转换速度不是一般人比得了的,这也就是他说的,把一个平台搞清楚以后,其他平台就是换了一个API)。

三:把项目当做自己的项目


上班一段时间以后,项目已经非常熟悉(这里熟悉的定义就是随便给你一个功能,你都可以轻松的完成),就觉得成长空间不大,想跳槽,总觉得一直待在一个项目组没意思,没挑战性。后来,有人给我说,把项目当做自己的项目,而不是公司的项目,就当做是自己做产品,那么,就会上心了。于是,我尝试着用这种态度去对待问题。显然的效果,基本属于立竿见影,我不再讨厌测试,反而很感激他们,因为他们找出了软件的bug,让我可以把它变的更好。我也不再讨厌需求,因为他们提出的合理需求可以让软件更有竞争力(当然,不排除一些sb需求,而且真的很sb)。甚至在没有bug和需求的日子里,我就开始优化代码,优化图片的加载,优化联网(当然,这里的优化一定要小心,必须是自己完全吃透项目的情况下,而且一定要反复测试,我就吃过亏,自己改了代码,觉得是优化了,但是其实引入了bug,测试人员不知道我优化了,也没有针对性的测试,过了几个版本,才发现这个问题,后面改起来就非常麻烦)。这样,我又在工作中找到了成长点。当然,有些人说,可以把敲代码当做爱好。我真的实在是想不通,为什么会有人把敲代码当做爱好。以前读书的时候,成绩一直不错,父母就觉得我喜欢学习。其实我最讨厌学习了,我也根本想不明白,一个人为什么会喜欢去做那些复杂的圆锥曲线问题?难道仅仅因为你可以做出来,而其他同学不可以?你有了优越感?当然,我也就不可能把敲代码当做爱好,试问,在网上把妹和在eclipse里面敲代码,你更愿意做哪一样?


后记:这篇文章写了一周多,每次想写的时候,都很忙。本来还有很多想写的,但是实在是抽不出时间(晚上回来也要写代码的,赚点外快)……

你可能感兴趣的:(程序员)