谁妨碍了我们快乐
无论在网上还是在现实中,我见过不少郁闷的程序员,他们总是不断的抱怨,似乎只有自己才是世上是最悲惨的人。至于这样好不好,是仁者见仁的问题,反正我自己是不太喜欢,我认为快乐的程序员才是高效的程序员。所以在linux小组内部,一开始我就强调我们要快乐的工作。
当然,假装的快乐不是真正的快乐,我们要的不是表现上的嘻嘻哈哈,而是发自内心的愉悦和满足。什么事让我们感到不爽?什么事让我们不能高效的工作?什么事妨碍了我们快乐?这是我们会议上经常出现的主题,今天又开了专题会议,这里做个会议记录。问题是同事提的,建议是我给的,限于个人经验,合则取之。
1. 长时间做同一件事情,感觉有些单调乏味。一些模块从分析到设计,通常要经历长达两个月的时间,这段时间天天都是面对同一个模块,感觉有些单调乏味。
这说的是事实,我也有过同样的感受。谁不愿意天天接触新东西的呢?但目前没有什么好办法。除了一些特别重要的模块由两人同时负责外,其它模块从头到尾都只有一个人负责。我们目前使用传统的开发方法,没有采用XP的代码公有制的做法。但我们仍然可以缓解这种单调乏味:
和代码建立感情。代码本身没有感情可言,这里我也不想鼓吹万物有灵论。如果说编程是一种艺术,代码就是你的艺术品,你可以像一个艺术家一样热爱他的艺术品。向代码码注入感情,冷冰冰的代码就会变成活泼可爱的孩子,你会让她们变得更漂亮,而不会厌倦她们。
和别人交换阅读代码。每天花半个小时去阅读其它模块的代码,同时了解这些模块的设计,不但可以调节单调的工作,扩大自己的知识面,对编写自己的模块也可能有间接的帮助。也可以邀请别人阅读自己的代码,帮助查找自己代码中的错误。
和别人交换部分工作。这可能要发挥同事之间的友谊才行,大家互相帮助。你可以邀请擅长数据库的同事帮你写数据库的代码,而作为回报,你帮他编写GUI的代码。这样不但可以提高工作效率,向专家学习,也可以让单调的工作变得有人情味一点。
2. 任务进度太紧,没有时间学习。任务总是很多,一个任务完成后,马上又有新的任务,中间没有什么空闲时间,没有时间去学习。
是的,这也是事实。无论你有多快,总是很难逃离进度的压力。从老板和主管的角度来看,都是希望做得越快越好。进度总是压得人喘不过气来,从来都不会留一段时间让你专门去学习的。怎么办?学习只能靠自己!
时间是挤出来的。不论有多忙,每天挤半个小时去学习,甚至可以是上班时间。养成这个习惯之后,学习再也不会再屈服于进度的压力。学习反过来也会提高工作效率,形成一个良性循环。
利用加班时间学习。大部同事都是刚毕业的,没有什么牵挂,不要太计较得失,多去加班,利用加班时间学习吧。趁现在学习动力和精力都比较旺盛,不要把时间浪费了。
成立兴趣小组,分头学习,分享心得。成立兴趣小组,每个人认领一门课程,分头去学 习。不要把学习当作一个任务去完成,而是应该积极主动的,抱着极大的热情去学习。
磨刀不误吹柴工,为学习所付出的时间一定会有回报的,它会让你想得更广,做得更快。
3. 培训的理论课程没有什么用处,不如来点实际的。有些同事认为理论毫无用处,他们会说,libc已经实现了一个qsort函数,不要给我讲什么堆排序和快速排序这样理论了,告诉qsort函数怎么用就行了。也不要讲什么设计模式和代码重构了,还是给我告诉XX平台的API怎么用的吧。
这种想法不能说不对,但至少是有点急功近利了。计算机知识日新月异,每天都有新概念出来。很多人都在抱怨知识更新太快,不学习很快就会落伍。实际上,只要仔细想一想,我们会发现,只有理论是不变的,或者说是变得最慢的:计算机基本理论、数据结构、操作系统原理、编译原理、数据库原理和面向对象等等,哪个不是历经了几十年仍然充满活力!相反,一个开发工具、一个函数库或者一套API,有几个能历经十年而不衰?
一套API换个前缀,可能有人就不认识了,又要重新学习,花不少时间,仍然疲于奔命,这除浪费生命外,有什么意义呢?相反,掌握了理论和方法,万变不其中,学习新东西变得简单而自然。学习理论不是浪费时间,不要排斥理论,去学习它,应用它,它的威力会慢慢释放出来的。
再说,专题培训是小组内部的事情,BIOS组关心驱动程序怎么写的,平台组关心GUI怎么实现的,应用组关心应用程序怎么的,linux组也有自己关心的部分,统一培训只能培训共同的东西,而这通常都是理论性的。
4. 理论很难,学不下去。
难,不要紧,关键是看它有没有价值。只有价值的东西,我们投入了很大的精力,也会有相应的回报,这都是值得的。
另外,也可能正是因为难,知识才变得有价值。遇到难的东西,我总是对自己说,越难越好,如果我能学会它,就可以站在更高的起点。相反如果太简单,大家都会了,它也就没有什么价值了,我学会了又有什么用呢?
坚持下去。大部分人的智商差别不大,技术的高低只在于你能不能坚持学习下去,不要指望两个月的努力就能出类拔粹,不要怕难,坚持学个三年五年,你可能突然会发现,你们比别人(在技术上)会强那么一点点。
5. 年龄问题,担心技术只做到三十岁。
这个问题在网上已经争论了N年了,也不知道有没有结论。
不过我今年已经28岁,三十岁已经很接近了,不但没有看到失业的迹象,还有不少人邀请我加入他们的团队。我都不担心,你们刚毕业的年轻人担心什么呢?
当年我也向我的上司提过这个问题。他说,你只管努力去学习和工作,真的失业了,我养你十年。当时很感动,我失业了他会不会真的养我,其实并不重要。重要的是我后来明白了一个道理:只要你去努力,就不会失业。相反,如果不去努力,整天在担心,反而可能真的会失业。
如果真的担心,有两条出路可走:要么尽早转行,越晚越难转,现在对于我来说,转行已经太难了。要么不要想了,努力去学习和工作,不要给自己留任何退路,你会发现年龄不是问题。
6. 做技术没出息,房子都买不起,在同学面前丢人。做技术不但幸苦,而且工资低,大部分程序员都会这样抱怨。
我们公司应届毕业生的初始工资是3100块,这在同行业中可能算不上高工资,如果和其它行业横向比较,相信这也不是最低的。与建筑行业、机械行业和其它传统行业相比,软件行业也决不是最辛苦的。
一些人可能觉得做销售最容易赚钱,我有几个做销售的同学工作两三年,就年薪几十万了,有的甚至接受过《经营报》的采访。其中有一个是我好朋友,他现在已经是一家公司的营销总监,手下带着30几号人。当时在北京时,在一起住了几年。我了解他的情况,他在学校的成绩不太好,所以没有找到合适的工作,只好去做销售,开始月薪是1200块,没有经验工作,业绩非常差,他为人又太正直,看不管那些不正之风,不愿和同事同流合污,当时非常痛苦,几次打算放弃了。他现在过得很风光,都知道他挣钱容易,但又有几个人知道他当时的艰辛呢?
不要老看着别人赚钱容易,就想一夜暴富。如果有其它特长,可以马上转行,不要浪费时间了。否则既然选择了这个行业,就该义无返顾的走下去。做技术(软件开发)并不丢人,只要你努力学习和工作,也可以拿到不错的薪水。
我一直觉得安安心心的编程是一件幸福的事情。编程是一种职业,一种娱乐,也是一种艺术。想想米开朗其罗抚摸着摩西像,达芬奇凝视着蒙娜丽莎,贝多芬奏着月光曲,那是一种什么样的感觉!你我都可以拥有的。
做个快乐的程序员吧!
~~end~~