`
tibaloga
  • 浏览: 871478 次
文章分类
社区版块
存档分类
最新评论

调整好心态和策略,从底层做起——致2011毕业生

 
阅读更多

眼下马上快到六七月份了,又到了应届毕业生的入职高峰期。

这篇文章权作对初入职场的毕业生的一个建议,希望能够对他们的学习和工作有一些帮助。本文针对一般的普通的毕业生,天才除外——因为我不是天才,也很少遇到天才,天才的情况我不了解,他们的发展轨迹可能异于常人。

正文:

上周在CSDN发表了一篇文章《毕业一年不到的员工要跳槽,我的建议》。很多人进行了回复,讨论,大家占的角度不同,看问题的思路也不一样。其中还是有很多精辟的论述,比如针对发生这种现象企业方责任的一些观点。

同时,我也看到有些人回复说,在刚毕业的一年里,他们一直做一些在别人代码上修修补补的工作,去维护别人的代码,以及简单性的重复性的工作,感觉学不到东西——这是我今天想说的重点。

先说维护

首先,从客观上来说,维护工作在软件开发中是一个占很大比重的工作。有调查显示,软件开发的人力,有80%是投入到维护工作中的。而且,维护其他人代码的这种现象在软件开发中也很常见——软件开发团队成员经常会发生变化。所以,让应届生进入公司后从事维护性的工作,是一个正常现象,同时也是他切入到软件团队的一个非常好的方式。

其次,从应届生的能力来说,他们在编程能力、开发环境、编程规范、业务知识等各个方面存在欠缺,直接让他们从事新产品或模块的开发风险非常大。按照我的经验,一个应届生工作半年后可以胜任简单模块或程序的开发任务,工作1年后,可以在老员工的带领下参加新的产品或模块的部分开发任务。

再次,产品维护其实也是一门艺术,也可以学到很多的东西。这个下面说。

如何在维护工作中学习

维护工作一般是指产品已经开发完毕,在产品运行期解决产品出现的bug,以及在原有功能和结构基础之上开发新功能等相关工作。

从事维护其实也可以学到很多东西。

要维护产品就要阅读他人的代码,这是软件开发中比较重要的一种学习方式。在阅读代码的过程中,你可以:

1、学习你所使用的编程语言的语法;

2、学习你的软件开发团队的编程规范;

3、学习一下前辈是如何利用编程语言来完成功能的;

4、学习他是如何设计函数,如何设计数据结构的,如何使用算法的;

5、学习他是如何搭建一个程序或者模块的,模块之间是如何交互的;

6、学习他是如何提高代码的可读性的;

根据我的经验,一个应届生接触到的第一份代码对他的影响非常大,他会在后面的编程过程中不自觉的模仿这份代码的风格、整体结构、设计思路等。如果这份代码非常规范,严谨,思路清晰,可读性好,这对一个新手是一个非常好的学习机会。

如果不是这样,你可以主动的去找一些优秀的开源的代码拿来对照学习,比较这两份代码的差异,看代码好在什么地方,差在什么地方。这个过程中可以适当的扩展一下阅读,找一些设计相关的书籍来结合学习,效果可能会更好。如果时间允许,项目允许,并且你也做了充分的积累,你可以建议你的上司重构这份代码,如果成功的话,这将是一个难得的实践机会。

维护工作也可以提高定位问题和解决问题的能力。这对一个程序员来说是一个重要的能力,程序员天生就在和BUG做斗争,无论是在开发阶段还是维护阶段。在这个过程中,你可以学习到比较常用的定位问题的方法,工具,以及思路。还可以学习都修正问题的方法,还有验证问题已解决的方法。

再提升一个层次,随着你经验的积累,你可以记录下来你在维护的过程中遇到的比较难于理解,难于修改的地方,出现这个问题一般情况是结构设计的问题。把他们记录下来,并且找出你的解决方案,在新的一个版本开发的过程中去实践。这又是一个提升个人能力的非常好的方法。

关于机会

上面说的,可能是你做新的产品和模块之前必须要完成的积累。新开发模块的机会其实并不是很多的,特别是在大公司,产品相对稳定,分工比较明确,很多人就是专门维护代码的。

而当机会出现的时候,你之前的积累,就非常有助于你获得这个机会。

很多公司给新员工的机会在长期内是均等的,但短期可能并不均等的。有句话,叫“宁可断其一指,也不破其十指”——很多公司的新员工培训都会采用这个策略:当机会有限时,把机会集中给少数新员工,让他快速的成长。之后在重点培养其他员工。所以,你要时刻积累,时刻准备着去领先这一步——它可能会使你在很长一段时期内都处于领先地位。

关于重复性工作

前面提高可能会给新人安排一些简单的,重复性的工作,这在工作中倒也常见。与其抱怨,不如调整一下策略:事不过三,过三则将它自动化——意思是,如果一个事情你重复做了三次,那就想办法把它自动化吧。这是一个高效程序员的特征之一。如果你真的做到这一点,你周围的人一定会对你刮目相看。

关于视野

“井底的青蛙”在我写的上一篇文章的评论中随处可见。要摆脱“井底的青蛙”的标签,除了跳槽之外,一个更好的办法是参与技术社区——在这里你可以了解到最新的技术发展趋势,新的设计方法,同行们的优秀经验以及他们的学习方法。比较常见的技术社区包括CSDN,博客园,ITEYE,外刊IT评论,INFOQ,IBM DEV等。

工作的心态

一般可分为两种心态,一种是完成工作,一种是把工作最好。选择后一种。

毕业生进入岗位,一般都要从底层做起,可能会比较枯燥乏味缺少调整,这个时候你一定要调整好心态和策略,工作也可以变得充满机会,趣味和挑战。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics