编程方法论
一、学什么最容易
由于现在的快速开发工具的不断推出,使得软件开发越来越容易,进入软件开发的门槛也越来越低。很多人在IDE工具的诱
骗之下,快的十天,慢的半个月就可以进入所谓“程序员”的领域,成了一个所谓的“程序员”。这对于IDE提供商来说
是乐得合不拢嘴的事情,但是对于软件来说却是一个无形的打击。由于快速工具的盛行,很多人把开发看作小菜一碟,特别
是很多在校的大学生,都认为现在教的内容一旦出了学校都已经是落伍,无形中产生了讨学的心理。
今后的软件开发逐渐趋于两极化,一方面有越来越多的人将从事简单的重复性开发,而且这部分的开发难度会逐渐降低;
另外一方面核心部分的开发会越来越复杂,这部分的入门所涉及的知识内容会逐步增加。所以对于今后希望从事软件开发
的同学们,需要好好的努力学习,学校的东西会有他们的用处,只要现在把基础打扎实了,即后你们在软件的领域会有很好
的机会,不要盲目的放弃学习的机会。
二、有什么速成的办法没有?
有一种蛾子名叫“帝王蛾”。帝王蛾的幼虫时期是在一个洞口极其窄小的茧中度过的。当它的生命要发生质的飞跃时,这天
定的窄小通道对它来说无疑成了鬼门关。那娇嫩的身躯必须拼尽全力才可以破茧而出。太多太多的幼虫在往外冲杀的时候力
竭身亡,不幸成了“飞翔”这个词的悲壮祭品。
有人怀着悲悯恻隐之心,企图将那幼虫的生命通道修得宽阔些。他们拿来剪刀,把茧中的洞口剪大。这样一来,茧中的
幼虫不必费多大力气,轻易地就从那个牢笼里钻了出来。但是,所有因得到救助而见到天日的蛾子都不是真正的“帝王
蛾”,它们无论如何也飞不起来,只能拖着丧失了飞翔功能的累赘的双翅在地上笨拙地爬行。 原来,那“鬼门关”般的窄小茧洞恰恰是帮助帝王蛾幼虫两翼成长的关键所在。穿越的时刻,通过用力的挤压,血液才
能顺利送到蛾翼的组织中去,惟有两翼充血,帝王蛾才能振翅飞翔。人为地将茧洞剪大,翼翅就失去了充血的机会,生出来
站内搜索购买鹏币*
的帝王蛾便永远与飞翔无缘。
没有谁能够施舍给帝王蛾一双奋飞的翅膀。不惧怕独自穿越狭长墨黑的隧道,不指望一双怜恤的手送来廉价的资助,将
血肉之躯铸成一支英勇无畏的箭镞,带着呼啸的风,携着永不坠落的梦想,拼力穿透命运设置的重重险阻,义无反顾射向那
寥廓美丽的长天……
让一个“帝王蛾”速成的方式就是帮它把茧剪开;一个人学一门技术的速成方法就是不学那些“没用”的东西,直
接告诉他最终结论和操作方式,但是很多东西是在探索中、学习中才能领悟的,很多人在钻研一个技术难题的过程中查资
料、看书、求证,在这过程中不仅锻炼了自己思考问题的能力,而且夯实了基础知识,最重
要的是在探索过程中收获了很多
意想不到的新东西,有很多朋友在钻研一个问题的时候经常能无意中的学会很多新东西。 上山的“速成”方法是直接坐缆车上去,可是你会比那些登山者少看到很多路边的风景。那么你是愿意做一个掌握“速
成”方法的人,还是愿意有机会看看路边的风景呢?
三、成功的秘诀
古希腊大哲学家苏格拉底,思想深邃,思维敏捷,关爱众生又为人谦和。许多青年慕名前来向他学习,听从他的教导,
都期望成为像老师那样有智慧的人。他们当中的很多人天赋极高,天资聪颖者济济一堂。大家都希望自己能脱颖而出,成为
苏格拉底的继承者。一次苏格拉底对学生说:“今天我们只学一件最简单也是最容易的事,每个人都把胳膊尽量往前甩,然
后再尽量往后甩。”苏格拉底示范了一遍,说:“从今天起,每天做300下,大家能做到吗?”学生们都笑了,这么简单的
事有什么做不到的?
第二天,苏格拉底问学生:“谁昨天甩胳膊三百下?做到的人请举手!”几十名学生的手都哗哗地举了起来,一个不
落。苏格拉底点头。一周后,苏格拉底如前所问,有一大半的学生举手。过了一个月后,苏格拉底问学生:“哪些学生坚持
了?”有九成的学生骄傲地举起了手。
一年后,苏格拉底再一次问大家:“请告诉我,最简单的甩手动作还有哪几位同学坚持了?”这时,整个教室里,只
有一个学生举起了手,这个学生就是后来成为古希腊另一位伟大哲学家的柏拉图。 如果说柏拉图的故事太过遥远,那么就再给大家讲一个发生在眼前的故事。
一次英语课上,老师带来300句高考精华句子,并且许诺说:如果能够把这些背诵得滚瓜烂熟,高考成绩一定会提高。大部
分学生以为又是老师哄学生的话,但身为有一个学生却有着迫切提高成绩的压力,对老师的话铭记在心。回去后,他把这
300句话当作至宝,先翻译成中文,又翻译成英文,发现几乎每个句子都程度不同地存在错误,或时态、或单词、或结构出
现错误。他把这些知识整理在一个本子上,重点记忆。随后的一个月,他仿佛吃了兴奋剂,拼命地背诵和默写这300句话,
在付出一个个的清晨和夜晚的时光后,终于取得丰硕的成果,他能够一字不差地默写出这300句话。从此,这300句英文成
为他的绝技,使他的英文成绩很快得到了提高。这个人就是现在留学培训的航母——新东方的掌门人俞敏洪。
有人曾经问我学计算机有没有什么速成的办法,我想说的是最好的速成的方法就是“坚持”。一切其他的速成方法学出
来的东西都太容易,“越容易得到的东西越不值钱”这是一条永远不会变的价值规律。越是厉害的武功,越是难练,需要的
时间越长。很多人,都是中途退场了。
坚持是最容易的,因为每个人都可以做到;坚持又是最困难的,毕竟没有几个人能够坚持下来。坚持下来的人就是
成功的人。
最后一句话:切务浮沙筑高台,练从难处练,用从易处
用!无速成,唯有坚持__
【解惑】程序员这个职业赚钱吗?能赚多少钱?
我们刚刚进入本书的正题就拿出一个俗不可耐“钱”字来和大家大谈特谈,未免不雅。但是, 我还是要在一开始就要说这个问题,因为这是很多朋友关心的问题,为什么不先说? 有很多即将进入这个行业的年轻朋友都很想问这个问题。
任何一个职业都很赚钱!而且,都可以赚很多钱,想拿高薪不一定非要做程序员。我不是在 这里卖关子,这是真理,“三百六十行,行行出状元”。
那么这时,有些朋友听到了我说的这些话也许会很失望,其实也不要失望,这个职业 有让你赚到高薪的机会,只是,赚高薪是在什么时候,或者是在程序员的哪个所属层级。 我们来了解一下程序员的修炼三层境界,了解一下这个内容会比较容易抓住本书中的 内容要旨。
1.1.1 修炼第一层境界:剑指四方,试问天下谁与争锋
修炼第一层境界的程序员,对开发技术尽数掌握,开发工具掌握的也较为娴熟。可以 将第二层次程序员交给的任务完成的很出色,可以按要求独立完成类,接口和算法的开发。 注重技巧,对具体的编程语言非常熟悉。
能力之所及,皆无不用其极,认为所有开发知识,越是看起来深奥的越值得去研究, 希望在自己开发的所有项目中,能用上的技术全用上,目的只有一个,就是尽可能多的获得 实践机会。总想四处试刀,看看手里的刀到底快不快。满口都在谈,什么框架是最优秀的, C#和Java 的优劣,满脑子想着如何将一个程序编写的更复杂。热衷于探讨技术问题,甚至 有可能因为一个开发观点而和别人争论的面红耳赤。
他们非常想证明自己掌握技术的娴熟程度,没错,他知道这个知识,在这里可以省略大 括号。
这类程序员大有“剑指四方,试问天下谁与争锋”的气势,工作具有活力,常常因为一个技术
细节加班到深夜,大多属于拼命三郎型。如果项目不能让他们学到他们想要的东西,他们会 放弃这些项目,去投靠别的公司,跳槽对于他们来说很平常。
第一层境界特征:
工作任务:按要求编写类和接口的具体实现代码
工作内容:编写具体的代码
开发目标:无所不能
开发特点:注重技巧,对具体的编程语言非常熟悉
工作职位:初级程序员,程序员,软件工程师
参考薪金:¥2000-¥6000(仅供参考)
1.1.2 修炼第二层境界:世界如此之大,要学的东西很多
修炼第二层境界的程序员,他们往往是从事了开发好几年了,从第一层境界进阶上来
的好手,即,没有被优胜劣汰掉的那批人。之所以说“没有被优胜劣汰”这么“残酷”的用词,
并非危言耸听,因为,一般修炼第一层境界是非常艰苦的,没有坚强的意志,没有强健的体 魄,完全不可能进阶到第二层境界,也就是说,要头脑始终保持清醒,抱有坚定的信念,同 时,你的身体也要非常好,才能过关。
我们经常看到,在这一关掉队的人们,由于志向偏离,或者吃不了苦,或者对困难估
计不足,甚至是身体原因放弃软件开发职业。这里之所以强调“身体”,也是因为,第一关是
如此的残酷,其实并没有人要求你加班加点,只是你的一腔热血使然。
所以,我们说在第二层境界中是“没有被优胜劣汰”的那批好手。
他们已经经历了若干个开发产品或项目,已经可以利用自己的知识去带领第一层次的
程序员开发项目,可以说是一个很有经验的开发者,对在上一个层次阶段没有完全理解的技 术知识已经相当的清楚。可以自由的运用开发技术,并分的清楚什么技术用在什么地方。 最让他们头痛的是项目的“工期”和“Bug”,根本无暇顾及什么技术实践的问题。他们 往往利用自己最擅长的架构方法去开发和设计整个程序的技术架构。
他们知道的越多,越觉得世界是那么的广阔,不禁叹息“世界如此之大,要学的东西很 多”,对开发技术方面的探求知识,大多是在产品的架构层面,更愿意去研究架构设计方面的
知识,比如,他们很清楚什么时候使用EJB,什么时候该设计什么样的一个接口。 他们逐步感到,技术已经不能满足他们工作成功率的需求,他们不得不去花时间去研
究项目管理的方法,对总体的技术关注点也从Java 的具体开发技术,逐步的向和其他信息 技术方向转移,比如,网络应用层协议,其他平台语言,甚至Linux 内核裁剪等问题逐步纳 入他们的视野。
后来他们会发现,他们想进入修炼的第三层境界的阻碍,恰恰是他们较高的技术水平。 第二层境界特征:
工作任务:按开发要求编写并指导第一层次程序员开发
工作内容:带领开发团队,设计架构,并编写关键程序,保证项目工期,对某开发项目的质 量负责
开发目标:不求有功但求无过,质量效率胜于一切,合理的技术用在合理的地方 开发特点:注重方法,不关注编程语言细节
工作职位:高级软件工程师、开发经理、系统架构师、项目经理等
参考薪金:¥6000-¥15000(仅供参考)
1.1.3 修炼第三层境界:最深即最浅,最浅即最深,不过如此
修炼第三层境界的程序员,他们通常是在第二层境界“突破自我”之后进阶上来的有智 慧的人,所谓“突破自我”就是打破自己而脱掉原有的蝉壳,破壳而出获得新生的过程。 在修炼的第二层境界已经将技术水平练就的如火纯清,甚至个别技术可以用“登封造
极”来形容,有自己的一套“绝活”,可以说,靠这些本事在业界应该说是过着“衣食无忧”的生
活。
他们逐渐发现,技术永远是技术,原来一直认为最深的技术恰恰是最简单的,而原来
最简单的那些技术恰恰是最值得去研究的,其实那些所谓的“登封造极”对于他们来说,仅仅
是利用他们所掌握的“原理级”技术,将“应用级”技术进行不同的排列组合而已。
任何“应用级”技术在他们眼里,没有任何区别,他们看着那些被业界炒作的“如火如荼” 的技术,像什么,EJB 啊,开发框架啊,或者对于开发语言,什么Java 啊,Vb 啊,C 啊, 或者其他什么语言,基本上是很“淡然”,既不觉得如何好,也不觉得如何不好,只会淡淡的
说一句“不过如此”。
所以,他们要突破,他们要进阶,面对他们的是更加广阔的空间,然而,他们会逐渐
发现,他们进阶的桎梏恰恰就是原来自己的“优势”,较高的技术水平,使他们更难“抛弃”或“摆
脱”。
突破自己的方法就是从技术中跳出来,利用“应用级”技术的不同排列组合去创造,去 创新,这些创新要紧密的结合市场,要紧密结合应用业务。
他们不仅仅要具备很好的技术知识水平,还要具备更敏锐的产品洞察力,和更灵敏的 市场嗅觉,并能够将这些能力充分的发挥并输出技术与市场都响当当的创意。
最终他们成功了,达到了程序员修炼的第三层境界,他们已经突破了原有程序员的传 统概念,达到了在业界“横行无阻,任意驰骋”的能力,这就是程序员修炼的最高境界。 第三层境界特征:
工作任务:“应用级”技术的不同排列组合,以市场为导向去创新与创造
工作内容:面对市场背靠技术开发团队,指导开发的市场着眼点,指导市场的获利方式 工作目标:盈利
工作职位:部门经理、研发副总、CTO、解决方案专家、业务专家、产品经理、高级产品经 理等
参考薪金:¥15000以上(仅供参考)
.1.4 点评“修炼三层境界”
王国维在《人间词话》中对人生三境有如下阐述,“古今之成大事业、大学问者,必经 过三种之境界。‘昨夜西风凋碧树,独上高楼,望尽天涯路’,此第一境也。‘衣带渐宽终不悔,
为伊消得人憔悴’,此第二境也。‘众里寻他千百度,蓦然回首,那人却在,灯火阑珊处’,此
第三境也。”
又有人说人生境界如陶渊明《桃花源记》中所写的“初极狭,才通人。复行数十步,豁 然开朗。”
程序员的发展路径,就是程序员人生路径,从最初的“看山是山,看水是水”,到后来见的多
了悟到“看山非山,看水非水”,没想到最终发现“看山还是山,看水还是水”。
1.1.5 回答这个问题
言归此问,“这个职业赚钱吗?赚多少钱?”,我想我已经回答了这个问题,世界上没 有天上掉下来的馅饼,也不会掉下一个林妹妹。
任何事业,均需如下才可成功:第一要立志,第二要思考,第三要奋斗。
《Java 程序员,上班那点事儿》清华大学出版社(转载请保留这句话,谢谢!) 本文出自“《Java 程序员,上班那点事儿》的那点事儿” 博客,转载请与作者联系!__