博文

软件开发学习路线 转(2007-02-09 15:55:00)

摘要:软件开发学习路线 发表时间: 2006-2-11 08:50    作者: vogue    来源: 中国教程网--个人空间 我们今天来谈谈软件开发学习路线
  
  两千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒进也不保守并非中庸之道,而是找寻学习软件开发的正确路线与规律。
  
  从软件开发人员的生涯规划来讲,我们可以大致分为三个阶段,软件工程师→软件设计师→架构设计师或项目管理师。不想当元帅的士兵不是好士兵,不想当架构设计师或项目管理师的程序员也不是好的程序员。我们应该努力往上走。让我们先整理一下开发应用软件需要学习的主要技术。
  
  A.基础理论知识,如操作系统、编译原理、数据结构与算法、计算机原理等,它们并非不重要。如不想成为计算机科学家的话,可以采取"用到的时候再来学"的原则。
  
  B.一门编程语言,现在基本上都是面向对象的语言,JAVA/C++/C#等等。如果做WEB开发的话还要学习HTML/JavaScript等等。
  
  C.一种方法学或者说思想,现在基本都是面向对象思想(OOA/OOD/设计模式)。由此而衍生的基于组件开发CBD/面向方面编程AOP等等。
  
  D.一种关系型数据库,ORACLE/SqlServer/DB2/MySQL等等
  
  E.一种提高生产率的IDE集成开发环境JBuilder/Eclipse/VS.NET等。
  
  F.一种UML建模工具,用ROSE/VISIO/钢笔进行建模。
  
  G.一种软件过程,RUP/XP/CMM等等,通过软件过程来组织软件开发的众多活动,使开发流程专业化规范化。当然还有其他的一些软件工程知识。
  
  H.项目管理、体系结构、框架知识。
  
  正确的路线应该是:B→C→E→F→G→H。
  
  还需要补充几点:
  
  1).对于A与C要补充的是,我们应该在实践中逐步领悟编程理论与编程思想。新技术虽然不断涌现,更新速度令人眼花燎乱雾里看花;但万变不离其宗,编程理论与编程思想的变化却很慢。掌握了编程理论与编程思想你就会有拨云见日之感。面向对象的思想在目......

阅读全文(4123) | 评论:0 | 复制链接

C++的学习感想  转(2007-02-09 15:45:00)

摘要: C++的学习感想 发表日期:2006-09-03作者:[转贴] 出处:   C++的学习感想  
原作者姓名 robindy
正文
很多人把学习C++语言当成学习VC了,我曾经就走过这样的弯路。当学了很长时间的VC后
还是得回过头来学习C++语言本身。 那么学习C++从何处入手了?
C++语言相对于C语言来说引入了两个大的新东西,一个就是面向对象(具体来将就是类
),另外就是模板技术(模板编程或者叫泛型编程是进来非常流行的技术,在C#中虽然还
没有对泛型编程的支持,但是相信在将来也一定会加入这一功能),模板是C++中比较复
杂的部分,但是作为一个真正的C++程序员,这部分很重要。尤其是对C++标准程序库
的掌握尤为重要。
刚开始的时候千万不要直扑VC中的各种向导和设计器。因为依赖开发环境生成的很多代码
会把我们搞糊涂,也不利于我们学习C++语言本身。我的建议就是生成一个空的控制台工
程,然后自己向里面添加文件。
如下就是一个简单的控制台程序:
//robindy/list.cpp #include  <iostream>
#include  <list> using namespace std; int main()
{
list<char> coll; for(char c = 'a'; c <= 'z'; ++c)
{
    coll.push_back(c);
} list::const_iterator pos;
for(pos = coll.begin(); pos != coll.end(); ++pos)
{
    cout << *pos << ' ';
}
cout << endl; return 0;
} 对using namespace std;的解释:
所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个......

阅读全文(5130) | 评论:1 | 复制链接

我的学习经验 来自csdn论坛(2007-02-09 14:45:00)

摘要:我的学习经验 来自csdn论坛 新手的请进来交流一下学习经验,高手请进来指导指导,在此先谢谢了 说名:我这个帖子是想交流一下新手门的学习经验和学习中所遇到的困难,困惑,以及怎么解决的. 一:先自我介绍一下
   我(农村,83年)大学上了一年,然后就辍学了.在外漂泊一年,打了一年工,其中的冷暖自知.总这样的漂着也不是回事.后回家想学一门技术,将来能希望通过它使自己的生活能有所改变,现在正在学习计算机编程(ASP.NET2.0).现在又考了成人高考,上了个大专.自知学历不行,所以想在其它的地方下功夫. 二:我现在的学习方法
 1:通过微软的再线视频webcast来学习(http://www.msdnwebcast.com.cn/Default.aspx),听里面的系列讲座,然后在自己的计算机(古董级的电脑)上把代码跟着敲一遍,不懂的地方就上网查资料,但很费时间  2: 上一些网站学习一些控件的常用方法(www.cnblogs.cn www.csdn.net msdn),在就是上外国的网站下DEMO,但英语水平有限,只要看到DownLand就下,也是费时费力,所以现在也在加强学习英语.  3:去一些有名的BLOG,去里面学习,有的也有视频学习,还是系列课程,比如这个(http://thcjp.cnblogs.com),我认为入门级别的可以去这个看看,还不错.  4:去书城看书,因为我住的地方离书城还算比较近,我经常去那里看书,书还能更上形式的发展,因为没钱买,所以经常带笔去抄一些DEMO,回来在试验试验.一致于有个营业员说我毅力真大,把大半个书抄下了,哪里哦,我只是抄一下DEMO而已.  5:在就是下一些大的DEMO,比如:留言本,论坛,CMS啊等等,不过.NET2.0真正有源码的很少,都封装了.很郁闷啊!!!希望有人可以提供真正有源码的程序,不胜感激(邮箱:xing_1001@163.com) 我想以上就是我的学习方法. 三:解决问题方法
1:不用说就是baidu google了
2:专业论坛,前面我也介绍了
3:QQ群,这个感觉没有多大用处,不知道是不是我用好的缘故还是其他的原因?
4:在就是去书城,前面我也介绍了 四:我的困惑
&n......

阅读全文(3395) | 评论:1 | 复制链接

我的学习方法 -转自csdn博客(2007-01-31 20:10:00)

摘要:我的学习方法 -转自csdn博客 转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd 作者联系方式:Li XianJing <xianjimli at hotmail dot com> 更新时间:2007-1-29   今天CSDN的频道编辑姜磊,来邮件邀请我做移动频道技术顾问。对我来说,这是一种极大的荣誉,我很高兴,也很感谢姜磊。不过若我真去干这活,熟悉我的人一定会笑掉大牙。何也?原因是我的学习方法,让我不能担此重任。   我是那种只专注于自己领域的人,对外界几乎不管不问,在手机行业混了几年,对手机行业很多常识都一无所知。曾经有一个自称是GSM协议的高手,想和我交流技术,得知我连MTK都不知道后,他可能大失所望,结果再也没有出现过。前几天我和三星一位技术主管聊天,他滔滔不绝的给我分析了目前业内的形势,还讲了一些大公司的传闻。整个过程中我一句也插不上,最后我还问他TI的中文名叫什么,估计令他大跌眼镜。你说我适合去做移动频道技术顾问么?   姜磊说,“我们的要求很简单,您只要每天至少给我们推荐两篇文章(多多益善),要求带上您的评论就可以了。同时,我们希望其中有一些最好是国外的最新技术内容(经过简短的翻译)。”呵,这么简单的要求!对于我来说却是难得不得了,因为我很少上网看文章,特别是新闻性质的文章。   我确信我的技术知识面比身边80%以上的同事都要广,但这仅限于经典的理论和方法。如果讲新东西,和falls_huang这样的高手相比(非常感谢他),我只能归于那种孤陋寡闻的一类。当然我也是比较爱学习和研究的人,在技术上,我绝不会妄自菲薄的,只是我的学习方法不一样罢了。这里谈谈我的学习方法,大家不要误解,写这篇BLOG的原因不是好为人师,只是想说明我不能担此重任的原因。   重基础胜于技巧。像大多数人一样,刚开始接触计算机时,我也很喜欢去玩一些小技巧,喜欢玩DOS/BIOS中断,去研究病毒和反拷贝之类的东西,也喜欢把窗口搞得奇形怪状的。后来发现这些东西没什么实际价值,而且我更敬重科学家和工程师而不是黑客(当时对黑客误解),我希望系统的学习计算机和软件开发。后来按照网络老师给大家制定的学习计划,一直读下去,花了几年时间,把基础打得比较扎实,这是我最引以自......

阅读全文(3698) | 评论:0 | 复制链接

程序入门:初学者应从何种编程语言开始学起 (来自csdn论坛)(2007-01-30 19:16:00)

摘要:程序入门:初学者应从何种编程语言开始学起 (来自csdn论坛) 这是一个争论不休的话题,不同人总会有不同的见解。传统的说法是从Pascal开始,而较为新点的是C开始,这几年以来,也有提出直接从C++或者C#/Java开始学起。 本人是本科出身的,对于专科或者不读书的初学者来说,他们的环境也许跟我的不同,不过我的观点可以作为参考。 首先,我先来介绍一下各种编程语言的来源、特点。 Pascal语言: Pascal是一种计算机通用的高级程序设计语言,由瑞士Niklaus Wirth教授六十年代末设计并创立的。 Pascal的主要特点有:严格的结构化形式、丰富完备的数据类型、运行效率高、查错能力强等特点。 由于上述特点,Pascal可以方便用于描述各种算法和数据结构。对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一。NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的数学语言。 C语言: C语言是介于汇编语言和高级语言之间的语言,属于高级语言,也称为中级语言,是集汇编和高级语言优点于一身的程序设计语言。于1972年在美国贝尔实验室里问世。早期的C语言主要用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了九十年代,C语言开始进入其他操作系统,并很快在各类大、中、小和微型计算机上得到广泛的应用。成为当代最优秀的程序设计语言之一。 C的特点 1. 是一种结构化语言。层次清晰,便于按模块化方式组织程序,易于调试和维护。 2. C语言的表现能力和处理能力极强。不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,它还可以直接访问内存的物理地址,进行位级别的操作。 3. 由于C语言实现对硬件的编程操作,所以既可用于系统软件的开发,也适合于应用软件的开发。C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类计算机上,从而形成了多种版本的C语言。 4. 由于C语言允许直接对位、字节和地址进行操作,能实现汇编语言的大部分功能。 5. 目标代码质量高,程序执行效率高。 总体上来说,C语言的优点是简洁、紧凑、使用方便、灵......

阅读全文(3258) | 评论:1 | 复制链接

[职场生存]细节和感觉[三]:感觉-csdn郑昀著(2007-01-29 22:00:00)

摘要:[职场生存]细节和感觉[三]:感觉
    zhengyun_ustc 200701 -csdn郑昀著 前文链接:[职场生存]细节和感觉[一]
[职场生存]细节和感觉[二]:细节包括哪些部分? 下面我们来说第二点: 感觉。 我所说的这个感觉不是以前我曾经强调过的“在工作中寻找不断的良性刺激和成就感”的感觉,而是“打怪”的感觉。 你也许被领导数落过,也许经历过项目迅速演变成无序状态,也许领导今天为了一个销售或市场短期目的而让大家加班加点后天却戛然而止成了“无用功”,甚至于你的项目直接被勒令停止。 也许你属于某一个“矩阵”中,你的分属领导让你向东,而你的直属领导让你向西,你夹在其中不知所措。 也许你不知不觉中参与了公司政治斗争,今天你的派系转眼被击溃,明天你就遭到了排挤。 也许你对直属领导的行事风格颇为不满,总觉得他事事都在针对你。 。。。 只要你身在江湖的时间足够长,你一定会遇到上面的情形。你一定会不开心。 那么我们应该抱有什么样的心态呢? 好答案之一就是,保持“打怪”的感觉。 我们打RPG游戏的时候,会有意识地期望去下一个目的地之前的路上,赶紧打够各种各样的怪物,积累足够多的经验,来应付下一个不知道什么样的大BOSS。越是临近见到大BOSS,我们越紧张,尽可能地把路上的所有怪物都打一遍来获取各种各样的宝物或者各种类型的经验值。 其实,前面我所描述的那些困境,你完全可以把他们认为是大BOSS之前的种种怪物,但是与RPG游戏不同的是,无论你打掉他们或者是被他们打掉,都是游戏的一个过程,你还会继续前行,你都会因此而增加经验,只要你不放弃,只要你不伤害自己,没有什么能够阻止你见大BOSS。 分属领导向东,直属经理向西,这是多好的打怪机会,这也是你成长的必然过程。这时候就有点像是我们以前打过的一个游戏,回答对游戏里那个女孩的问题,你才能有机会获取她的芳心。现在,游戏手柄握在你手里了,就看你怎么选择了。选择过几回之后,你就知道下次该怎么作了。年轻就是这点好处,永远有下一次,用不着保存游戏进度,用不着reload。重要的是,是你在主动选择,你知道你做出了什么选择,也最终知道结果是什么,这就够了,过了马上要来的大BOSS,下一关还会有同样的关卡,这时候你总知道该怎么选了吧。 对于你牵涉到了政治斗争漩涡里面或者......

阅读全文(2780) | 评论:1 | 复制链接

[职场生存]细节和感觉[二]:细节包括哪些部分?-csdn郑昀著(2007-01-29 21:59:00)

摘要:[职场生存]细节和感觉[二]:细节包括哪些部分?
    zhengyun_ustc 200701  -csdn郑昀著 前文链接:[职场生存]细节和感觉[一] 前面说了细节是一种技巧,并且展示了老外的细节之一。那么到底我所说的细节都包括哪些部分呢? 简单地说,这需要你去用心发现和学习。但在学习的过程中,请记住两点: 一,最佳的成长方式是,找到一个优秀的领导,并向他身上的优点迅速靠拢;吸收得差不多了,再换一个领导模板。很多人都谈到过这一点,模仿,是让你飞得更高的一个捷径。因为你要学习的那些优点已经在职场中部分验证过了,比你从管理的或软件工程的书本上看到的要真实有效的多。 二,不要把注重细节变得让别人误以为是繁文缛节。请保持一个原则:细节是为了让别人更舒服,而不是让人浑身不自在。如果你的注重细节让别人如坐针毡,那么可能你的做法是错误的,这时候你也许需要用奥卡姆剃刀法则来审视自己了。所以我们会认为ISO9001的评选过程是错误的,就是因为它让大多数人不自在,因为它是非自然的,而并非自然健康的。如果一个项目的大多数文档写得催人入眠,格式呆板如同嚼蜡,那它能够算优质资产吗?No,No,我们所说的细节不是这种的细节。你必须让人觉得贴心和舒服,否则“细节”就不是一种技巧,而变得和外企的“邮件文化”一样既无用又引起内讧。 人们还会说,“细节”会让我付出过多的机会成本,有这个功夫,我能写好多行程序了。郑昀说,这恰恰是因为你从来没有注重过细节,所以不知道这做起来有多容易。因为你天天忙得屁滚尿流的,所以,你根本没有时间思考做事的方式方法,也正是因为你没有时间思考,所以你没办法养成好习惯和好细节。一天一天地日子过去,你就这么恶性循环下去。 我举一个浅显易懂的例子(正如我经常说的,作为技术人员,给倾听者举简单易懂的例子、用浅显的语言表述,也是表示你能做到贴心和职业的重要特征),我大学时候每隔两三天就会洗一次衣服,而不像大多数男生动辄一个月洗一次,所以以这种频率洗衣服的话,基本每次洗衣服很容易,本来就没几件嘛。就算是这么几件,我也以很轻松的态度洗完,丝毫不会觉得会是什么负担。为什么呢?要洗衣服的时候,我就会在宿舍自修,先把他们泡起来略微搓搓,然后自修一段时间去厕所的时候顺便到那里猛搓他们每件四五十把,这样既不挤出特别的时间来对付他们,......

阅读全文(2579) | 评论:0 | 复制链接

java关于23种设计模式的有趣见解 (2007-01-28 19:14:00)

摘要:java关于23种设计模式的有趣见解 创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。 2、BUILDER—MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这就是我的“我爱你”builder。(这一定比美军在伊拉克用的翻译机好卖) 建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。 3、FACTORY METHOD—请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Factory Method模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。 工厂方法模式:核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。 4、PROTOTYPE—跟MM用QQ聊天,一定要说些深情的话语了,我搜集了好多肉麻的情话,需要时只要copy出来放到QQ里面就行了,这就是我的情话prototype了。(100块钱一份,你要不要) 原始模型模式:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类,产品类不需要非得有任何事先确定的等级结构,原始模型模式适用于任何的等级结构。缺点是每一个类都必须配备一个克隆方法。 5、SINGLETON—俺有6个漂亮的老婆,她们的......

阅读全文(2252) | 评论:0 | 复制链接

 VC不是梦想,C++需要自由的心 -孟岩著(2007-01-21 13:31:00)

摘要: VC不是梦想,C++需要自由的心 -孟岩著 myan发表于 2001年02月25日 13:34:00  http://blog.csdn.net/myan/archive/2001/02/25/1904.aspx  关于对于VC/MFC/ATL的评论问题,其实我很早就想写一篇文章来阐述自己的观点,
不过又觉得这种容易引发论战的文章实际上是在空耗大家的时间, 不如做点实际
工作. 但是现在中国程序员群体的思想走向已经到了一种非常危险的一边倒的地步,
上几期电脑报上登出了几名14岁的小孩子, 刚刚学会写几个程序, 就把VC列为自己
的梦想. 我去年找工作的时候,连续被几个公司问会不会VC,得到我的答复之后,
他们怎么也不能相信一个学了四年C,两年多C++,还利用“空闲”时间学习了Java、
Perl的人,一个敢于在“专长”一栏里写上“掌握C++”的人,居然只是对VC“略
有了解”,我从他们的表情中看出一种不屑:“你还敢说自己懂C++?你还有时间
去学别的东西?连VC都不会,水平能高到哪去?”我并没有费力去向他们解释VC外
面的世界更精彩,因为之前我在提到STL这个词汇的时候,已经留心他们目光,那是
一种冷漠、茫然和无动于衷。一切都已经十分清楚,解释是徒劳的,他们根本不知道VC外面还有C++。 当然不劳大家担心,我最终还是找到了一份满意的工作。但是这种经历对我的触动
是很大的,因为我已经深深地感觉到,当我们中国的程序员好不容易能够有机会以
一双开放的眼睛面向整个世界的时候,我们的思想又被迅速地封闭了起来。一个叫
微软的巨人用一只巨大的圆规在我们的思想里画了一个大圈圈,并且对我们说:
“天就是这么高,地就是么大,你们享受吧!”伊甸园的生活是快味的,但是,
当我们所有人都被牢牢地限制在一个范围之内,听命于一个上帝的清规戒律时,我看不到我们自己的未来还有什么希望,我甚至看不到我们自己存在的意义。 不自由,勿宁死! 我们的能力当然是有限的,在相当长的一段时间里我们所能到达的疆界还是会远远地小于先驱者开拓的界域。但是我确信,就在现在,我们的能力至少可以突破微软给我们划定的天地。微软是好的,她很体贴,很出色。但是不论是微软也好,巨软也好,在我们程序员的心......

阅读全文(3467) | 评论:4 | 复制链接

IT从业人员必看的10个论坛 来自csdn论坛(2007-01-15 23:06:00)

摘要:IT从业人员必看的10个论坛 来自csdn论坛 IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多,往哪里去,新浪论坛,网易是经常去的,人多啊,好几十万,去了以后才发现没有意思,没有共同的语言,于是逛专业论坛,行业论坛,终于找到了共同语言,总结一下论坛的经验:人不在多,有仙则灵,贴不在多,有精则行,逛了大半辈子,一个IT人发展方向一定要除了技术外,业务,理论,思想一个都不能少,于是我推荐如下这些论坛,或许真能帮助您,做论坛,都是赔本的买卖,不收费还帮助你学习,得向斑竹们致敬啊。
  
  以下论坛排名不分先后,还有许多业界知名的论坛,主要有点偏门,这个不做概述,呵呵。
  
  IT技术开发综合类
  http://community.csdn.net/
  适合人群:只适合软件开发者
  技术开发最全面的论坛,里面可以遇到很多牛人,版面也很全,什么J2EE,.NET啊,该有的全上,在这里基本上可以提出任何问题,人气也是最旺的,不过一般提出的意见都有正方两面的,所以最终解决问题,还是靠自己。
  评价:专业,很牛逼,就是速度慢。
  
  http://www.52rd.com/bbs
  适合人群:研发人员
  我爱研发网,顾名思义,是针对R&D研发人员的,目前在射频,通信,手机研发是国内第一的,牛人不少,问题讨论的很彻底。论坛制度很人性化,设有资料交换区,有超大量有价值的资料。
  评价:强,速度还可以;
  
  http://bbs.chinaunix.net/forum/
  适合人员:系统工程师
  这里的特色就是操作系统方面在业界是最著名的,牛人不少,目前,在数据库,网络方面也颇有建树,当然灌水方面也不赖,呵呵,属于温柔性
  评价:强,速度还可以
  
  http://bbs.chinajavaworld.com/
  适合人员:JAVA开发
  JAVA方面非常综合的论坛了,牛人也很多,是一个难得的JAVA论坛,涉及你想象的关于JAVA目前任何技术。
  评论:强,速度还可以。   电子工程师类
  http......

阅读全文(3074) | 评论:0 | 复制链接