博文

我的程序设计之路(转载)(2006-04-03 16:23:00)

摘要:我的程序设计之路
2005.11.23  来自:天极网   
 
刚刚进入大学的时候,就知道必须要学好一门程序设计语言。那时对程序设计的了解很少,也不知道有什么样的程序设计语言。《计算机文化基础》教材中介绍了一些,其中印象非常深的是说Java是一门非常先进的语言。于是我在大学的第一个学期开始学习Java。先说说结果吧,当然是一事无成了。Java的编译环境非常大,我记得似乎21兆,Sun官方网站上提供了两种下载方式,一种是单一的大文件,另一种是十几个小文件(刚好一张软盘装一个)。1999年的网速绝对是现在不可想象的,每秒钟可以下载1K多一点!也不知道有FlashGet这样的断点续传工具,直接点击下载,结果经过了多次的下载之后终于凑齐了这十几个文件,但是安装时报错!于是,经过了一个学期断断续续的学习之后,我发现我自己根本就写不出一个Applet。   第二个学期开设了Pascal程序设计课程,此时也知道了C,知道了C++,似乎也打定主意日后学好C++。那时很清楚Pascal是基础,知道要认认真真地学好。于是那个学期我的电脑除了运行《极品飞车》之外,还运行了不少的Pascal小程序。结果非常不错,至少是期末考试异常轻松。由于入门比较快,而且平时也做了一些,所以最后发现根本不用复习。考试前的那天晚上我照样打打游戏,但发现同学似乎挺紧张,而且有很多人在背例程!不可思议,我觉得学习程序设计语言就像是学习数学一样,不需要背这些东西,不过背程序似乎可以应付考试。但是我的记性不好,背不了那些东西。不过看着别人复习自己心里也不踏实,十点之后还是用了十分钟把课本翻了一遍。第二天考试出了点小问题,忘记带准考证了,而且邻近考试才发现。只好回宿舍取,这样耽误了七八分钟。进入考场后就赶快做,颇有点紧张,毕竟不出师不利。我们是上机考试,有选择和程序设计两种题,选择题的数量及不清了,程序设计有两个题目,一个是冒泡法排序,另一个忘记了。完成选择题之后就感觉很轻松了,剩下两个程序设计题目以前都做过。第一个完成之后偷眼看看别人的屏幕,却着急了,因为我看到大多数人都在看选择,我想:他们怎么这么快?!都开始检查了!其实考完回到宿舍后才闹明白,他们说我太快了,自己选择还没做完呢,我已经写了一大堆程序了。但是在那个学期最高兴的还是从一开始就意识到了代......

阅读全文(3350) | 评论:0

程序员四大忌 你该如何避免呢? (转自CSDN)(2006-03-26 13:22:00)

摘要:程序员四大忌 你该如何避免呢? (转自CSDN)
   
 
一忌:轻易言败,没有自信   没有永不放弃精神的程序员,只是一个有程序员名号的假程序员。一个真正的程序员,知道在程序设计的过程中,可能会遇到不计其数的困难和问题,可能有极多的挫折和失败,而成功只有一次。   就为解决一个问题,我们可能连续十几甚至几十小时的坐在计算机前不停的工作。一个问题解决了,可能又有其它的问题出现。而你要是不能坚持下来,可能从前的一切努力都流失了。轻易言败的人请不要做程序员,你不可能成功。执着是最可贵的。   执着的程序员都是相信自己的人,每时每刻都会鼓励自己,你做的出来,你能解决,你会成功。这样他才能坚持下去。 二忌:浮华不实,自满自大   夸夸奇谈的人不是优秀的程序员。整个程序设计的过程就是一个研究学习,应用,再研究学习,再应用的过程。一名优秀的程序员决不会认为自己足够好了,不需要再提高了。自满自足的人不会是好程序员,会很快落后以致落伍。所以越是优秀的程序员越是感觉自己懂得少,不会在人前故意卖弄,这并不是故作谦虚,而是实实在在的感受,亲自体会才能明白。   浮华的程序员会不懂装懂,不停的强调语言的优劣,平台的好坏。追求所谓最新最时尚的技术,停留在表面问题上。或假做深沉,用不适合的方式做不适合的事情。就像孔已己一样,以为知道"茴"字有四种写法就是学问。最后是简单的作不好,困难的也作不好。 三忌:死气沉沉,不求甚解   优秀的程序员是充满激情和活力的程序员。求知欲和创造欲是原动力。有求知欲你才能不停的学习,有创造欲你才能不停的超越自己。死气沉沉的程序员已经对程序设计失去了兴趣,很快就会主动或被迫离开。   创造不是指你要发明什么别人不知道的技术或方法,而是说不能仅仅知道怎么做,还要知道为什么这样做。之后你才能创造,其实程序设计的整个过程就是创造的过程。 四忌:强调客观,忽略自身   很多程序员都是在失败的时候强调客观因素,而优秀的程序员的程序员都是先反省自己。要明白自己缺陷,再努力去学习。没有人事事都做的成功,也没有人生来就什么会做。所以失败了,多想想自身的原因,这样你才会不停的进步,而不是留在原地抱怨
......

阅读全文(3097) | 评论:1

程序员的七种武器,你有了没有? (来自CSDN)(2006-03-26 13:13:00)

摘要:程序员的七种武器,你有了没有? (来自CSDN)

安安注:这篇文章其实也只不过是把当前的一些主流知识列举了一下,这里的任意一种武器有时都够你花很长的时间去捉摸了。我的观点仍然是先定位好自己的学习方向,然后专心研究这个方向,先宽后广,在广这个方面,不只是专业知识,还包括行业知识, 经济管理、法律甚至天文地理有时都需要了解一下。

信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。 信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,IT技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。 虽然IT技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法还很通用,可以举一反三。本人根据自己的体会和经验,向那些刚刚踏入IT行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器,有了这七种武器,虽不敢说笑傲江湖,但将自己立于不败之地还是可以的。
第一种武器:开发工具
至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++ Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
第二种武器:数据库
为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产......

阅读全文(3136) | 评论:0

十年MFC经历认识的Microsoft技术(转)(2006-03-16 21:59:00)

摘要:十年MFC经历认识的Microsoft技术 (转)
安安注:这篇文章非常庞大,作者却是耗费了很大的心力。读一读《IT大败局》和《Borland 传奇》对于文章阐述的东西可能会更加有体会。
原文:http://blog.csdn.net/lovemy/archive/2006/01/05/571186.aspx

自从2005年3月8日下午16时“十年MFC经历认识的Microsoft技术”以帖子的方式发表于CSDN论坛后,引起了许多网友得好评,使得笔者诚惶诚恐,考虑到该贴过长(人气指数为5000),因此转移到Blog上,许多网友对此帖的评语只好省略,在此鄙人谢过了!为感谢网友的支持,本人希望今后能发出新的帖子以回报网友对我的鼓励,再一次谢谢! 初识MFC  
       我最初知道MFC大概是在1993年,那个时候Visual  C++还没面世,当时Microsoft的C++编译器还很弱,官方的名字是Microsoft  C/C++  7.0,MFC的版本是1.0,几乎没有引起什么反响,那个时期最好的C++开发环境是Borland  C++  3.1,其实,大概是1992年11月份,一个偶然的机会,我领略到Borland公司的厉害,记不得在什么地方,我看到一个绝妙的集成开发环境,即Turbo  C++  3.0  for  Windows,这是我记忆中第一个真正的Windows环境下的C++集成开发环境,那种激动的感觉至今仍记忆犹新,不客气的说,当时至少在C++方面,Microsoft与Borland不是一个水平的,Borland明显的要高于Microsoft  ,Borland的产品在技术上给我留下深刻的印象。那个时候Microsoft最好的开发平台是Visual  Basic  3.0,而Borland的Delphi正处于开发阶段(Delphi  的代码名称是:“VB  Killer”)……,想起这些十几年前的往事,我不禁感慨万千。  
十几年来,我用过许多开发环境,关于Visual  Basi......

阅读全文(3815) | 评论:0

如何成为一名优秀的程序员(转)(2006-03-16 21:53:00)

摘要:如何成为一名优秀的程序员(转) 安安注:看文章,我喜欢只看其中对我有点作用的部分。本文很多地方有点偏激,文中介绍的东西又有点偏于主题,文章介绍如何学习vc占了很大的篇幅,其实学习vc不是唯一的一条路,在程序人生上,你应该首先确定自己的学习方向。鉴于本文还有一定的参考意义,特转载了过来。
    一位仁兄说的“程序员写的程序不是‘算法+语法’,而是要能够满足用户需求的工具”我非常赞同。要想达到用户需求就必须从各个方面来考虑,如业务、人机交互 、效率等方面,而不只是一个语言(语法)的问题,语言(语法)只是工具,只知语法不知其他那就真是编程机器了!编程机器在印度高中生经过几个月培训,按照严谨的软件工程方法,加上较高的管理,就可以胜任了!大家相信吗,我是相信的!     谈到这里我就不禁说到了国内教育界最近在探讨的问题“计算机科系的毕业生特别是本科大专生到底出来干啥、如何适应社会要求”。大家也看到了很多计科系大学生说“精通 N 种语言,熟悉N 种工具”,不知道学校里的其他知识到那里去了,甘愿做编程机器,浪费了人民的纳税,干高中生能干的事,比较可惜吧!在国内现在就是这样了。国内的软件开发业到底是需要哪些人?如果仅仅是编码机器,那我估计中国硅谷还是做梦去吧!     社会似乎也需要编码机器,翻翻招聘广告,做应用开发的都要求精通某某语言,熟悉某某工具,很少需要懂管理懂软件工程的人。以我个人一点偏激的想法,民族软件产业要腾飞,更需要的是能管理使用编码机器的人,即管理人员。国内软件产业编码机器已经很多了。希望不要惹怒了那些编程高手!System Develop  与Application Develop 在国内到底哪个能养活你,能赚钱?诸位仁兄想必也知道,况且俺也没发现几家水平高的公司招这方面的人。毕竟 OS,DB MS,COMPILER 都被国外做了;另外也别跟我谈 LINUX,毕竟还是少数烧钱的人做的事情,我先喂饱肚皮再说。我手下的很多搞4GL语言的程序员都想转行学VC等所谓的更低级的语言,我总是说“在 XX 城市,先用 4GL工具生存,以后再学习 VC 吧!” 。说的简单一点:先解决肚子问题。     ......

阅读全文(6482) | 评论:7

王选:年轻人认准目标就要狂热追求(纪念王选院士)(2006-02-14 08:46:00)

摘要:新华网快讯:记者从北京大学获悉,中国科学院院士、中国工程院院士,北京大学教授王选13日11时许在北京病逝。 王选:年轻人认准目标就要狂热追求  (纪念王选院士)
 
 新华网 (2003-05-22 08:16:56) 来源:中国青年    《中国青年》专访王选:年轻人认准目标,就要狂热追求   王选,全国政协副主席,中国科学院院士、中国工程院院士、第三世界科学院院士,北大方正控股有限公司首席科技顾问。作为汉字激光照排系统的发明者,他推动了中国印刷技术的第二次革命,被称为“当代毕升”;作为青年才俊的导师,他爱才护才,有口皆碑。当我问他:作为科技带头人,您的人生目标是什么?他说:狂热地追求,看准了目标,永不回头。     能为别人活着,才是有价值的人生   记者:2002年3月,为表彰您荣获国家最高科技奖,北京大学专门为您召开了科技奖励大会。会上,您谈了您一生中的十个梦想;接下来,又谈了您的“好人观”。正是您的“好人观”,感染了更多的人。   王选:那一次获奖,让我想起我小的时候。那一年,我10岁。一天,老师宣布要进行一项跟以往不同的评选活动,说要选出一名品德好、大家喜欢的同学,我以压倒多数的票获得了这项荣誉。这一荣誉是非正式的,我也从未告诉过父亲母亲自己获得了这个奖。50多年后,再回想起来,才意识到这一荣誉对我的一生有多么重要。经验告诉我:一个人要想有所成就,他首先要做个好人。“毫不利己,专门利人”,是绝大多数人,包括我自己在内根本做不到的。我赞成季羡林先生关于“好人”的标准:考虑别人比考虑自己稍多一点就是好人。不过,我以为,这个标准还可以再降低一点,就是考虑别人与考虑自己一样多的就是好人。   我常想,一个人,一个好人,他活着,如果能够为社会的利益而奋斗,那么,他的一生才是有趣味的一生。爱因斯坦也曾说过这样的话:人只有为别人活着,那才是有价值的。我赞同他的话。但凡有成就的人,大多具备这种品质。他们为了社会的利益,为了活得有价值,始终不渝,狂热地去追求。   记者:从什么时候起,您开始了这种狂热的追求?   王选:从从事软硬件研究,从研制激光照排项目起,就开始了这种追求。为了激光照排,它的价值、它未来可能产生的影响以及对中国印刷业的这种根本性的革命所带来的前景,我被它深......

阅读全文(3537) | 评论:0

谈一谈计算机科学,并将重点放在计算理论上zz(2006-02-12 02:21:00)

摘要:
计算机科学与技术这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年了,自己也做了一些思考,原先不管是国内还是国外都喜欢把这个系分为计算机软件理论、计算机系统、计算机技术与应用。后来又合到一起,变成了现在的计算机科学与技术。我一直认为计算机科学与技术这门专业,在本科阶段是不可能切分成计算机科学和计算机技术的,因为计算机科学需要相当多的实践,而实践需要技术;每一个人(包括非计算机专业),掌握简单的计算机技术都很容易(包括原先Major们自以为得意的程序设计),但计算机专业的优势是:我们掌握许多其他专业并不"深究"的东西,例如,算法,体系结构,等等。非计算机专业的人可以很
容易地做一个芯片,写一段程序,但他们做不出计算机专业能够做出来的大型系统。今天我想专门谈一谈计算机科学,并将重点放在计算理论上。 
1、计算机理论的一个核心问题--从数学谈起: 
  [1]高等数学Vs数学分析    
  记得当年大一入学,每周四课时高等数学,天天作业不断(那时是七天工作制)。颇有些同学惊呼走错了门:咱们这到底念的是什么系?不错,你没走错门,这就是计算机科学与技术系。我国计算机科学系里的传统是培养做学术研究,尤其是理论研究的人(方向不见得有多大的问题,但是做得不是那么尽如人意)。而计算机的理论研究,说到底了,如网络安全学,图形图像学,视频音频处理,哪个方向都与数学有着很大的关系,虽然也许是正统数学家眼里非主流的数学。这里我还想阐明我的一个观点:我们都知道,数学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想用抽象出来的理论去更好的指导实践,有些数学研究工作者喜欢用一些现存的理论知识去推导若干条推论,殊不知
其一:问题考虑不全很可能是个错误的推论,
其二:他的推论在现实生活中找不到原型,不能指导实践。严格的说,我并不是一个理想主义者,政治课上学的理论联系实际一直是指导我学习科学文化知识的航
标(至少我认为搞计算机科学与技术的应当本着这个方向)。 
  其实我们计算机系学数学仅学习高等数学是不够的(典型的工科院校一般都开的是高等数学),我们应该像数学系一样学一下数学分析(清华计算机系开的好像就是数学分析,我们学校计算机学院开的也是,不过老师讲起来好像还是按......

阅读全文(5335) | 评论:5

“学士、硕士、博士” 林锐(2006-02-02 12:05:00)

摘要:摘自《软件工程与项目管理新视野 》林锐
我首先谈谈IT企业在招聘“学士、硕士、博士”的态度,让那些还没有毕业的学生们心理有个数。
       学生毕业之际,谁都想找一份好的工作。对于IT相关专业而言,90%以上的学生要到企业工作,因为只有企业才能接纳千军万马。大量的硕士生和博士生学了一身的屠龙之技,精通了纸上谈兵,可是企业不欣赏屠龙之技,更加讨厌纸上谈兵。尽管我在大学里一直都是牛气烘烘的,但是在毕业之际也不得不到处投寄求职信,眼巴巴地等人要我。曾经有一段时间杳无音讯,让我心里发慌。
终于有一天上海贝尔的一位人事经理约我面谈,我拿出厚厚的一叠奖状以及软件成果展示给他看。人事经理对我讲,你的简历不错,成果很多,但是我们不感兴趣,因为你的专业是图形学,我们是电信企业,专业不对口。我当时吓出汗来。
人事经理接着说,本来我们不会招聘你的,碰巧有人发来《大学十年》这篇文章给我,我看后马上打电话约你,免得你被其它企业招走。我们总是努力招聘有真才实学的人,你写的《大学十年》说明了一切。几乎同时,华为上研所的人事经理约我面谈,其观点几乎与上海贝尔的一模一样。
说来好笑,我的一堆引以为豪的奖状根本没人理睬,却因《大学十年》这篇文章一路开绿灯。不仅没有人面试我任何技术问题,还让我自由选择工作,给我的职位和薪水比所有同期的博士生们都高出一级。有了这样的体会后,我知道了该怎样指导别人写命中率很高的求职信。
       我工作后经常帮人力资源部招聘员工,我看过的简历有几百份,亲自面试过近百人。而且自己给很多员工培训过,所以对IT行业的学士、硕士、博士的现状相当了解。几个同行聊起这个话题,大家很有同感。
       我们发现名牌大学计算机相关专业的本科毕业生普遍来说相当不错,干活很好。相比之下,差的学校的本科毕业生差距比较大。据我观察,有2~3年工作经验的名牌大学本科生是干活的主力军,他们正当青春、干劲十足、不摆架子、不耻下问、要求不高、奉献甚多。可见国内名牌大学的本科教育相当好,令人放心。
       然而名牌大学的硕士生却是鱼龙混杂,好的很好,差的极差。究其原因是,有半数以......

阅读全文(14314) | 评论:27

原文标题:Game Programming Beginners Guide (zz)(2006-01-13 17:04:00)

摘要:一直觉得游戏编程是很深奥的东西,需要比较多的综合素质,更关键的是自己并不喜欢玩大型游戏包括网络游戏,所以总是认为自己不具这方面的潜力。当然,好奇心必定会有的。 这篇文章从我的同学的主页上转载过来的,仅以此献给所有的爱好者、初学者以及像我这样具有好奇心的人。 原文标题:Game Programming Beginners Guide
作者:Dave Astle
译者:sunlxy
译文版本:1.01
--------------------------------------------------------------
  目录
  1 选择一门语言
  2 选择合适的编译器
  3 选择一个目标平台
  4 充足电
  5 总结
--------------------------------------------------------------

  我经常被问及:一个具有很少甚至没有编程经验的人要如何开始游戏制作。直到目前为止,我总是尽我所能一个一个解答。然而,问题的数量已经增长到了一个难以处理的水平,于是,我便决定把所有的建议汇总在一篇文章里作为参考提供给人们。


  这篇文章主要面向那些想开发自己的游戏,但仅有一点点或没有半点编程经验的人们。实际上,我也假定读者根本没有任何的编程知识。我将把重点放在游戏开发的编程和设计方面,而不是艺术方面。我也不准备对游戏行业进行论述(因为这个话题的资料太多了),但是,我会带你浏览一下在制作游戏之前需要做的一些事情。该说明的一点是,不要将我这里所介绍的方法当作唯一的或最好的学习游戏制作的路径,但对于我和其他人来说,它是有效的。
 

1、选择一门语言
  Choosing a Language

  第一件要做的事就是选择一门语言。你有一大堆的选择,包括 Basic、Pascal、C、C++、Java 等等,同样也有一大堆关于哪门语言最适合初学者的争论。欲了解各种语言的优缺点,请参阅 John Hattan 的绝妙文章《我该使用什么语言》。
  
  我这里建议使用 C 和 C++。有些人认为这些语言对于初学者来说太难了,但从我个人角度来说我是反对这个观点的,因为我自......

阅读全文(3905) | 评论:0

老程序员十年生涯黯然总结 (转载,下二)(2005-11-23 02:51:00)

摘要:老程序员十年生涯黯然总结 (转载,下二) 下篇 曲折的实践之路 (续)
3.毕业求职

 98级的研究生是IT业最后辉煌的回光反照。当时,各大公司都发了疯似的要人,象华为,当时是来者不拒。计算机专业的研究生是一抢而光,本科生也供不应求。2001年毕业的我的师兄师姐们,平均每个人手头都至少有两三个Offer,谈的工资没有低于每月6000的,许多人去了外企,工资在8000~10000每月的也有。真是毕业生的黄金时间。

 但好景不常在,911事件我看来好象成了分水岭,911之后,整个IT业急刹车,就业形势急转直下,各大公司都在消化去年吃得过饱的胃口,我形容是大家都吃坏了胃,再也不可能有我师兄师姐们的风光了。虽然时间相隔仅大半年。

  从10月开始,11月和12月,我几乎是在招聘会与公共汽车上渡过的,北京东南西北地去面试,上午在上地,下午可能就要跑到朝阳区,疲于奔命。

 在找工作过程中,我良好的心理素质与丰富的编程经验起到了很大的作用,并没有遇到很大的困难,就先后有几家公司表示要我。

   其中我想说的有两家公司。

   一家是台湾公司,应该说他们做得是不错的,但我非常反感他们那种自认为高于大陆人的那种优越感,而且待遇也不高。面试之后,回来感觉很不好。当时台湾是民进党上台主政,我就称之为“民进党”看不起“***”(虽然我不是党员,但我们都是中国人,都希望中国能强大,让她的人民能挺直腰杆)。
我想:我们大陆确实是不如台湾发达,难怪别人看不起我们,这世界势利得很,社会如此,国家亦然。但我中华960万平方公里的国土,13亿人口,难道要依靠一个小小的岛屿来撑门面?难道除了台湾公司,我就无处可去了?虽然改变不了什么,但我决定绝不去台资和日资的公司工作(日本人我更不喜欢,但我认为他们做事实在优秀,我们一定要向日本人学习)!在这种公司呆着,不爽!同时,我们的确也得争气些,这世界只尊重强者。

 另一家是个很不错的民族软件企业,想要我,其老总专门找我去面谈了一次,希望我能到他的公司工作。这位老总白手起家,能在五六年的时间内由几个人发展到300多人,当时,是中国这个领域软件市场占有率最高的公司,我非常佩服,他为人也很好,并表示可以给我每月比......

阅读全文(3783) | 评论:0