[转贴]无题,随心而发
作者:toyasimple原贴: http://www.
现在发觉学很多东西都象学武功一样,有高低强弱之分,需要一步一步来,而学编程犹其相似。
学武功,行走江湖,自然需挑件称手的兵器。学编程也是,第一件事就要选个编程语言,语言最重要是称手,因人而异。所有兵器中,我都喜欢的是剑,优美灵活,可刺可削,带剑自有种洒脱的味道,若是背着两个大铜锤走来走去,看着别扭。而我自己最喜欢的语言是C和C++,可将其比喻为剑。C是把短剑,讲究快,准,狠,适宜近身搏斗,招式洗炼,灵活多变,为求伤敌,置于死地而后生。C++本身只是块寒铁,需隐于山林,结庐而居,凿山引溪,累土为炉,清水纯火,百炼千锤。最后,宝剑练成,光芒不可凝视。但是,兵器本身没有优劣之分,存在自有其价值。夜黑高风,飞檐走壁,自是长索为好;逢山开路,荆棘满途,大刀为宜;两军对垒,杀敌百步之外,就需要弓箭。同样,不同应用场合,就需要不同的编程语言,妄想某一语言统治天下,整天谈论那个语言好那个语言将被淘汰,是没有意义的,花太多心思都这些地方,并非明智之举。真正的高手,摘叶飞花,皆可伤人,已经不局限于某一兵器。
招式练熟,若只想混两餐一宿,大可到处买艺。各位乡亲父老,小弟初到贵境,盘缠用尽,为博各位一笑,耍一套家传的六合拳,觉得好的就扔几个小钱,觉得不好的也请拍几下手掌。若不想表演什么心口碎大石,左青龙右白虎之类,想再进一步,就应该修炼内功, 再进一步就要熟悉兵法。现在我觉得计算机所有科目中,数据结构与算法,编译原理,操作系统,软件工程是最重要的。前两个相当于内功,操作系统和软件工程就更进一步,是兵法。数据结构与算法很重要,很会,会点,和一点不会,写出来的程序感觉完全不同;编译原理沟通底层与高层,汇编与高级语言,精通简直可比作打通任督二脉。熟悉操作系统就好象熟悉天时地势,软件工程就好象是兵书,教你如何行军布阵,安排各人员,统一前线与后勤, 掌握人和。
现在,写一个大点的软件就好象去打一场仗。一个大将军统带,底下是万夫长,千夫长,百夫长,十夫长。各个士兵被编成一队一队, 有步兵,骑兵,弓箭手,带着不同的兵器。要打胜,将军有很大的责任。将军可以在后方,但是一定要胸有大局,不能局限某一方面,根据形势作出决策,有所为有所不为。在战阵上,逞匹夫之勇是没有意义的,要借团队力量。一个人不论其多么勇猛,也不能凭一己之力扭转局势。另外,除了帝王将相,有另一种异类也可留名后世,这就是侠客, 十步杀一人,千里不留行。帝王将相,高高在上,也怕难挡侠客一剑。我们选择学习编程,要想有所成就,就要有点决心,不当将军,就当侠客。
喜欢独孤求败剑冢上的题字,很有味道。无名利剑,凌厉刚猛,无坚不摧,弱冠前以之与河朔群雄争锋。紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。玄铁重剑,重剑无锋,大巧不工,四十岁前恃之横行天下。木剑,四十岁後,不滞於物,草木竹石均可为剑。无剑,自此精修,渐进於无剑胜有剑之境。
以此自勉。