最近在读前辈蔡学镛《Java夜未眠·程序员的心声》,几天就看完了,里面的内容很好懂,围绕Java展开一系列的话题,包括社会现象,他自己的生活,说实话,这本书对我们程序员很有帮助,有时候是把你自己的心声说出来了,是啊,信息产业的变化速度太快,我们这些程序员其实是很累的,要不断的学习的新的东西才不至于被淘汰。蔡学镛前辈的句子幽默有趣,俨然不失一个技术作家的大家风范,也许是因为他也读了很多Java经典书籍的缘故吧。下面我就选载一些很有趣很有用的句子,希望对大家有所帮助.
学习,是一条漫长的道路
培养兴趣
把程序设计当成兴趣可以让你学得更快乐,学习效果自然会更好。在我到一个单位面试时,主管看了我的履历之后问我:「你怎么有这么多时间学会这么多东西、做这么多事?」 我的回答是:「把工作、学习、和娱乐结合在一起,时间就会是别人的三倍。」
多读好书,少上课
大量阅读好书,是精进自己的不二法门。在这种快餐时代,许多人没耐心读书,反而喜欢到处上课,所以现在到处都是计算机班。如果遇到厉害的好老师,当然上过他(或她)的课 会收获很大,只是目前好老师的比例实在不高(虽然我自己也在开 Java/Enterprise Java/Java Swing 的课,但我还是得这么说)。我曾在网络上看到有人说:「没听过补习班教 出什么程序高手」,这倒也有几分真实性。不过一方面要归咎老师之外,一方面也要归咎学生,因为我发现通常上课的学生会在家里读书和写程序练习的比例不高。
加强英文阅读能力
加强英文和崇洋无关,而是有它实际的价值。许多信息都是要直接看英文的资料,因为没有中文版可看。
问人之前,先问自己
遇到问题,可以到国内外的程序设计相关讨论区去请教别人,如果态度谦逊,且问题叙述清楚,相信许多有经验的前辈会很乐于参与讨论。不过,凡是遇到问题就发问,这不是好事, 因为你会因此越来越依赖别人,而失去了自我解决问题的能力。自己应该尝试着查书、写程序测试、甚至阅读原始码,来找出答案。如此一来,真的没办法而请教别人时,也才能 比较深入地讨论。
多写程序
学程序设计不可以只看书,将随书光盘的程序执行一次,就认为自己已经学会了。应该开始写一些程序,且由小到大,由简单到复杂。找一些有趣的题目(比方说:计算器,踩地雷, 小画家,俄罗斯方块),可以提升写程序的动力。
向上延伸,向下延伸,向旁延伸
当你发现你已经可以掌握此程序语言之后,你可以选择:
向上延伸:学习对象导向分析设计、Design Patterns、以及软件工程。让自己具有做大型计划的能力。
向下深入:深入了解内部底层的机制,例如操作系统(甚至硬件)内部。
向旁延伸:学习不同的API,例如:多媒体、数据库、企业运算…。
另外,数据结构、算法、编译原理等基础也很重要。
开后门
如果没有在软件开发的过程中实施XP(eXtreme Programming)所提倡的Pair Programming(Peer Review),那么程序员就有机会在程序中开后门,感谢见不得人的勾当。
利用此手法,你可以进行收集信息。此程序在客户的计算机上执行时,你仿佛在客户的计算机中装入一个“内神”,你最好再设计一个情报收集网站“外鬼”,一旦“内神通外鬼”,就可以进行五鬼搬运,客户的资料一五一十地通通落到你手中。
也有人利用此手法进行远程遥控,甚至进行恶劣的破坏行为。简单的因应之道有二:
少用来路不明的软件,多用Open Source的软件。
少用native程序,多用Java程序,因为Java程序可以利用policy tool来关闭程序的某些权限。
职业敏感度
软件人要有软件人的职业敏感度,有职业敏感度的人,每天都在不自觉地增加专业功力。许多工作上棘手的问题,甚至会在一觉过后就突然「悟出」解决之道。我也有过这样的经验,睡梦中梦到某一道指令可以解决我的程序问题,马上从床上跳起来冲向计算机,只不过,Oops!我很快地发现这道指令根本是不存在的
如何培养高度的职业敏感度?让自己暴露在大量相关的信息下是最自然的方式。比方说,如果你希望培养 Java 的职业敏感度,你不妨把浏览器的首页设定成 JavaSoft 或是 JavaLobby,每次打开浏览器就会有相关信息进入你脑海;订阅几份 Java 的 mailing list。如此一来,你就可以渐渐地把这些当成生活中的一部份。
从美丽的菲奥莉娜说起
许多女生一直都有错误的观念,认为自己「逻辑观念又没男生强」,所以「程序作业当然是找男生帮忙」,也因此信息系的男学生都很抢手。大一时女生多的科系喜欢找男生当学伴(或称学友),因为他们认为男生可以帮他们写计算器概论的程序作业。没有学伴,或者学伴自己也写不出来,女生只好上网寻求帮助。这些帮助的 post 分为几种风格:
· 比较古典的标题「小女子有难,请程序高手拔刀相助」
· 比较新潮的标题「美眉需要各位葛格帮忙写一个程序」
· 比较淑女的标题「请各位大哥帮小妹解决程序问题好吗」
· 比较情色的标题「需要有人帮忙写程序,我愿意以身相许」
· 比较怨天的标题「我是女生,所以不会写程序,请帮忙」
· 比较尤人的标题「老师出的程序好难,害人家都不会写」
不管标题风格为何,这些女生无非是来要作业的,绝对不是自动自发练习时遇到问题为求甚解而主动发问。
女生真的比较不会写程序吗?我可不这么认为。女生学习外国语言的能力比较强,学习程序语言应当如是。而且女生的心思比较细腻,不若男生的粗心,所以写出来的程序可能比男生的程序 bug 更少。
诸位女性们,你们应该从今天起,卯起来写程序,好改变大家对你们既定的印象。
走出你自己的成功之路
我不想矫情地说:“我喜欢失败,因为失败带来后继的成功”。但是成功的确是需要长时间努力的付出,才有可能实现,而失败会是成功路上免不了的石头。
从 A 到 E+
「终生」有效的贵宾卡,这理所谓的「终生」恐怕指的不是我的终生,而是他们的终生。
人才「瘠瘠」
他们的供货商大都知道,他们有一间神奇的仓库,这间仓库的管理员精通资料结构,他不是采用 FIFO 先进先出的演算法,也不是采用 LIFO 后进先出的演算法,而是发明了一套 OINO(Once In Never Out)只进不出的演算法,且此演算法被他们尊为管理仓库的圭臬,奉行不渝。
什么东西「只进不出」?我想来想去也只有宇宙的黑洞可以比拟。根据天文学家的说法,黑洞是种体积很小,但是质量很大的星球,可以将周遭的物质,甚至光线都吸进去。天文学家或许要穷其一生才能找到宇宙的一个黑洞,但是我不需天文望远镜,不需要复杂的数学计算,轻易地就可以在此找到许多黑洞,例如:库存黑洞、财务黑洞 ......
软件产业的知识经济
专业知识是一种无形的资产,不容易评估其价值。但是大致上,专业知识可以分成四个层次,价值由低而高分述如下。
Know-What
受过训练,通过认证,而精通某领域的基本知识,这类的知识就称为 know-what,也称为认知性的知识(cognitive knowledge)。know-what 是一切知识的根基,但是有了 know-what,并不表示有能力可以活用这些知识。
许多软件人员在通过专业认证之后,就开始学会狮子大开口了,其实他们的知识可能还停留在 know-what 的阶段,而 know-what 阶段的知识对公司来说是没有太多生产力的。此阶段的软件人员应该努力地提升自己,以进入下一个阶段,也就是 know-how。
Know-How
know-how 阶段的知识也称为进阶技能(advanced skills),指的是可以活用书本上学来的知识、理论,以解决实际的问题。know-what 的知识或许可以透过「填鸭」方式生硬地吞下去,但是 know-how 的培养一定要透过实务经验的累积与体会。
如果有一个好老师或 leader 的引导,know-what 可以很快地提升成 know-how,靠自我的培养则通常会比较辛苦。不过,当我要引导学生由 know-what 到 know-how 时,往往会有许多「不识货」的学生嫌我啰唆。
Know-Why
know-why 阶段的知识指的是对整个系统的掌握度(system understanding),也就是了解各种知识背后复杂交错的因果关系。有了 know-why 的知识,软件人员除了能顺利地进行软件计划之外,还能进一步解决更大、更复杂的问题,因为一切的知识都是有条理的。具有 know-why 的软件人员对整个计划具有强烈的「第六感」,可以直觉地做出正确的判断,预先知道可能会遇到的问题。计划的 leader 必须具备 know-why,才能全盘掌握计划。
Care-Why
care-why 指的是自发性的创意(self-motivated creativity)。有了源源不绝的创意,才能保持高度的竞争力。软件产品相当需要创意和洞烛先机的能力,在大家一窝蜂抢做某软件或某服务之前,就已经先完成深度的耕耘,技术自然比别人来得扎实,也能迅速地迎合市场需求,为公司创造最大的利益。
时间和努力见证知识经济
欲创造软件界的知识经济,没有特效药,而是需要相当时间的努力才会有成果的,软件公司应该致力于提升员工的知识层次,由 know-what 进化到 know-how,再由 know-how 进化到 know-why,乃至于 care-why。而软件人员也不应该以自己现有的知识为满足,毕竟知识是无止境的。
我们都该问问自己,自己的知识是在哪个层次呢?
苦恨年年压金线,为他人作嫁衣裳
许多人嫌侯捷先生翻译的书以及O'Reilly台湾分公司翻译的书贵,但是却没想到译者的辛苦。一个好的译者,做出一本好书,可以提升你的技术能力,绝对值得多花一些钱购买。即使在我是个穷学生的时候,我还是只管买好书不管价钱的。书价过于低廉,会造成出版社的营运不良,影响所及译者拿不到好的稿酬,造成有能力的译者不愿意再翻译,使得信息图书品质低落。 沦落到此,读者得到了什么好处?