Wang 的个人资料青焰照片日志列表更多 工具 帮助
8月29日

说说编程

大言不惭的说一句,我的编程基本上都是自学的,看看我那些module的grade就能看出来,呵呵。当然,我也是幸运的,恰好在大学毕业之后开始真正了解编程,并且遇上了一个非常适合我的公司和老板。

前几天cjj让我和他的junior聊聊怎么学习编程,说了一些东西,基本上是我最近对我整个学习编程的反省。且放在这里,说不定有人会觉得有用。

编程,是人和机器的交流。人之间的交流,主要有两个部分组成,一是思想,一是语言。思想决定你想要传递什么样的信息,语言则决定交流的效率。编程也是如此。思想,是你想达到的目的,比如读取一段文件,执行一个loop,甚至复杂的server client transcation等等。而语言的种类和掌握水平,则决定结果。如果我和一个北美土著讲中文,就算说的天花乱坠,也绝无结果;如果我和一个英国人讲英文,鉴于我的语言水平,很有可能产生误解。前者,就给gcc java文件;后者,就是bug的产生。

先说说语言。编程语言很多,如c#,java,python,ruby,smalltalk,cobol等等不一而足。在适当的时候使用适当的语言可以事半功倍,比如用中文解释四书(当然,不是于丹说),希伯来文祈祷圣经,法文背诵情诗,德文分析哲学。但辜鸿铭没有几个,很多人穷毕生之力,也未必能精通自己的母语。所以,选择一个适合自己特点和工作性质的语言,是非常重要的(假设有选择的自由)。以我个人来说,我对java比较熟悉,php只是能用而已,第一年学的scheme基本忘光了,偶尔看的ruby和python也是浅尝辄止。

然后是思想。我一向认为,编程的思想主要有两部分,算法和软件工程。我个人认为,如果不是做科研,软件工程比算法更重要!软件工程本身是个大题目,暂且搁置一边。

学习编程有没有捷径?我的答案是有的。但这个答案很可能人失望,就是打好基础。找到一本好书,比如java我推荐Thinking In Java和Java Rules(这本书不是很有名气,但我强烈推荐对java有兴趣的朋友看一下。我个人的感觉是收益匪浅),找到一个好的IDE,我推荐eclipse。多看,多想,多练,多读(source code)。

编程有没有捷径?我的答案也是有的。但这个答案应该还会让大家失望,就是在有良好基础的情况下,遵从best practise,有最有效的办法,最短的代码来解决问题。

List

和朋友做东西,找人帮忙,列了一些我希望他们懂的东西,摘抄如下:
Necessary Knowledge:
Java:
    Java Collection Framework
    Java Thread
Java 5 Features:
    Generic
    Enum
Web Design
    HTML
    XML
    CSS
Software Engineering
    Agile Software Development
    Design Patterns (at least familiar with Composite, Factory, Singleton, Decorator, Adapter, Template Method, Strategy)
Best Practise
    Unit Testing (JUnit, TestNG will be a bonus)
    Version Control (CVS, SVN will be a bonus)
Framework
    Hibernate
    IOC container (recommended ioc)
    Any View Framework, like Spring MVC, Structs, Echo2 will be a big bonus
8月22日

送书

这周六又要搬家,发现不少鸡肋。我现在住在boonlay,想要的就过来拿,不过最好先给我短信

Text Book:
Living with Mathmetics, Revised Edition
Writing in Process
Computer Organisation 2004
The complete reference, Apache Server 2.0
Computer Organization & Design, The hardware/software interface
Thomas' Calculus, Tenth Edition
全美经典学习知道系列,统计学(第三版) 中文

Notes:
CS3261 Sem2 2005/2006
GEM 2900 Jan 2006
CS4260
8月19日

Test Case

突然觉得,certification和test case的作用一样

正在准备我的第一个test case,SCJP