8年从业经验总结


多年从业,也总结一下自己的经验体会。或许能给后来的程序员一点经验。

1.   再聪明的程序员,永远比不上那些以编程为乐的同学。

根据我本人经历的数据统计,国内某知名计算机工科大学,本科毕业生从事本专业技术开发工作人员不到10%,研究生毕业从事本专业技术研发工作不到30%,博士?呵呵没到那步没法统计。

总之有一批当年高考绝对的高分,从小抱着当科学家的理想,报了一个相当科学的专业。要说聪明,肯定在人群中排前列。然而现在企业里,有不少专科学生、技校生、培训机构的学生担任着研发的主力。甚至有的领导着一批研究生。当然并不是说当年高考高分,名牌学校计算机专业的学生能力差,但却着实证明一点:再聪明的程序员,永远比不上那些以编程为乐的同学。


2.  东西是死的,人是活的。东西应该活学活用,实用最好。

太多人喜欢追逐众多时髦技术,想方设法把各种方法、模式、框架用到不适合的地方。有人把23个设计模式可以前后倒背,一个小型flash游戏,非要加一个好几M的三层框架进去,然而却不能灵活掌握,不知道什么时候用,什么地方用。本身几行代码可以实现的功能,硬套设计模式,结果写了几百行。设计的初衷是简化思路,梳理流程。

降龙十八掌的第十九从:无掌便是掌


3.   代码注释不如程序本身注释。

我们A类为一个玩家的金币申明一个变量为:money, 然后给一行注释://玩家金币

然后再B类调用A类的money。但往往跟随时间的长久,我们很难直接在B类里面了解A类这个变量的意义。

如果我们申明的变量为 playerHaveMoney,可想我们不用去看A类的注释,就基本可以确定这个变量的真实意义,变量名的长度并不影响程序的性能。同样的道理可以运用到方法命名,类命名上。这样更好的好处,更方便别的程序员去理解你的代码。

好吧,我们做个范例。

public girl pleaseHelpMeFindBeatifulGirlFriend(){
           return “呵呵”;
}


4.牛人,不能只会一门语言

学习的每一种新语言,都教了不少编程新知,能够反过来用于工作中。任何人只局限于一种语言,都无法充分发挥自己的潜力。而且缺乏求知欲和探索意愿,都不符合优秀程序员的特质。

只会1-2门语言,那么注定你只能做一个程序员,所谓技术行业的IT民工。

任何一个项目,所涉及的技术都是多方面的。以一个简单的手机游戏,首先你需要掌握前端技术、通信、数据处理、服务器管理、信息安全、项目开发管理、运营维护升级,甚至还包含非技术的团队管理、沟通管理、情感管理、风险控制等。当然,如果你的志向只是一个程序员,可以忽略这条。


5.   你的工作是要把自己摘出来。

你写的软件都应该让其他任何开发人员花一点时间就能理解并接手。软件应该设计优雅,代码清晰和一致,格式干净,文档合适,每日构建,有恰当的版本管理。如果你被车撞了、被开了、辞职了,公司应该很快能有人很快替代你。如果不能,那你就太悲剧了。


6.   getter和setter被极度滥用了。

成千上万的人都说公共字段是罪恶的,应该设为私有,提供getter和setter。我觉得其实没啥不同,程序架构本身就应该符合OO思想,另采取分层的思路。一个model对应一个service ,model只能包含其相关属性,不能做任何逻辑更改。如果你非要在getter与setter加入逻辑代码,说明你还不能理解到分层的意义,也没体会到OO的概念。 所谓getter与setter,就感觉是脱了裤子放屁。


7.    程序员不是生而平等的。
经理往往认为程序员A==程序员B,因为他们的年头差不多。实际上,一个开发者的效能可以是另一个的十倍甚至百倍。


8. 新程序员还没有弄懂分解问题和将解决方法变成代码之前,就给他们介绍面向对象是大错特错。

9.   print语句是有效的调试方式。
我认为用 System.out.println 之类的输出语句调试代码挺好。这经常比正式的调试要快,而且可以比较不同运行的输出结果。但是投入生产环境之前一定要删除这些语句,或者将它们放入日志语句中。

10.始终保持技术进步同步
技术的行业永远都是在更新换代,往往学习的速度慢于技术更新的速度。一不小心,你就被淘汰,就被90后00后的小辈超越了。哎,工作不容易,人生不容易,谁叫我们做了技术这行呢。不过我始终认为,技术往往可以推动人类的进步,也会给人类更美好的生活。所以想想,我们还是很伟大的。做好每天的工作,时时关注一下最新的技术,当然看技术文章同时,网页上也会看见一些“好的广告图片”,比如原味丝袜。


11.做技术的人员应该有实事求是的精神,用事实说法。

技术人员,不能浮夸,切记要实事求是。我们不能相比营销人员,能把冰箱卖个爱斯基摩人。需要把每一点落在实处。设计10W在线的系统,只有真的10W人在线后,才能真的10W人。另外提一点,需要加班的时候,才加班,不要为了加班而加班。往往经常加班的公司,不是因为项目时间紧,也不是因为程序员不给力,最大的问题,技术负责人不能合理安排工作,又或他经验欠缺不能掌控全局而带来的不安全感,总认为忙一点,或许就会好一点。所以,不要裸泳,退潮后就尴尬了!


11.经验是第一位
从业好几年,外行的眼里感觉我们是白领、高大上、还有点一夜暴富的故事。然而在我看的经历里面,至少从技术方面角度讲,有太多太多失败的案例。具体的我没资格谈太多,然而可以确定一点的是,大多失败的项目都与技术人员最大关系。往往是自认为牛B的人干出的结果,而其中的技术架构应该负主要责任。技术负责人直接都不能把握产品的功能模块,dubo形式的把功能模块分给下面的程序员,项目本身又极度缺乏偶散性,导致项目最后拼接困难,或导致其他N多问题。源头最关键的一点,技术负责人本身就缺乏实际项目经验。就好比没有做过实际射击训练的战士,要他去担任解救人质的神枪手。

经验是第一位,第一次XX的时候,估计也不会太顺利。


12.   只是一份工作而已。

这只是一份工作而已,为了养家糊口,没必要拼命,需要多注意身体!

做我们这工作的,最好找一个体贴、温柔、贤惠的老婆,不然下班后,还有够你累的。

猜你喜欢

转载自sooxin.iteye.com/blog/2103744