博文

C++的一些学习经历(2004-12-25 21:28:00)

摘要:  C++的一些学习经历       第一本C++书是北航的麦中凡老师写的《C++程序设计语言教程》,觉得虽然是比较老的书,但看过之后给我还是有不小的收获。第二本书是机械工业出版社翻译的《C++编程思想》(第一版),给我的感觉似乎有一些晦涩难懂的地方,但总体来说,不愧是Amazon上4星读本啊,的确给人以相当深刻的认识。再后来渐渐买了几本C++的书籍,如华中科大出的《C++标准程序库》、《Effective C++》2nd 。可惜由于囊中羞涩,书也就只买了这么几本啊。还有几本经典的实在扛不起了,比如《C++程序设计语言》(特别版)、《泛型编程与STL》、《C++ Primer》3rd等。 ......

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

C++大师Stan Lippman:我对中国程序员的忠告(2004-12-25 21:07:00)

摘要:C++大师Stan Lippman:我对中国程序员的忠告[转]  天极网特稿(记者 宋保强)C++语言的创立者,斯坦.利普曼(Stan Lippman) 9月17日参加了在北京召开的微软技术大会Tech.Ed2004并做了"The C++ Binding, Integrating a Static and dynamic "的主题演讲。利普曼和天极网记者畅谈了对“中国程序员的30岁现象”的看法,对C++、NET、面向对象等新技术发表了自己的看法。  天极网:做为C++大师,你认为一个优秀的程序员应该具备什么素质?  Lippman:不仅是C++,对所有的语言而言,我认为一个好的程序员应该具备独立性,而且要不惧困难,你必须心甘情愿的面对失败。所谓的独立性就是因为有时你要能独处,你必须相信你能处理你明白的事情。我认为一个好的程序员要具备创造性,而管理人员要确保程序员有独立的空间,成为他们自己。  天极网:中国的程序员被一些人认为是吃青春饭的,程序员好像转向管理职位才有职业发展空间,你怎么看?  Lippman:我所认识的一些Unix创立者被提升为部门主管,但他们拒绝了提升,回到了程序员的职位上,因为他们认为这是自己能做得最好的地方。总之,最后辞掉了部门主管的职位,回去做研究去了。  在美国,我们认为一个好的程序员并不意味着他能成为一个好的管理人员。如果仅仅是为了金钱的原因而强迫程序员们去从事管理工作,这与公司的最佳利益是相违背的。因此我们发明了一个所谓的"多层升迁路径",随着技术经验的增长,微软分别为程序员设置了程序员、高级程序员以及MPS等等不同级别的技术职位。微软能认识到你的能力,如果你愿意成为管理人员,当然是可以的,但你不必做你不开心的事情,只用尽量保持你编程的创造性。  在上世纪八十年代,美国的公司都被一个相同的问题所困扰,起因就是迫使年龄大的编程人员不再从事编程工作。我猜想在中国,随着程序员年龄的增长,这种问题也会发生!   天极网:你如何看待C++语言的未来和C++与C##的关系?  Lippman:如果你想做web service,asp等等,c++将不会很适用,因为这个语言不灵活,它太繁复了,它不是为了网络服务(Web service)而设计的。  C##就是为了网络需求而设计的,.net的理念就是并不是一种语言能解决所有的问题。它不像Java,迫使你只......

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

C与C++的区别(2005-09-14 11:42:00)

摘要:[转]C与C++的区别C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。 对语言本身而言,C是C++的子集,那么是什么样的一个子集?从上文可以看出, C实现了C++中过程化控制及其它相关功能,而在C++中的C(我称它为“C+”),相对于原来的C还有所加强,引入了重载、内联函数、异常处理等等玩艺儿,C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等等。 再提高一点,在C++中,数据封装、类型这些东东已不是什么新鲜事了,需要考虑的是诸如:对象粒度的选择、对象接口的设计和继承、组合与继承的使用等等问题。 所以相对于C,C++包含了更丰富的“设计”的概念,但C是C++的一个自洽子集,也具有强大的功能,同样值得学习。 几点学习建议: 1.基本概念很重要。无论学C,还是学C++,基本概念都是第一位的,也是比较困难的,但只有把握了基本概念才能把握整体脉络,才能居高临下。 2.C是C++的子集,它的基本概念和设计方法相对比较容易理解,初学者可从它入手。 3.如果要学好C++,建议初学者最好别在如VC,BCB平台下写程序,那种自动化的代码生成,花花绿绿的界面,会让你手足无措。最好先找一片空地(unix,dos),从头做起,写几个大点的程序,数个回合,再到VC,BCB下看看,你会轻松得很。在我看来,学好C/C++是成为VC,BCB高手的必由之路。 4.不要妄想速成,必须得一个byte,一个bit的去抠,尽量搞清楚每一个问题。 5.几本好书: 机械工业出版社的那套“计算机科学丛书”从C到C++,到面向对象设计,一应俱全,都TMD是经典中的经典,而且价格公道,童叟无欺。 国内也有几本好书,......

阅读全文(53556) | 评论:68

开发者上网推荐站点(2004-12-24 19:37:00)

摘要:想做一位出色的开发者吗?没问题!但你一定要随时了解和掌握最新的业内新闻和技术。如果落在了后面就有的好看了。我在这里总结了一些优秀的网站供你了解最新的有关信息和趋势。   为了在这份列表中容纳合理的网站我真是费尽脑筋。首先新闻组、用户组或者邮件列表都排除在外。当然,这些也是重要的信息来源,你也应该有所注意,不过,这些信息来源几乎不可能实现一般化,写在本文里有点不合适。 接着我就着手编辑这份推荐网站列表,马上,我意识到要把我的最爱全写下来这个列表保不准会有1米多长呢!除了下面列出的网站以外,网上还有非常多的专业信息站点。所以我决定后续一篇文章对这些专业技术站点进行专门阐述。 最后就得出了以下的网站列表,这些网站都是目前在网络上比较活跃和有名的站点,其中的大部分都对其内容进行了校验。过时的信息少的多。 下面就是处于技术趋势前列的最基本信息网站列表。 技术新闻 以下这些网站提供最新的业内新闻。我按照自己的口味选出若干。 CNET的News.com—“技术新闻优先。”这是著名的Builder.com的姊妹站点,News.com提供了大量的最新技术新闻。http://news.com.com/ The Register—“紧跟IT步伐。”该网站倾向于提供硬件和系统新闻,但也不排斥其他方面的主题新闻。The Register还经常摘录其他网站遗漏的新闻。http://www.theregister.co.uk/ Slashdot—“技术大众新闻网站。”这个网站明确为开放源代码社团服务,但涵盖了大量的其他素材,该网站的用户量相当大,经常充斥火暴的讨论。真是个人人都该访问的网站。http://slashdot.org/ Newsforge—“Linux和开放源代码运动在线报纸。”这个评语相当程度地说明了该网站的内涵。这些家伙始终盯着Linux和开放源代码的一举一动,什么都没有放过。http://newsforge.com/ 一般开发 多增加自己的知识面总没有坏处,在激烈竞争的时代就得睁大自己的眼睛把世界看个明明白白。一般性的开发网站多得不计其数,要从质量和可靠性来看,下面的这些网站特别适合咱们走一遭。 Builder.com—“超越代码颠峰。”你来对了!Builder.com内容非常丰富,主题极富于多样性,从编程到系统设计到开发项目的管理应有尽有。该网站还包括产品......

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

[转]写给想当程序员的朋友(2005-09-14 11:26:00)

摘要:[转]写给想当程序员的朋友 --――一个还不太老的程序员的体会 (初稿) 软件以程序员为本(《程序员》) 谨以此文献给所有想当程序员的朋友 (一) 文章由来及个人经历 我是一名计算机专业的本科毕业生,毕业已经1年多了。毕业后从事的是软件编程工作,经常有其他专业的朋友想从事软件编程工作,向我请教如何,因为我自觉涉行不深,不敢信口开河,无奈朋友信任,我不得不郑重考虑一下这个问题了,来帮助朋友选择和回报朋友的信任。 这也就是此文的由来。 还是先谈谈我个人的经历吧。(是不是有点俗套,但我觉得了解我的经历,有助于理解我话的含义;我一向认为不了解古龙的生活经历的,不会真正读懂古龙的作品和古龙笔下的英雄的)我本科就读于南方一所著名的高校(因为自己的不成气,愧谈母校名谓),学的就是计算机专业。上本科时,几乎没有认真的听完一门专业课程,上课看报纸睡大觉,下课看录像看小说看球赛,临考抱佛脚,每次考试和课程设计都是蒙混过关。(于之相对是,我选修的工商管理和经济贸易方面的课到是听得不亦乐乎,考的分数颇高,也许这才是我的真正兴趣所在。) 总而言之,大学是混过来了,对专业的理解和掌握程度,应该没有达到毕业要求的合格水平。(也很后悔,但是有什么用呢,当时不知道珍惜;如果上天再给我一次机会的话,我一定会抓住,多看点美国大片少看点港片;现在,重回校园是我的一大理想)但是大学的学习使我有了一个简单的知识框架(总算学费没白交),我对一个朋友这样形容过我的这个知识框架,“它不是钢筋铸的,是稻草扎的”,哈哈哈,不要笑,真的,我敢说很多本科毕业的朋友的本专业的知识框架也只不过是“稻草扎的”。直到现在,我一直觉得自己的基础知识还是很薄弱,一直想抓点时间,把基础书本好好的温习一下。(此项任务正在计划和实施中) 毕业后,分配到某研究所工作。当领导让我选择自己以后的工作方向时,我毫不犹豫的选择了软件(也不知道到底是对还是错,但我决不后悔)。此研究所主要是以硬件为核心搞通信控制设备的研发生产;软件是辅助,所以也不受什么重视,很多搞软件的人都跳槽走了,留下来的大都是一些已经废掉和行将废掉的“伪/萎”程序员(名副其实的“软件人员”)。在这里感觉不到什么高紧张和高技术程度的研究和开发;软件开发的技术含量极低,以致于大部分人只有半年的学习和开发经验,以后都是这些知识和经验的重复利用。(我问过其他到研究所工作的同学,他们说都一样......

阅读全文(5506) | 评论:2