博文
How To Become a good Programmer?(2007-01-13 17:58:00)
摘要:How To Become a good Programmer?首先问你一个问题:你们在学校都学些什么课程?问这个问题的原因是,我认为学校的计算机科学基础课很重要。如果你所在学校的课程设置 合理,那你应该先把主要精力花在这些基础课上。很多学生看到基础理论就茫然,不知道这些图表,符号,甚至硬件的知识对将来的软件开发有什么用。用处大得很 哪。比如,操作系统课里讲到的多线程的东西在系统编程里很有用。又比如,尽管你将来不会去涉及电脑的硬件,计算机架构里的知识对分析算法的性能(快慢等 等)很有用。可以把计算机语言和开发工具比作文字,而把计算机科学的知识比做思想。只有思想,不会行文,不行;但是,行文流畅,思想空洞,也不行。大学的 阶段正是打好基础,丰富思想的年代。成为一名好的程序员,不是简单地通过学几门课程就能做到的。我个人认为成为一名好的程序员的要素有:1。扎实的基础知识;2。很强的解决问题的能力;3。熟练的编程调试能力;4。创新能力;5。团队合作能力;6。持续的自学能力;7。好奇心这些能力和品质(甚至可以说是习惯)都应该从大学阶段就着手培养,并且从身边的小事开始培养。比如,很多中国的大学毕业生都缺乏编程和调试经验。学习C语 言,考试过关就算学会了。课题项目中,只要程序能够编译,运行,并且输入输出满足要求就了事了。但是,写程序的时候是否想过如何把程序写得更加精炼,高 效,高质量?对程序调试中出现的问题是否刨根问底知道原因,还是不求甚解搪塞过去算数?还有,很多中国的大学毕业生对于知识的掌握肤浅,机械,没有好奇 心,不会刨根问底。比如,学会了C++,有没有看过一个object在编译后,在汇编代码中是如何被初始化的?这个object的各个成员在内存中是如何 放的?在一个成员函数被调用的时候编译器在汇编代码中加入了哪些额外的动作?虚函数的调用是如何实现的? 这些东西恐怕在编程语言或编译原理中都没有详细提到。但是,你是否有过好奇心去知道?最后,一些中国学生的大问题就是死记硬背,没有学到某种算法技术的根 本原理,没有应变和创新的能力。比如,有个问题是如何在不用额外内存的情况下把一棵树的同一层节点都连起来。很多学生都能够回答这是一个广度遍历的问题。 但是,课本上说了广度遍历是一定要有额外数据结构辅助的(队列)。所以,不给额外内存怎么行?请看,课本上说的用队列的方法记住了,但是就是不知道为什......
传说中的100句英语可以帮你背7000单词(2006-12-03 16:39:00)
摘要:
1. Typical of the grassland dwellers of the continent is the American antelope, or pronghorn.
1.美洲羚羊,或称叉角羚,是该大陆典型的草原动物。
2. Of the millions who saw Haley’s comet in 1986, how many people will live long enough to see it return in the twenty-first century.
2. 1986年看见哈雷慧星的千百万人当中,有多少人能够长寿到足以目睹它在二十一世纪的回归呢?
3. Anthropologists have discovered that fear, happiness, sadness, and surprise are universally reflected in facial expressions.
3.人类学家们已经发现,恐惧,快乐,悲伤和惊奇都会行之于色,这在全人类是共通的。
4. Because of its irritating effect on humans, the use of phenol as a general antiseptic has been largely discontinued.
4.由于苯酚对人体带有刺激性作用,它基本上已不再被当作常用的防腐剂了。
5. In group to remain in existence, a profit-making organization must, in the long run, produce something consumers consider useful or desirable.
5.任何盈利组织若要生存,最终都必须生产出消费者可用或需要的产品。
6. The greater the population there is in a locality, the greater the need there is for water, transportation, and disposal of refuse.
6.一个地方的人口越多,其对水,交通和垃圾处理的需求就会越大。
......
一个大学教授让人发冷汗的讲演(2006-11-21 23:09:00)
摘要:一个大学教授让人发冷汗的讲演
luoricanyang BY - 2006-4-8 13:32:00
地点:浙江图书馆报告厅,时间:2002年x月x日
精彩语录节选:
“在中国这个发展中国家,你能建10所世界一流大学,那美国有多少所?日本有多少
所?现在的实际状况是:世界上前200所大学,中国一所都排不进!在亚洲能排出几所?我到国
外去看了以后,感到要将浙大建成世界一流大学就像共产主义理想.“
“以前说“无知无畏“,现在却是“无知才无畏“,许多企业把浙江省技术监督局
、科委的人请来吃一顿饭,喝一点酒,他就给你签个字,再把我们这些教授胁迫到那里去,给
你盖个章,然后就是“填补国内外空白“、“国际先进水平“,写论文则是“国际领先水平
的研究成果“、“首次科学发现“等等,这都是目前非常严重的问题!作为一个大学教授,我
深深地为此担忧!这不是我们的责任,是我们的领导无知,是他们倡导了这个主流.我知道在
座的处长或老总日子很难过,因为你们不写这样的报表,就拿不到钱,项目就得不到批准.教
授也同样如此,天天写报告,而不是在实验室静下心来好好搞研究,这是很严重的!“
“我们国家的现实和发展就是这样:凡是依赖不成的,我们自己都能搞得像模像样
,比如二弹一星;凡是能够引进的,就都搞不成.......现在很多合资企业就这样,卖点东西
,而没有去考虑这些深层次的东西.殊不知,这就是社会的恶性循环!“
“我认为:语言、计算机就是工具.中国的外语教授讲英语还不如美国卖菜的农民
!怎么看待这个问题?日本博士、德国教授说不出英语的多得是!我们怎么能说一个人不会说
英语就是文盲呢?语言就是一个工具!你没有那个环境,他怎么能讲这个语言呢?......如果
我是教育部长,我要改革二件事:第一,取消六级考试,你一个研究生连中文一级都不及格,你
英文考六级干什么呢?看看研究生写得论文,自己的民族文化都没有学好,天天考英语──打
勾:托福打勾,GRE打勾,英文考出很高的分,可哪个写的英文论文在我面前过得了关呢?过
不了关!这样培养出来的人能干什么?自己搞的专业一点都没学好!......说不会计算机就是
文盲,这又是......
VC入门的一条路(2006-11-21 23:06:00)
摘要:VC入门的一条路
首先声明,我可不是什么高手,也就是刚脱贫。因为运气很好,买到了几本好书,在学习过程中几乎没走什么弯路,没费什么劲就入门了,现在一般的小程序能搞定了。看到那些因为不知从何下手而苦苦挣扎的朋友,希望我的文章能给他们一些帮助。
学编程急不得,上来就学VC肯定碰一头灰,说VC难就难在这点上了。如果硬上,意志坚强的话也许能挺过来,但也是会缺乏后劲,不得不回过头来补习基础知识。意志不坚强的话,很有可能就此放弃了,并留下一个VC难得不得了的印象。其实,只要踏踏实实一步一步来,VC也就是很简单点事。在这里我说一下,如果你还只是一个初中生,那么你就应当仔细考虑一下了。首先,限于你的知识和思维能力,学学C语言还应该没问题,但要学VC是要下相当大的功夫的。而且,你现在学到的东西将来一定会过时,所以不如把精力放在算法的研究上,毕竟这些东西永远都不会过时。
我觉着如果走对路子,入门VC,一个暑假应该够用了。
虽说学VC并不是传说的那么难,可不下些苦功夫是学不成的。在学VC前,你必须确定,你是因为热爱编程才学VC的,而不是出于炫耀或其他。否则,恐怕你坚持不到胜利的那一天。
对于首次接触编程的同学,我建议最好先学一下Quick BASIC(DOS里就有带,就是那个QBASIC.EXE),不用多学,知道什么是整型什么是浮点,以及DO...LOOP FOR...NEXT 等最基本的知识,能算个阶乘,求个积分就行了,关键要明白计算机是怎么执行命令的,对编程有个感性认识。如果你对自己有自信,也可以直接学C++,应该也不会多费太多事。不过我觉着因为有很多资料是FOR VB的,并且网页编程常用VB Script,以后你也很有可能要用到VB,所以了解一些BASIC对以后也是有帮助的。而且如果只是要算个小题用QB比VC、VB之类方便多了。(找个人教一两天应该就能搞定了吧)
之后我建议找本初高中信息学奥......
微软副总裁给中国大学生的一封信(2006-11-01 21:54:00)
摘要:
微软副总裁给中国大学生的一封信
导语:李开复博士现任微软公司全球副总裁,是微软亚洲研究院的首任院长。在学术领域,他是攻坚挫锐的科研天才;在管理层面,他又是运筹帷幄的领军人物。作为一位天资卓越的华裔学者,他正在创造着一个又一个奇迹。同时,李开复博士极为关注中国教育,先后给中国学生写了三封饱含关切之情的来信,在国内青年学生中产生了巨大影响。他还为中国学生开通了“开复学生网(www.kaifulee.com)”。近日,李开复博士又撰写了“给中国大学生的第四封信”...给中国学生的第四封信:大学四年应是这样度过 今天,我回复了“开复学生网”开通以来的第1000个问题。关掉电脑后,始终有一封学生来信萦绕在我的脑海里,挥之不去: 开复老师: 就要毕业了。 回头看自己所谓的大学生活, 我想哭,不是因为离别,而是因为什么都没学到。 我不知,简历该怎么写,若是以往我会让它空白。 最大的收获也许是……对什么都没有的忍耐和适应…… 这封来信道出了不少大三、大四学生的心声。大学期间,有许多学生放任自己、虚度光阴,还有许多学生始终也找不到正确的学习方向。当他们被第一次补考通知唤醒时,当他们收到第一封来自应聘企业的婉拒信时,这些学生才惊讶地发现,自己的前途是那么渺茫,一切努力似乎都为时已晚……
这“第四封信”是写给那些希望早些从懵懂中清醒过来的大学生,那些从未贪睡并希望把握自己的前途和命运的大学生以及那些即将迈进大学门槛的未来大学生们的。在这封信中,我想对所有同学说: 大学是人一生中最为关键的阶段。从入学的第一天起,你就应当对大学四年有一个正确的认识和规划。为了在学习中享受到最大的快乐,为了在毕业时找到自己最喜爱的工作,每一个刚进入大学校园的人都应当掌握七项学习:学习自修之道、基础知识、实践贯通、兴趣培养、积极主动、掌控时间、为人处事。只要做好了这七点,大学生临到毕业时的最大收获就绝不会是“对什么都没有的忍耐和适应”,而应当是“对什么都可以有的自信和渴望”。只要做好了这七点,你就能成为一个有潜力、有思想、有价值、有前途的快乐的毕业生。大学:人生的关键 大学是人生的关键阶段。这是因为,进入大学是你终于放下高考的重担,第一次开始追逐自己的理想、兴趣。这是你离开家庭生活,第一次独立参与团体和社会生活。这是你不再单纯地学习或背诵书本上的理论知识,第一次有机会在学习理论的同......
学编程的人不能不看的好文章 (2006-11-01 21:41:00)
摘要:
学编程的人不能不看的好文章
做为一名大四的学生,我面试过不少的单位,有成功的也有失败的,但是对我来说所有的失败在某种意义上都是一种成功,特别是我下面写的这些,写这篇文章的时候,我已经签了南京的一家软件公司,但是想起今年2月21日我面试苏州台湾的IT公司的经历联想到我们现在学习编程的一些情况我真的深有感触,这次面试使我深深的体会到了失败但也收获了很多。我要说的将分成三部分,1.是我面试的具体经过2.是由面试想到的3.现今我应该做的。当然这些话很大程度上是我个人的意见,不可能完全得到大家的赞同,所以在某些观点上如果哪位朋友觉得跟我的有很大出入,请不要介意,也不要对我攻击,就当我没有说过,欢迎和我联系共同探讨这些问题!我的EMAIL:wutao8@263.net
1.面试经过
大约在年前我接到了台湾瑞晟(Realtek)苏州公司的面试通知,通知我2月21日到苏州工业园区面试,接到面试后的几天我把一些专业课温习了一遍,特别是C++和数据结构,由于大学几年里,我一直专研这些方面,加上通过了高级程序员的考试,对于一些常用的算法我差不多也达到了烂熟于胸的地步,当时的感觉是如果问了我这些方面的问题我应该是没有问题的!
21日那天我被安排在4:30面试,由一位技术人员单独给我面试,在问了一些简单的问题之后他给我出了一道编程题目,题目是这样的:
(由于具体面试的题目比较烦琐,我将其核心思想提取出来分解成了两个独立的简单的问题,有可能问题分解的不当,请大家见谅,实际面试了一个的问题但比其复杂很多,而且涉及一些高等数学变换)
1) 写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7......+n
哼,我的心里冷笑一声!没想到这么简单,我有点紧张的心情顿时放松起来!
于是很快我给出我的解法:
long fn(long n) { long temp=0; int i,flag=1; if(n<=0) { printf("error: n must > 0); exit(1); } for(i=1;i<=n;i++) { temp=temp+flag*i; flag=(-1)*flag; } return temp; }
搞定!当我用期待的目光看着面试官的......
大一大二两年软件开发学习心得(2006-11-01 21:29:00)
摘要: 大一大二两年软件开发学习心得
转眼间在从大一踏进学校的校门到现在刚刚好两年了,在这两年里面,有学到了不少东西,包括怎么去独立生活,怎么去与人沟通,等等,当然最重要的还是学到了自己想要的专业知识。 记得大一的时候主要是学习计算机导论和C语言,对于急于想看到效果的我,C语言学起来就比较枯燥,因为C语言编写出来的程序主要还是在命令行的操作,我很想开发出windows界面的软件出来,但是没有办法,C语言是基础,没有这个基础就往高处想,恐怕梦想不会那么容易实现。所以我就认真的把C语言的基础打好,先掌握好里面的语法,程序控制逻辑和一些基本的算法,说真的,尽管是比较枯燥,但是一旦陷入了编程中,自然就会发现其中的快乐。 大一第二学期的时候开始接触NIIT的课程,平时虽然一点作业都没有,但是我上课的时候不是那么认真听课的人,所以课后总是要花时间来看看和理解老师上课的例子,在这个学期中,我们主要学习了C++和Java,都是刚刚开始接触到面向对象的语言中来,由于对一些面向对象的特性不熟悉,毕竟是刚开始接触这方面的语言,所以学起来就有点吃力,再加上平时实践的时间比较少。 终于到了学期的期末,学期期末的项目是使用Java语言开发一个网络的聊天室,在我还没有开发之前一听到这个项目,我做梦都没有想到我可以编写出一个聊天室出来,但是既然是课程提出来的项目,就一定有它的理由,我也相信最后一定也可以完成它。功夫不负有心人,经过接近一个月的研究,我总于完成了我来到学校的第一件作品。在这个月中,我不断得查阅资料,询问老师,平时和同学多交流,终于在最后的评审中,我获得了全班第二的好成绩。通过这个学期的开发中,我几乎把整个学期学到的知识都用到了我的聊天室里面,所以在实践中也等于复习了这个学期所学的内容,而且我发现这样的实践,比我在平时课后看书,看资料所学到的还多。
大二的第一学期,进入了数据库和高级Java的学习,说真的,在学数据库的那段时期是最烦的,因为每天就学了一大堆SQL的语言,非常的枯燥,都是关于怎么去查找数据表格里面的内容,那是时期,因为课堂上听课了之后觉得都是比较简单的,所以课后很少去动手。到了后来项目开发中,......
