美文网首页我爱编程
一个程序员的修炼之道

一个程序员的修炼之道

作者: 苹果小王子写字的地方 | 来源:发表于2016-08-04 14:18 被阅读109次
    摘要:每个程序员的修炼之道都是漫长而艰辛的,要成为一名伟大的程序员,不仅技术全面,还要有程序员的自我修养。
    一. 找到编码的感觉

    经过几年的积累,逐渐认识了Java,Python。所学的知识当然要围绕这两门语言展开,一些框架的学习,经验的积累,设计模式的学习都围绕这两门语言展开。其实学了这么多,慢慢的发现基础知识不牢固,很多东西学习也只是皮毛,知其然,而不知其所以然,简单的说就还是个民工,只能进行简单的堆砌,想向上走一步:没门。所以补习理论知识成为好多程序员迫在眉睫的问题。
      很多程序员估计像我一样,对文件操作,多线程,Socket等的高层次的编码还停留在理论阶段,只是做了一些demo,了解了一下API,基本没有在实际中应用到相关的知识,或者是简单的实践了一下。其实我们都停留在写代码的原始阶段:简单的堆砌代码,而没有真的找到写代码的感觉。虽然我自以为看了《重构》,看了《First Head in Design pattern》,《敏捷软件开发原则,模式与实践》,《模型驱动设计》等书就可以有所突破,其实我错了,没有量变就没有质变。
      寻找编码的感觉,慢慢的熟悉了各种API后,有一种信手拈来,得来全不费工夫的感受的时候,慢慢的就自然理解了大师书中的知识了,或许你到时候会说:其实这就是我工作中碰到的问题的总结。
      所以修炼阶段平均每天编码200行以上,找到编码的感觉是必须的。

    二. 整理总结分享

    在学习的过程中,能够写读书笔记放到网上是一个好的习惯。学习的过程中,必定会碰到很多问题,告诉别人你是怎么解决这些问题的是一种简单的教,一方面可以让自己记忆更加深刻,一方面可以传递知识。
      当然,你学到一定的程度,就需要把知识做一个阶段性的总结,不要怕别人笑话,写出来,分享出去,告诉别人这是我的心得。如果现在让我做一个设计模式的PPT,我估计会翻阅好多本书来整理相关的知识,对我来说其实是在温习相关的知识。
      我也需要把自己工作中碰到的问题分享到论坛或者是blog上去,例如:性能优化的心得,发现的oracle的bug,发现的Java框架的bug……当别人和我深入讨论一些问题的时候,我才发现:自己研究的其实还不透彻,人外有人,天外有天。当我教别人一些东西的时候,自己也学到很多东西。教的过程中会逐渐发现自己的不足,慢慢的自己就成长起来了!

    三. 程序员自我修养阶段:

    今天在改程序,当打开一个方法的时候,里面有一堆连续的else if。我数了一下,有超过40个。而且,每个else if里面,还都有处理过程,或简单或复杂。看了我当时就想骂娘,再偷懒也搞个switch啊。这个类其实是个html处理的类,在模板也加入特殊标签,而方法里这40多个else
    if的作用是用来逐一判断特殊标签输入的参数并进行处理。以我不深的编程经验看,完全应该可以用反射的方法把输入参数转化成类下面的对象或者对应的函数,这样代码要清晰很多很多。
      我专门看了下注释,这孙子没写,让我失去了指着名字大骂的机会。我突然觉得,一个程序员的自我修养第一条应该就是在每个写过的类里面加上你的注释,包括姓名,最好还有联系方法。这是一种责任,是程序员对其所写的代码的一种必须的责任,当后来的人在查看修改这些代码的时候,当这个可怜的维护人员被代码混乱的组织和恶心的结构气得上窜下跳想砍人的时候,他至少可以指名道姓地一阵乱骂以泄心头之恨。
      无所谓有多少人会同意这个观点。我知道在现实面对的很多是在不停的赶时间,只要在限定时间内完成,哪怕再烂的代码,也可以拿到薪水。但是我还是决定,在接下来我就要面对的那个必须在十月完成的项目里面,我不会这么做,不会写下40个愚蠢的else if,我宁可项目延期哪怕为此丢掉工作,程序员也要有所为有所不为。
      所以:要想养成良好的程序员的自我修养是离不开以下几点的
    1、迷恋技术,保持对代码的热情
      兴趣是最好的老师,如果不是最初对编程充满兴趣,应该很少有人会选择程序员这个行业,但同时程序员是一个有点乏味枯燥的工作。如果你不迷恋技术,对代码充满热情,那你只能做一个平淡的程序员。


    2、在实践中成长,磨砺技术
      程序员是一个在实践中成长的职业。你看再多书,听再多的视频课,自以为学到很多东西,但正在接触项目的时候,就两手发软,头脑空白了。最好的提方法,是正在参与到项目中去,最好是能参与从设计到开发到测试到维护一整套的整套流程。


    3、加班虽苦但也是提高的过程
      毕业之后的前三年最为重要,要认认真真钻研技术,积累经验,至少能在某一方面成为技术达人。程序员加班是很正常的事情,要加班工作,加班学习,同时在这段时间要注意多总结,注意工作方法,合理安排时间,提高工作效率。你现在的付出是为了以后的成功!


    4、不怕失败,学会寻找成就感
      新程序员由于技术水平、经验的欠缺,写出的程序bug多,执行效率低,可能被同事嘲笑(我发现这还是普遍现象),然后被上司责怪,内心充满有挫折感。要学会自我减压,相信挫折与失败只是暂时的,发奋图强。在工作中要学会寻找成就感,哪怕你只是完成一个小功能,优化了一段代码,都是你辛勤付出的结果,是你能力提高的体现。


    5、要学会写文档
      不要以为程序员只要负责写代码,如果是那样,你永远不能有上升的空间了。因为不管是走技术路线,还是管理路线,都离不开文档,方案文档,技术文档,产品介绍文档,管理文档等等,是你了解开发流程,产品运营的必由之路。


    6、学会复制粘贴
      现在的开发资料已经非常的充实,遇到难以解决的问题不要过分纠结,为难自己,请打开搜索引擎搜索一下。毕竟,你做的是工作,不是在学校做研究。


    7、细节决定成败
      不少程序员都有这样的习惯,好不容易思考出解决问题的方法,迫不及待的把代码写出来,功能也实现了,立马提交代码完事。殊不知你的代码中还有不少细节需要完善,大到内存泄露、资源释放、代码是否高效,小到注释是否规范,都是你必须关注的问题。且不谈这些细节问题对你做出来的项目的影响,就是对你编程习惯的影响也是深远的。


    要学会让数据来说话,其实数量只是一种表现的形式,有时候只能简单的说明你这个人很努力,并不能说明这个人真的很强。我们追求的是数据的结果:带来了什么样的质量!以前写blog,就是简单的积累一下自己的说话,没有什么有价值的内容,所以关注的仅仅是自己的朋友而已,虽然也写了很多,但是没有什么变化。当我整理自己以前的分类的时候,我很惊诧的发现自己的关注点怎么如此之多,面积太大,投入再大,也不会产生多大的压力,也不会产生什么成果。如果现在让我拿出点写blog的数据:pagerank,alexa排名,日均ip,pv等,这将是一个很惨的结果。写不出什么有价值的东西,还不如不写。从写blog上我开始醒悟了。
      编码这么长时间,我在论坛上提问少,回复少,发帖少成为我的基本特征。如果让我拿一点数据说明我做了什么的时候,也将是一个悲惨的结果。很少东西能证明我在编码上有突破,与众不同。
      当你觉得技术已经OUT的时候,其实你还拥有很多,思路才是根基,要学会利用搜索引擎去查找你想要的结果。
      不能以bug小而不去修复,要懂得千里之堤毁于蚁穴。
      资深程序员能很清楚的认识了自己,终于知道,自己那份坚持,还有执着、汗水只是让自己有个回忆。


    Bobo
    20160804

    相关文章

      网友评论

        本文标题:一个程序员的修炼之道

        本文链接:https://www.haomeiwen.com/subject/mkbcsttx.html