程序员的修炼法则

 

    这两天家里的网上不去了,等维修人员来了之后说是猫坏了,然后我到营业厅去换告诉我没有,今天刚领来,总之一句话“damn it!”,

废话不多说,进入正题。

 

    记得看过一本书叫java程序员上班那点事,其中第一章叫做”程序员的三层境界“,我觉得写得不错。刚刚学习编程,对我们来说很陌生,我们不知道将来的工作性质,待遇,如何在这个行业发展,该走什么样的路,怎样提高自己的价值等等。作者恰恰为像我们这样的初学者描画出了未来我们工作生活的一幅图画,也为我们指明了今后的方向,我觉得非常受用,在这里分享一下。

 

 大致内容是这样的:

    一、修炼第一层境界:剑指四方,试问天下谁与争锋

 

    修炼第一层境界的程序员,对 Java 开发技术尽数掌握,开发工具掌握的也较为娴熟。可以将第二层次程序员交给的任务完成的很出色,可以按要求独立完成类, 接口和算法的开发。注重技巧,对具体的编程语言非常熟悉。能力之所及, 皆无不用其极, 认为所有开发知识, 越是看起来深奥的越值得去研究,希望在自己开发的所有项目中, 能用上的技术全用上, 目的只有一个, 就是尽可能多的获得实

践机会。总想四处试刀,看看手里的刀到底快不快。满口都在谈,什么框架是最优秀的,C#和 Java 的优劣,满脑子想着如何将一个程序编写的更复杂。热衷于探讨技术问题,甚至有可能因为一个开发观点而和别人争论的面红耳赤。

 

    在编码中,经常可以看到他们会这样写程序代码:

 

 

   if (a>0)

 

   a++;

  

   else

 

   b++;

 

 

他们非常想证明自己掌握技术的娴熟程度, 没错, 他知道这个知识, 在这里可以省略大括号。这类程序员大有"剑指四方, 试问天下谁与争锋"的气势, 工作具有活力, 常常因为一个技术细节加班到深夜, 大多属于拼命三郎型。 如果项目不能让他们学到他们想要的东西,他

们会放弃这些项目,去投靠别的公司,跳槽对于他们来说很平常。

 

    第一层境界特征:

 

    工作时间:三年内

 

    工作任务:按要求编写类和接口的具体实现代码

 

    工作内容:编写具体的代码

 

    开发目标:无所不能

 

    开发特点:注重技巧,对具体的编程语言非常熟悉

 

    工作职位:初级程序员,程序员,软件工程师

 

    参考薪金:¥2000-6000

 

    二、 修炼第二层境界:世界如此之大,要学的东西很多

 

    修炼第二层境界的程序员,他们往往是从事了Java 开发好几年了,从第一层境界进阶上来的好手, 即, 没有被优胜劣汰掉的那批人。 之所以说"没有被优胜劣汰"这么"残酷"的用词,并非危言耸听,因为,一般修炼第一层境界是非常艰苦的,没有坚强的意志,没有强健的体魄, 完全不可能进阶到第二层境界, 也就是说, 要头脑始终保持清醒, 抱有坚定的信念,同时,你的身体也要非常好,才能过关。我们经常看到, 在这一关掉队的人们, 由于志向偏离, 或者吃不了苦, 或者对困难估计不足, 甚至是身体原因放弃软件开发职业。 这里之所以强调"身体", 也是因为, 第一关是如此的残酷,其实并没有人要求你加班加点,只是你的一腔热血使然。所以,我们说在第二层境界中是"没有被优胜劣汰"的那批好手。他们已经经历了若干个开发产品或项目, 已经可以利用自己的知识去带领第一层次的程序员开发项目, 可以说是一个很有经验的开发者, 对在上一个层次阶段没有完全理解的技术知识已经相当的清楚。可以自由的运用开发技术,并分的清楚什么技术用在什么地方。最让他们头痛的是项目的"工期""Bug",根本无暇顾及什么技术实践的问题。他们往

往利用自己最擅长的架构方法去开发和设计整个程序的技术架构。

 

在编码中,经常可以看到他们这样编写程序代码:

 

 

    if (a>0){

 

    a++;

 

    }

 

    else{

 

    b++;

 

    }

 

 

他们老老实实的加上了"{}"大括号, 因为他们知道, 这些细节造成的Bug 有可能让他们花去数天时间去调试,而这个省去的大括号,根本不会给系统带来任何优化。他们知道的越多,越觉得世界是那么的广阔,不禁叹息"世界如此之大,要学的东西很多", 对Java 开发技术方面的探求知识, 大多是在产品的架构层面, 更愿意去研究架构设计方面的知识,比如,他们很清楚什么时候使用EJB,什么时候该设计什么样的一个接口。他们逐步感到,Java 技术已经不能满足他们工作成功率的需求,他们不得不去花时间去研究项目管理的方法,对总体的技术关注点也从Java 的具体开发技术, 逐步的向和Java无关的其他信息技术方向转移, 比如, 网络应用层协议, 其他平台语言, 甚至Linux 内核裁剪等问题逐步纳入他们的视野。后来他们会发现,他们想进入修炼的第三层境界的阻碍,恰恰是他们较高的技术水平。

 

    第二层境界特征:

 

    工作时间:工作三年以上,或直到退休

 

    工作任务:按开发要求编写并指导第一层次程序员开发


    工作内容:带领开发团队,设计架构,并编写关键程序,保证项目工期,对某开发项目的质量负责

 

    开发目标:不求有功但求无过,质量效率胜于一切,合理的技术用在合理的地方

 

    开发特点:注重方法,不关注编程语言细节

 

    工作职位:高级软件工程师、开发经理、系统架构师、项目经理等

 

    参考薪金:¥6000-15000

 

 

 

    三、 修炼第三层境界:最深即最浅,最浅即最深,不过如此

 

    修炼第三层境界的程序员, 他们通常是在第二层境界"突破自我"之后进阶上来的有智慧的人,所谓"突破自我"就是打破自己而脱掉原有的蝉壳,破壳而出获得新生的过程。在修炼的第二层境界已经将技术水平练就的如火纯清, 甚至个别技术可以用"登封造极"来形容, 有自己的一套"绝活", 可以说, 靠这些本事在业界应该说是过着"衣食无忧"的生活。他们逐渐发现, 技术永远是技术, 原来一直认为最深的技术恰恰是最简单的, 而原来最简单的那些技术恰恰是最值得去研究的, 其实那些所谓的"登封造极"对于他们来说, 仅仅是利用他们所掌握的"原理级"技术,将"应用级"技术进行不同的排列组合而已。任何"应用级"技术在他们眼里, 没有任何区别, 他们看着那些被业界炒作的"如火如荼"的技术,像什么, EJB 啊,开发框架啊,或者对于开发语言,什么 Java 啊,Vb 啊,C 啊,或者其他什么语言, 基本上是很"淡然", 既不觉得如何好, 也不觉得如何不好, 只会淡淡的说一句"不过如此"。所以,他们要突破,他们要进阶,面对他们的是更加广阔的空间,然而,他们会逐渐发现,他们进阶的桎梏恰恰就是原来自己的"优势",较高的技术水平,使他们更难"抛弃""摆脱"。突破自己的方法就是从技术中跳出来, 利用"应用级"技术的不同排列组合去创造, 去创新,这些创新要紧密的结合市场,要紧密结合应用业务。 他们不仅仅要具备很好的技术知识水平, 还要具备更敏锐的产品洞察力, 和更灵敏的市场嗅觉,并能够将这些能力充分的发挥并输出技术与市场都响当当的创意。最终他们成功了, 达到了程序员修炼的第三层境界, 他们已经突破了原有程序员的传统

概念,达到了在业界"横行无阻,任意驰骋"的能力,这就是程序员修炼的最高境界。

 

    第三层境界特征:

    

    工作时间:工作六年以上(经常跳槽的不算)


    工作任务:"应用级"技术的不同排列组合,以市场为导向去创新与创造

 

    工作内容:面对市场背靠技术开发团队, 指导开发的市场着眼点, 指导市场的获利方式

 

    工作目标:盈利

 

    工作职位:部门经理、研发副总、CTO、解决方案专家、业务专家、产品经理、高级产品经理等

 

    参考薪金:¥15000以上

 

 

    

    有人说人生境界如陶渊明《桃花源记》中所写的"初极狭,才通人。复行数十步,豁然开朗。"  程序员的发展路径, 就是程序员人生路径, 从最初的"看山是山, 看水是水", 到后来见的多了悟到"看山非山,看水非水",没想到最终发现"看山还是山,看水还是水"

    

 

    我也听有人说过第一层境界是“手中有剑,心中无剑”,第二层境界是“手中有剑,心中也有剑”,第三层境界是“手中无剑,心中也无剑”,我想我现在就像一个刚刚步入江湖的小小剑客,高手还很多,要走的路还很长。差不多就写到这吧,希望这篇文章能给像我一样刚刚接触java的朋友一点小小的启发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值