程序员的自我经营之道第一层

从你决定迈出校门进入社会的那一刻起,你就进入了一个战场,这个战场虽然没有硝烟弥漫,没有炮火纷飞,但却绝不亚于任何一个真正的战场。你要在这个战场上去搏杀,去竞争,利用各种可以利用的手段去赢取战斗。在这个战场上,没有人会因为你的弱小而给予同情,也没有人会因为你是一个新手而手下留情,在这里你会感受到在学校里从来没有感受过的"残酷",你将深深的体会到一句话,那就是"优胜劣汰"。

我们能在这个战场上获胜的法宝之一就是"知己知彼,百战不殆"。我们如果能够在战斗前对双方的情况了如指掌,那么,取得胜利将会成为必然。

知己:要对自身的情况了解,要找准自己的定位。这个定位是自己对自己充分了解的情况下进行的思考,对于准备迈向程序员职业的战士们来说,进行这个定位是绝对必要的。

知彼:要对未来工作岗位的一切做到尽可能的清楚,这就需要对你的对手有非常清楚的了解。

1.1 问题1:这个职业赚钱吗?赚多少钱

Java 程序员这个职业赚钱吗?能赚多少钱?

我们刚刚进入本书的正题就拿出一个俗不可耐"钱"字来和大家大谈特谈,未免不雅。但是,我还是要在一开始就要说这个问题,因为这是很多朋友关心的问题,为什么不先说?有很多即将进入这个行业的年轻朋友都很想问这个问题。

认真的面对这个问题,我们的回答是:

先不要急着问能赚多少钱,先要想想你为别人能提供什么服务。任何一个职业都很赚钱!而且,都可以赚很多钱,想拿高薪不一定非要做程序员。我不是在这里卖关子,这是真理,"三百六十行,行行出状元"。

那么这时,有些朋友听到了我说的这些话也许会很失望,其实也不要失望,这个职业有让你赚到高薪的机会,只是,赚高薪是在什么时候,或者是在程序员的哪个所属层级。

我们来了解一下程序员的修炼三层境界,了解一下这个内容会比较容易抓住本书中的内容要旨。

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

修炼第一层境界的程序员,对Java 开发技术尽数掌握,开发工具掌握的也较为娴熟。

可以将第二层次程序员交给的任务完成的很出色,可以按要求独立完成类,接口和算法的开
发。注重技巧,对具体的编程语言非常熟悉。

能力之所及,皆无不用其极,认为所有开发知识,越是看起来深奥的越值得去研究,希望在自己开发的所有项目中,能用上的技术全用上,目的只有一个,就是尽可能多的获得实践机会。总想四处试刀,看看手里的刀到底快不快。满口都在谈,什么框架是最优秀的,C#和Java 的优劣,满脑子想着如何将一个程序编写的更复杂。热衷于探讨技术问题,甚至有可能因为一个开发观点而和别人争论的面红耳赤。

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

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

第一层境界特征:

工作时间:三年内

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

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

开发目标:无所不能

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

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

参考薪金:¥2000-¥6000(仅供参考)

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

修炼第二层境界的程序员,他们往往是从事了Java 开发好几年了,从第一层境界进阶上来的好手,即,没有被优胜劣汰掉的那批人。之所以说"没有被优胜劣汰"这么"残酷"的用词,并非危言耸听,因为,一般修炼第一层境界是非常艰苦的,没有坚强的意志,没有强健的体魄,完全不可能进阶到第二层境界,也就是说,要头脑始终保持清醒,抱有坚定的信念,同时,你的身体也要非常好,才能过关。

if (a>0)
a++;
else
b++;

我们经常看到,在这一关掉队的人们,由于志向偏离,或者吃不了苦,或者对困难估计不足,甚至是身体原因放弃软件开发职业。这里之所以强调"身体",也是因为,第一关是如此的残酷,其实并没有人要求你加班加点,只是你的一腔热血使然。

所以,我们说在第二层境界中是"没有被优胜劣汰"的那批好手。

他们已经经历了若干个开发产品或项目,已经可以利用自己的知识去带领第一层次的程序员开发项目,可以说是一个很有经验的开发者,对在上一个层次阶段没有完全理解的技术知识已经相当的清楚。可以自由的运用开发技术,并分的清楚什么技术用在什么地方。

最让他们头痛的是项目的"工期"和"Bug",根本无暇顾及什么技术实践的问题。他们往往利用自己最擅长的架构方法去开发和设计整个程序的技术架构。

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

他们老老实实的加上了"{}"大括号,因为他们知道,这些细节造成的Bug 有可能让他们花去数天时间去调试,而这个省去的大括号,根本不会给系统带来任何优化。他们知道的越多,越觉得世界是那么的广阔,不禁叹息"世界如此之大,要学的东西很多",对Java 开发技术方面的探求知识,大多是在产品的架构层面,更愿意去研究架构设计方面的知识,比如,他们很清楚什么时候使用EJB,什么时候该设计什么样的一个接口。

他们逐步感到,Java 技术已经不能满足他们工作成功率的需求,他们不得不去花时间去研究项目管理的方法,对总体的技术关注点也从Java 的具体开发技术,逐步的向和Java无关的其他信息技术方向转移,比如,网络应用层协议,其他平台语言,甚至Linux 内核裁剪等问题逐步纳入他们的视野。

后来他们会发现,他们想进入修炼的第三层境界的阻碍,恰恰是他们较高的技术水平。

第二层境界特征:

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

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

if (a>0){
a++;
}
else{
b++;
}

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

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

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

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

参考薪金:¥6000-¥15000(仅供参考)

你可能感兴趣的:(程序员)