首页 程序员发展史

程序员发展史

举报
开通vip

程序员发展史历史版本1:程序员的八种境界返词条·编辑时间:041201:40历史版本编辑者:方兴东历史版本:最新历史版本下一历史版本·内容长度:44929图片数:7目录数:5·修改原因:目录·程序员的十层楼、程序员的十层境界·程序员的四境界、七宗罪与七武器·程序员的八种境界·一个程序员的成长的六个阶段·参考文献[显示部分][显示全部]程序员的十层楼、程序员的十层境界目录自西方文艺复兴以来,中国在自然科学方面落后西方很...

程序员发展史
历史版本1:程序员的八种境界返词条·编辑时间:041201:40历史版本编辑者:方兴东历史版本:最新历史版本下一历史版本·内容长度:44929图片数:7目录数:5·修改原因:目录·程序员的十层楼、程序员的十层境界·程序员的四境界、七宗罪与七武器·程序员的八种境界·一个程序员的成长的六个阶段·参考文献[显示部分][显示全部]程序员的十层楼、程序员的十层境界目录自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。程序员众生相那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道程序员有多少种技术层级,每个层级需要什么样的技术水平,然后再比较中国和西方在各个技术层级的人数,就可以知道到底有没有差距,差距有多大。当然,对于如何划分程序员的技术层级,不同公司或不同人会有不同的划分 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ,下面的划分仅代表个人的观点,如有不当之处,还请砸板砖予以纠正。第1层菜鸟第1层楼属于地板层,迈进这层楼的门槛是很低的。基本上懂计算机的基本操作,了解计算机专业的一些基础知识,掌握一门基本的编程语言如CC++,或者Jaa,或者JaaScript,,均可入门迈进这层。在这层上,中国有着绝对的优势,除了从计算机专业毕业的众多人数外,还有大量的通信、自动化、数学等相关专业的人士进入这一行,此外还有众多的其他专业转行的人士,人数绝对比西方多出甚多。并且还有一个优势就是我们这层人员的平均智商比西方肯定高。没有多少人愿意一辈子做菜鸟,因为做菜鸟的滋味实在是不咋的,整天被老大们吆喝着去装装机器,搭建一下测试环境,或者对照着别人写好的测试用例做一些黑盒测试,好一点的可以被安排去写一点测试代码。当然如果运气好的话,碰到了国内的一些作坊式的公司,也有机会去写一些正式的代码。所以,菜鸟们总是在努力学习,希望爬更高的一层楼去。第2层大虾从第1层爬到第2层相对容易一些,以CC++程序员为例,只要熟练掌握CC++编程语言,掌握C标准库和常用的各种数据结构算法,掌握STL的基本实现和使用 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,掌握多线程编程基础知识,掌握一种开发环境,再对各种操作系统的API都去使用一下,搞网络编程的当然对sockt编程要好好掌握一下,然后再学习一些面向对象的设计知识和设计模式等,学习一些测试、软件 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 和质量控制的基本知识,大部分人经过23年的努力,都可以爬到第2层,晋升为大虾。中国的大虾数量和菜鸟数量估计不会少多少,所以这层上仍然远领先于西方。大虾们通常还是有些自知之明,知道自己只能实现一些简单的功能,做不了大的东西,有时候还会遇到一些疑难问题给卡住,所以他们对那些大牛级的人物通常是非常崇拜的,国外的如RobrtC.Martin、LinusToralds,国内的如求伯君、王志东等通常是他们崇拜的对象。其中的有些人希望有一天也能达到这些大牛级人物的水平,所以他们继续往楼上爬去。第3层牛人由于大虾们经常被一些疑难问题给卡住,所以有了大虾们只好继续学习,他们需要将原来所学的知识进一步熟练掌握,比如以熟练掌握C++编程语言为例,除了学一些基础性的C++书籍如《C++Primr》,《EffctiC++》,《ThinkinC++》,《ExcptionC++》等之外,更重要的是需要了解C++编译器的原理和实现机制,了解操作系统中的内部机制如内存管理、进程和线程的管理机制,了解处理器的基础知识和代码优化的方法,此外还需要更深入地学习更多的数据结构与算法,掌握更深入的测试和调试知识以及质量管理和控制方法,对各种设计方法有更好的理解等。学习上面说的这些知识不是一挥而就的,不看个三五十本书并掌握它是做不到的。以数据结构算法来说,至少要看个510本这方面的著作;以软件设计来说,光懂结构化设计、面向对象设计和一些设计模式是不够的,还要了解软件架构设计、交互设计、面向方面的设计、面向使用的设计、面向数据结构算法的设计、情感化设计等,否则是很难进到这个楼层的。当然除了上面说的知识外,大虾们还需要去学习各种经验和技巧。当然这点难不倒他们,现在出版的书籍众多,网络上的技术文章更是不胜数,然后再去各种专业论坛里泡一泡,把这些书籍和文章中的各种经验、技能、技巧掌握下来,再去学习一些知名的开源项目如Apach或Linux操作系统的源代码实现等。此时对付一般的疑难问题通常都不在话下,菜鸟和大虾们会觉得你很牛,你也就爬到了第3层,晋升为牛人了。看了上面所讲的要求,可能有些大虾要晕过去了,成为牛人要学这么多东西啊!要求是不是太高了?其实要求一点也不高,这么点东西都掌握不了的话,怎么能让别人觉得你牛呢?程序员众生相需要提一下的是,进入多核时代后,从第2层爬到第3层增加了一道多核编程的门槛。当然要迈过这道门槛并不难,已经有很多前辈高人迈进了这道门槛,只要循着他们的足迹前进就可以了。想迈进这道门槛者不妨去学习一下TBB开源项目的源代码(链接:http:www.thradingbuildingblocks.org),然后上Intl的博客http:softwarblogszho.intl.comcatgorymulticor)和多核论坛http:forum.csdn.ntIntlIntlMulticor)去看看相关文章,再买上几本相关的书籍学习一下。在国内,一旦成为牛人,通常可以到许多知名的公司里去,运气好者可以挂上一个架构师的头衔,甚至挂上一个首席架构师或者首席xx学家的头衔也不足为奇。有不少爬到这层的人就以为到了楼顶了,可以眼睛往天上看了,开始目空一切起来,以为自己什么都可以做了,什么都懂了,经常在网络上乱砸板砖是这个群体的最好写照。由此也看出,国内的牛人数量仍然众多,远多于西方的牛人数量,在这层上仍然是领先的。也有不少谦虚的牛人,知道自己现在还不到半桶水阶段。他们深知爬楼的游戏就像猴子上树一样,往下看是笑脸,往上看是屁股。为了多看笑脸,少看屁股,他们并没有在此停步不前,而是继续寻找到更上一层的楼梯,以便继续往上爬。第4层大牛从第3层爬到第4层可不像上面说过的那几层一样容易,要成为大牛的话,你必须要能做牛人们做不了的事情,解决牛人们解决不了问题。比如牛人们通常都不懂写操作系统,不会写编译器,不懂得TCPIP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 的底层实现,如果你有能力将其中的任何一个实现得象模象样的话,那么你就从牛人升级为大牛了。当然,由于各个专业领域的差别,这里举操作系统、编译器、TCPIP协议只是作为例子,并不代表成为大牛一定需要掌握这些知识,以时下热门的多核编程来说,如果你能比牛人们更深入地掌握其中的各种思想原理,能更加自如的运用,并有能力去实现一个象开源项目TBB库一样的东西,也可以成为大牛,又或者你能写出一个类似Apach一样的服务器,或者写出一个数据库,都可以成为大牛。要成为大牛并不是一件简单的事情,需要付出比牛人们多得多的努力,一般来说,至少要看过200400本左右的专业书籍并好好掌握它,除此之外,还得经常关注网络和期刊杂志上的各种最新信息。当牛人晋升为大牛,让牛人们发现有比他们更牛的人时,对牛人们的心灵的震撼是可想而知的。由于牛人们的数量庞大,并且牛人对大虾和菜鸟阶层有言传身教的影响,所以大牛们通常能获得非常高的社会知名度,几乎可以用引无数菜鸟、大虾、牛人竞折腰来形容,看看前面提过的LinusToralds等大牛,应该知道此言不虚。虽然成为大牛的条件看起来似乎很高似的,但是这层楼并不是很难爬的一层,只要通过一定的努力,素质不是很差,还是有许多牛人可以爬到这一层的。由此可知,大牛这个楼层的人数其实并不像想像的那么少,例如比尔·盖茨之类的人好像也是属于这一层的。由于大牛这层的人数不少,所以也很难统计除到底是中国的大牛数量多还是西方的大牛数量多?我估计应该是个旗鼓相当的数量,或者中国的大牛们会更多一些。看到这里,可能会有很多人会以为我在这里说瞎话,LinusToralds写出了著名的Linux操作系统,我国并没有人写出过类似的东西啊,我国的大牛怎么能和西方的比呢?不知大家注意到没有,LinusToralds只是写出了一个象模象样的操作系统雏形,Linux后来真正发展成闻名全球的开源操作系统期间,完全是因为许多支持开源的商业公司如IBM等,派出了许多比LinusToralds更高楼层的幕后英雄在里面把它开发出来的。可能有些菜鸟认为LinusToralds是程序员中的上帝,不妨说个小故事:程序员众生相Linus,RichardStallman和DonKnuth高德纳)一同参加一个会议。Linus说:上帝说我创造了世界上最优秀的操作系统。RichardStallman自然不甘示弱地说:上帝说我创造了世界上最好用的编译器。DonKnuth一脸疑惑的说:等等,等等,我什么时候说过这些话?由此可以看出,LinusToralds的技术水平并不像想像中那么高,只是牛人和大虾觉得大牛比他们更牛吧了。在我国,有一些当时还处于大虾层的人物,也能写出介绍如何写操作系统的书,并且书写得非常出色,而且写出了一个有那么一点点象模象样的操作系统来。我想中国的大牛们是不会比西方差的,之所以没有人写出类似的商业产品来,完全是社会环境的原因,并不是技术能力达不到的原因。大牛们之所以成为大牛,主要的原因是因为把牛人给盖了下去,并不是他们自己觉得如何牛。也许有很多菜鸟、大虾甚至牛人觉得大牛这层已经到顶了,但大多数大牛估计应该是有自知之明的,他们知道自己现在还没有爬到半山腰,也就勉强能算个半桶水的水平,其中有些爬到这层没有累趴下,仍然能量充沛,并且又有志者,还是会继续往更上一层楼爬的。看到这里,也许有些菜鸟、大虾、牛人想不明白了,还有比大牛们更高的楼层,那会是什么样的楼层?下面就来看看第5层楼的奥妙。第5层专家当大牛们真正动手做一个操作系统或者类似的其他软件时,他们就会发现自己的基本功仍然有很多的不足。以内存管理为例,如果直接抄袭Linux或者其他开源操作系统的内存管理算法,会被人看不起的,如果自动动手实现一个内存管理算法,他会发现现在有关内存管理方法的算法数量众多,自己并没有全部学过和实践过,不知道到底该用那种内存管理算法。看到这里,可能有些人已经明白第5层楼的奥妙了,那就是需要做基础研究,当然在计算机里,最重要的就是计算二字,程序员要做基础研究,主要的内容就是研究非数值计算。非数值计算可是一个非常庞大的领域,不仅时下热门的多核计算与云计算属于非数值计算范畴,就是软件需求、设计、测试、调试、评估、质量控制、软件工程等本质上也属于非数值计算的范畴,甚至芯片硬件设计也同样牵涉到非数值计算。如果你还没有真正领悟计算二字的含义,那么你就没有机会进到这层楼来。可能有人仍然没有明白为什么比尔·盖茨被划在了大牛层,没有进到这层来。虽然比尔·盖茨大学未毕业,学历不够,但是家有藏书2万余册,进入软件这个行业比绝大部分人都早,撇开他的商业才能不谈,即使只看他的技术水平,也可以算得上是学富五车,顶上几个普通的计算机软件博士之和是没有问题的,比起LinusToralds之类的大牛们应该技高一筹才对,怎么还进不了这层楼呢?非常遗憾的是,从Windows操作系统的实现来看,其对计算的理解是很肤浅的,如果把Googl对计算方面的理解比做大学生,比尔·盖茨只能算做一个初中生,所以比尔·盖茨永远只能做个大牛人,成不了专家。看到这里,也许国内的大牛们要高兴起来了,原来比尔·盖茨也只和我等在同一个层次,只要再升一层就可以超越比尔·盖茨了。不过爬到这层可没有从牛人升为大牛那么简单,人家比尔·盖茨都家有2万多册书,让你看个5001000本以上的专业书籍并掌握好它应该要求不高吧。当然,这并不是主要的条件,更重要的是,需要到专业的学术站点去学习了,到ACM,IEEE,Elsir,SpringrLink,SIAM等地方去下载论文应该成为你的定期功课,使用Googl搜索引擎中的学术搜索更是应该成为你的日常必修课。此外,你还得经常关注是否有与你研究相关的开源项目冒出来,例如当听到有TBB这样针对多核的开源项目时,你应该第一时间到Googl里输入TBB搜索一下,将其源代码下载下来好好研究一番,这样也许你的一只脚已经快迈进了这层楼的门槛。当你象我上面说的那样去做了以后,随着时间的推移,总会有某天,你发现,在很多小的领域里,你已经学不到什么新东西了,所有最新出来的研究成果你几乎都知道。此时你会发现你比在做牛人和大牛时的水平不知高出了多少,但是你一点也牛不起来,因为你学的知识和思想都是别人提出来的,你自己并没有多少自己的知识和思想分享给别人,所以你还得继续往楼上爬才行。我不知道国内的专家到底有多少,不过有一点可以肯定的是,如果把那些专门蒙大家的砖家也算上的话,我们的砖家比西方的要多得多。第6层学者当专家们想继续往上一层楼爬时,他们几乎一眼就可以看到楼梯的入口,不过令他们吃惊的是,楼梯入口处竖了一道高高的门槛,上面写着创新二字。不幸的是,大多数人在爬到第5层楼时已经体能消耗过度,无力翻过这道门槛。有少数体能充足者,可以轻易翻越这道门槛,但是并不意味着体力消耗过度者就无法翻越,因为你只是暂时还没有掌握恢复体能的方法而已,当掌握了恢复体能的方法,将体能恢复后,你就可以轻易地翻越这道门槛了。怎么才能将体能恢复呢?我们的老祖宗孔子早就教导过我们温故而知新,在英文里,研究的单词是rsarch,其前缀r和sarch分别是什么意思不用我解释吧。或许有些人觉得温故而知新和rsarch有些抽象,不好理解,我再给打个简单的比方,比如你在爬一座高山,爬了半天,中途体力不支,怎么恢复体力呢?自然是休息一下,重新进食一些食物,体力很快就可以得到恢复。由此可知,对体能消耗过度者,休息+重新进食通常是恢复体能的最佳选择。可惜的是,国内的老板们并不懂得这点,他们的公司里不仅连正常国家规定的休息时间都不给足,有些公司甚至有员工过劳死出现。所以国内能翻越创新这道门槛的人是少之又少,和西方比起来估计是数量级的差别。再说说重新进食的问题,这个重新进食是有讲究的,需要进食一些基础性易消化的简单食物,不能进食山珍海味级的复杂食物,否则很难快速吸收。以查找为例,并不是去天天盯着那些复杂的查找结构和算法进行研究,你需要做的是将二分查找、哈希查找、普通二叉树查找等基础性的知识好好地复习几遍。以哈希查找为例,首先你需要去将各种冲突解决方法如链式结构、二次哈希等编写一遍,再试试不同种类的哈希函数,然后还需要试试在硬盘中如何实现哈希查找,并考虑数据从硬盘读到内存后,如何组织硬盘中的数据才能快速地在内存中构建出哈希表来,,这样你可能需要将一个哈希表写上十几个不同的版本,并比较各个版本的性能、功能方面的区别和适用范围。总之,对任何一种简单的东西,你需要考虑各种各样的需求,以需求来驱动研究。最后你将各种最基础性的查找结构和算法都了然于胸后,或许某天你再看其他更复杂的查找算法,或者你在散步时,脑袋里灵光一现,突然间就发现了更好的方法,也就从专家晋升为学者了。学者所做的事情,通常都是在前人的基础上,进行一些小的优化和改进,例如别人发明了链式基数排序的方法,你第1个发现使用一定的方法,可以用数组替代链表进行基数排序,性能还能得到进一步提高。由于学者需要的只是一些小的优化改进,因此中国还是有一定数量的学者。不过和国外的数量比起来,估计少了一个数量级而已。也许有人会觉得现在中国许多公司申请专利的数量达到甚至超过西方发达国家了,我们的学者数量应该不会比他们少多少。因此,有必要把专利和这里说的创新的区别解释一下。所谓专利者,只要是以前没有的,新的东西,都可以申请专利;甚至是以前有的东西,你把他用到了一个新的领域的产品里去,也可以申请专利。比如你在房子里造一个水泥柱子,只要以前没有人就这件事申请专利,那么你就可以申请专利,并且下次你把水泥柱子挪一个位置,又可以申请一个新的专利;或者你在一个柜子上打上几个孔,下次又把孔的位置改一改,,均可申请专利。这层楼里所说的创新,是指学术层面的创新,是基础研究方面的创新,和专利的概念是完全不同的,难度也是完全不同的。你即使申请了一万个象那种打孔一类的专利,加起来也够不到这层楼里的一个创新。当你爬到第6层楼时,你也许会有一种突破极限的快感,因为你终于把那道高高的写着创新二字的门槛给翻过去了,实现了0的突破。这时,你也许有一种独上高楼,欲望尽天涯路的感觉,但是很快你会发现看到的都是比较近的路,远处的路根本看不清楚。如果你还有足够的体力的话,你会想爬到更高一层的楼层去。第7层大师从第6层楼爬到第7层楼,并没有多少捷径可走,主要看你有没有足够的能量。你如果能象Hoar一样设计出一个快速排序的算法;或者象EugnW.Myrs一样设计出了一个用编辑图的最短路径模型来解决diff问题的算法;或者象M.J.D.Powll一样提出了一个能够处理非线性规划问题的SQP方法;或者你发现基于比较的排序算法,它的复杂度下界为O(NLogN);或者你发现用栈可以将递归的算法变成非递归的;或者你设计出一个红黑树或者AVL树之类的查找结构;或者你设计出一个象C++或Jaa一样的语言;或者你发明了UML;,你就爬到了第7层,晋升为大师了。上面举的这些例子中,其中有些人站的楼层比这层高,这里只是为了形象说明而举例他们的某个成就。从上面列出的一些大师的贡献可以看出,成为大师必须要有较大的贡献。首先解决问题必须是比较重要的,其次你要比前辈们在某方面有一个较大的提高,或者你解决的是一个全新的以前没有解决过的问题;最重要的是,主要的思路和方法必须是你自己提供的,不再是在别人的思路基础上进行的优化和改进。看了上面这些要求,如果能量不够的话,你也许会觉得有些困难,所以不是每个人都能成为大师的。中国软件业里能称得上是大师的人,用屈指可数来形容,估计是绰绰有余。值得一提得是,国外的大师就象我们的大牛一样满天飞的多。我把我猜测本国有可能进到这层楼的大师列一下,以起个抛砖引玉的作用。汉王的手写识别技术由于是完全保密的,不知道它里面用了什么思想,原创思想占的比重有多少,因此不知道该把它划到这层楼还是更高一层楼去。原山东大学王小云教授破解DES和MD5算法时,用到的方法不知道是不是完全原创的,如果是的话也可进到这层楼来。陈景润虽然没有彻底解决哥德巴赫猜想,但他在解决问题时所用的方法是创新的,因此也可以进到这层楼来。当然,如果能彻底解决哥德巴赫猜想,那么可以算到更高的楼层去。求伯君和王志东等大牛们,他们在做WPS和表格处理之类的软件时,不知是否有较大的原创算法在里面,如果有的话就算我错把他们划到了大牛层。由于所学有限,不知道国内还有那些人能够得上大师的级别,或许有少量做研究的教授、院士们,可以达到这个级别,有知道的不妨个帖子晾一晾。鉴于大师这个称号的光环效应,相信有不少人梦想着成为大师。或许你看了前面举的一些大师的例子,你会觉得要成为大师非常困难。不妨说一下,现在有一条通往大师之路的捷径打开了,那就是多核计算领域,有大量的处女地等待大家去挖掘。以前在单核时代开发的各种算法,现在都需要改写成并行的。数据结构与算法、图像处理、数值计算、操作系统、编译器、测试调试等各个领域,都存在大量的机会,可以让你进到这层楼来,甚至有可能让你进到更高一层楼去。第8层科学家程序员众生相科学家向来都是一个神圣的称号,因此我把他放在了“大师”之上。要成为科学家,你的贡献必须超越大师,不妨随便举一些例子。如果你象Dijkstra一样设计了ALGOL语言,提出了程序设计的三种基本结构:顺序、选择、循环,那么你可以爬到第8层楼来。顺便说一下,即使抛开这个成果,Dijkstra凭他的PV操作和信号量概念的提出,同样可以进到这层楼。如果你象DonKnuth一样,是数据结构与算法这门学科的重要奠基者,你也可以进到这层楼来。当然,数据结构和算法这门学科不是某个人开创的,是许多大师和科学家集体开创的。如果你象巴科斯一样发明了Fortran语言,并提出了巴科斯范式,对高级程序语言的发展起了重要作用,你也可以进到这层楼来。或者你象KnThompson、DnnisRitchi一样发明了Unix操作系统和功能强大、高效、灵活、表达力强的C语言,对操作系统理论和高级编程语言均作出重大贡献,那么你也可以进到这层楼来。或者你有FrdrickP.Brooks一样机会,可以去领导开发IBM的大型计算机Systm360和OS360操作系统,并在失败后反思总结,写出《人月神话》,对软件工程作出里程碑式的贡献,你也可以进到这层来。或者你提出了面向对象设计的基本思想,或者你设计了互联网的TCPIP协议,或者你象StnA.Cook一样奠定NP完全性的理论基础,或者你象FrancsAlln一样专注于并行计算来实现编译技术,在编译优化理论和技术取得基础性的成就,,均可进入这层。当然,如果你发明了C++语言或者Jaa语言,你进不到这层来,因为你用到的主要思想都是这层楼中的科学家提出的,你自己并没有没有多少原创思想在里面。看了上面列出的科学家的成就,你会发现,要成为“科学家”,通常要开创一门分支学科,或者是这个分支学科的奠基者,或者在某个分支学科里作出里程碑式的重大贡献。如果做不到这些的话,那么你能象AndrwC.Yao姚期智)一样在对计算理论的多个方向如伪随机数生成,密码学与通信复杂度等各个方向上作出重要贡献,成为集大成者,也可以进入这层楼。成为“科学家”后,如果你有幸象Dijkstra一样,出现在一个非常重视科学的国度。当你去世时,你家乡满城的人都会自动地去为你送葬。不过如果不幸生错地方的话,能不挨“板砖”估计就算万幸了。从上面随便举的一些例子中,你可能能猜到,西方科学家的数量是非常多的,于是你会想中国应该也有少量的科学家吧?我可以很负责任地告诉你一个不幸的结果,中国本土产生的科学家的数量为0。目前在国内,软件领域的唯一的科学家就是上面提过的姚期智,还是国外请来的,并不是本土产生的。可能你不同意我说的本土科学家数量为0的结论,因为你经常看到有许多公司里都有所谓“首席XX科学家”的头衔。我想说的是,这些所谓的“首席XX科学家”都是远远够不到这层楼的级别的,有些人的水平估计也就是一个“牛人”或“大牛”的级别,好一点的最多也就一个“学者”的级别。尤其是那些被称作“首席经X学家”的,基本上可以把称号改为“首席坑大家”。虽然我国没有人能爬到这层楼上来,但是西方国家仍然有许多人爬到了比这层更高的楼上。如果要问我们比西方落后多少?那么可以简单地答为:“落后了三层楼”。下面就来看看我们做梦都没有到过的更高一层楼的秘密。第9层大科学家进入这层楼的门槛通常需要一些运气,比如某天有个苹果砸到你头上时,你碰巧发现了万有引力,那么你可以进到这层楼来。当然,万有引力几百年前就被人发现了,如果你现在到处嚷嚷着说你发现了万有引力,恐怕马上会有人打110,然后警察会把你送到不正常人类的聚集地去。因此,这里举万有引力的例子,只是说你要有类似的成就才能进到这层楼来。牛顿发现万有引力定律开创了经典物理运动力学这门学科,如果你也能开创一门大的学科,那么你就从科学家晋升为“大科学家”。比如爱因斯坦创建了相对论,从一个小职员变成了大科学家。当然大科学家可远不止这两人,数学界里比物理学界更是多得多,如欧几里得创建了平面几何,笛卡尔开创解析几何,还有欧拉、高斯、莱布尼茨等数不清的人物,跟计算相关的大科学家则有图灵等人。从上面列出的一些大科学家可以发现,他们的成就不仅是开创了一个大的学科,更重要的是他们的成就上升到了“公理”的层面。发现公理通常是需要一点运气的,如果你的运气不够好的话,另外还有一个笨办法也可以进到这层楼来,那就是成为集大成者。例如冯·诺伊曼,对数学的所有分支都非常了解,许多领域都有较大的贡献,即使撇开他对计算机的开创贡献,成为大科学家照样绰绰有余。当然,程序员们最关心的是自己有没有机会变成大科学家。既然计算机这门大学科的开创性成果早就被冯·诺伊曼、图灵等人摘走了,那么程序员们是不是没有机会变成大科学家了呢?我们的古人说得好:“江山代有才人出,各领风骚数百年”,现在在计算机这门学科下面诞生了许多非常重要的大的分支,所以你还是有足够的机会进到这层楼的。如果你能够彻底解决自然语言理解机器翻译)这门学科中的核心问题,或者你在人工智能或者机器视觉图像识别)方面有突破性的发现,那么你同样可以轻易地晋升为“大科学家”。这样当某天你老了去世时,或许那天国人已经觉醒,你也能享受到如Dijkstra一样的待遇,有满城甚至全国的人去为你送葬。现在还剩下另外一个大家感兴趣的问题没有讨论,那就是这层中已经出现了牛顿、爱因斯坦、高斯等我们平常人都认为是顶级的科学家,是不是这层已经是楼顶了呢?相信还记得本文标题的人应该知道现在仅仅是第9层,还有第10层没有到达呢。可能不少人现在要感到困惑了,难道还有人站在比牛顿、爱因斯坦、高斯等人更高的楼层上?这个世界上确实存在可以用一只手的手指数得清的那么几个人,他们爬到了第10层楼上。因此,第10层楼不是虚构的,而是确实存在的。如果对此有疑惑或者认为我在胡诌一番的话,那么不妨继续往下看下去,窥一下第10层楼的秘密。第一层:菜鸟形如你我经常在MSDN、CSDN发贴提问的人。第二层:大虾经常在MSDN、CSDN上帖的人。第三层:牛人MSDN、CSDN上解决难题的人。也许大多数人是MSDN上的MVP或者CSDN上有很多分的人。第四层:大牛LinusToraldsBillGatsDaWinr程序员漫画DaidH.Hansson第五层:专家RichardStallmanUdiManbrJohnathanSachs第六层:学者FloydJohnVlissidsJohnBntlyRobrtSdgwickGraldJaySussman第七层:大师TonyHoarNicklausWirthEricRaymondGorgDantzig第八层:科学家EdsgrWybDijkstraDonE.KnuthJamsCoolyJohnBackusKnThompsonDnnisRitchiSymourCray第九层:大科学家IsaacNwtonAlbrtEinstinJohannCarlFridrichGaussTomasEdisonTJBrnrsL第十层:“上帝”自己瞎预测一下:不但技术上是科学家、思想上是哲学家,改变和影响了所有人的生活,而且给人们指明了方向。ConfuciusAlxyPajitno程序员的四境界、七宗罪与七武器目录程序员的四个境界  国学大师王国维先生认为古今成大事业、大学问者,必经过三种境界,第一种境界:“昨夜西风凋碧树。独上高楼,望尽天涯路”;第二种境界:“衣带渐宽终不悔,为伊消得人憔悴”,第三种境界:“众里寻他千百度,蓦然首,那人却在灯火阑珊处”。一代宗师真是体察入微,寥寥数语,道尽了求道者的心路历程,将一个人由浅尝、迷茫到彻悟的过程尽数概括,可谓入木三分。  IT行业可谓现在的热门行业,程序员也是很多人羡慕的工作。薪水高,不用东跑西颠,敲敲键盘,看看屏幕,一切工作全都搞定,轻松而方便。果真如此吗?不尽然,实际上,程序员的职业生涯也是一个求道的过程,需要不断的提高和学习,IT行业知识更新之快,常让程序员们有随时掉队的危险,无一日不战战兢兢,不敢稍有懈怠。  程序员的职业生涯也可分为四个阶段,初级程序员(菜鸟)、高级程序员(熟练工)、系统程序员(高手)、软件大师(大师),其作品也经历四种境界:  ·可以运行的程序  ·健壮、高效的程序  ·结构优美的程序  ·思想深邃的程序  程序员的必经第一个阶段都是编写可以运行的程序。很多人的编程生涯是从“HlloWorld”开始,当第一次按照教科书上的步骤,将源文件编辑完后,编译、连接、运行,在屏幕上显示出“HlloWorld”时,心中的激动一点也不亚于阿里巴巴打开了宝库的大门。初级程序员的目标一般是让程序能运行起来,他们迷惑于库函数的众多,不知道该用那一个,他们还要学习基本的语法,以使程序编译通过。初级程序员一般不会考虑设计模式、软件结构等问题。记得本人编写的第一个较大的程序是本人的本科毕业论文题目——一个计算机辅助实验系统,开发工具为TurboC,在DOS下开发(那个时候Windows还不太流行,怎么样,年代够久远吧),整个软件大约7000行代码,在当时已经能干不少事,在DOS下也能显示不少花里胡哨的图形界面,支持中文,支持鼠标操作(那时候在DOS下需要自己处理鼠标事件中断),当时还颇受好评。可是今天再重新温习过去的作品,真有点掺不忍睹,整个软件毫无结构可言,一共分成两个源文件还是由于编译器不支持一个太大的源文件而被迫分开,整个系统就是源代码的简单堆砌。相信每个程序员都需要经历这个阶段,它是程序员职业生涯的开始,没有捷径可以跨越,只有不断的实践、学习和总结。  第二阶段的程序员已积累了不少的编程经验,语法和库函数不再是障碍,他们已不再满足于程序正确运行、功能实现无误。他们需要了解程序背后发生的事情,需要了解操作系统的原理和调度机制,内存管理,文件系统组织等;了解开发工具的细节,如C的函数调用机制,参数的传送机制、堆栈的建立过程等;了解C++的封装、继承和多态性背后的机制,虚函数实现机理等。他们不仅知道程序应该如何运行,还知道它为什么这样运行,能编写高效、鲁棒的程序。  第三阶段的程序员能构建结构优美的软件系统,软件系统结构的合理性、可扩展性、可维护性、可测试性是系统程序员考虑的重点,结构优美的软件系统同一栋完美的建筑群一样,每个部分各司其职,搭配合理。本人一直认为,一个好的软件系统应当具有美学特征,如简洁、和谐、层次感等,一个好的软件系统应当是简洁的,易于理解的;应当是和谐的,每个部分高内聚、低耦合,既分工又合作;应当是层次分明,易于维护和移植。所以,本人建议那些进行软件系统设计的程序员,当你设计完一个系统后,需要问问自己:它美吗?,如果答案是否定的,那么我建议你需要重新考虑系统的设计,如果答案是肯定的,那么,恭喜你,你已经达到一个相当高的水平。  最后一级也许是每个程序员梦想达到的顶峰,程序设计不再是简单的工具,而是大师们改变世界的魔杖,从C到C++,再到COM和COBRA,再到XML和WEBSERVICES,每次改变,不是软件语法和开发工具的升级,而是用软件构建现实世界模型的改变,是一种软件思想的革命,软件具有了灵魂和智能。如果没有理解这一点,认为C++只是更好的C,COM只是更好的C++话,你就没有了解它们的精髓和思想性。程序员的七宗罪  虽然软件工程的思想已被绝大部分程序员所接受,但要将这种思想转化为软件开发过程中的种种自觉行为却不是一件很容易的事。究其原因,有很多因素,如很多程序员缺乏专业化的训练,重技巧,轻 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 ,包括一些计算机专业科班出身的程序员也存在这种问题;再如很多公司只注重软件产品的开发结果,不注重开发过程,客观上也影响了程序员的目标取向。如此种种,使很多中国的软件公司难以迈上一个新的台阶,发展壮大也就无从谈起。程序员们作为软件产品的创造者,当然也难辞其咎。  下面所列不过是产品开发过程中诸多问题中的其中几个,也许你不会犯这样的错,我还是引用一句老话:“有则改之,无则加勉”。一宗罪:以偏概全  大家都知道,在对一种产品决定立项开发前,都需要进行产品开发的可行性进行分析,而其中的市场分析至关重要,其实市场分析无外乎三点,一是要开发的产品是有市场需求的,二是公司有能力获取这份市场,三是公司能从产品中获益(不一定是指赚钱,如公司战略利益等)。看似简单的几点,想要完全弄清楚决非易事,所以很多产品的市场分析容易“以偏概全”,如通过个别用户的特定要求或报刊杂志的片面报道将产品市场无限扩大(分析人员自己想象的),技术驱动而忽略用户需求和成本(如铱星计划)等,至使产品开发完后没有预期的市场效果。想要全面而准确地的进行产品的市场分析确实是很不容易,需要平时的积累和理性的分析思考,不能靠撞大运。二宗罪:画猫成虎  大家也许有这样的经历,产品开发完毕交付用户使用后,用户总是不满意,如不符合他们的使用习惯,功能设置不合理等。所以产品的需求分析是如此重要,没有正确的需求,软件开发得再好,技术再先进,也不过是当摆设的花瓶。程序员们,尤其是系统分析员容易犯的第二宗罪就是“画猫成虎”,曲解了用户的要求。一份好的需求分析不是简单地将用户的每个具体的需求点记录下来,而是要洞察用户每个具体要求背后的动机,将分散的需求点串成一个有机的整体,基于需求并“超越需求”。一个好的系统分析员不仅是一位软件专家,还要是一个出色的领域知识专家和沟通者。三宗罪:好大喜功  项目延期好象是软件开发一个必经的步骤。项目经理在制定开发计划时,往往过于乐观,每个开发阶段都按最乐观的估计来计算开发时间,而没有充分考虑到软件开发的特殊性和不可预见性,程序员可能都有这样的经历,一个非常小的BUG可能要耽误很长的时间,使开发进行不下去。所以项目经理切忌“好大喜功”,因为项目的不断延期会打击项目成员的信心和士气,久而久之,会使大家产生一种惯性:项目延期是正常的。当然,这也不能完全怪罪项目经理们,因为在国内,很多项目计划都是采用倒排序的方法,即先确定产品交付的时间表,再依次倒推测试、实现、设计和分析所需的时间,而整个开发的时间往往是那些从没实际开发过产品的领导来拍脑袋决定的。四宗罪:只顾眼前  即便是最优秀的系统分析员也不能保证所提供的软件系统需求不会变化,所以软件设计人员要充分考虑这一点,不能仅仅只顾眼前的需求,还要有一定的前瞻性,满足可预见的未来需求,软件系统的可扩展性和可维护性对于一个大型、复杂、长生命周期的软件系统来说至关重要。打个比方理解一下软件的可扩展性,给一个10岁的孩子做一条裤子(需求),你不能将裤子的长度裁减得刚刚与孩子的身高合适(设计实现),因为孩子长身体很快,到他11岁时裤子已经短了(需求变化),有两种方法解决,一是将短了的裤子丢弃,重做一条(重新开发系统),但成本很高;二是将在裤腿上接上一段接着穿,但不美观且不宜操作(维护成本高)。而最恰当的做法是将裤子裁减得稍长过现在的要求,将长的部分反缝在裤腿里,等孩子长高后,拆线将原来长的部分放下一点就可以了(扩展方便),既方便又不失美观。可见,可扩展性并非软件系统专利,裁缝们早已理解了这一点并付与实践。五宗罪:得过且过  软件设计需要通过软件实现成为最终的产品,优秀的设计需要靠一行一行的代码体现,而有些程序员对软件实现的态度是,最小满足原则,“得过且过”,对于系统的容错性,安全性,效率考虑甚少,满足基本功能即可,没有持续改进的态度和精神。六宗罪:自我安慰  产品实现是否达到设计要求在公司内部需要测试验证,严格的测试对于保证软件产品的质量是必须的,而出于时间、资金等缘故,很多软件产品并没有经过严格的测试就已交付给用户使用,程序员们总是善于自我安慰:应该没问题吧。想当然不能消除缺陷,只有测试再测试才是科学的精神。七宗罪:敝帚自珍  技术总是向前发展的,不要过于“敝帚自珍”,抱着原有的东西不肯放弃,软件产品也有生命周期,该终结时要毫不犹豫。程序员漫画程序员的七种武器??信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。??信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,IT技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。??虽然IT技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法还很通用,可以举一反三。本人根据自己的体会和经验,向那些刚刚踏入IT行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器,有了这七种武器,虽不敢说笑傲江湖,但将自己立于不败之地还是可以的。第一种武器:开发工具??至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中CC++和JAVA是我重点推荐的开发工具,CC++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用CC++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVAOn会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,如VB,PowrBuildr,Dlphi,C++Buildr,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shll,prl等,至少能读懂这些脚本代码。第二种武器:数据库??为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgrs等。第三种武器:操作系统??当前主流的操作系统是Windows,LinuxUnix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。第四种武器:网络协议TCPIP??在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCPIP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户服务器结构,到今天的WEBSrics,再到未来的网格计算,这一切都离不开以TCPIP协议栈为基础的网络协议支持,所以,深入掌握TCPIP协议是非常必要的。至少,你需要了解ISO七层协议模型,IPUDPTCPHTTP等常用协议的原理和三次握手机制。第五种武器:DCOMCORBAXMLWEBSrics??随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOMCORBA是当前两大主流的分布计算的中间件平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XMLWbSrics重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。第六种武器:软件工程与CMM??现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”。第七种武器:强烈的好奇心??什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。  程序员之路漫漫兮,吾将上下而求索,希望与所有的程序员共勉。希望知识、经验能共分享,为中国的信息技术发展添自己的一份力。附:给编程爱好者的忠告  近来有不少人问我是学Vb好还是学C好,还有人问Vc和C++Buildr哪个更好,还有人说只要是面向对象的就是好的所以C++和Jaa最有前途。以我从事计算机教育多年的经验我要告诉这些编程爱好者,如果只是一味追求学会一门所谓的最先进的编程语言事实上不存在最优),而忽视了编程思想和基础知识无疑是犯了学习编程的大忌。  就拿面向对象来说,人们一提到它就赞不绝口,然而又有多少人领会到什么是面向对象的思想,我想如果没有真正做过大项目的人是很难体会到其优越性的,这不是通过学习C++或Jaa就能掌握的。我的意思是编程注重的是想法而不是语言,这就是计算机专业要开设“算法分析”和“数据结构”的原因,如果一头钻到某一门语言中无疑于作茧自缚,束缚了自己的思想,打一个不好的比方一个程序员的工作性质和民工没什么两样只是在垒砖头,而真正的计算机人才应该是一个设计师、工程师。  现在国外的一些优秀的计算机著作的都是一些从事如生物、化学等领域的专家,我想这是因为他们以前没学过计算机,没有被某些传统的观点所束缚,从宏观上来看待问题,反而在思想上有所突破,这是值得我们深思的。程序员的八种境界目录是否曾有人问过你那道经典的面试题“你未来5年里打算做些什么?”,当别人问我这道题时,我的思绪总是情不自禁地把我带到“扭曲姐妹”乐队1984年发行的某个MTV中译注1)。我要你告诉我——不,你最好站起来,告诉班里的所有人——你这辈子打算做些什么?你当然想摇滚译注2)!或者至少做个摇滚程序员译注3)。这不是那种需要严肃答的问题——有点像另一道老掉牙的雷人面试题一样:“你的最大缺点是什么?”,你的最大缺点就是偶尔摇滚摇得太疯狂,对吧?无辜路人都会被你撞伤。但我认为不该如此,我们应该以认真严谨的态度,深思熟虑之后再答它。不是为面试官,而是为我们自己。“你未来5年里打算做些什么?”,这貌似不难答,许多人都能不假思索地说出答案。但我们应该再想得长远些:对软件开发者来说,有哪些职业发展道路是走得通的?诚然,我们干这行是因为热爱它,而且在这行里发展得还不错,可是你能一直干到50、60岁吗?对于那些渴望成为程序员的程序员来说,怎么发展才是最好的呢?要是我告诉你程序员有八种境界,你会怎么想?呵呵,可别太较真。不朽的这是至高无上的境界。你的代码已经超越了生死。你将作为计算机史上的丰碑而被人铭记。其他程序员都会从你的代码和文字中汲取营养。你可能获得过图灵奖,也可能写过有影响力的论文,还可能引入了一项或几项就我们所知影响编程史进程的技术。你不仅只是拥有一个维基百科的词条,而且你的生平及作品会被所有网站所传颂。穷尽一生,能达到这一境界的程序员屈指可数。成员:Dijkstra,Knuth,Kay成功的这是指那些不仅举世闻名,而且基于他所写代码创立了公司——甚至创造出一个新行业——的程序员。这些程序员已经获得了真正的0级自由译注4):他们可以自己决定自己做什么工作。而且他们还把这自由与志同道合者分享。这是几乎所有程序员都渴望达到的境界。达到这一境界所需要的商业能力要多于编程能力。成员:Gats,Carmack,DHH程序员众生相有名的达到这一境界也不错,但前提是你要有一份稳定工作。你在程序员圈子有名,但这并不代表你一定有能力挣钱并且养家糊口。有名诚可贵,成功价更高。你可能为一家知名大企业工作,也可能在一家有影响力的小公司就职,还可能是一个小规模创业团队的一员。不管你在哪儿,其他程序员都曾经听说过你,而且你正在积极促进行业发展。称职的你很适合做一个软件开发者。你所掌握的技能游刃有余,也不必为找不到好工作而发愁。你的同事尊敬你。每个你效力过的公司都因你的加入而多少有所进步。但是你还能怎么发展呢?平凡的既然达到这一境界,那你应该有足够眼光看出自己并不是那种伟大的程序员,而且或许永远无法成为伟大的程序员。有天赋不代表能成功。如果你具备商业和人际交往技能,那么你可能非常成功。如果你作为一个平凡程序员同时还能以此谋生,那么你绝对是有天赋的,只不过这天赋不一定是写代码。不要小看自知之明的价值。你真正了解到的自己要比你以为了解到的少得多。天资驽钝没什么不好的,要勇于面对现实。你应该想清楚自己擅长做什么,然后向着自己擅长的方向披荆斩棘不断前行。业余的业余程序员热爱编程。之所以说他们业余是因为,他们有些是前途光明的学生或实习生,有些是开源项目的贡献者,有些是空闲时爱编个搞笑程序或建个有趣网站的人。他们的代码或想法中洋溢着希望与激情。达到这一境界是件好事,从这里可以迅速成长为称职的程序员。无名的身处这一境界的是那些大家称作普通程序员的人,无名氏。他们能力通常)不错但工作成果却泯然于众人,很可能为某家行业巨头工作。编程对他们来说只是工作而已,并不是他们生活的全部。当然,这么做也无可厚非。差劲的这说的是那些一点编程技能都没有,却阴差阳错进入这行的程序员。他们鼓捣过的代码在他们的同事看来无异于痛苦与折磨——有一种情况例外,那就是他们的同事也都很差劲,他们甚至看不出你是否差劲。这或许就是这一境界的显著特征。他们没有金刚钻,却揽了瓷器活儿。这八种境界说来带有几分调侃。没有哪个程序员喜欢以按图索骥的方式来规划职业。但是想想一个程序员在10年、20年、30年、甚至一生之中到底能达到何种境界,这无疑是具有启发性的。你最崇拜的是哪些知名程序员?在他们所达到的境界中,哪些特征吸引你崇拜?简而言之,你这辈子打算做些什么?译注1:“扭曲姐妹”TwistdSistr)乐队是一支美国纽约的重金属摇滚乐队。该MTV是他们最有名的摇滚乐之一“IWannaRock”,片子确实相当搞笑,推荐读者朋友们观看一下。本文也借那个疯狂老师的台词引出了后面的思考译注2:诚然,美国口语中rock代表很棒的意思,但是我想这里还是不翻译成:我当然想变得很棒或我当然想活得很精彩。因为有前面“扭曲姐妹”的MTV做铺垫,这里很自然地延伸出我想摇滚。而且如果这里翻译成很棒,那后面的rockstarprogrammr和rocktoohard该如何翻译?综上所述,我认为这里还是应该采用rock的本意。译注3:“摇滚程序员”RockstarProgrammr)是近年编程界流行的一个说法,可能出自2008年出版的书《摇滚程序员的秘密》Scrtsoft
本文档为【程序员发展史】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_146030
暂无简介~
格式:doc
大小:223KB
软件:Word
页数:0
分类:互联网
上传时间:2017-03-13
浏览量:24