高手经历!

Laven 发表于 2005-09-12 02:29:03

   




一些废话:
  每个人在成长的道路上都会遇到这样那样的困难,关键就是看你怎样看待和克服它们。
有人说从事IT行业是世界上最痛苦的行业,特别是从事开发工作的。因为这个行业的技术更新特别的快,三天两头就有新技术新思想新信息,这是你不得不接受的实事。不过我从一个软件开发者(程序员)的角度来纠正一下,计算机这东西从发明发展至今,体系结构的实质上没有什么变化,至少革命性的变化现在还没有发生。只是速度快了些,价格便宜了些,容量大了些而已。现在不断推出的新软件新系统新语言不过是在以前基础上的增强而已,它们统统都是建立在传统体系结构和基础上的。计算机还是CPU+MEMORY+IO,内存里放数据和程序,CPU用于指令运行,程序还是数据结构+算法。我说了这么多废话无非就是想说明这样一个道理,电脑这东西万变不离其中,掌握了基础就掌握了它的大方向,为什么70年代大学里学的计算机教程和现在的教程大多差不多,应为这就是基础,电脑就是这样的,教材没什么革命性的变化。计算机专业的学生还是学那些“数据结构”,“算法原理”,“操作系统原理”,“计算机组成原理”,“数字逻辑”,“编译原理”......当然还有基础的高数,线数,外语等等。
  一些电脑的初学者总爱追逐一些新技术,什么C#,.NET,EJB等等,学了半天,还是没有掌握计算机学习的实质,基础的薄弱导致后劲不足,这些东西还是同样从基础的东西发展起来的,“数据结构”,“算法原理”仍旧是精髓。还有些爱好者总问学什么语言好,其实语言只是编程思想的表达,头脑里数据结构有了,算法有了,逻辑关系有了,语言只是写出来实施而已。各种计算机语言和开发工具现在都趋于大同,什么Delphi,VC,C Builder,java都差不多太多,怎样根据实际情况,用合理的高可用性方案实施一个具体项目才是关键,语言的选择是次要的。为什么有些人学什么语言都快,就是因为他基础扎实,看破了语言这个表面。语言不会是一个程序员的障碍,障碍只是思维方式。我用过不少语言,不过我都觉得差不多,再学新的也会很快,是否采用新的语言,这要根据实际情况而定。
初学者应该怎样学习电脑呢,我推荐一个读书方案,其实都是些大学教材,我觉得基础很重要,从基础开始是绝对唯一的一条路,当然毅力也很重要,这关系到你是否能够自始至终,循序渐进。
  1.很多人不知道计算机是怎样的东西,里面的部件是怎样的运作的,你可以在“计算机组成原理”中找到答案,如果其中一些数字逻辑电路的知识你不太明白,可以参阅“数字逻辑”或者“数字电路”。
  2.汇编语言的学习建立在搞懂“计算机组成原理”的基础上。
  3.任何计算机都有个操作系统,当然操作系统也是一些软件的运行环境,不论是UNIX,LINUX,DOS,WINx,都有很多基础的,共通的理论,你可以在“操作系统原理”中得到。
  4.看到这里,你可以开始编制高级语言的程序了。程序就是数据结构+算法,当然“数据结构”,“算法原理”就成了你这个阶段的主攻方向。
  5.以上的东西就是我提到的基础,其他方面的知识也是很多很多的,可以自行根据需要选择学习。
要提醒的几点是,以上介绍都是有一定逻辑层次,一步一步来,否则要走不少弯路。其次就是基础的学习是枯燥乏味的,可能有些人经受不起太多太多的新东西新软件的诱惑,放弃基础的学习,这样到头来结果还是一样,基础薄弱,学什么东西都是走马观花,不得实质。然后就是根据实际情况选择学习,有些东西并非要搞个透彻,了解即可,不过得要记在心中,具体应用的时候要知道选择,然后在具体研究。最后就是要注重实践,注重个人专研,不要什么东西一不懂就问人。高手都是喜欢自己专研实践,亲自弄懂一个问题会给你自己留下深刻的印象,理解也会更加的透彻。

一些书目的介绍

  学习的过程就是读书+实践的过程。可以说选择书籍也是学习计算机的关键,有些好书就是能相伴一生,对自己的成长道路产生重大的影响。以下书籍都是我成长道路上的良师益友,伴随我度过了很多很多踌躇的时光。很多书都是反反复复看了一遍一遍,对我产生莫大的影响:
  《Windows内核剖析》黄朝明、陈国栋。学苑出版社,94年6月 国内高人编写的Windows 3.1的内核分析,高水平
  《未公开的Windows核心技术(Undocumented Windows英文原名)》Andrew Schulman,David Maxey and Matt Pierek,清华出版,97.4 老外名人名书,主要讲Windows3.1的东东。
  《Windows 95开发技术(Unauthorized Windows 95英文原名)》Andrew Schulman,电子工业部出版社,95.1 又是这个老外,沿袭上一本的风格,讲述Windows 95的秘密。
  《NetWare 3.x深入剖析--服务器内核篇》清华出版,97.4 国内高人研究NetWare的服务器相当的透彻,全部汇编级,这种牛人不知现在在作什么
  《PC系列机系统开发与应用(上)》张戴鸿,北京科海,91.6 一般的书籍,相当于“计算机组成原理”,不过现在来看有些过时了。
  《深入Windows编程》雷军 现在金山的老总,当年的写书风采简直是经典,主要讲Win3.1的东西。这本书曾经是我的最爱,我的Win31的病毒,很多程序,以及毕业设计便是参考此书。 这些书籍在当年的书店都是计算机书中相当贵的,我当时为了买这些书都是狠了几下心的。

别人的一些经验

金蝶中间件公司CTO袁红岗,网上找到的。
  不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。
  1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。   2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。   3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。   4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
  5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
  6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
  7. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。
  8. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99 weat and 1ffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。
    这些是我这几年程序员生涯的一点体会,希望能够给大家有所帮助。
  作者:金蝶中间件公司CTO袁红岗 1995年







2005-03-21 14:49           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价

   坛笑风生   
   
   
   等级:版主
   威望:700
   文章:477
   积分:4873
   门派:叶之族
   注册:2004-12-14
   QQ秀: 偶要登记QQ秀        第 3 楼



1992年,Intel80386已经开始慢慢普及的时候,有个男孩还在COMX-PC前对着书本改着自己的代码,终于调试完了。他拿起录音机把它们连接起了,经过漫长的“吱吱”声,他得意地笑了笑 ,小心地把磁带收起来。那就是我,9年前的我。

   8K内存的COMX渐渐对我没有吸引力了,接着Lease31也没有两个星期。终于能接触到AppelII,第一次体会了什么是操作系统,什么是磁盘操作系统。但是很快这个64K内存的机器失去了吸引力。
   一年后,我终于有了第一台IBM-PC 80286,虽然只有1M的内存、虽然只有一个1.2M的软驱、虽然只有一个12吋的单显,但是它伴我度过了随后的好几年。初学时,用的当然是GWBASIC,在上面我完成了连自己也数不清小程序。我把每个自己的程序小心的收藏起来,作为自己程序生涯的见证。虽然现在我已经找不到任何能使用那种磁盘的机器了,最终还是没有舍得扔掉。一个对一组数据进行排序的算法,上大学后我才知道这叫“冒泡算法”,我的算法竟然与之不谋而合,我不禁开始怀疑自己有编程天赋^_^,同时我才知道自己多无知,一个这么简单的算法我竟然花了两天才想出来,而且这是效率最低的算法。从此我和大多国内程序员一样,开始追求算法,要用尽可能少的代码、尽可能少的占用资源,尽可能最快速的完成运算。到现在我也不知道这到底对不对?

   高中生活,我确实没有太多的上机时间。于是我每次都纸上谈兵的先写好代码,每次上机我都抓紧每一分钟,把每一分钟都安排得满满的。但是每次先写好的代码,录入计算机以后很少能正确运行,大量的上机时间都浪费在调试上了。于是我尽量写规范的代码,大量的注释程序的关键部分,这种习惯一直跟随我到现在,我经常的庆幸自己,没有养成BASIC程序员通有的坏习惯:使用变量不声明。
   三年的时间,我把BASIC练的炉火纯青,以后得很长时间我根本不用看任何关于BASIC的书籍,他的每一函数,我都能说出用法、用途。但是这种语言的局限性也渐渐暴露出来了,结构性太差,程序写得稍微大一点就会被满屏幕的GOTO,GOSUB弄得不知如何下手。






2005-03-21 14:49           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价

   坛笑风生   
   
   
   等级:版主
   威望:700
   文章:477
   积分:4873
   门派:叶之族
   注册:2004-12-14
   QQ秀: 偶要登记QQ秀        第 4 楼




微软研究院院长李开复(一)

今年5月23日,比尔·盖茨先生在《华尔街日报》上撰文,支持和敦促美国政府给予中国永久性正常贸易国待遇。文中,他特别谈到了在清华大学与中国大学生那次对话的愉快经历以及因此而留下的深刻印象。

这篇文章令我不禁想到,在中国的这两年来,我工作中最大的享受也是到国内各高校与学生们进行交流。这些访问和交流使得我有机会与成千上万的青年学生就他们所关心的事业、前途等问题进行面对面的沟通。中国学生的聪明、好学和上进给我留下了非常深刻的印象。

在与这些青年学生的交流过程中,我发现有一些问题是大家都十分关心的。那些已经获得国外大学奖学金的学生,大都希望我谈一谈应该如何度过自己在美国的学习生涯;那些决定留在国内发展的学生,非常关心如何确定一个正确的方向,并以最快的速度在科研和学业方面取得成功;还有那些刚刚踏进大学校门的学生,则希望我能讲给他们一些学习、做人的经验之谈。最近,更有一些学生关心网络信息产业的发展,希望了解美国的大学生是如何创业和致富的。

看到这么多双渴求知识、充满希望的眼睛,我突然产生了一种冲动,那就是给中国的学生们写一封信,将我与同学们在交流过程中产生的一些想法以及我要对中国学生的一些忠告写出来,帮助他们在未来的留学、工作或者创业的过程中能够人格更完美、生活更顺利,事业更成功。

坚守诚信、正直的原则

我在苹果公司工作时,曾有一位刚被我提拔的经理,由于受到下属的批评,非常沮丧地要我再找一个人来接替他。我问他:"你认为你的长处是什么?"他说,"我自信自己是一个非常正直的人。"我告诉他:"当初我提拔你做经理,就是因为你是一个公正无私的人。管理经验和沟通能力是可以在日后工作中学习的,但一颗正直的心是无价的。"我支持他继续干下去,并在管理和沟通技巧方面给予他很多指点和帮助。最终,他不负众望,成为一个出色的管理人才。现在,他已经是一个颇为成功的公司的首席技术官。

与之相反,我曾面试过一位求职者。他在技术、管理方面都相当的出色。但是,在谈论之余,他表示,如果我录取他,他甚至可以把在原来公司工作时的一项发明带过来。随后他似乎觉察到这样说有些不妥,特作声明:那些工作是他在下班之后做的,他的老板并不知道。这一番谈话之后,对于我而言,不论他的能力和工作水平怎样,我都肯定不会录用他。原因是他缺乏最基本的处世准则和最起码的职业道德"诚实"和"讲信用"。如果雇用这样的人,谁能保证他不会在这里工作一段时间后,把在这里的成果也当作所谓"业余之作"而变成向其它公司讨好的"贡品"呢?这说明:一个人品不完善的人是不可能成为一个真正有所作为的人的。

在美国,中国学生的勤奋和优秀是出了名的,曾经一度是美国各名校最欢迎的留学生群体。而最近,却有一些学校和教授声称,他们再也不想招收中国学生了。理由很简单,某些中国学生拿着读博士的奖学金到了美国,可是,一旦找到工作机会,他们就会马上申请离开学校,将自己曾经承诺要完成的学位和研究抛在一边。这种言行不一的做法已经使得美国相当一部分教授对中国学生的诚信产生了怀疑。应该指出,有这种行为的中国学生是少数,然而就是这样的"少数",已经让中国学生的名誉受到了极大的损害。另外,目前美国有很多教授不理会大多数中国学生的推荐信,因为他们知道这些推荐信根本就出自学生自己之手,已无参考性可言。这也是诚信受到损害以后的必然结果。

我在微软研究院也曾碰到过类似的问题。一位来这里实习的学生,有一次出乎意料地报告了一个非常好的研究结果。但是,他做的研究结果别人却无法重复。后来,他的老板才发现,这个学生对实验数据进行了挑选,只留下了那些合乎最佳结果的数据,而舍弃了那些"不太好"的数据。我认为,这个学生永远不可能实现真正意义的学术突破,也不可能成为一名真正合格的研究人员。最后想提的是一些喜欢贪小便宜的人。他们用学校或公司的电话打私人长途、多报销出租车票。也许有人认为,学生以成绩、事业为重,其它细节只是一些小事,随心所欲地做了,也没什么大不了的。然而,就是那些身边的所谓"小事",往往成为一个人塑造人格和积累诚信的关键。一些贪小便宜、耍小聪明的行为只会把自己定性为一个贪图小利、没有出息的人的形象,最终因小失大。对于这些行为,一言以敝之,就是"勿以恶小而为之"。

生活在群体之中

与大多数美国学生比较而言,中国学生的表达能力、沟通能力和团队精神要相对欠缺一些。这也许是由于文化背景和教育体制的不同而造成的。今天,当我们面对一个正在走向高度全球化的社会时,生活在群体之中,做出更好的表现,得到更多的和收获,是尤为重要的。

表达和沟通的能力是非常重要的。不论你做出了怎样优秀的工作,不会表达,无法让更多的人去理解和分享,那就几乎等于白做。所以,在学习阶段,你不可以只生活在一个人的世界中,而应当尽量学会与各阶层的人交往和沟通,主动表达自己对各种事物的看法和意见,甚至在公众集会时发表演讲,锻炼自己的表达能力。

表达能力绝不只是你的"口才"。哈佛大学的Ambady教授最近做过一个非常有趣的实验,他让两组学生分别评估几位教授的授课质量。他把这几位教授的讲课录像带先无声地放两秒钟给一组学生看,得出一套评估结果。然后与那些已经听过这几位教授几个月讲课的学生的结果进行对比,两个小组的结论竟然惊人的相似。这表明,在表达自己思想的过程中,非语言表达方式和语言同样重要,有时作用甚至更加明显。这里所讲的非语言表达方式是指人的仪表、举止、语气、声调和表情等。因为从这些方面,人们可以更直观、更形象地判断你为人、做事的能力,看出你的自信和热情,从而获得十分重要的"第一印象"。

对于一个集体、一个公司、甚至是一个国家,团队精神都是非常关键性的。微软公司在美国以特殊的团队精神著称。象Windows2000这样产品的研发,微软公司有超过3000名开发工程师和测试人员参与,写出了5000万行代码。没有高度统一的团队精神,没有全部参与者的默契与分工合作,这项工程是根本不可能完成的。

相对来说,以前我在别的公司时也曾见到这样的现象。一项工程布置下来,大家明明知道无法完成,但都心照不宣,不告诉老板。因为反正也做不完,大家索性也不努力去做事,却花更多的时间去算计怎么把这项工程的失败怪罪到别人身上去。就是这些人和这样的工作作风几乎把这家公司拖垮。 为了培养团队精神,我建议同学们在读书之余积极参加各种社会团体的工作。在与他人分工合作、分享成果、互助互惠的过程中,你们可以体会团队精神的重要性。

在学习过程中,你千万不要不愿意把好的思路、想法和结果与别人分享,担心别人走到你前面的想法是不健康的,也无助于你的成功。有一句谚语说,"你付出的越多,你得到的越多"。试想,如果你的行为让人觉得"你的是我的,我的还是我的",当你需要帮忙时,你认为别人会来帮助你吗?反之,如果你时常慷慨地帮助别人,那你是不是会得到更多人的回报? 在团队之中,要勇于承认他人的贡献。如果借助了别人的智慧和成果,就应该声明。如果得到了他人的帮助,就应该表示感谢。这也是团队精神的基本体现。


做一个主动的人

三十年前,一个工程师梦寐以求的目标就是进入科技最领先的IBM。那时IBM对人才的定义是一个有专业知识的、埋头苦干的人。斗转星移,事物发展到今天,人们对人才的看法已逐步发生了变化。现在,很多公司所渴求的人才是积极主动、充满热情、灵活自信的人。

作为当代中国的大学生,你应该不再只是被动地等待别人告诉你应该做什么,而是应该主动去了解自己要做什么,并且规划它们,然后全力以赴地去完成。想想今天世界上最成功的那些人,有几个是唯唯诺诺、等人吩咐的人?对待自己的学业和研究项目,你需要以一个母亲对孩子那样的责任心和爱心全力投入不断努力。果真如此,便没有什么目标是不能达到的。 一个积极主动的人还应该虚心听取他人的批评和意见。其实,这也是一种进取心的体现。不能虚心接受别人的批评,并从中汲取教训,就不可能有更大的进步。比尔·盖茨曾经对公司所有员工说过:"客户的批评比赚钱更重要。从客户的批评中,我们可以更好地汲取失败的教训,将它转化为成功的动力。"

除了虚心接受别人的批评,你还应该努力寻找一位你特别尊敬的良师。这位良师应该是直接教导你的老师以外的人,这样的人更能客观地给你一些忠告。这位良师除了可以在学识上教导你之外,还可以在其它一些方面对你有所指点,包括为人处世,看问题的眼光,应对突发事件的技能等等。我以前在苹果公司负责一个研究部门时,就曾有幸找到这样一位良师。当时,他是负责苹果公司全球运作和生产业务的高级副总裁,他在事业发展方面给我的许多教诲令我终身受益。如果有这样的人给你帮助,那你成长的速度一定会比别人更快一些。 中国学生大多比较含蓄、害羞,不太习惯做自我推销。但是,要想把握住转瞬即逝的机会,就必须学会说服他人、向别人推销自己或自己的观点。在说服他人之前,要先说服自己。你的激情加上才智往往折射出你的潜力,这就是人们常说的化学反应。一般来说,一个好的自我推销策略可以令事情的发展锦上添花。

例如,有一次我收到了一份很特殊的求职申请书。不同于已往大多数求职者,这位申请人的求职资料中包括了他的自我介绍、他对微软研究院的向往、以及他为什么认为自己是合适的人选,此外还有他已经发表的论文、老师的推荐信和他希望来微软作的课题等。尽管他毕业的学校不是中国最有名的学校,但他的自我推销奏效了。我从这些文件中看到了他的热情和认真。在我面试他时,他又递交了一份更充分的个人资料。最后,当我问他有没有问题要问我时,他反问我,:"你对我还有没有任何的保留?"当时,我的确对他能否进入新的研究领域有疑虑,于是就进一步问了他一些这方面的问题。他举出了两个很有说服力的例子。最后,我们雇用了这名应聘者。他现在做得非常出色。

挑战自我、开发自身潜力

我在苹果公司工作的时候,有一天,老板突然问我什么时候可以接替他的工作?我非常吃惊,表示自己缺乏象他那样的管理经验和能力。但是他却说,这些经验是可以培养和积累的,而且他希望我在两年之后就可以做到。有了这样的提示和鼓励,我开始有意识地加强自己在这方面的学习和实践。果然,我真的在两年之后接替了他的工作。我个人认为:一个人的领导素质对于他将来的治学、经商或从政都是十分重要的。在任何时候、任何环境里,我们都应该有意识地培养自己的领导才能。同时,我建议你给自己一些机会展示这方面的能力,或许象我一样,你会惊讶自己在这一方面的潜力远远超过了想象中那样。 给自己设定目标是一件十分重要的事情。目标设定过高固然不切实际,但是目标千万不可定得太低。在二十一世纪,竞争已经没有疆界,你应该放开思维,站在一个更高的起点,给自己设定一个更具挑战性的标准,才会有准确的努力方向和广阔的前景,切不可做"井底之蛙"。另外,只在一所学校取得好成绩、好名次就认为自己已经功成名就是可笑的,要知道,山外有山,人上有人,而且,不同地方的衡量标准又不一样。所以,在订立目标方面,千万不要有"宁为鸡首,不为牛后"的思想。








2005-03-21 14:51           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价

   坛笑风生   
   
   
   等级:版主
   威望:700
   文章:477
   积分:4873
   门派:叶之族
   注册:2004-12-14
   QQ秀: 偶要登记QQ秀        第 5 楼




微软研究院院长李开复(二)

一个一流的人与一个一般的人在一般问题上的表现可能一样,但是在一流问题上的表现则会有天壤之别。美国著名作家威廉·福克纳说过:"不要竭尽全力去和你的同僚竞争。你更应该在乎的是:你要比现在的你更强。"你应该永远给自己设立一些很具挑战性、但并非不可及的目标。

在确立将来事业的目标时,不要忘了扪心自问:"这是不是我最热爱的专业?我是否愿意全力投入?"我希望你们能够对自己选择所从事的工作充满激情和想象力,对前进途中可能出现的各种艰难险阻无所畏惧。谈到对工作的热爱,我认识的一位微软的研究员曾经让我深有感触。他经常周末开车出门说去见"女朋友",后来,一次偶然机会我在办公室里看见他,问他"女朋友在哪里?"他笑着指着电脑说:"就是她呀。"对于工作的热爱,比尔·盖茨也曾有过非常精彩的阐述,他说:"每天早晨醒来,一想到所从事的工作和所开发的技术将会给人类生活带来的巨大影响和变化,我就会无比兴奋和激动。"

几个月前,《北京青年报》上曾有一场探讨比尔·盖茨和保尔·柯察金谁更伟大的讨论。由于从小在美国长大,我并不知道保尔和他的那些事迹。但是,我非常赞同保尔的这段名言:"人最宝贵的东西是生命,生命属于我们只有一次。人的一生应当这样度过,当他回首往事的时候,不因虚度年华而悔恨,也不因碌碌无为而羞耻……"所以,选择一个你真心热爱的事业,不断地挑战自我、完善自我,让自己的一生过得精彩和充实。 客观、直接了当的沟通

有一次,一位中国的大学教授找到我,希望我帮他找一位国外的专家在他组织的会议上去作主题演讲,末了还特意加了一句,最好是一个洋人。我很不以为然地对他说:"这个领域最具权威的人士就是在北京的一个中国人,为什么你一定要找一位洋人呢?"他表面上同意我的说法,但是他仍然请了一个美国人来作这个演讲,结果效果很差。所以,我们不应该陷入盲目的崇洋情结。我们应该用客观的眼光来判断事物,而不是以他的肤色或他的居住地来决定。

有一句话说,"真理总是掌握在少数人手中"。我们理解这句话的意思,应该有自己的眼光,有独立思考的能力,不一定大多数人认可的,或某个权威说的,就是对的。不论是作学问、搞研究还是经商,我们都不能盲从,要多想几个为什么。

有了客观的意见,你就应该直接了当地表达。如果做任何事情都象"打太极拳",会让人不知所云,也会造成很多误会。有一次,在微软研究院工作的一位研究人员就自己所选择的研究方向来征求我的意见,我作了一番分析,认为这个方向有不少问题,我个人认为对学术界的贡献不大,但如果他坚持,我愿意支持他试着去做。结果他认为我这句话的意思实际上就是不允许他去做,所以他就选择了其它的方向。后来他要出差时,负责行政事务的人告诉他,你可以选择坐火车或者坐飞机。他认为行政人员实际上是在暗示他坐火车,因为坐飞机太贵。其实,他的猜测都是错误的。因为我们的沟通方式是直接了当,而他却在"打太极拳"。这之后,我们通过一系列的公司文化讲座,让员工们了解到:心里想什么就讲什么,不要把简单的问题复杂化。现在,研究院里这类的误会少了很多。

拐弯抹角,言不由衷,结果浪费了大家的宝贵时间。瞻前顾后,生怕说错话,结果是变成谨小慎微的懦夫。更糟糕的是还有些人,当面不说,背后乱讲,这样对他人和自己都毫无益处,最后只能是破坏了集体的团结。这样的人和作风既不能面对社会,也不可能在科学研究中走出新路,更不可能在激烈的商战中脱颖而出。 希望同学们能够做到开诚布公,敢于说"不",这才是尊重自己思想意愿的表现。当然,在表达你的意见时,无论反对和批评都应是建设性的,有高度诚意的,而不是为批评而批评,为辩论而批评。我赞成的方式是提供建设性的正面的意见。在开始讨论问题时,任何人先不要拒人千里之外,大家把想法都摆在桌面上,充分体现个人的观点,这样才会有一个容纳大部分人意见的结论。当然,你也要学习用适当的方法和口气表达你的意见,比如说不要在很多人面前让别人难堪。这样,你的批评才会奏效。

珍惜校园学习生活

几天前,报纸上登出一条消息,说有中学生辍学去开网络公司。我认为这并不值得提倡。对绝大多数学生来讲,在校生活是系统地学习基础理论知识,学习思考和解决问题方式的好机会。这些知识将成为你未来发展过程中所需要的最基本的知识和技能。就象建一栋高楼,如果不打好基础是经不起风吹雨打的。

在全球范围内,美国的研究水平无疑是世界一流的。而除了美国之外,你会发现英国的研究水平也是相当突出的。究其原因,其实就是语言问题。英国人可以毫无阻碍地阅读美国乃至全球各种最新的英文研究报告和资料。这对于他们把握研究方向,跟踪最新进展,发表研究成果都有很大的帮助。因此,英语学习对于我们振作研究的人来说,也是相当重要的。只有加强这方面素质的培养,才能适应将来的发展。我建议:学英语先学听说,再学读写,而且务必在大学阶段完全解决英语学习的问题。等到年龄大了,要付出的代价相比就会大得多。

除了英语之外,数学、统计学对理工科学生也是很重要的基础课程,是不可忽视的。数学是人类几千年的智慧结晶,你们一定要用心把它学好,不能敷衍了事。我今天就很后悔自己当初没有花更多功夫把数学学得更好些。另外,计算机应用、算法和编程也都是每一个工科学生应该熟悉和掌握的,它们是将来人人必须会用的工具。

科技的发展可谓日新月异。在校学习的目的,其实就是掌握最基本的学习工具和方法。将来利用这些工具和方法,再去学习新的东西。比如:上课学会了C++,能否自己学会Java?上课学会了HTML,能否自己学会XML?与其说上大学是为了学一门专业,不如说是为了学会如何学习,让自己能够"无师自通"。

大学毕业后的前两年,同学们聚到一起,发现变化都还不算大。五年后再聚到一起,变化就大多了。一些人落伍了,因为他们不再学习,不再能够掌握新的东西,自然而然地落在了社会发展的后面。如果我们要在这个竞争激烈的社会中永不落伍,那就得永远学习。

我的老板-RickRashid博士是目前微软公司主管研究的高级副总裁,他已经功成名就,却始终保持着一颗学习和进取的心。现在,他每年仍然编写大约50,000行程序。他认为:用最新的技术编程可以使他保持对计算机最前沿技术的敏感,使自己能够不断进步。今天,有些博士生带着低年级的本科生和硕士生做项目,就自满地认为自己已经没有必要再编程了。其实,这样的做法是很不明智的。

每次到清华和其它学校访问,被问到最多的就是学生打工的问题。我认为,打工从总体来说对学生是一件好事,是拓宽视野的一种方式。例如:在研究机构打工,可以学到最新的科技;在产品部门打工,可以学到开发的技术和技能;在市场部门打工,可以理解商业的运作。我认为每一个学生都应该有打工的经验,但不要打一些"没用的工"。首先要明白打工只是学生生活中的一种补充,学习才是最重要的。打工的目的是开阔眼界,不是提前上班。如果你把翻译书本、录入数据库所花的时间投入学习,将来可以赚更多的钱。那些钱将远远超出目前打工的收入。此外,还有一些学生受到目前退学创业的鼓励,为成为中国的比尔·盖茨和迈克尔·戴尔而中途辍学。以我的观点,除了十分特殊的情况,我不建议在校学生退学创业。你所看到的那些退学创业的成功者实际上少之又少。目前,大部分学生虽有创业的想法,但缺少创业的经验,所以失败的可能性非常大。如果要成功,我建议你们先把书读好。如果是要学习创业的经验,你完全可以利用假期的时间先去一间公司边打工边学。比尔·盖茨也曾说过,"如果你正在考虑自己成立一家新公司,你应该首先明确地知道:创办公司需要巨大的精力投入,要冒巨大的风险。我觉得你们不必象我,一开始就创办一家公司。你应该考虑加盟其他公司并在这家公司中学习他们的工作、创业方法。"

你想戴一顶什么样的博士帽

在我进入卡内基梅隆大学攻读计算机博士学位时,系主任曾对我讲,当你拿到你的博士学位时,你应该成为你所从事的研究领域里世界第一的专家。这句话对于初出茅庐的我来说简直高不可攀,但也让我踌躇满志、跃跃欲试。就这样,在经过五年寒窗、夜以继日的努力工作后,他所期待的结果就那么自然而然地出现了。一个打算攻读博士学位的人,就应该给自己树立一个很高的目标。如果没有雄心壮志,就千万不要自欺欺人,也许经商或从事其它工作,会有更大的成绩。在目标确立之后,我建议你为自己设计一个三年的学习和科研计划。首先,你需要彻底地了解在相关领域他人已有的工作和成绩。然后再提出自己的想法和见解,做脚踏实地的工作。另外,还要不断跟踪这个领域的最新研究进展。只有这样,才可以把握好方向,避免重复性工作,把精力集中在最有价值的研究方向上。 在学术界,人们普遍认为"名师出高徒"。可见导师在你的成长道路中作用是多么的大。所以,你应该主动去寻找自己所研究的领域里最好的老师。除了你的老师之外,你还应该去求教于周围所有的专家。更不要忘了常去求教"最博学的老师"-Internet!现在,几乎所有的论文、研究结果、先进想法都可以在网上找到。我还鼓励你直接发电子邮件去咨询一些世界公认的专家和教授。以我的经验,对于这样的邮件,他们中的大部分都会很快给你回复。

我在攻读博士学位时,每周工作七天,每天工作16个小时,大量的统计结果和分析报告几乎让我崩溃。那时,同领域其他研究人员采用的是与我不同的传统方法。我的老师虽然支持我,但并不认可我的研究方向。我也曾不止一次地怀疑自己的所作所为是否真的能够成功。但终于有一天,在半夜三点时做出的一个结果让我感受到了成功的滋味。后来,研究有了突飞猛进的进展,导师也开始采用我的研究方法。我的博士论文使我的研究成为自然语言研究方面当时最有影响力的工作之一。读博士不是一件轻松的事,切忌浮躁的情绪,而要一步一个脚印,扎扎实实地工作。也不可受一些稍纵即逝的名利的诱惑,而要200%的投入。也许你会疲劳,会懊悔,会迷失方向,但是要记住,你所期待的成功和突破也正孕育其中。那种一切都很顺利,谁都可以得到的工作和结果,我相信研究价值一定不高。

从一定意义上讲,一个人如果打算一辈子从事研究工作,那么从他在读博士学位期间所形成的做事习惯、研究方法和思维方式基本上就可以判断出他未来工作的轮廓。所以,你一定要做一个"有心人",充分利用在校的时间,为自己的将来打好基础。

上述一些观点,是我在与同学们交往过程中的一些感受。我希望这些建议和想法能对正在未来之路上跋涉的你们有所启发,能对你们目前的学习有所帮助。或许因为观点不同、人各有志,或许因为忠言逆耳,这封信可能无法为每一位同学所接受。但是只要一百位阅读这封信的同学中有一位从中受益,这封信就已经比我所作的任何研究都更有价值。我真诚地希望,在新的世纪,中国学生无论是在国内,还是国外;无论是做研究,还是经商,都显得更成熟一些,成功的机率更大一些。







2005-03-21 14:52           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价

   坛笑风生   
   
   
   等级:版主
   威望:700
   文章:477
   积分:4873
   门派:叶之族
   注册:2004-12-14
   QQ秀: 偶要登记QQ秀        第 6 楼




程序英雄今安在??

对于年轻的中国软件行业来说,如果从1984年CCDOS的出现算起,中国软件的历史也就只有十几年的时间。在这十几年中,国内出现了一批批才华横溢、朝气蓬勃的软件开发者,他们是撑起中国软件产业的脊梁,这些人有的默默无闻,有的一闪即逝,有的是长青树,有的是生力军,他们开发的产品和他们的名字,永远都会留在中国软件产业发展史上。这里介绍的是几位当年名闻全国的程序英雄,他们今天还好吗?
  吴晓军——心还不老

  采访晓军,是通过E-mail进行的,一封简短的信发出之后,第二天就有了回音,详细谈了近况,末了还附一句特别的话:“今天是我51岁生日,也是法国国庆日,庆祝法国夺得世界杯冠军。”
  在编程的朋友中,晓军是年龄最大的一个,记得他给我讲的第一件事就让我震惊,2.13汉字系统是他用Debug一句一句写成的,这意味着人与计算机之间的沟通采用的是最直接的方式,需要记住计算机每个寄存器里的数据。在我的记忆里,还有一个能和他相提并论的人是求伯君,WPS是汇编语言写成的,而且都是相当大的软件。
  晓军1983年就开始玩电脑,那时这还是新鲜玩意儿,琢磨汉字问题也就是从那时开始。1985年有了PC/XT机,晓军开发出了2.11版,两个月后,增强版本2.12诞生,到了1986年中,2.13汉字系统开发成功,后面的2.13A、C、D、E、F、H等各个版本也就为广大用户所熟知了。
  作为解决中文信息处理的元老级产品,2.13汉字系统和晓军公司同样著名,走过了曾经辉煌的一段,但由于经营思路的差异,晓军与合伙人的合作越来越艰难,1996年初,晓军让出了公司法人的位置,出现了“晓军公司无晓军”的现象,其后晓军公司被科利华公司收购之事,与吴晓军也没有什么直接的关系。
  晓军是从原电子部六所出来的,整整七年之后,晓军又回到了六所,现在他是彩虹集团北京华胜计算机有限公司微机事业部总工程师。在问到他今后的打算时,他没有发表更多的宏论,只是说在考虑今后的发展方向,总结一下是必要的,历史也会成为财富。   鲍岳桥&简晶——寻求改变

  同鲍岳桥、简晶相互认识的时间很长,但彼此熟识的时间并不长,不为别的,只因为我们曾经是竞争对手。在DOS中文平台最为火热的那几年,我在怡江公司打工,而鲍岳桥是UCDOS的开发者,简晶则是“中国龙”的开发者,竞争的产品在市场上免不了要比一比、拼一拼,到了最后,UCDOS、超想、天汇、中国龙等几家采用“直接写屏技术”的汉字系统中,只有UCDOS硕果仅存,是至今唯一还在销售的DOS中文平台软件,可见其生命力之长久。
  鲍岳桥,1989年杭州大学数学系毕业,曾任北京希望集团总工程师,获得过中国科学院授予的“青年科学家”称号,是UCDOS 3.0~UCDOS/WIN7.0的主要开发者,多年的开发经验使他较一般程序员有了更多的经历,因为开发中文平台软件与开发普通应用软件不同,需要更多的技术和更全面的考虑。
  简晶曾是昆明明星电脑公司的主要人员,作为“中国龙”设计者,他一度成为DOS中文平台软件领域颇为知名的软件开发者。1995年,简晶离开了明星电脑公司,出任北京希望集团副总工程师,继续开发UCDOS SDK for C/C++等,并和鲍岳桥等人合作开发UCDOS 7.0和UCWIN Gold 1.0。
  1998年春节前,鲍岳桥、简晶等离开了希望公司,几个人开办了属于自己的一家公司——北京联众电脑技术有限责任公司,想干出一番属于自己的事业。
  在发展方向上,他们选择了Internet作为新的突破口,准备抓住Internet今后发展的两大热点,一是网络搜索,二是网上娱乐。网络搜索造就了“雅虎”、“搜狐”等著名的站点;而联众则从网上娱乐入手,目前已正式开通了“联众网络游戏世界”站点(www.globallink.cn.net),提供多种网络游戏。
  在他们看来,Internet为程序开发人员提供了无穷无尽的机会,就“联众网络游戏世界”而言,鲍岳桥、简晶的目标就是——要建设一个全世界最大的中国人自己的娱乐和游戏站点。   陈江宁——不甘寂寞

  陈江宁的名字,永远和天汇标准汉字系统连在一起,因为他是天汇3.0的主要开发者,特别是天汇3.1袖珍版,两百多K的程序就把汉字系统最主要的功能都实现了,成了网虫们人手一份的必备软件,这也给陈江宁带来了不小的名声。
  陈江宁是个工作狂,用“疯狂”这种很刺激的形容词来形容他并不过分,也许是开发人员共同的特征,昼伏夜出已成为习惯,他这种习惯甚至影响到了我(笔者曾是陈江宁同事)。
  今天的陈江宁是航天金穗公司的副总工程师,BBS和Internet上流传的是他写的汉字系统,但他本人却干起了与汉字系统没有太大关系的税务系统软件的开发,每天的劳作依旧,只是少了那种激烈的市场竞争,少了那种痛快淋漓的争论。
  当我们谈起中文系统软件,谈起未来时,可以明显地感觉到陈江宁非常关注软件市场的发展,特别是中文平台软件的发展。在问及他以后还有什么新的打算时,他说有几个方向是他最为关注的,一是围绕中文化的软件开发,这其中涵盖了网络的中文应用,小巧而实用的工具软件是其中的一个开发方向;二是中文应用软件的开发,这类产品不一定很大,但应当是很精致,切实解决电脑使用中存在的问题。
  作为一个程序员,最高兴的是看到自己的劳动得到了别人的承认,在这一点上陈江宁得到了,至于今后还能否做到,则要看他自己的了。

  雷军——不再编程

  雷军现在是北京金山软件公司的总经理,在软件圈也算是个名人,整天忙来忙去,要想抓到他不容易。与国内很多软件公司一样,领导人多数是技术人员出身,雷军也是个编程的高手。
  毕业于武汉大学的雷军在大学里就是个出名的电脑迷,据他自己讲,在大学期间他从没缺过钱,因为帮别人干点活就会挣到不少钱,也正是因为如此,他更加迷上了编程,而且越玩越出花样。在软件圈,当年的“黄玫瑰小组”非常有名,雷军就是其中的主力,国内几个著名的加密软件之一——BITLOK就出自雷军之手,还有当时几乎人手一份的小工具软件如RI等等,都是雷军他们这个小组开发的。
  自此之后,雷军加盟金山公司。
  今天,作为北京金山公司的统帅人物,雷军发现自己越来越没有时间坐在电脑前编程序,用电脑最多的时候是在新产品上市之前,这个阶段的测试工作是最为繁重的,公司里每个人都会参加测试,而雷军是最主要的测试人员,因为他对软件太熟悉了。
  雷军现在满脑袋里装的都是如何让公司更好地运转,出更多的产品,没时间再去编写程序。他已经由一个技术人员蜕变成一管理者,一个懂得如何经营、如何管理、如何预测市场、如何辨别软件质量的人。
  作为一个朋友,也作为以前的同事(注:笔者曾为北京金山副总经理),我深信雷军依然还想编程,至少在电脑前认认真真地与盗版者斗法,远比在商场中的拼搏要来得轻松些。

  周志农——崇尚自然

  周志农有自己的公司,还有自己的BBS站,公司叫大自然软件有限责任公司,BBS站叫大自然站,都与自然有关,当然周志农最出名的还是他的输入法——自然码。
  1989年,周志农用汇编语言写了一个输入法,这就是自然码,当时开发的输入法没有版本号,所以自然码没有1.0版,正式的版本号是从2.0开始的。其后的3.0、3.1、4.0、4.1、5.0、5.2、5.61版,都是在此基础上发展而来,当然这些版本都是基于DOS的版本,包括授权UCDOS的。
  自然码6.0版是采用C++语言编写的一个版本,在这个基础上,又不断地加以改进为6.0A、6.0A+、6.0B,马上要推出的是6.0B+版,是自然码的最新版本,相信很多人在盼着这个版本的出现,毕竟是那句中国的老话:习惯成自然。
  打电话给周志农,想了解一下他最近都在干什么,短短的几句话,让周志农谈起了自然码,也谈起了超想汉字系统。1986年,周志农自己开发了一套汉字系统MECCDOS,经过多年的改造,这套汉字系统已相当成熟,后来将另外一部分表格识别技术与MECCDOS进行整合,于1992年完成了超想汉字系统的开发,在当时的中文平台软件中占据了一席之地,其中表格自动识别的技术特色吸引了很多消费者的注意,经过几年的变迁,超想公司经历了许多波折,周志农开始专心地研究自己的自然码,对于超想汉字系统,周志农为此伤了不少心,也不打算再做下去了。
  在谈到近况时,周志农非常坦率地说自己在改程序,而不能说是在做程序。在他看来,自然码尽管经过多年的开发,依然还有很多不完善的地方,很多用户已经习惯了这种输入方式,也提出了大量的改进意见,所以主要的精力都投在了进一步完善自然码上。
  对于自然码今后的发展,周志农谈到了一些想法,原来的自然码只是一种汉字输入方案,现在希望能够开发成为一个汉字输入平台,即提供多方案的汉字输入技术,既照顾到老用户的使用习惯,又不断创新,使汉字输入方便快捷。
  在我与周志农的交往过程中,我自始至终都觉得他不是一个商人,也不是最好的程序员,而是一直在努力追求着一些东西,一些与众不同的追求,也许那就是“自然”。
  令人遗憾的是,还有许许多多著名的程序英雄没有在这篇文章中出现,这其中有求伯君、廖恒毅、王志东、王江民、朱崇君等等为人们熟知的人,由于时间和文章篇幅的关系,在这里就不再一一介绍。不过,可以告诉大家的是,他们过得都很好。








2005-03-21 14:54           


举报帖子
删除单贴
复制贴子
加为精华
单贴屏蔽
帖子评价

   坛笑风生   
   
   
   等级:版主
   威望:700
   文章:477
   积分:4873
   门派:叶之族
   注册:2004-12-14
   QQ秀: 偶要登记QQ秀        第 7 楼



一个还不太老的程序员的体会
(初稿)

软件以程序员为本(《程序员》)

谨以此文献给所有想当程序员的朋友

(一) 文章由来及个人经历

我是一名计算机专业的本科毕业生,毕业已经1年多了。毕业后从事的是软件编程工作,经常有其他专业的朋友想从事软件编程工作,向我请教如何,因为我自觉涉行不深,不敢信口开河,无奈朋友信任,我不得不郑重考虑一下这个问题了,来帮助朋友选择和回报朋友的信任。

这也就是此文的由来。

还是先谈谈我个人的经历吧。(是不是有点俗套,但我觉得了解我的经历,有助于理解我话的含义;我一向认为不了解古龙的生活经历的,不会真正读懂古龙的作品和古龙笔下的英雄的)我本科就读于南方一所著名的高校(因为自己的不成气,愧谈母校名谓),学的就是计算机专业。上本科时,几乎没有认真的听完一门专业课程,上课看报纸睡大觉,下课看录像看小说看球赛,临考抱佛脚,每次考试和课程设计都是蒙混过关。(于之相对是,我选修的工商管理和经济贸易方面的课到是听得不亦乐乎,考的分数颇高,也许这才是我的真正兴趣所在。)

总而言之,大学是混过来了,对专业的理解和掌握程度,应该没有达到毕业要求的合格水平。(也很后悔,但是有什么用呢,当时不知道珍惜;如果上天再给我一次机会的话,我一定会抓住,多看点美国大片少看点港片;现在,重回校园是我的一大理想)但是大学的学习使我有了一个简单的知识框架(总算学费没白交),我对一个朋友这样形容过我的这个知识框架,“它不是钢筋铸的,是稻草扎的”,哈哈哈,不要笑,真的,我敢说很多本科毕业的朋友的本专业的知识框架也只不过是“稻草扎的”。直到现在,我一直觉得自己的基础知识还是很薄弱,一直想抓点时间,把基础书本好好的温习一下。(此项任务正在计划和实施中)

毕业后,分配到某研究所工作。当领导让我选择自己以后的工作方向时,我毫不犹豫的选择了软件(也不知道到底是对还是错,但我决不后悔)。此研究所主要是以硬件为核心搞通信控制设备的研发生产;软件是辅助,所以也不受什么重视,很多搞软件的人都跳槽走了,留下来的大都是一些已经废掉和行将废掉的“伪/萎”程序员(名副其实的“软件人员”)。在这里感觉不到什么高紧张和高技术程度的研究和开发;软件开发的技术含量极低,以致于大部分人只有半年的学习和开发经验,以后都是这些知识和经验的重复利用。(我问过其他到研究所工作的同学,他们说都一样,呜呼,我们的国防科研开发呀)对于软件的开发,领导的意志和老掉牙的经验在新课题的技术采用和开发中起了决定性作用,没有明确的需求,没有明确的开发计划和进度,大家在一天一天一周一周的浪费着宝贵的时间,最后开发出来的东西修来改去,直至它变成垃圾。 我越来越认识到一点,要么象那些废人一样废掉,要么自己去努力寻求出路,反正别指望从工作中得到什么高明的经验了(教训倒也许有)。期间发生了一些感情上的纠纷,严重的影响了学习计划和效果,直到现在浮躁的心仍然有些浮躁。

期间,我读了一些书,看了一些文章,编过一些小例程,搞了一些没有什么技术含量的开发工作,也和一些前辈和高手们谈过聊过。 我一直在思考几个问题;如何学习软件开发?如何搞软件开发,国外的软件开发到底其秘诀在何处?为何我们的软件业一直在低水平徘徊?我们难道真的离了Microsoft就活不了?我们的程序员到底在浪费时间干些什么?软件开发到底是如何分类的?我们如何走自己的民族软件之路?

我想了很久,一些想通了,一些还在想。但我知道有一点是肯定的,那就是我们一定要靠我们自己走出自己的软件之路!跟在别人屁股后面永远受制于人!

好了,关于经历和牢骚就先写这些吧,该进入我们的正题了。


(二) 你适合当程序员吗,你知道编程序是怎么回事吗?


1、 程序员意味着要编程序。(如果你仅仅想得到一份高薪水的工作,喝喝咖啡就等老板发薪水,我奉劝你还是另找一份更合适的工作,譬如练摊,真的,兄弟,这份工作不适合你)

2、你是学文的还是学理的,编程序也许需要浪漫,但更需要逻辑和严谨。(说坦白点就是,在你没有找到乐趣以前,它很枯燥)

3、你有对新技术追求的热情吗?你有刨根问底的探索精神吗?(热情绝对是最重要的!你仔细思考一下自己的性格适合当程序员吗?)

4、当程序员决不是什么好差事,时刻需要学习,需要思考。(直到你成为那个可以引导别人去学习和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)

5、程序员的未来很迷茫。(但我认为关键看你自己!我希望你是一个有追求的人,不仅仅是混碗饭吃。因为真正的乐趣在于创造;如果你能改变软件业的历史,那才是英雄;不想成为Bill Gates,不想成为Dennis Ritchie和 Bjarne Stroustrup,我会说你没有追求。有个关于程序员未来的笑话,也许你还没听过,你该听一听,摘抄如下:

一个程序员对自己的未来很迷茫,于是去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Lippman,他现在领导的程序员的队伍可能是地球上最大的”
于是他去问Lippman。
Lippman说“程序员的未来就是驾驭程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Gates,他现在所拥有的财产可能是地球上最多的”
于是他去问Gates。
Gates说“程序员的未来就是榨取程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问侯捷,他写的计算机书的读者可能是地球上最多的”
于是他去问侯捷。
侯捷说“程序员的未来就是诱惑程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝摇摇头“唉,我的孩子,你还是别当程序员了”)

6、当程序员还是很有乐趣的。(当你学到新知识时,当你有新的思想见解时,当你有新的产品问世时,和知己探讨你的成果时…我问你,觉得这些是乐趣吗?)

7、当程序员不易也不难。(世间事有难易乎?为之…;不为…。你有决心和信心吗?)

8、你真的要当程序员?是你自己的想法?

9、你舍得花钱买书吗?(读好书绝对是学习编程的最佳捷径。你一定会说,现在电脑书籍真他XX的贵,没法子,谁让知识和技术在人家的脑袋,在人家的书里呢;等你写书时可以把价格定低一点,记着还有好多没钱但想买书的兄弟很困难呀。要舍得买书,买好书,不好的的书不如不读,其害大于其益,关于买什么书,你可以问高手或看候捷的书评;准备一个小本子记录你想买的书的名字,逛书店时看看,如果好就买下,记住要读,别光买不看。) 10、我告诉你,程序就是:任何有目的的、预想好的动作序列,它是一种软件。

11、编程序就是编写程序。

12、你想好了吗?(如果你想好了还是决定要当程序员,可以继续往下读;否则,你可以继续寻找别的出路了。)

(三) 一个程序员应该具备的基础知识和概念

1、计算机是有什么组成的,CPU是什么东西,其工作原理是什么。(对于这些以及下面将要提到的概念我不会告诉你什么答案,你可以看相应的教材,关于教材我会在下一部分详述,记住理解最重要!)

2、机器语言和微指令集的概念。

3、程序的概念。

4、汇编语言是低级语言但不是机器语言。

5、高级语言主要有那些?(C,C++,Basic,Pascal,Fortran,C#,Java等等;如果你是中国软件业的英雄,你也写一门语言,最好不用英语) 6、编译程序和解释程序的概念和其原理。(编译器是高手和专家编写的)

7、HTML、XML等是标识性语言。

8、Prolog是人工智能语言。

9、操作系统OS的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,还有一些实时OS,嵌入OS,编这些的绝对是高手)

10、Windows编程说白了就是Windows API的调用。(中国的程序员很多只是会编windows程序,用的是VB,我的建议是这些程序员顶多只是低级编码员,我称其是coder)

11、VC++、VB、BC、BCB、Delphi、VF等都只是编程的工具和环境,不是编程语言。

12、面向结构的设计概念。

13、面向对象的概念。(好好理解,兄弟,这个东西还是很重要的)

14、软件工程的概念和原理。(如果你想当老总就需要好好研究了,系统分析员比编码员要高一个等级,薪水也高哟)

15、数据库的概念。(要熟悉一些著名的数据库系统和语言的名字,如Orcle,SQL,DB2,DyBase等)

16、了解网络概念。

17、了解多媒体概念。

18、熟悉和掌握数据结构和基本算法。

19、是不是要求太高了,别着急慢慢来,进步在不知不觉之中。(一旦开始学习,一个月以后你就会有一个基本的概念;两个月以后你就会感觉自己有了全面的基础知识;当你知道编程序是怎么回事时,说明你已经入门了。也有很多人编了很多年程序还没有入门呢,你不会希望自己步其后尘吧。要有信心和耐心。沉不住气怎么能成大事?!)

(四) 教材推荐

――-推荐的教材主要还是针对概念来的,最好选用名校的教学用书。

1、《计算机组成原理》(熟悉)

2、《数据结构》(掌握)

3、《操作系统》(了解->熟悉)

4、《The C language》(掌握)

5、《编译原理》(了解原理)

6、《汇编语言》(了解)

7、《计算机网络》(了解)

8、《软件工程》(了解)

9、《关系数据库》(熟悉)

10、《The C++Languege 》(掌握)

11、《面向对象设计》(掌握;结合C++学习)


(五)一些经验和体会

1、真正的程序员用C++;(一位专家说的)

2、动手去编程序;

3、动脑去思考;

4、要有良好的编程风格;

5、读书,读好书,尽量读原版书!(我反复强调这一点,读书要有选择,坚持读好书,名家出的经典书,不要浪费实践在一些粗制滥造的书上面;坚持博览群书)

6、有自己的学习计划;

7、总结自己的经验教训;(准备一个笔记本,记录错误和心得)

8、不要怕学新东西;

9、要有软件工程的思想;

10、善于发现问题,然后去寻找答案;

11、向高手请教;(要虚心直到你成为高手)

12、和同行交流;(不善于交流肯定不行)

13、懂得软件的实质,不要被千变万化的表象所迷惑;

14、真正要学习用的是编程语言和方法,不是什么库,什么类,什么工具;(学用那些什么库都比较简单,但光会这些库,我觉得还远远不够)

15、学习wiodows编程主要是学习windows OS和win32 API;

16、有空了解一下嵌入式开发;

17、有空了解一下PDA软件开发;

18、了解一下.NET框架和C#语言,也许它是你新的衣食父母;

19、要有耐心,不要作浮躁的人; 20、对程序加注释,并保留你的老程序;

21、学到的东西越多,了解的越多,你就越接近专家;

22、有空去逛逛CSDN,那里有你很多知己;

23、要有信心成为一个优秀的程序;

(六)一些好书的推荐

1、《The C Programming language》 (Keinighan & Dennis Ritchie 1988)

2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)

3、《Inside The C++ Object Model》 (lippmans)

4、《Effective C++》 (同上)

5、《More Effective C++》 (同上)

6、《Exceptional c++

7、《C++面向对象高效编程

8、《设计模式

9、《Thinking In C++

10、《The Standard C++ Bible》(一般推荐)

11、《The Art of Computer Programming

12、《Programming Windows》 (Charles Petzold)

13、《VC++5.0技术内幕

14、《MFC 深入浅出

15、《软件需求

16、《Advanced Windows

17、《C++ primer

18、《win32程序员参考手册

19、《用TCP/IP进行网际互连

20、《COM 本质论

(七)学习计划

――-这个学习计划是我个人定的,也共享给大家参考一下,共同进步吧。 1、《计算机组成原理》

2、《操作系统》

3、《数据结构》

4、《汇编语言》

5、《 C

6、《 C++

7、《VC 技术内幕

8、《Programming Windows》

9、《深入浅出MFC

10、《Advanced Windows》

11、《Inside The C++ Object Model》

12、《Thinking in C++

13、《Effective C++》

14、数据库

15、网络

16、嵌入式OS和编程

17、硬件单片机

18、.NET和C#

19、软件工程

20、UNIX和Linux


(八)后记

一年来浪费了大量的时间去摸索,去思考,走了很多的弯路,直到现在我还觉得自己是个编程的门外汉。我把我的一些体会和想法说出来(当然,很多都不一定正确,欢迎大家指正和讨论),也许对一些想加入程序员行列的朋友有一些建议和帮助。希望能帮助这些朋友顺利走上编程之路,成为高手。

如果真能如此,我也就很高兴了。欢迎有兴趣的朋友给我发E_mail(sjpsky@163.net);我这个人有两大业余爱好,其一就是读武侠小说,其二就是结交英雄侠士。

后记:此文我用analyster的名字登录,发表在“csdn-程序人生”上了,有很多网友看了,回了,还收到几个网友发来邮件,和我探讨,我很感谢大家对我的信任和鼓励。

我要说明的就是我的这篇小文,主要是想给“一些想成为程序员”的朋友一些建议,帮他们寻找一条自我培训的捷径,(其实世界上没有什么捷径的,我觉得一切都在于悟性,师傅领进门,修行在个人,譬如我就修行不够)少象我一样作大量的无用功。还有,主要就是一个程序员应该具备的基本功(个人看法),有人称其为“内功”,我觉得很对。没有扎实的基本功,我们如何能够做到游刃有余的编写高质量高性能的优秀程序呢? 


  

最新评论

发表评论

*昵称

已经注册过? 请登录

Email
网址
*评论