合格的程序员应该是怎样的?

    从进入所在的公司至今,已经工作了大半年有余。在这半年当中,我一点一滴地积累、一步一个脚印地实践,顺利完成了公司产品升级模式的转变,从原有的纯手工操作迈向半自动化的模式(服务器端通过工程人员维护,客户端实现自动安装自动升级);同时亦接手了公司的“流媒体项目”,开始着手流媒体方面的研究及实现。
   
然而,毕竟公司在软件这一行业还涉足不深,缺乏相应的软件运作经验,公司内部管理还处于相对混乱的状态,软件开发方面的高层次人才相对缺乏。种种因素,给刚进企业工作且亟需旁人指点的我,造成了不少困难。鉴于此,各种各样的困难都要自己去面对,各种各样的问题都要自己去解决,这就给了我严峻的考验。
    这些天来,我一直在思考这样一个问题,究竟应该怎样才能成为一名合格的程序员?个人经过思考,总结了以下几点。

    合格的程序员应该是一个会做计划的人。在现在这个竞争激烈的社会,随着IT行业的迅猛发展,对程序员提出了更高的要求。作为一名程序员,不管是普通的程序员还是高级程序员,都要求你必须会做计划,只有做好计划,或许你才能更好地胜任你所从事的工作。而就本人所接触的同行,其中有一部分人对计划并没有非常清晰的认识,他们大都根据项目经理或领导的安排来开展工作,而完成工作后经常会陷入不知道接下来应该做什么这样一种境地。
    本人认为,只有做好计划,才能更大程度地提升自身能力及水平,进而为公司创造更大的价值。这做好计划从最基本的角度来看,至少可以划分为年度计划、月度计划、周计划和日计划。年度计划主要从宏观方面考虑,一般是一年的发展目标或在这一年之中应该做好的几件大事(如在一年当中掌握一项新技术等)。月度计划则是年度计划的粗粒度划分,将年度计划的总体目标合理地划分成不同的阶段,即可以得出月计划。周计划是月计划的更进一步细分,且在日常的工作开展中,周计划是一个非常重要的阶段,工作的绩效以周来衡量是相对比较合适的。而日计划则是细粒度的划分了,这就是通常所说的工作日报,每天需要做什么事情,都可以以日报的形式展现。有了这些计划,最重要的还是贯彻执行,所以在工作当中,除了对计划做合适的轻微的调整以外,应该不折不扣地坚决执行。
    有了合理的计划安排,就有了清晰的工作目标,就有了源源不断的工作激情和动力,从而可以有效地避免使自己处于无所事事的状态,进而使自己的工作生活过得更加充实。

    合格的程序员应该是一个会做设计的人。或许很多人会认为,程序员应该只负责编写代码,而不用去理会其他事情。对于这一点,我不敢苟同。也许,在一些大型的分工明确的专业的软件公司,程序员确实只需要负责编写代码和单元测试。但是我认为,如果一个程序员既会编码,同时还会做设计,那么试想一下,这样编写出来的代码质量是不是会更高呢?至少,懂得做设计的程序员,即使不需要他(她)做设计,也可以更好地理解设计人员的思路,从而做出更多有利于软件实现的工作,这样环境下开发出来的软件不管怎么说质量也不会差到哪里去(一些特殊情况例外)。
    而在本人所在的公司,更是需要具备这方面的能力。因为公司软件开发模式的独特性,就决定了我必须在这方面不断提高设计能力。而实际情况往往大家都非常清楚,要做一个编码人员不难,但要成为一名好的设计人员就不是那么容易了,这中间需要经过千锤百炼。正是因为这样,作为一名程序员,更加要有意识地去提高自身的软件(程序)设计水平,使得开发设计出来的软件真正具备其应该有的价值。

    合格的程序员应该是一个对编程有极大热情的人。在程序员这个词汇当中,至少有两类不同的程序员,一类是对编程有浓厚兴趣且不受年龄增长的限制,通常称为编程爱好者;另一类是为了谋求一份职位或者为了生活而编程的人员,这一类人将编程作为谋生的一种手段,当然其中仍有大部分人对编程是非常有激情的,不过这种激情会随着年龄的增长而逐渐消失殆尽。
   
姑且不论这两类编程人员的异同优劣,从程序员角度来讲,作为一名程序员,对编程有热情才能切切实实地将工作做好。你有没有这样的一种感觉,当你看到一种自己喜欢的新技术或新发明出现时,眼睛会有发亮的感觉,至少我曾经有过。因此,我个人认为,当一种新技术或新事物出现在软件领域时,如果能够让你内心感到无比地兴奋或激动,那么可以说你是一个对软件开发有极大热情的人;当一门你所期待的编程语言发生变化时,或者当出现了一些你所关注的开源框架时,如果你的眼睛会发亮或者无法掩饰兴奋之情,那么可以说你是一个对编程有极大热情的人。
    我一直以为,只有对编程有极大的热情,对问题有孜孜不倦的钻研求解精神,才能编写出更好的程序出来。在这方面,我认为我自身还有很大的一段距离,仍有很长的一段路需要走。

    合格的程序员应该是一个追求效率与质量的人。作为程序员,从总体来看,大都具有追求尽善尽美、精益求精的思想,诚然有这样一种思想是非常好的,因为这会促使你时刻关注代码的质量并力求做到最好。但是,这种思想所延伸的做法在有些情况下却又是行不通的,因为企业往往会追求效率,更加注重的是质量与完成时间,根本不可能有足够的时间让你将程序做到精品的程度。因此,作为一名程序员,在具备精益求精思想的同时,更加要具备追求效率与质量的思想,最好的情况就是在追求效率与质量的同时做到精益求精。
    很多时候,当匆匆忙忙赶出来一个软件产品时,不仅不能得到客户的好评,相反反馈回来的却是不满之声,要么是功能欠缺,要么是不够人性化,诸如此类。抛开管理方面的问题不谈,仅仅从程序员角度去看待问题,我们会惊讶地发现,原来我们为了赶进度,很多问题都作了折衷处理,而当我们在后续有时间的时候,又常常不愿意去调整优化或者是没有这种意识。
    程序的好坏,效率重要,质量也重要。作为程序员,应该且必须具备这样一种在允许的时间范围内将程序做到最好的意识。

    合格的程序员应该是一个会沟通的人。普遍的一种看法是,程序员是一类不喜欢沟通、不善于沟通、不愿意沟通的人。个人认为,在当今这个社会,程序员除了有很好的技术能力之外,还需要有一定的沟通能力。我们程序员当中有相当的一部分人,不善于言辞,只知道埋头做工作,而忽略了与项目经理、老板的沟通,这对项目工作的开展或多或少地带来了一定的影响。
    定期地向你的上司汇报工作,可以带来很多好处。首先,可以让你的上司更清楚地了解你目前的工作情况,包括取得了哪些成果,遇到了哪些困难等。其次,可以为自身获得更大的增值机会,说不定你的一些特长或能力被上司发现,继而让你到你更胜任、更喜欢的岗位工作。再次,还可以在沟通过程中矫正一些不正确的实现思路,等等。

    合格的程序员应该是一个懂得自我总结、自我反省的人。经常对自己所做的工作进行回顾总结,有利于程序员调整工作思路,有利于每一个工作目标的实现。总结自己工作的质量、效率及可取之处,可以对下一步的工作起到对照作用,而从更加明白如何去做才能达到最佳的效果。
    定期地进行自我反省,有利于提高自身的修养。考虑工作中失误的地方,并在以后的工作中尽量避免再犯类似的错误,这有利于积累经验教训,从而使自己确确实实达到合格程序员的衡量标准。

    以上是本人在实际的工作中经过思考并总结出来的几点肤浅想法。总之,我认为,要成为一名合格的程序员需要具备更多的条件,会思考、会学习、会动手是最基本的要求。在实际的工作当中,还要经常了解业界动态,活跃自己的思想,而不要闭门造车,封闭了自己的思想。经常性地加强学习,才能使得自身不会在这个变化太快的IT行业里失去航向,才有资格成为一名合格的程序员,继而向优秀的程序员迈进。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏雪无痕大黄蜂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值