博文
学编程,决不可心浮气燥<转>(2006-03-17 18:00:00)
摘要:
学编程,决不可心浮气燥。任何实践都是……
<转>
我认为有些人的观点错了。错得一塌糊涂。
对于这个问题,我的基本观点是:任何实践都是理论的载体或表现形式。而理论也是由实践上升而来
的。两者是辨证的。今天,我们只关注它的前一部分:任何实践都是理论的载体和表现形式。
我不是想故弄玄虚,但真理的外表看上去往往就是这么奇形怪状、难以理解。让我来给你解释一下
吧。
比如:战争是军事理论的实践,也是它的表现形式。战争的胜负取决于指挥者军事理论的掌握程度(别
给我举赵括这类“纸上谈兵”的反例,他们根本算不上掌握了军事理论,充其量只算是“背”下了军事
理论。“掌握”和“倒背如流”这是两个概念。)
1、VC、VB、Delphi …… ,你该学哪个?
具体到编程而言,我要告诉你:任何一种计算机语言,都是计算机科学理论的载体或表现形式。C++很
神吗?Java很酷吗?它们差距很远吗?是的。但从理论的层面上讲,它们没有区别,都是“面向对象”
理论的一个具体形式而已。
现在的程序员们被发行编译软件(通常我们将其称为“系统软件”)的商家不断推出的产品搞得眼花缭
乱,头痛欲裂。不断地跟在新语言后面跑,这条路还没跑到头,那边的“新路”又鸣锣开张了,于是再
跟着跑……渐渐地有些人开始感叹:学海无涯、学无止境,或什么“程序员是青春饭,过了三十别想
干”……
在此我不得不叹息:中国的教育真是一种“形而上学”的教育。早在高中时代我们就学过“辨证唯物主
义”的基本理论:做事情要抓主要矛盾。这一条恐怕谁都知道,却鲜见谁能在实践中把这一理论运用得
“炉火纯青”的。把这一理论运用到编程上来讲就是:
理论是主要矛盾,语言是次要矛盾,学会了理论,再具体到学一种语言时,你只不过是在进行某种消遣
而已。
现在学VC的普遍看不起学VB的或学Delphi的。但如果一个用Delphi的人,在需要写web程序时,用
TCP/IP做了一个构架,嵌入到应用程序中;而另一个用VC的人却只会把一个又一个的组件拖来拉去的做
些个“例子程序”的翻版。你说他们两个谁历害?Delphi和VC谁历害?
真应了这样一段话,问:纽约好还是上海好?答:有钱哪儿都好,没钱哪儿都不好。上海的富人并不比
纽约的富人......
[转帖]10年编程无师自通(2005-11-04 18:31:00)
摘要:10年编程无师自通 原文:Teach Yourself Programming in Ten Years作者:Peter Norvig翻译:郭晓刚(foosleeper@163.net)最后修订日期:2004-3-192005-01-12增加了新的译本链接。本中文译本得到了Peter Norvig的许可。为什么每个人都急不可耐?走进任何一家书店,你会看见《Teach Yourself Java in 7 Days》(7天Java无师自通)的旁边是一长排看不到尽头的类似书籍,它们要教会你Visual Basic、Windows、Internet等等,而只需要几天甚至几小时。我在Amazon.com上进行了如下搜索: pubdate: after 1992 and title: days and (title: learn or title: teach yourself) (出版日期:1992年后 and 书名:天 and (书名:学会 or 书名:无师自通))我一共得到了248个搜索结果。前面的78个是计算机书籍(第79个是《Learn Bengali in 30 days》,30天学会孟加拉语)。我把关键词“days”换成“hours”,得到了非常相似的结果:这次有253本书,头77本是计算机书籍,第78本是《Teach Yourself Grammar and Style in 24 Hours》(24小时学会文法和文体)。头200本书中,有96%是计算机书籍。结论是,要么是人们非常急于学会计算机,要么就是不知道为什么计算机惊人地简单,比任何东西都容易学会。没有一本书是要在几天里教会人们欣赏贝多芬或者量子物理学,甚至怎样给狗打扮。让我们来分析一下像《Learn Pascal in Three Days》(3天学会Pascal)这样的题目到底是什么意思:学会:在3天时间里,你不够时间写一些有意义的程序,并从它们的失败与成功中学习。你不够时间跟一些有经验的程序员一起工作,你不会知道在那样的环境中是什么滋味。简而言之,没有足够的时间让你学到很多东西。所以这些书谈论的只是表面上的精通,而非深入的理解。如Alexander Pope(译注:英国诗人、作家,1688-1744)所言,一知半解是危险的(a little learning is a dangerou......
[转帖]关于学习ASP和编程的28个观点 (2005-11-04 17:56:00)
摘要:关于学习ASP和编程的28个观点1.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点; 2.会用asp,并不说明你会asp; 3.看asp的书,是学不了asp语言的; 4.浮躁的人容易说:asp语言不行了,应该学yy;——是你自己不行了吧!? 5.浮躁的人容易问:我到底该学什么;——别问,学就对了; 6.浮躁的人容易问:asp有钱途吗;——建议你去抢银行; 7.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀! 8.浮躁的人容易问:asp和yy哪个好;——告诉你吧,都好——只要你学就行; 9.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人; 10.把时髦的技术挂在嘴边,还不如把过时的技术记在心里; 11.学习编程最好的方法之一就是阅读源代码; 12.在任何时刻都不要认为自己手中的书已经足够了; 13.看得懂的书,请仔细看;看不懂的书,请硬着头皮看; 14.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍; 15.和别人一起讨论有意义的asp知识点,而不是争吵asp行不行或者yy与zz哪个好; 16.学习编程的秘诀是:编程,编程,再编程; 17.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码; 18.把在书中看到的有意义的例子扩充; 19.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去; 20.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路; 21.就让asp语言的各种平台和开发环境去激烈的竞争吧,我们要以学习asp语言本身为主 22.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的; 23.每学到一个asp难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了; 24.记录下在和别人交流时发现的自己忽视或不理解的知识点; 25.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成version 100. xx; 26.保存好你写过的所有的程序——那是你最好的积累之一; 27.请不要做浮躁的人; 28.请热爱asp!
ps:其實何止asp!任何語言和技術都是如此......
优秀程序员的两大要素:懒 + 笨 (2005-11-04 17:49:00)
摘要:英文原文地址:http://blog.outer-court.com/archive/2005-08-24-n14.html懒 只有懒惰的程序员才会去编写那些可以最终代替自己工作的自动化工具,才不会成天为了实现相似的功能去编写大段大段冗余重复的代码 - 这种代码往往是软件后期维护和重构的天敌。通常来说,由于惰性的驱使所产生出来的工具和程序将最终极大的提高生产开发的速度。当然,对于一个程序员来说,光光具备懒惰这个要素还是不够的。在享受懒惰之前,他必须以最大的热情和最高的效率去研究解放自己的途径,比如:找到最有助于开发的工具,最能体现“一次编写,多次复用”精神的代码架构的设计。只有在这些必要的工作之后,才可能真正享受轻松编程的乐趣。所以“懒”的精髓用一句老话来描述,那就是磨刀不误砍柴功。如果你不想办法磨亮手中的柴刀,就算一天二十四小时都在砍柴,效果也不如拿把锋利的斧头一天只砍一小时。从这个角度来说,Google给员工的20%自由时间是完全发挥了“懒”的能动力。为了更好的享受偷懒的乐趣,员工会更加具有创造力的去高效完成自己的任务。夸张一点来说,懒惰才是人类进步的原动力。笨 这一点似乎比懒更让人不能接受。在解释这里所说的笨的具体含义之前,我们先看看一个聪明人(或者说认为自己足够聪明)会做什么: 1) 停止学习新的东西2) 不愿意用批判的眼光去审视自己的工作 第1点将使我们很难去接受或者主动的去研究一项新的技术 - 即使新技术能带给他更多工作上的便利。第2点会使我们无法清晰的分析自身工作的问题所在,要对其进行改进或者重构就更加困难。从这两点来考虑,作为一个程序员太自以为是不见得是件好事情。由于对自身的过于自信,往往无法客观的看待自己和自己的工作。相反的,笨一点(确切的说,谦逊一点)有时候倒有助于开发的顺利进行。举例来说,当程序出现bug的时候,最好尽早承认问题是出在自己编写的代码上面而不是在于编译器(当然除非是字节高低位编码方式之类的问题,这种问题编译器会是错误的根源之一)。如果你太自负的认为自己的程序没有问题而去猜测可能是编译器或者其他的什么外部因素出问题的话,那么十有八九你会在调试过程中走上一长段的弯路。程序员应该笨一些的更为关键的原因在于,当需要思考问题的最佳解决方案的时候,往往要求我们首先要跳出思维定式。你对系统了解的越多,积累了越多的经验,就越难走出已有的局限,可以......
用JDom轻松整合Java和XML(2005-09-01 15:59:00)
摘要:概述:
Jdom是用Java语言读、写、操作XML的新API函数。Jason Hunter 和 Brett McLaughlin公开发布了它的测试版本。在直觉、简单和高效的前提下,这些API函数被最大限度的优化。在接下来的篇幅里,Hunter 和 McLaughlin介绍怎么用Jdom去读写一个已经存在的XML文档。
Jdom是一个开源的api,它以直接易懂的方式向java程序员描述XML文档和文档的内容。就象名字揭示的那样,Jdom是为java优化的。为使用XML文档提供一个低消耗的方法。Jdom的使用者可以不必掌握太多的XML的知识就可以完成想要的操作。
Jdom可以和已有的XML技术如Simple API for XML (SAX)和 Document Object Model (DOM)相互协作.然而,它并不是简单的从这些api中提取出一些。Jdom从这些已存在的技术中吸收了好的方面,自己建立了一套新的类和接口,用一个Jdom用户的话来说就是:“这些接口是我从一开始阅读org.w3c.dom就期待的”;Jdom可以读入SAX或是DOM的内容,也可以输出SAX或DOM可以接收的格式。这个能力可以使Jdom很好的和已有的用SAX或DOM建立的系统之间整合。
Jdom的原则
第一条并且是最重要的一条就是Jdom的api函数被设计成对java程序员来说是简单易懂的。其他的XML解析函数被设计成语言通用的(支持相同的api函数在java,c++,甚至是javascript中)。Jdom利用了java的优秀的特征,如:方法重载、回收机制,和后台处理等。
为了能够简单易用,这些函数不得不以程序员喜欢的形式来描绘XML文档。例如:程序员想的到的一个元素的文本内容是什么样子的呢?
<element>This is my text content</element>
在一些api中,元素的文本内容仅被当作是一个元素的孩子节点。从技术角度来说,这个设计需要下面的代码才能访问到元素的内容:
String content = element.getFirstChild().getValue();
Jdom用一种更简单易用的方法来取得元素的内容:
String text = element.getText();
Jdom尽可能的减少程序员的......
城市的性别(转载)(2005-09-01 15:51:00)
摘要:From: Kevin Su [kevin_su@huatek.com]
Sent: 2005年8月30日星期二 2:58
To: news.list@huatek.com
Subject: 城市的性别(转载)
1. 姓名:北京
性别:男
职务:班长兼政治课代表
特点:因为是班长,什么都优先,出身好(旧皇城),自己的能力也不错,只是常以权谋
私。现在正策划着2008年开全校运动会。但前几天有点感冒,是一位南方同学给传染的.
2. 姓名:上海
性别:女
职务:副班长、华东小组组长兼外语课代表
特点:能力和条件都比班长强,考试成绩总是全班第一,打扮也很时髦,当副职只
因为她是女的,出身也没班长好(她家解放前是富商),还有点小资,看不起其他同
学。在全校有一定影响力,前不久,亚太级部各班班主任集体到她家去家访,正在筹备
全校博览会。
3. 姓名:天津
性别:女
职务:团支书
特点:因为和北京同桌,所以当了团支书,其实能力也不错,有进步的潜力,只是
坐在北京旁边,锋芒经常被掩盖。
4. 姓名:重庆
性别:男
职务:劳动委员
职务:劳动委员
特点:体格健壮,虽然成绩不是很好,但长得帅,很受欢迎!最近比较忙,因为全
班供电不足,所以正在为全班修水电站。
5. 姓名:哈尔滨
性别:女
职务:化学课代表
特点:皮肤特白,漂亮大方,家里有很多漂亮的冰雕。化学学的好,所以家里开了
不制药厂。
6. 姓名:长春
性别:男
职务:无
特点:学习成绩中等,是个影迷,业余时间喜欢拍电影,虽然没拍出什么精品,但
也是小有名气。
7. 姓名:沈阳
性别:男
职务:东北小组组长兼体育委员
特点:吃苦好学,写作业很认真,只是成绩很一般,可能是学习不得法,体育成绩
优秀,个头不小。
8. 姓名:大连
性别:女
职务:宣传委员
特点:是个球迷,宣传工作做的很好,只是,有时宣传过了头,导致自己认为自己
很牛。和沈阳是同桌,很多男生往他们看,看沈阳块头不小,看大连美兮倩兮。
9. 姓名:济南
性别:男
职务:无
特点:书香门第,每年都来考功名,可惜没本钱总是不被录取,好歹家里有几眼泉
水。
10. 姓名:青岛
性别:女
职务:环境委员
特点:济南同桌,环境保护者,在家里放养了许多......
