1. 世界第一黑客
凯文·米特尼克 不解释
凯文·米特尼克被称为世界上“头号电脑黑客”。这位“着名人物”在2012年时49岁。其实他的技术也许并不是黑客中最好的,甚至相当多的黑客们都反感他,认为他是只会用攻击、不懂技术的攻击狂,但是其黑客经历的传奇性足以让全世界为之震惊,也使得所有网络安全人员丢尽面子。 凯文米特尼克
在米特尼克很小时候,他的父母就离异了。他跟着母亲生活,从小就形成了孤僻倔强的性格。70年代末期,米特尼克还在上小学的时候就迷上了无线电技术,并且很快成为了这方面的高手。后来他很快对社区“小学生俱乐部”里的一台电脑着了迷,并在此处学到了高超的计算机专业知识和操作技能,直到有一天,老师们发现他用本校的计算机闯入其它学校的网络系统,他因此不得不退学了。美国的一些社区里提供电脑网络服务,米特尼克所在的社区网络中,家庭电脑不仅和企业、大学相通,而且和政府部门相通。当然这些电脑领地之门都会有密码的。这时,一个异乎寻常的大胆的计划在米特尼克脑中形成了。此后,他以远远超出其年龄的耐心和毅力,试图破解美国高级军事密码。不久,只有15岁的米特闯入了“北美空中防护指挥系统”的计算机主机同时另外一些朋友翻遍了美国指向前苏联及其盟国的所有核弹头的数据资料,然后又悄然无息的溜了出来。这成为了黑客历史上一次经典之作。 在成功闯入“北美空中防护指挥系统”之后,米特尼克又把目标转向了其它的网站。不久之后,他又进入了美国着名的“太平洋电话公司”的通信网络系统。他更改了这家公司的电脑用户,包括一些知名人士的号码和通讯地址。结果,太平洋公司不得不作出赔偿。太平洋电脑公司开始以为电脑出现了故障,经过相当长时间,发现电脑本身毫无问题,这使他们终于明白了:自己的系统被入侵了。 这时的米特尼克已经对太平洋公司没有什么兴趣了。他开始着手攻击联邦调查局的网络系统,不久就成功的进入其中。一次米特尼克发现联邦调查局正在调查一名“黑客“,便翻开看,结果令他大吃一惊——这个“黑客”是他自己。后来,米特尼克就对他们不屑一顾起来,正因如此,一次意外,米特尼克被捕了。由于当时网络犯罪很新鲜,法律也没有先例,法院只有将米特尼克关进了“少年犯管所”。于是米特尼克成为世界上第一个因网络犯罪而入狱的人。但是没多久,米特尼克就被保释出来了。他当然不可能改掉以前的坏毛病。脆弱的网络系统对他具有巨大的挑战。他把攻击目标转向大公司。在很短的时间里,他接连进入了美国5家大公司的网络,不断破坏其网络系统,并造成这些公司的巨额损失。1988年他因非法入侵他人系统而再次入狱。由于重犯,这次他连保释的机会都没有了。米特被处一年徒刑,并且被禁止从事电脑网络的工作。等他出狱后,联邦调查局又收买了米特尼克的一个最要好的朋友,诱使米特尼克再次攻击网站,以便再次把他抓进去。结果——米特尼克竟上钩了,但毕竟身手不凡,在打入了联邦调查局的内部后,发现了他们设下的圈套,然后在追捕令发出前就逃离了。通过手中高超的技术,米特尼克在逃跑的过程中,还控制了当地的电脑系统,使得以知道关于追踪他的一切资料。 后来,联邦调查局请到了被称为“美国最出色的电脑安全专家”的日裔美籍计算机专家下村勉。下村勉开始了其漫长而艰难的缉拿米特行动。他费尽周折,马不停蹄,终于在1995年发现了米特尼克的行踪,并通知联邦调查局将其捉获。1995年2月,米特尼克再次被送上法庭。在法庭上,带着手铐的米特尼克看着第一次见面的下村勉,由衷地说:“你好呀,下村,我很钦佩你的技术。”这一次,米特尼克被处4年处徒刑。在米特尼克入狱期间,全世界黑客都联合起来,一致要求释放米特尼克,并通过为不断的攻击各大政府网站的行动来表达自己的要求。这群黑客甚至还专门制了一个名为“释放凯文”的网站。1999年米特尼克终于获准出狱。出狱后他便不断地在世界各地进行网络安全方面的演讲。 许多世界顶级网站,超级公司一听到黑客这个名词,便犹如谈虎色变般的恐惧。对于黑客的存在,每个网民都有着不同的看法,有些人喜欢黑客更喜欢做黑客,因为他们认为这样能体现自己的能力和价值。然而更多的人憎恨黑客,甚至要求国家法律对那些黑客进行严惩。就像他一样当2000年1月21日美国法庭宣布他假释出狱后,几乎当今所有依赖电脑和网络的公司、 企业都开始了胆战心惊的生活,人们害怕他会重操旧业。 那么此人究竟是谁呢?他就是超级黑客:凯文·米特尼克。 他是第一个被美国联邦调查局通缉的黑客,走出牢狱之后,他马上又想插手电脑和互联网。有了他,世界又不平静了。凯文·米特尼克也许可以算得上迄今为止世界上最厉害的黑客,他的名声盛极一时,后随着入狱而逐渐消退。 凯文·米特尼克是一个黑客,而且是一个顶级黑客。
2. 计算机史着名人物及贡献,要详细,拜托了。
1、冯·诺依曼(John Von Neumann , 1903-1957)
冯·诺依曼是美籍匈牙利裔科学家、数学家,被誉为“电子计算机之父”。1945年,冯·诺依曼首先提出了“存储程序”的概念和二进制原理,后来人们把利用这种概念和原理设计的电子计算机系统统称为“冯.诺曼型结构”计算机。
冯·诺依曼的主要贡献就是提出并实现了“存储程序”的概念。由于指令和数据都是二进制码,指令和操作数的地址又密切相关,因此,,当初选择这种结构是自然的。但是,这种指令和数据共享同一总线的结构,使得信息流的传输成为限制计算机性能的瓶颈,影响了数据处理速度的提高。
在这篇论文里,范内瓦提出的诸多理论预测了二战后到现在几十年计算机的发展,许多后来的计算机领域先驱们都是受到这篇文章的启发,后来的鼠标,超文本等计算机技术的创造都是基于这篇具有理论时代意义的论文。
3. 问道掌门人|何小鹏:程序员改变世界
[汽车之家行业]?广州亚信是一家“神奇”的公司,“微信之父”张小龙、“UC之父”何小鹏都曾在这里工作。
2004年,程序员何小鹏转身创业者,UC踩中移动互联网风口,十年后被阿里收购。一个程序员的“造富”故事到这里终止。
2014年,小鹏汽车诞生;这些过往,由此成为另一篇故事的序章。
颠覆将分为两个阶段。未来5-10年是“第一阶段”,自动驾驶是这一阶段重点,依靠基础设施、政策支持、技术改进,高级别辅助驾驶落地,解放用户双手;10-15年是“第二阶段”,智能座舱将成为重点,交互体验、应用生态成为产品决定性差异。最终,智能汽车将成为“移动终端、储能单元、数字空间”。
在颠覆到来之前,车企首要任务,是从体系层面做好准备。很多企业不会做、不敢做,小鹏希望给汽车行业做示范,“有了领头羊之后,学习者会非常多”。
“我们希望用数据驱动智能汽车变革,最终创造更美好的出行生活”,成为中国汽车“引领者”,是何小鹏的“野心”。
何小鹏最佩服的企业是华为和特斯拉。前者改变了中国高科技产业,后者改变了全球汽车产业。“程序员”何小鹏也想成为一名改变者,摆在他面前的,是改变中国汽车产业的挑战和机会。
■改变的意义
为什么要改变?除了那些宏大的意义,何小鹏的答案是为了开心。让员工开心,何小鹏的办法给他们发钱;让自己开心,对他来说创业是最佳答案。“找到让自己开心的东西很难,但找到了就很重要”。
“创业意味着探索未知,需要很大的勇气”,张京宇认为,如果不是发自内心热爱,迈出这一步很难,取得成功更难。小鹏离成功还很远,想超越特斯拉,何小鹏预计要10-15年。乔布斯说:“过程就是奖赏”,小鹏这段旅程,对何小鹏来说又何尝不是?(文/汽车之家蒋平平)
4. 求高级语言示例(按数据运算控制传输标明)
计算机的高级语言目前流行的有java、vb、vc、foxpro、delphi等
高级语言是目前绝大多数编程者的选择⊥汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。 高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的vb、vc、foxpro、delphi等,这些语言的语法、命令格式都各不相同。 高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类 解释类执行方式类似于我们日常生活中的同声翻译”,应用程序源代码一边由相应语言的解释器翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。 编译类编译是指在应用源程序执行之前,就将程序源代码翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如visual c++、visual foxpro、delphi等。
计算机语言---Java语言之简介
1。它的由来
当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?
Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。
在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。
二. Java的定义
Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。
Java的开发环境有不同的版本,如sun公司的Java Developers Kit, 简称 JDK。后来微软公司推出了支持Java规范的Microsoft Visual J++ Java开发环境,简称 VJ++。
三. Java的特点
1. 平台无关性
平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使 用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在 硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。
2. 安全性
Java的编程类似C++,学习过C++的读者将很快掌握Java的精 髓。Java舍弃了C++的指针对存储器地址的直接操作,程序 运行时,内存由操作系统分配,这样可以避免病毒通过指 针侵入系统。Java对程序提供了安全管理器,防止程序的 非法访问。
3. 面向对象
Java 吸取了C++面向对象的概念,将数据封装于类中,利用类 的优点,实现了程序的简洁性和便于维护性。类的封装性、 继承性等有关对象的特性,使程序代码只需一次编译,然后 通过上述特性反复利用。程序员只需把主要精力用在类和接 口的设计和应用上。Java 提供了众多的一般对象的类,通 过继承即可使用父类的方法。在 Java 中,类的继承关系是单一的非多重的,一个子类 只有一个父类,子类的父类又有一个父类。Java 提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类 为 Object 类, Object 类功能强大,经常会使用到它及其 它派生的子类。
4. 分布式
Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。
5. 键壮性
Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大提高了开发Java应用程序的周期。Java提供: Null指针检测、 数组边界检测、 异常出口、 Byte code校验。
四. Java与C/C++语言
Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C++安全性不好,但C和C++被大家接受,所以Java设计成C++形式,让大家很容易学习。
Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。
Java去掉了以下几个C和C++功能:
指针运算
结构
typedefs
#define
需要释放内存
这将减少了平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。
面象对象:Java实现了C++的基本面象对象技术并有一些增强,(为了语言简单,删除了一些功能)。Java处理数据方式和用对象接口处理对象数据方式一样。
五. Java与Internet
我们知道,早先的 www 仅可以传送文本和图片,Java的出现实现了互动的页面,是一次伟大的革命。
Java并不是为 Internet,WWW而设计的,它也可以用来编写独立的应用程序。Java 是一种面向对象语言。Java 语言类似于 C++ 语言,所以已熟练掌握 C++语言的编程人员,再学习 Java 语言就容易得多!Java 程序需要编译。实际上有两种 Java 程序:一种 Java 应用程序是一个完整的程序,如 Web 浏览器。一种 Java 小应用程序是运行于 Web 浏览器中的一个程序.
Java程序和它的浏览器HotJava,提供了可让你的浏览器运行程序的方法。你能从你的浏览器里直接播放声音。你还能播放页面里的动画。Java还能告诉你的浏览器怎样处理新的类型文件。当我们能在2400 baud线上传输视频图象时,HotJava将能显示这些视频。
当今Internet的一大发展趋势是电子商务,而Internet的安全问题是必须解决的问题,通常大的部门应设置防火墙,阻止非法侵入。
电子商务是当今的热门话题,然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能 与运行于不同平台的机器的全世界客户开展业务。Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。
Java程序被放置在Internet服务器上,当用户访问服务器时,Java程序被下载到本地的用户机上,由浏览器解释运行。
Delphi这个名字源于古希腊的城市名。它集中了第三代语言的优点。以Object Pascal为基础,扩充了面向对象的能力,并且完美地结合了可视化的开发手段。Delphi自1995年3 月一推出就受到了人们的关注,并在当年一举夺得了多项大奖。
Delphi的出现打破了V承可视化编程领域一统天下的局面。并且Delphi使用了本地编译器直接生成技术,使程序的执行性能远远高于其它产品生成的程序。它还是真正的面向对象的编程语言。PASCAL语言的严谨加上可视化的优势和强大的数据库功能使得它有充分的资本和微软的VB叫板。许多人当时都认为Pascal 是最有前途的程序设计语言,并预测Delphi将会成为可视化编程的主流环境。
Delphi在你编好程序后自动转换成.EXE文件它运行时速度比VB快,而且编译后不需要其他的支持库就能运行。它的数据库功能也挺强的,是开发中型数据库软件理想的编程工具。 Delphi适用于应用软件、数据库系统、系统软件等类型的开发。而且它拥有和VB差不多一样的功能,而且一样能应用API函数,这在控制Windows很有用。
Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份欣喜。
Delphi的基本形式
Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。一个Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在骨架上即使没有附着任何东西,仍可以严格地按照设计运行。您的工作只是在“骨架”中加入您的程序。缺省的应用程序是一个空白的窗体(Form),您可以运行它,结果得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可以被放大缩小、移动、最大最小化等,但您却没有编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下了良好的基础。
Delphi已经为您做好了一切基础工作——程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代码而已。 在空白窗口的背后,应用程序的框架正在等待用户的输入。由于您并未告诉它接收到用户输入后作何反应,窗口除了响应Windows的基本操作(移动、缩放等)外,它只是接受用户的输入,然后再忽略。Delphi把Windows编程的回调、句柄处理等繁复过程都放在一个不可见的Romulam覆盖物下面,这样您可以不为它们所困扰,轻松从容地对可视部件进行编程。
面向对象编程的概念
面向对象的程序设计(Object-Oriented Programming,简记为OOP)是Delphi诞生的基础。OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。
说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。
而Delphi是完全面向对象的,这就使得Delphi成为一种触手可及的促进软件重用的开发工具,从而具有强大的吸引力。
1968年瑞士的N.WIRTH教授设计完成了Pascal语言,1971年正式发表。
1975年,国际标准化组织(ISO)对Pascal语言进行了修改,从而形成了标准Pascal语言。与以往的编程语言相比,Pascal语言是一门结构化的语言,它具有丰富的数据类型和控制结构,简明易懂,所以特别适合于教学。
Pascal语言还是一种自编译的语言,这就使它的可靠性大大提高了。在Pascal的各个版本中,尤以Turbo Pascal的功能最为强大。如今,在许多学校的计算机语言课上,学的都是Pascal语言,用的都是Turbo Pascal。
PASCAL语言是一种结构式程序设计语言。它是于70年代在ALGOL基础上研制出来的。它具有丰富的数据类型并提供了数据类型定义设施,其控制结构体现了结构程序设计原则。
PASCAL语言最初是为系统地教授程序设计而设计的,特点是简明化和结构化,适合教学,科学计算与系统软件的研制。
Pascal是最早出现的结构化软化,具有丰富的数据类型和简洁灵活的操作语句,适于描述数值和非数值的问题。
BASIC是Beginner's All-purpose symbolic instruction Code(初学者通用符号指令代码)的缩写,是国际上广泛使用的一种计算机高级语言。BASIC简单、易学,目前仍是计算机入门的主要学习语言之一。
BASIC语言的问世及发展 BASIC语言自其问世经历了以下四个阶段:
第一阶段:(1964年~70年代初) 1964年BASIC语言问世。
第二阶段:(1975年~80年代中) 微机上固化的BASIC
第三阶段:(80年代中~90年代初) 结构化BASIC语言。
第四阶段:(1991年以来) Visual BASIC
BASIC是种易学易用的高级语言,非常适合初学者学习运用。常用的编译软件有True BASIC,Turbo BASIC Quick BASIC,Visual BASIC,CAREALIZER,GFA BASIC,POWER BASIC,等等......
1991年,微软推出了Visual Basic1.0版。这在当时引起了很大的轰动。许多专家把VB的出现当做是软件开发史上的一个具有划时代意义的事件。其实,以我们现在的目光来看,VB10的功能实在是太弱了。但在当时,它是第一个“可视”的编程软件。这使得程序员欣喜之极,都尝试在VB的平台上进行软件创作。微软也不失时机地在四年内接连推出VB20,VB30,40三个版本。并且从VB3开始,微软将ACCESS的数据库驱动集成到了VB中,这使得VB的数据库编程能力大大提高。从VB4开始,VB也引入了面向对象的程序设计思想。VB功能强大,学习简单。而且,VB还引入了“控件:的概念,使得大量已经编好的VB程序可以被我们直接拿来使用,如今,VB已经有了6.0版。
通过几年的发展,它已成为一种真真专业化的开发语言和环境。用户认为可用Visual Basic快速创建Windows程序,在现在还可以编写企业水平的客户/服务器程序及强大的数据库应用程序,Visual Basic新版中还有更多可用功能。
Visual Basic的编程基础
什么是程序
首先需要知道下面这个问题的答案:“程序到底是什么?”计算机程序是指令集,它告诉计算机如何执行特殊的任务。读者也许对许多种指令熟悉,如按菜谱烹调特殊的食物或按指定的方向到达不熟悉的目的地。没有这些特殊的指令,就不能执行预期的任务。
计算机也是一样,只是它们需要为执行的每一个任务提供指令。甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存讯息。 幸运的是,许多这样的指令包含在处理器芯片中或内置于操作系统中,因此用户不必担心它们。
相反,应集中于为任务提供指令,如计算雇员工资,创建邻居邮件列表,或设置格式化文本以显示最近的年度报表信息。 虽然我们用自然语言读这些指令,但计算机指令必须是二进制代码,即一系列在计算机内存和处理器中的开或关的状态。有些语言,如汇编程序,可以允许直接写这种类型的代码。但是,以这种方法编程十分困难,因此Visual Basic和其他编程语言使程序员可以用与自然语言有点相近的方式编写指令。然而,即使是这些指令仍有限,并要遵循高度定义的结构。
事件驱动编程
Visual Basic允许创建反映用户动作和系统事件的程序。这种编程叫事件驱动编程。要了解事件驱动程序是怎样工作的,先要了解过去的程序怎样运行及在Windows环境中有何不同。 在Windows之前(回到往日的DOS和“史前时代”PC之前),程序以顺序方式运行。也就是说,一旦程序启动,它就一条指令一条指令的向前执行,直到程序结束或出现致命错误。
面向对象编程
使创建Windows程序较为容易的关键技术是面向对象编程,或OOP。这种技术可以创建可重用组建,它是程序的组成模块。
几个定义
在讨论Visual Basic时,经常可以听到这些术语,因此对这些术语的基本理解十分有帮助。
控件 提供程序可见界面的可重用对象。控件的示例有文本框、标签和命令按钮。
事件 由用户或操作系统引发的动作。事件的示例有击键、单击鼠标、一段时间的限制,或从端口接收数据。
方法 嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法。
对象 程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。控件和窗体是Visual Basic中所有对象的示例。
过程 为完成任务而编写的代码段。过程通常用于响应特定的事件。
属性 对象的特征,如尺寸、位置、颜色或文本。属性决定对象的外观,有时也决定对象的行为。属性也用于为对象提供数据和从对象取回信息。
C语言是目前世界上流行、使用最广泛的高级程序设计语言。
C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。
常用的编译软件有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++, Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等......
C语言的发展历史
C语言的发展颇为有趣。它的原型ALGOL 60语言。
1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。
1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。
而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。
为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名着《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。
1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多着名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。
C语言的特点
1. 简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
2. 运算符丰富
C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3. 数据结构丰富
C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。
4. C是结构式语言
结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5. C语法限制不太严格、程序设计自由度大
一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。
6. C语言允许直接访问物理地址,可以直接对硬件进行操作
因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
7. C语言程序生成代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10へ20%。
8. C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。
一些早期的具有OOP性能的程序语言如C++,Pascal,Smalltalk等,虽然具有面向对象的特征,但不能轻松地画出可视化对象,与用户交互能力较差,程序员仍然要编写大量的代码。Delphi的推出,填补了这项空白。您不必自己建立对象,只要在提供的程序框架中加入完成功能的代码,其余的都交给Delphi去做。欲生成漂亮的界面和结构良好的程序丝毫不必绞尽脑汁,Delphi将帮助您轻松地完成。它允许在一个具有真正OOP扩展的可视化编程环境中,使用它的Object Pascal语言。这种革命性的组合,使得可视化编程与面向对象的开发框架紧密地结合起来。
5. 世界上最顶尖的程序员都有谁
世界上最顶尖的程序员我不知道(别揍我)
但我知道世界上最鬼才,最恐怖的程序员,他就是人称电子杀手的霍兹。
6. 帮忙找一篇翻译
作为全球最成功的企业之一,微软公司在过去的二十多年里为全世界数以亿计的用户提供了无数杰出的软件产品,并以自己的实践经历揭示了软件产业内蕴藏的旺盛生命力和巨大商业价值。微软公司目前的市值是3100亿美元。在2005财政年度里,微软公司的销售收入将达约400亿美元,实现利润165亿美元。去年派发330亿美元的股息后,微软公司仍拥有350亿美元的现金储备。
我认为,微软不断走向成功的原因主要有四点:(1)技术:用创新的精神把握技术发展的脉搏,以合理的研发体系保证企业的效率,以执着的态度专注于软件业的发展;(2) 领导艺术:最高决策者拥有卓越的才识、明确的分工和完美的合作;(3)人才:多渠道发现和聘用人才,有效的人才筛选机制,对人才的持续培养以及知人善用;(4)企业文化:不惧挑战、自我批评、灵活平等以及对客户负责的态度已经在微软形成了一种传统,并得到了制度化的保证。下面,我将从这四个方面出发,分别介绍微软公司的运营和管理经验,希望对中国的高新技术企业有所帮助。
技术:微软的希望之光
(1)与时俱进、不断创新
三四百年前,知识是在很长的时间里慢慢积累起来的。但自工业革命以来,科技的进步已经不再是靠历史的积累,而更重要的是靠不断的创新。信息革命后,科技的成长呈现出指数增长的趋势。在信息技术方面,过去十年中人类获得的知识和经验毫无疑问已远远超过了过去一百年的积累。
微软公司深深地理解,在这样的大环境中把握技术方向的重要性。当微软公司在早期的Basic产品中获得成功后,开始投入DOS的研发。DOS成功后,微软立即将资金和人力投入到新技术的研发中,并成功推出了Office系列软件产品。随后,微软又利用Office等软件获得的积累,开始了Windows NT、Windows 2000、Windows XP等新一代操作系统的研发。当Internet浪潮到来时,微软不失时机地跻身网络研发领域,并不断推出新的产品。今天,微软又把大量的资源投入到“无缝计算”的核心方向,在发展MSN、移动软件、数字电视、XBOX、高可信度计算、自然用户界面等方面不断创新。
在技术浪潮的推动下,微软公司总是把技术研发摆在关键地位,并将技术看作公司惟一可长期延续的财富和优势。例如,微软在2005财政年在研发领域投入大约85亿美元,超过其营业额的五分之一,这个比例在“世界财富500强”的企业中居首位。
(2)运筹帷幄的“首席架构师”
要重视技术,企业就必须要有一个最高的技术决策者。现在,微软公司的这个决策者就是比尔•盖茨,微软的“首席架构师”。设立这个特殊职位是因为,无论在微软还是在其他公司,首席执行官根本没有时间管技术,而很多所谓的“首席技术官”却都是没有实权的科学家,决定不了技术发展方向。但是,在一个技术主导的行业里,一个企业没有技术方向的最高决策者是不行的。
作为首席架构师,比尔•盖茨的工作是制定公司的长期技术路线图,并确认公司每一个行政部门的科研计划是互补而不是重叠的。因此,他要求公司的每一个产品和技术部门都向他做技术汇报,这些汇报大多是“头脑风暴”式的讨论会议。做这样的汇报,除了可以得到比尔•盖茨的回馈之外,每个项目团队还可以在准备过程中受益匪浅。因为,项目团队为了准备回答比尔可能问到的各种问题,必须在报告前彻底调研市场、技术、竞争对手等信息,也因此避免了闭门造车的风险。
另外,比尔•盖茨每年都会抽两段时间,用“闭关”的方式独自思考问题,这被称为比尔•盖茨的“思考周”。在“思考周”之前,盖茨会要求各部门精英在他们个人的专长领域给他提供大量阅读材料和技术建议。在“思考周”里,盖茨通常的工作方式是埋头阅读经过筛选的材料和技术建议,记下自己的想法,静静思考,最终做出一些对公司技术战略有较大影响的重要决定。
(3)不断完善的研发机制
为了更快、更好地将未来的技术变成现实中的软件产品,微软公司不但在技术研发上投入了大量资源,而且建立了完善的技术管理制度。比尔•盖茨成立了“卓越工程”部门,负责确认公司的研发机制是有活力的,开发过程是最有效率的,开发出的软件是安全可靠的,并避免不同部门之间的重叠开发。这个部门具有管理公司工程流程的实权,这样才能带领整个公司走在软件业的前端。
微软公司对技术研发的投入是坚定不移的。微软很早就创立了它着名的研究机构(例如微软亚洲研究院),并充分认识到,科学研究和产品开发工作间存在着巨大的差异。研究工作鼓励冒险不惧怕失败,鼓励研究者拥有长远的目标和规划,做长期投资;而产品开发工作则更多地考虑眼前的利益,其目的只有一个,就是满足客户的需求。研究机构发展科技,生产部门制造产品,研究人员通常都是“思想家”,而产品开发人员更多的是“实践家”。这两类工作和两种技术人员之间的差别非常明显,如果我们希望更好地促进研究成果向实际产品的转移,就必须在保持它们各自特色的基础上,为它们的协作创造良好的环境和条件。
为了促进研究成果的转移,微软鼓励研究人员充当新技术的推销者,向产品部门推销科技成果,同时也鼓励产品部门把用户需求和产业发展态势及时反馈给研究部门。比尔•盖茨最近在一次演讲中说,微软公司要做两类事情,一类是满足用户现在的需求,另外一类是满足用户未来的需求。这表明,微软公司已经将科研和开发视作了公司发展的两条主线。事实上,微软既为两类不同的机构制定了共同的目标,建立了沟通渠道,也严格划清了二者的界限,为不同类型的机构制定了不同的考评制度。同时,微软也允许并鼓励人才在两类机构间转移和流动。现在,微软研究院每年都会向产品部门输出大量科研成果,这些成果大多都被应用到了微软公司各类成功的软件产品上。
(4)专注于最擅长的软件业务
微软公司是一家专注于软件技术和软件产品研发的公司。虽然微软公司也投资于MSN等内容服务和XBOX等硬件产品,这些产品的最终目的还是推进软件和软件平台。微软公司的主体始终是软件,微软绝大部分销售收入也是由软件创造的。微软公司对自己的定位是,在信息产业的整个生态系统中,专注于扮演纯粹的软件提供商的角色,其他的角色由戴尔、HP、Accenture等公司扮演。只有这样,微软才能把自己的专长做到最好,以保持在软件领域的领先地位。
“专注”对公司很重要,因为一个公司的成功也来源于管理者或领导者的注意力。许多公司的领导者可能会因为急于发展,带领公司向多个不同的方向发展。比如,某些大型IT企业在积累了一定财富后就会把资金投入到硬件、服务,或甚至房地产、传媒等其他行业中。这么做就分散了公司的注意力,而公司的领导者也不见得有能力或激情来管理这些新开创的企业。但微软公司的领导层总是把注意力放在七个基础的商业部门的软件业务。这七个部门都以开发软件为己任,以软件平台为核心,以比尔•盖茨为总架构师。这样,七个部门的领导者才能有共同的语言、共同的管理方式、共同的对软件的专注与热情,不必分心于自己不擅长或没兴趣的事情,才能如鱼得水,在微软发挥个人的潜力。
领导:微软的成功之源
微软公司的成功,在很大程度上得益于微软公司拥有两位杰出的领导人:比尔•盖茨和史蒂夫•鲍尔默。在2000年之前,微软惟一的领导者是比尔。2000年1月,为了更好地把握技术方向,比尔把首席执行官的工作交给了史蒂夫,自己做“董事长兼首席架构师”。后来,史蒂夫又把公司分为七大商业部门,每一个部门负责一系列的产品和用户(例如:大企业部门负责Windows、SQL Server等服务器软件和工具;家庭娱乐部门负责XBOX、电视软件平台和游戏软件等)。从2000年以来,比尔和史蒂夫成为最佳搭档,两人带领七个部门在经济风暴中稳定成长,实为公司成功最大的原因之一。
(1)首席架构师比尔•盖茨
比尔•盖茨是微软公司的技术带头人。他善于通过自己的远见卓识,在技术上把握公司的发展方向,不断为公司的新产品研发制定战略目标。通过前面介绍的“思考周”、“头脑风暴会议”等形式,比尔•盖茨在全公司范围内集思广益,收集最新的信息,以保证技术决策的正确性和前瞻性。
比尔的另一项工作是协调公司软件的投资,并避免七大商业部门的重叠投资。他会深入了解每一项重要技术,把开发任务交给某一个部门,并要求该部门把另外六个部门当做重要客户,同时也要求其他六个部门不要重叠投资。例如,虽然七个部门都需要语音技术,但是比尔却该技术的开发任务交给了我的部门。这样的安排让我不用担心公司内部的竞争,而且,我所在团队里的员工也会因为自己的产品能影响到其他各部门的产品而更有成就感。
比尔•盖茨还要负责决定全公司七大商业部门在各个研发方向上的技术资源分配情况。大多数公司可能会把最多的资源分配在最赚钱的部门里。但微软并不是这样做的。例如,微软公司负责Office产品研发的部门人数并不很多,相反,服务器和工具部门却拥有最多的技术员工。这主要是因为,微软在后台服务领域面临着更加激烈的市场竞争,需要投入更多的资源,以尽快开发出领先于IBM、Sun 等竞争对手的重量级产品。微软公司在移动产品部门投入大量资源,也是因为比尔•盖茨看好移动通信领域的巨大市场前景。因为微软公司内的七大商业部门并不是完全独立的,比尔•盖茨就可以根据自己对技术方向的判断,把有限的资源调配给最具有发展潜力或竞争最激烈的技术领域。
(2)首席执行官史蒂夫•鲍尔默
史蒂夫•鲍尔默是微软公司的头号啦啦队长。他是一个非常有激情的人,说话声音很大,非常有力量,而且很感性,很有穿透力。他是一个全能领导者,既有商业头脑,又有战略眼光,能鼓舞士气,还富有激情,精通技术。微软公司的人常说,史蒂夫给下级做考评的时候,就像在“奥数班”一样,要求甚高而不允许犯错。当下级把总结报告提交上去后,史蒂夫只看一眼,就可以从中挑出几个乃至十几个不恰当的地方。通过这样的考评,下级员工可以收获到非常多的经验和知识,可以在以后的工作中做得更好。
当微软把全公司整合成七大商业部门之后,史蒂夫•鲍尔默适时地由前台退到了后台。他不再做具体的管理者,而是转变成了七大部门主管的背后支持者。他不再做每件大事的最后决定人,而是支持着七个部门主管的成长。他不再做一个最有煽动力的啦啦队长,而成为一个幕后的教练。史蒂夫支持七大部门的主管放手施展自己的管理才华,而他自己则把更多的时间花在了公司的价值观和人才建设上。
(3)最佳搭档
比尔•盖茨和史蒂夫•鲍尔默是微软公司最重要的两个人。在我所经历过的高科技公司里,员工总是喜爱抱怨公司的最上层领导,但是在微软,几乎所有员工都对比尔和史蒂夫无比钦佩。和他们共事多年,我认为他们两个人都是非常有才华,能够集谦虚、勇敢和毅力于一身,勇于从失败中吸取教训。他们二人最特别的三个优点是:
1. 勇于改变、适应力强:比尔和史蒂夫都是适应能力很强的人,能够根据情况的变化及时调整自己的工作角色和工作方式。他们两个人都在不断地学习,不断改进自己的工作。例如,比尔在演讲失败后,勇于拜师学习演讲技巧;2000年时,为了企业更好地发展,比尔将首席执行官一职交给史蒂夫;设立七大商业部门后,史蒂夫从啦啦队长转型成为幕后的教练……这些都是微软员工津津乐道的例子。
2. 对公司充满热爱和激情:比尔和史蒂夫早已不是为了赚钱而工作,而是为了公司,为了用户,为了享受激情和快乐而工作。他们很多年没有拿股票和认股权,把上亿的财富让给了员工。正因为他们对公司的热情感染了所有的员工,微软才能汇集全公司所有人的智慧,共同为公司创造最大的价值。
3. 彼此信任、相互支持:对微软来说最难得的是,比尔和史蒂夫两人百分之百地彼此信任,共同推动微软公司向前发展,共同完成了2000年到今天完美的职位交接,共同负责创造公司的未来。他们之间从未发生权力斗争、政治纠纷一类的问题。这在今天这个现实、自私的社会中是最难能可贵的事,也是微软公司成功路上的佳话。
虽然比尔和史蒂夫都还年轻,精力旺盛,离退休的时间还早,但他们已经开始了接班人的培养工作。这样,即使他们退休之后,微软公司也能延续他们的管理风格和管理理念,并不断取得成功。
人才:微软的立业之本
微软公司把重视人才的管理理念视为公司的核心财富。在信息时代里,人才的价值尤为重要。在工业时代里,一个优秀技工和一个普通技工的效率差异可能是30%,但在信息时代里,一个高级程序员和一个普通程序员的效率差异可能高达10倍以上。例如,微软公司有一位编程高手,一次,他对一位经理说,你们的产品里还缺少一种重要的功能。那位经理说,我也想做这个功能,但至少要50个人半年时间,现在已经来不及了。编程高手什么也没说就走了,第二个星期开会时,他对那位经理说,你要的功能我已经帮你做完了。因为这样一位编程高手可能知道很多其他程序员所不知道的解决问题的捷径,他在一个星期里就能做完50个人半年的工作。可见,这样的人才对公司来讲是有特殊意义的,公司必须善于追踪、挖掘、面试、聘请、评估、培养、重视和留住这样的人才,而且要把人才相关的工作视为公司最重要的任务之一。
(1)求贤若渴:追踪和挖掘人才
重视人才的一个最直接的体现就是管理者要善于雇佣高水平的人才,而微软公司的各级管理者都非常善于发现和雇佣人才,无论对方是大师级的人才,还是应届大学毕业生或已离开公司的人。
例如,微软公司最重要的领导和大师 Jim Allchin目前在微软公司负责平台产品研发。当年,比尔•盖茨想请他加入微软的时候,通过朋友多次联系他,Jim Allchin都置之不理。后来,经过比尔再三邀请,Jim终于答应来面试。结果,Jim一见到比尔就直接了当地说,微软的软件是世界最烂的,实在不懂比尔请他来做什么。比尔•盖茨不但不介意,反而对他说,正是因为微软的软件存在各种缺陷,微软才需要你这样的人才。比尔•盖茨的虚怀若谷感动了Jim Allchin,终于把他请到了微软公司。再例如,IBM着名的深蓝计算机的设计者许峰雄博士此前也加盟了微软公司。许峰雄博士是我的好朋友,我追踪他至少五年了。逢年过节时,我总会给许峰雄博士打电话,聊一聊他的近况,探听一下他的想法。年复一年,我终于打动了许峰雄博士,有幸邀请他到微软来工作。虽然他最后加入的不是我的团队,但是我一样引以为豪。在微软,许多人都像我一样主动从事发现人才、跟踪人才和吸引人才的工作。
除了努力挖掘、追踪许峰雄、Jim Allchin这样的大师之外,微软也非常善于直接从学校雇佣刚毕业的大学生。每年我都会去两三个大学亲自面试最优秀的应届毕业生。我们曾经做过一个统计,直接从学校雇佣的人才,在总体表现上要优于从社会雇佣的更有经验的人才。我们也发现,今天微软大部分的副总裁都是在大学毕业后直接进入微软公司的。直接从学校雇佣和培养人才有很多好处:人才可塑性强,对公司忠诚度更高,最愿意全力以赴地办事,不怕风险,愿意积累多部门的经验。
此外,微软公司一直追踪着离开公司的优秀员工。我们并不认为员工跳槽是一件坏事。对于离开公司的优秀员工,微软会认真分析该员工离开公司的原因,以便进一步改进工作。同时,微软也会对他们离职后的工作情况进行追踪,准备在合适的时间再把他们请回微软。这种鼓励人才流动的机制可以更好地激发人才的积极性,可以真正得到员工的信任和支持。
(2)任人唯贤:面试和聘请人才
微软的面试机制是众所周知的。微软对于面试采取了严谨的态度,采用精心设计的面试流程。每一个申请者的面试都有多位微软员工参加,每一位参加面试的员工都事先分配好面试时的任务。除了确认专业知识和经验之外,我们也会出很多题目来测试申请者的独立思考能力及面对难关时的表现。我们不只要雇佣那些技术上的专家,还应当雇佣聪明、学习能力强、有团队精神的人。所以,面试时对这些方面也要深入地询问。每一次面试后,面试者都会把他的意见和下面应该考核的问题交给后续的面试者。最后,只有得到绝大多数参与面试者的同意,并在明察暗访所得的结果令我们满意时,微软才会聘用该申请者。
任人唯贤是微软公司一贯遵循的用人理念。我们深信两句话:(1)一流的人雇佣一流的人,二流的人雇佣三流的人。因此,当一个队伍雇用第一个二流的人的时候,就是它走下坡路的时候。(2)雇佣人才应以提高组织当前的整体素质为标准。我们必须要求每一个新雇员的素质都超过整个团队的平均水平,以此来提升团队的平均素质,而不是降低团队的素质。所以,微软公司的管理者总是希望雇佣到比自己强的人才。如果你雇佣的人才最终能成为你的上司,你不但不应当感到羞愧,而应该感到无比的自豪。
(3)人尽其才:评估和培养人才
雇用员工之后,公司会定期对人才状况进行评估和分析。每年,史蒂夫•鲍尔默都会要求七大商业部门的管理者把本部门最杰出的50到150位人才的详细情况报告上来,史蒂夫把总共约600人的资料装订成一本独特的《人才报告》,然后花上整整两星期的时间来评估这些人才的发展前景,每天还会邀请这些人中的20位共进晚餐,以进一步了解这些人才。这样的工作可以为高级人才在公司内的发展设计最好的路径,也可以在公司有空缺职位的时候迅速找到合适的人选。史蒂夫期望自己认识这600人中的每一位。他把这本书放在他床前,每晚睡前都会认真地读几页这本书。
微软深信“人尽其才”,所以设计了“双轨道”机制,既允许优秀员工在管理轨道上发展,也允许他们根据自己的意愿,在技术轨道上发展。在每个轨道上,微软为员工提供的机会是平等的,员工并不一定非要做管理工作才能促进个人事业的发展。在微软,一个最高级别的工程师可能比副总裁还要资深。这样的“双轨道”政策从制度上保证了人才发展道路的多样性,有利于吸引人才和留住人才。
微软公司鼓励公司内部人才的流动和发展。各级管理者都遵循人尽其材的方式给每一个优秀的人才发展的空间。各级管理者也深深理解“最优秀的人不属于我,而属于公司”,他们不会把人才据为己有,而是给最优秀的人才更好的发展机会,无论这个机会是不是由自己所管理的机构提供的。在这样的制度下,优秀的人才大多能找到适合自己的发展道路。
除了培养优秀的人才之外,公司也必须发现并督促那些表现较差的员工,给他们机会改进,否则就只有要求他们离开。为了达到这个目的,微软公司建立了完善的分级评估体系,并定期对员工的工作表现进行考核。在每一年度的考核中,每一个副总裁必须把他部门所有的员工分成四个等级:(1)超过期望,(2)达到期望,(3)达到大部分期望,(4)没有达到期望。每一个等级必须有合理的比例,总会有相当一部分员工被评为第三或第四等。其中,拿到第四等(大约是5%左右)的员工等于是拿到了“不改进就得走”的信息。
史蒂夫•鲍尔默深深地理解,这样的制度如果不是以身作则,就无法得到员工的支持和信服。所以,即便在副总裁或总经理这一级,微软公司也施行严格的淘汰制。有一次,史蒂夫召集了公司最资深的100个人开会,并告诉我们说,“我要求你们找出最差的5%的员工,不论他们资历如何,都要给他们一个不改进就得走的警告。‘不论资历’的意思是,今天有你们这100位高级经理在这里开会,而明年开会时,就应该只有95个人了。”结果,下一次开会时,果真有不只5位高级经理已经离职。
(4)才尽其用:重视和留住人才
很多人认为,留住人才的关键是待遇。的确,每个人都应该得到适当的待遇,但对一个软件从业人员来说,他更看重的是工作环境如何。与提高员工待遇相比,微软更注重做到提供一个能够吸引人、留住人的环境,这包括:
有众多的产品,能让员工发挥才华和潜力,做出最大的贡献;
充分的资源支持,让每个人都没有后顾之忧;
最佳的队伍和开放、平等的环境,让每个人都有彼此切磋、彼此学习的机会;
7. 为什么中国的程序员总被称为码农
本人并不是一位程序员,但是从事互联网行业也少不了与程序员朋友打交道,他们经常自嘲为“码农”、“程序猿”、“代码工人”、“码字猴”等等,这些一定程度上是幽默的称谓,但是站在旁观者的角度,本人认为还有一些深层次的原因。
第一,中国的程序员是一个庞大的群体,只要是学过计算机,只要懂一门编程语言,都可以吃这碗饭。当你看到中午吃饭时那个浩浩荡荡的场面,你就会觉得程序员真的看起来和农民差不多。
第二,大部分程序员做的都是比较枯燥的工作,一点创新性都没有。很多新项目都是在很成熟的项目之上进行修改,都有现成的模板可以套用,基本上不用怎么动脑筋。这和农民种田是多么的类似。他们年复一年地做着同样的事情(播种、插秧、收割),也不知道这种日子什么时候是个头。IT行业本应该是一个创新性非常强的行业,但到了中国就成了比较死板的东西了,这是什么原因呢?
第三,大部分程序员的视野都比较的窄,对其他行业懂得很少,这也和农民是多么的相似啊!我们都说农民阶层是没有多少文化的,但这居然也适用于以高学历着称的程序员身上,是多么具有讽刺意味啊!你随便问一下身边的程序员,当今最流行的词语是什么,我想没有几个人回答得上来。他们成天盯着代码,想着那26个字母和10个数字,视野如何能变宽广?
第四,大部分程序员都是靠自己的努力挣钱,没有强的人际关系,基本上属于“弱势”群体。就像农民一样,他们没有关系,只能世世代代在自己的土地上耕耘,只求维持生计、终老一生。如果稍微有点关系,几乎没有人愿意当程序员。在行业发展较为顺利的时候,他们能够保住饭碗,能够养家糊口;当行业不景气的时候,他们随时都有被裁的危险,因为公司要不了那么多人。程序员的命运并没有真正地掌握在自己手上。
在一个大的IT公司,程序员都占了很高的比例,少则成百上千人,多则几万人,真的像农民一样,到处都是。我在和同事聚餐的时候,程序员都在抱怨自己的工作是如何的辛苦、如何的累,都说自己是“码农”。
8. C#和JAVA发明人是谁
java是由java之父James Gosling
James Gosling
Sun副总裁及Sun研究院院士
40年前,一个寒冷的冬天,在加拿大一个村庄里,Gosling家的第一个男孩哇哇落地了。家人给他起了名字,叫James。谁也没有想到的是,长大之后,他成为了一个改变计算机语言的天才。
James Gosling从小就喜欢技术,爱鼓捣东西。12岁的时候,他用报废的电话机和电视机中的部件做了一台电子游戏机。附近农民的康拜因(联合收割机)出了问题也常常找他修理。14岁的时候,中学组织到附近大学参观,他记住了大学计算中心的门锁密码,从此开始偷偷地溜进计算中心,学习计算机编程。一年后,大学的天文系招他当了一名临时编程员,编写计算机程序来分析卫星天文数据。
80年代初,James Gosling获得博士学位后到IBM工作,设计IBM第一代工作站。当时,IBM的领导层并不看重工作站项目。失望之余,James Gosling跳槽到了Sun公司。他花了五年功夫领导开发的和OS2很类似的Sun NeWs窗口系统,尽管得到技术界的好评,却未能变成流行的产品。当时他还第一个用C实现的EMACS的所见即所得文本编辑器COSMACS。
在当今这个竞争激烈的软件开发时代,软件设计师一直在试图预测未来软件或者技术的发展趋势。在1990年,Sun公司成立了一个软件设计团队,其中除了James Gosling,还有Patrick Naughton和Mike Sheridan等人,他们合作的项目称为“绿色计划”。他们认为计算机技术发展的一个趋势是数字家电之间的通讯。James开始负责为设备和用户之间的交流创建一种能够实现网络交互的语言。随着大量的时间和金钱投入到“绿色计划”,他们创建了一种语言。这种语言一开始被叫做“Oak”,这个名字得自于Gosling想名字时看到了窗外的一棵橡树。但后来被改为了“Java”。并于1992年9月3日开始应用于Sun工作站的远程遥控。
1994年底,James Gosling参加了在硅谷召开的“技术、教育和设计大会”。他报着试一试的心情向与会者演示了Java的功能。他点击了网页上的一个静止的分子结构图标,一条命令通过互联网送到了几百英里外的网站,下载了一段Java小程序,在本地工作站上开始执行。在几秒钟时间里,原本静止的网页上,一个分子图像以三维动画的方式转了起来。
“哇!”James Gosling听到了全场观众的赞叹声。
不久后,硅谷最大的报纸《圣荷西信使报》在头版刊登了一篇专文,“为什么Sun认为一杯热咖啡能让你鼓足精神”。从文章见报开始,负责Java市场人员的电话响个不停。不久,全美的主要报刊杂志都刊登了Java的报道。
Java出名了!
到了2000年,Java已经成为世界上最流行的电脑语言。绿色小组当初设计Java是为了面向数字家庭,支持各种家电设备。他们没有想到的是,Java支持的计算模式,实际上就是互联网的模式。
对于Java语言的巨大成功,没有人比James Gosling 更加谦逊:“我从来没有想到Java技术将会这么火。当我的老板问我它将达到多少次下载时,我说 10,000 次。而他认为我太过乐观了。”
詹姆斯·戈士林现任Sun公司副总裁及Sun研究院院士。
戈士林先生以“Java 技术之父”而闻名于世。他是Java 技术的创始人,他亲手设计了Java语言,并开发了Java编译器和Java虚拟机,使Java成为了世界上最流行的开发语言。Java支持的计算模式,已经成为了互联网的标准编程模式以及分布式企业级应用的事实标准。目前,戈士林 先生积极致力于研究软件开发工具,使它们功能更为强大,更容易为开发人员所使用,能够快速地开发应用。
戈士林 先生曾创建了卫星数据拦截系统、Unix的多处理器版本、编译器、邮件系统和视窗管理器等。他还创建了着名的WYSIWYG (“所见即所得”)测试编译器。在Sun,他的早期活动是领导了NeWS (网络扩展视窗系统)项目,并任该项目的首席工程师。
2000年,安德尔思海斯博格,就是发明pascal语言的那个人,borland的创始人之一,神话般的人物,他一个人做了这些 pascal object pascal delphi vj++ c# .net framework
安德斯·海尔斯伯格 Delphi和.NET之父:安德斯·海尔斯(Anders Hejlsberg)
安德斯·海尔斯伯格(Anders Hejlsberg,1960.11~),丹麦人,Turbo Pascal编译器的主要作者,Delphi和.NET之父
安德斯·海尔斯伯格曾在丹麦技术大学学习工程,当时他在丹麦拥有个叫Poly Data的公司,他编写了Pascal编译器核心,最初叫作Compass Pascal,后来叫Poly Pascal。Anders把该编译器核心授权给了美国Borland公司。安德斯·海尔斯伯格作为雇员加入Borland公司,并且是后来所有Pascal版本与Delphi前3个版本的架构师。Philippe Kahn为Pascal添加了用户界面与编辑器。
Anders Hejlsberg曾在丹麦科技大学学习工程学。Anders Hejlsberg第一次登上软件界历史舞台是在80年代早期,因为他为MS-DOS和CP/M设计了一个Pascal编译器。当时,还是一个小公司的Borland很快雇用了他,并买下了他的编译器,改称Turbo Pascal。在Borland,Hejlsberg继续开发Turbo Pascal,并最终带领他的小组设计了Turbo Pascal的替代品、开发工具史上的奇迹:Delphi语言。
1996年,Anders Hejlsberg在Delphi3发布前离开Borland去了MS。
在此之前,MS曾多次企图挖走Anders,但都没有成功。据信anders去MS(主要)不是钱的问题,虽然MS的开价也相当有吸引力: 130万美元年薪外加股票期权和分红,总计超过300万美元。更主要的原因是Anders和Delphi开发组的其他成员在修改编译器的问题上发生了争执;还有,据Borland内部人讲,Anders认为自己不再是“不可缺少的人”。
Anders在Delphi3中几乎没有做什么工作,Chuck Jazdzewski扮演了一个更重要的角色。(--Anders Ohlsson) Anders在Borland时把所有精力都放在了Pascal产品上,也需要新的挑战,这时Bill Gates的亲自邀请,许诺给与挑战的机会,Anders加入了Microsoft就势在必行。
Microsoft 用丰厚的薪水、股票认购权和巨额的加盟奖金雇请了 Hejlsberg 之后,Borland 曾提出通过不正当手段吸收新成员的控告。Borland 还曾声称 — 提供了很少的细节来支持指控 — Hejlsberg 正在开发“Delphi for Java”。这场诉讼虽然最终以 Borland 的胜利而收场;但Anders 已经在为Microsoft工作了。
1996年Anders来到微软后,直接主抓Visual J++的研发工作,并在1999年被授予“distinguished engineer”(卓越工程师),在微软仅有16人获得这样的荣誉。
后来微软希望通过开发最新的软件开发语言来赢得软件开发者的拥戴,在微软公司把视窗操作系统和软件向网络迁移的新市场战略中,C#语言是最重要的环节。微软动用了最好的资源。Anders担任了C#语言的首席设计师,同时也是微软.NET战略构架的重要参与决策者。考虑一下Anders的经历,就不会奇怪微软将此重任交给他了。毕竟C#也不是他对软件开发方式重大变革的首次。现在经过几年时间的埋头苦干,C#已成为微软反击Java语言的最有力武器。
鉴于他为软件开发做出的巨大贡献,Anders在《Dr.Dobb's》杂志的2001年西部会议上被授予“Prestigious Excellence in Programming Award”,《Dr.Dobb's》杂志的主编Jonathan Erickson说:“这一荣誉,我们每年只颁给那些在软件开发领域做出非凡贡献的人员,Anders开发的C#和他整个职业生涯中为软件开发所做出的巨大贡献有目共睹,他无愧于这一荣誉!”
比尔盖茨也高度评价说:“我们为Anders获得这一荣誉感到无比自豪,Anders在C#创建中所做的努力将会改变现在的软件开发方式,并将在以后的十年继续产生影响。”
“程序员是最好的职业”,Anders说:“每两年,CPU的速度要加倍,内存容量是原来的四倍,但是我们的大脑还是原来的大小,很显然,将需要更多的程序原来补充这些。”
注:海尔斯伯格曾在微软博物馆视频上表明他是1960年生的,但很多其它资料显示,他是1961年生的。2006年,在巴塞罗那微软技术教育大会(TechED)上,安德斯再次确认他生于1960年。
9. 软件开发步骤包括哪些过程
软件开发一般分为五个阶段:
1.问题的定义及规划
此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性。
2.需求分析
在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础。“唯一不变的是变化本身”,同样软件需求也是在软件爱你开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。
3.软件设计
此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。还的软件设计将为软件程序编写打下良好的基础。
4.程序编码
此阶段是将软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。
5.软件测试在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。
10. 女程序员到底有没有被歧视
毕业一年的玲珑邪僧曾经在某家娱乐文化为主的大型公司面试前端时,在等候的过程中听到了隔壁有人说:“看到那个来面试前端的女生了吗,一看就不会写代码。”听得她喜忧参半。
就像“胸大无脑”这个词本身存在性别歧视的意味一样,“长得漂亮的女生一定是花瓶”也成为了大多数人对漂亮女生的直观印象。
女程序员想在工作能力上得到男性的认可,往往需要经过时间的验证。
高莹回忆起刚参加工作时,领导分配给她的都是团队里难度最低的任务。当时公司里有个男同事无意间瞟了一眼她写的代码,评价道:“写得不咋地,重构没意义,没有技术含量”。
几个月后她的能力得到了领导认可,也开始写一些有技术含量的代码,这时这个男同事对她的评价也随之发生了改变: “没想到你的代码水平不错,在女生里算写得比较好的了”。从这句话可以听出,他并没有把男女程序员的代码水平放在同一标准上进行比较,内心深处还是认为女生的代码能力不如男。
100offer让几位男程序员对女程序员的代码水平和工作能力做出了评价,他们的回答普遍比较正面。
虽然Tim认为女程序员一开始独立性差点,但是很快就能调整过来,她们的代码水平普遍和男程序员差不多,工作能力挺强。
徐风则说虽然女程序员调bug的时候也会骂脏话,但工作起来非常仔细认真,很是靠谱。
但当问到是否会对女程序员进行特殊照顾,比如不把难度大的工作交给他们时,大多数男程序员给出的答案都是:会。
男程序员在工作时会尽量不把难度高、工作量大、加班多的工作交给女程序员。一方面出于女性体质比男性弱的考虑,另一方面他们觉得这是对女性的一种出于本能的照顾。
那么,女程序员们是怎么看待自己的代码水平和抗压能力的呢?
iOS高级工程师张丹荔认为,女程序员里确实有代码写得差的,在占比上比男程序员大,但并不是全部。就像大学里很多计算机系的女生会找男生帮忙做作业一样,她们不是做不好,而是不感兴趣。如果真正喜欢技术的话,她相信女程序员的代码水平不会比男程序员差。
另一方面,男程序员有时宁愿自己加班也不愿把工作分配给女程序员,很大一部分原因是他们认为女生抗压能力差。关于这点,玲珑邪僧认为这并不是码农界特有的现象,相反,互联网圈是一个相对公平的领域,女程序员想要反驳这些说法、证实自己的能力并不难。
她认为相比于外界对女程序员的偏见,女程序员对自己的错误定位与消极评价才是更为最致命的。面对偏见,部分人会在潜意识里认同外界的说法,认为自身确实不抗压、能力弱,久而久之萌生放弃退却的念头。
所以,女性程序员应当正确客观地意识到自己的优势和不足,一定要拒绝裹足不前。
从采访可以看出,外貌、性别等外在因素容易被作为评判女程序员代码水平好坏的标准之一,这种现象在初入职场的新人身上尤为显着。