求伯君编程水平
❶ 编程好学吗,学完能做什么,怎么学才好
学编程,决不可心浮气燥。任何实践都是……
我认为有些人的观点错了。错得一塌糊涂。
对于这个问题,我的基本观点是:任何实践都是理论的载体或表现形式。而理论也是由实践上升而来
的。两者是辨证的。今天,我们只关注它的前一部分:任何实践都是理论的载体和表现形式。
我不是想故弄玄虚,但真理的外表看上去往往就是这么奇形怪状、难以理解。让我来给你解释一下
吧。
比如:战争是军事理论的实践,也是它的表现形式。战争的胜负取决于指挥者军事理论的掌握程度(别
给我举赵括这类“纸上谈兵”的反例,他们根本算不上掌握了军事理论,充其量只算是“背”下了军事
理论。“掌握”和“倒背如流”这是两个概念。)
1、VC、VB、Delphi …… ,你该学哪个?
具体到编程而言,我要告诉你:任何一种计算机语言,都是计算机科学理论的载体或表现形式。C++很
神吗?Java很酷吗?它们差距很远吗?是的。但从理论的层面上讲,它们没有区别,都是“面向对象”
理论的一个具体形式而已。
现在的程序员们被发行编译软件(通常我们将其称为“系统软件”)的商家不断推出的产品搞得眼花缭
乱,头痛欲裂。不断地跟在新语言后面跑,这条路还没跑到头,那边的“新路”又鸣锣开张了,于是再
跟着跑……渐渐地有些人开始感叹:学海无涯、学无止境,或什么“程序员是青春饭,过了三十别想
干”……
在此我不得不叹息:中国的教育真是一种“形而上学”的教育。早在高中时代我们就学过“辨证唯物主
义”的基本理论:做事情要抓主要矛盾。这一条恐怕谁都知道,却鲜见谁能在实践中把这一理论运用得
“炉火纯青”的。把这一理论运用到编程上来讲就是:
理论是主要矛盾,语言是次要矛盾,学会了理论,再具体到学一种语言时,你只不过是在进行某种消遣
而已。
现在学VC的普遍看不起学VB的或学Delphi的。但如果一个用Delphi的人,在需要写web程序时,用
TCP/IP做了一个构架,嵌入到应用程序中;而另一个用VC的人却只会把一个又一个的组件拖来拉去的做
些个“例子程序”的翻版。你说他们两个谁历害?Delphi和VC谁历害?
真应了这样一段话,问:纽约好还是上海好?答:有钱哪儿都好,没钱哪儿都不好。上海的富人并不比
纽约的富人少多少的优越感,而纽约的乞丐也不比上海的乞丐多多少幸福感。
现在你还会说学VC的人就一定比学Delphi的人水平高、“钱景”好吗?
2、“浅薄”绝不该是中国程序员的性格特征!!!
想问一句:中国程序员这么多,你们真地把基础理论学好了吗?别用你现有的编程经历告诉我:编程不
需要数学,不需要数据结构,不需要编译原理…… ……说话得负责任,您知道吗?我之所以发表这篇
文章,就是因为再也看不下去这种在中国编程界漫延的歪理邪说了!邪教害死的是人的个体,你们害死
的是中国软件业的未来!如果再让这种理论继续毒害编程新手的思想,中国将在计算机领域失去民族的
尊严!!!
请问,操作系统、编译软件、数据库系统…… 这些被称为“系统软件”的东东,中国有几样拿得出手
的产品?也许是我孤陋寡闻,据我所知:我们国家一件像样的也没有。
不错,我们是有一些网站的股票在西方上市了,我们是有一些人被国外公司请去做高级职员了,我们也
有一些人把西方的官方网站给黑了……但是,我们用的编译工具是谁的产品?我们微机里装得是谁做出
的操作系统?我们的程序跑在谁的芯片上?
爱之深,恨之切。我爱的是中国,但我痛恨不是中国,而是在中国编程界普遍流行的“浅薄”和“自以
为是”,这是我们民族软件业的一颗毒瘤!
是的,现在编程方面快速入门的书满天飞,让程序员的门槛越来越低。我这个外行就得益于这个“低门
槛”,跑了进来。但进来后,我们就不能再这样浅薄下去了——我的兄弟们!
用他国提供的工具做几个网站,写几个应用程序,弄出几个病毒…… 是振兴不了民族软件业的。顺便
说一句:我尊敬求伯君,但我不认为金山公司和其系列产品配得上被称为“民族软件业”的大旗,相对
这个称号,它差得太远了。
…… ……
写flash软件的人会认为用flash做动画的人比他历害吗?Adobe公司真的认为考取Adobe证书的人是“人
才”吗?MSCE、MSCD…… 通过这类考试得到微软徽章的人,在微软眼里是“人才”还是“义务推销
员”?持这类证书以及其他一些大软件公司认证的人,你们还在以为自己是“中国软件业的精英”而感
叹“怀才不遇”、工资太少吗?
醒醒吧,朋友。别再用编程不需要理论的话来自欺欺人了,别再用自己的浅薄来教导别人像自己一样浅
薄了。我想问问那些称数学、数据结构等基础课程对编程没用的人:
请你们搞清一个概念:是这些理论“没用”,还是你们“没用到”;是你们“没用到”,还是你们的水
平根本“用不到”;是你们“不需要用”,还是你们根本“不会用”?
举个例子,操作系统中的工作调度,若工作优先权相同,用什么方法进行调度?当然是“先到先做”—
—这就是数据结构中“队列”的应用。你们说“用不到”,只怕是因为到目前为止还没机会接触这类
“高端编程”的挑战吧?这样的话,那就算了,挣你的钱去,但别再来这里误人子弟,吹嘘什么优秀的
程序员不需要理论。
是谁说系统软件发展的黄金时代已经过去了?Linux不就是在MS操作系统雄霸多年的情况下一举成名的
吗?中国难道就找不到这样一个机会? 不,如果我们的程序员克服了现在的浮燥与急功近利,我们一
样可以在“系统软件”这一软件业的“高端”树立自己的品牌!所以请看下面——
3、年轻人应该有宏伟的志向。
用别人的产品做自己的东西,你永远只是个“高级客户”,成不了真正的开发者。不管你用他国的系统
软件开发出多少好的产品,挣了多少钱,只要人家一升级、或一推出新产品,你口袋里的银子连同最后
一条小裤叉也会被剥夺得一干二净。你,只不过是一个高级打工仔。
我希望打算进入编程界的朋友们,特别是现在还很年轻的朋友,能有一个比较高的志向。更希望已经进
到这行的朋友们能有以“振兴民族软件业”为己任,力争成为中国软件业的“旗手”。
我不赞同方东兴把微软骂得一无是处。更不赞同年轻人学他那样,一赌气而拒绝用微软的产品,拒绝
Windows、拒绝VC 、拒绝IE ……
我认为方东兴只是个狭隘的民族主义者。他看到了中国软件业民族的一面,却不愿承认我们落后的一
面。毫无根据的“自尊”等于自取灭亡。清朝末年,我们的科技并不落后于西方多少,但我们过分“自
尊”的“大国思想”却使我们失去了向其他国家学习的机会。当我们嘲笑西方人的蓝眼睛、大鼻子的时
候,他们的坚船利炮,却把我们“央央大国”的皇帝、太后打得满世界逃难。慈禧太后被打得满地找牙
的时候,不得不说出“量中华之物力,博与国之欢欣”的龌龊话,此时,她“大国皇太后”的自尊何在
呢?前面自尊过了头,事后必遭报应。这报应一持续,就是几百年,直到现在。难道我们还要继续闭门
造车,再走老路吗?
我们现在承认微软比我们强,向微软学习,并不等于我们永远要跟在他后面跑!在我们低下头的时候,
我们就应该想到,何时能再抬起这颗高贵的头颅!!!而且是“一定”!!!!!自尊不是错,错是错
在“太盲目”——妄自尊大,你就要和慈禧一样被打得满地找牙。做为一个大国,一个明智的民族,我
们不能讳疾忌医。
年轻人,志当存高远。相信我,当你以民族振兴为己任的时候,封王称帝、富贵荣华,都只不过是千秋
伟业的一个副产品。在这个尊重知识、崇尚科学的年代,志向高远的人,永远不必担心自己的“钱
途”。
不必讳言,我承认我当初进入编程领域不完全出于兴趣,也有“钱途”方面的考虑。但就好像当年参加
八路的战士当中,有些只是报着能吃上军粮或打鬼子报家仇的思想入伍的,但后来却学习了马列,提高
了觉悟,转为以兴国救民为目标一样,当我一步步深入到这行以后,当我决定考研并慢慢提高了认识以
后,我的目的变了。我觉得应该有个更高的人生目标,更高志向和追求来支持我的行动。这个目标就
是:为民族软件业尽一把自己的力。
真心希望你与我同行。
4、几点建议:
建议大家耐下心来先学好理论,然后再选择具体的工具或语言。不过,在所有这一切开始以前,先打好
C语言和汇编基础。
能不能得道,就看你在见到别人做出一些花里胡哨的东西时,是不是能坚定信心、耐住寂寞、抵御诱惑
了。
一个和我一起学习C语言的人,学完就直接开始玩VC,而我则潜下心来学了些C++和理论方面的东西。早
早地,他就能仿照书上用VC做些界面似的东西在我面前炫耀,可后来,当我基础理论的学习告一段落,
做个图书管理程序卖了800大洋时,他还只是停留在做“例子程序”的水平上。现在我们谈论起编程,
深度早已不可同日而语了。他起跑领先,却落在了后面。
我不敢自以为是,只是想用这个亲身经历告诉大家:学编程,决不可心浮气燥。
5、结束语
我的话触到许多人的痛处,而且由于写时心中气愤难平,有些出言不逊,可能要遭人骂了。不过,既然
写了,就不怕骂。因为:以上所言全是忠告,识不识货,就看您的眼光了
❷ 想学编程,需要拥有什么样的条件
以下摘自《程序员的十层楼》
自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道程序员 有多少种技术层级,每个层级需要什么样的技术水平,然后再比较中国和西方在各个技术层级的人数,就可以知道到底有没有差距,差距有多大。
当然,对于如何划分程序员的技术层级,不同公司或不同人会有不同的划分标准,下面的划分仅代表个人的观点,如有不当之处,还请砸板砖予以纠正。
第1层 菜鸟第1层楼属于地板层,迈进这层楼的门槛是很低的。基本上懂计算机的基本操作,了解计算机专业的一些基础知识,掌握一门基本的编程语言如C/C++,或者Java,或者JavaScript,...,均可入门迈进这层。
在这层上,中国有着绝对的优势,除了从计算机专业毕业的众多人数外,还有大量的通信、自动化、数学等相关专业的人士进入这一行,此外还有众多的其他专业转行的人士,人数绝对比西方多出甚多。并且还有一个优势就是我们这层人员的平均智商比西方肯定高。
没有多少人愿意一辈子做菜鸟,因为做"菜鸟"的滋味实在是不咋的,整天被老大们吆喝着去装装机器,搭建一下测试环境,或者对照着别人写好的测试用例 做一些黑盒测试,好一点的可以被安排去写一点测试代码。当然如果运气"好"的话,碰到了国内的一些作坊式的公司,也有机会去写一些正式的代码。
所以,菜鸟们总是在努力学习,希望爬更高的一层楼去。
第2层 大虾从第1层爬到第2层相对容易一些,以C/C++程序员为例,只要熟练掌握C/C++编程语言,掌握C标准库和常用的各种数据结构算法,掌握STL的 基本实现和使用方法,掌握多线程编程基础知识,掌握一种开发环境,再对各种操作系统的API都去使用一下,搞网络编程的当然对socket编程要好好掌握 一下,然后再学习一些面向对象的设计知识和设计模式等,学习一些测试、软件工程和质量控制的基本知识,大部分人经过2~3年的努力,都可以爬到第2层,晋 升为"大虾"。
中国的"大虾"数量和"菜鸟"数量估计不会少多少,所以这层上仍然远领先于西方。
大虾们通常还是有些自知之明,知道自己只能实现一些简单的功能,做不了大的东西,有时候还会遇到一些疑难问题给卡住,所以他们对那些大牛级的人物通 常是非常崇拜的,国外的如Robert C. Martin、Linus Torvalds,国内的如求伯君、王志东等通常是他们崇拜的对象。其中的有些人希望有一天也能达到这些大牛级人物的水平,所以他们继续往楼上爬去。
第3层 牛人由于"大虾"们经常被一些疑难问题给卡住,所以有了"大虾"们只好继续学习,他们需要将原来所学的知识进一步熟练掌握,比如以熟练掌握C++编程语 言为例,除了学一些基础性的C++书籍如《C++ Primer》,《Effective C++》,《Think in C++》,《Exception C++》等之外,更重要的是需要了解C++编译器的原理和实现机制,了解操作系统中的内部机制如内存管理、进程和线程的管理机制,了解处理器的基础知识和 代码优化的方法,此外还需要更深入地学习更多的数据结构与算法,掌握更深入的测试和调试知识以及质量管理和控制方法,对各种设计方法有更好的理解等。
学习上面说的这些知识不是一挥而就的,不看个三五十本书并掌握它是做不到的。以数据结构算法来说,至少要看个5~10本这方面的着作;以软件设计来 说,光懂结构化设计、面向对象设计和一些设计模式是不够的,还要了解软件架构设计、交互设计、面向方面的设计、面向使用的设计、面向数据结构算法的设计、 情感化设计等,否则是很难进到这个楼层的。
当然除了上面说的知识外,大虾们还需要去学习各种经验和技巧。当然这点难不倒他们,现在出版的书籍众多,网络上的技术文章更是不胜数,然后再去各种 专业论坛里泡一泡,把这些书籍和文章中的各种经验、技能、技巧掌握下来,再去学习一些知名的开源项目如Apache或Linux操作系统的源代码实现等。 此时对付一般的疑难问题通常都不在话下,菜鸟和大虾们会觉得你很"牛",你也就爬到了第3层,晋升为"牛人"了。
看了上面所讲的要求,可能有些大虾要晕过去了,成为牛人要学这么多东西啊!要求是不是太高了?其实要求一点也不高,这么点东西都掌握不了的话,怎么能让别人觉得你"牛"呢?
需要提一下的是,进入多核时代后,从第2层爬到第3层增加了一道多核编程的门槛。当然要迈过这道门槛并不难,已经有很多前辈高人迈进了这道门槛,只要循着他们的足迹前进就可以了。想迈进这道门槛者不妨去学习一下TBB开源项目的源代码(链接:http://www.threadingbuildingblocks.org/),然后上Intel的博客(http://softwareblogs-zho.intel.com/)和多核论坛(http://forum.csdn.net/Intel/IntelMulti-core/)去看看相关文章,再买上几本相关的书籍学习一下。
在国内, 一旦成为"牛人",通常可以到许多知名的公司里去,运气好者可以挂上一个架构师的头衔,甚至挂上一个"首席架构师"或者"首席xx学家"的头衔也不足为 奇。有不少爬到这层的人就以为到了楼顶了,可以眼睛往天上看了,开始目空一切起来,以为自己什么都可以做了,什么都懂了,经常在网络上乱砸板砖是这个群体 的最好写照。由此也看出,国内的牛人数量仍然众多,远多于西方的牛人数量,在这层上仍然是领先的。
也有不少谦虚的"牛人",知道自己现在还不到半桶水阶段。他们深知爬楼的游戏就像猴子上树一样,往下看是笑脸,往上看是屁股。为了多看笑脸,少看屁股,他们并没有在此停步不前,而是继续寻找到更上一层的楼梯,以便继续往上爬。
第4层 大牛从第3层爬到第4层可不像上面说过的那几层一样容易,要成为大牛的话,你必须要能做牛人们做不了的事情,解决牛人们解决不了问题。比如牛人们通常都 不懂写操作系统,不会写编译器,不懂得TCP/IP协议的底层实现,如果你有能力将其中的任何一个实现得象模象样的话,那么你就从牛人升级为"大牛"了。
当然,由于各个专业领域的差别,这里举操作系统、编译器、TCP/IP协议只是作为例子,并不代表成为"大牛"一定需要掌握这些知识,以时下热门的 多核编程来说,如果你能比牛人们更深入地掌握其中的各种思想原理,能更加自如的运用,并有能力去实现一个象开源项目TBB库一样的东西,也可以成为"大 牛",又或者你能写出一个类似Apache一样的服务器,或者写出一个数据库,都可以成为"大牛"。
要成为"大牛"并不是一件简单的事情,需要付出比牛人们多得多的努力,一般来说,至少要看过200~400本左右的专业书籍并好好掌握它,除此之外,还得经常关注网络和期刊杂志上的各种最新信息。
当"牛人"晋升为"大牛",让"牛人们"发现有比他们更牛的人时,对"牛人"们的心灵的震撼是可想而知的。由于牛人们的数量庞大,并且牛人对大虾和 菜鸟阶层有言传身教的影响,所以大牛们通常能获得非常高的社会知名度,几乎可以用"引无数菜鸟、大虾、牛人竞折腰"来形容,看看前面提过的Linus Torvalds等大牛,应该知道此言不虚。
虽然成为"大牛"的条件看起来似乎很高似的,但是这层楼并不是很难爬的一层,只要通过一定的努力,素质不是很差,还是有许多"牛人"可以爬到这一层的。由此可知,"大牛"这个楼层的人数其实并不像想象的那么少,例如比尔·盖茨之类的人好像也是属于这一层的。
由于"大牛"这层的人数不少,所以也很难统计除到底是中国的"大牛"数量多还是西方的大牛数量多?我估计应该是个旗鼓相当的数量,或者中国的"大牛"们会更多一些。
看到这里,可能会有很多人会以为我在这里说瞎话,Linus Torvalds写出了着名的Linux操作系统,我国并没有人写出过类似的东西啊,我国的"大牛"怎么能和西方的比呢? 不知大家注意到没有,Linus Torvalds只是写出了一个"象模象样"的操作系统雏形,Linux后来真正发展成闻名全球的开源操作系统期间,完全是因为许多支持开源的商业公司如 IBM等,派出了许多比Linus Torvalds更高楼层的幕后英雄在里面把它开发出来的。
可能有些菜鸟认为Linus Torvalds是程序员中的上帝,不妨说个小故事:
Linus,Richard Stallman和Don Knuth(高德纳)一同参加一个会议。
Linus 说:"上帝说我创造了世界上最优秀的操作系统。"
Richard Stallman自然不甘示弱地说:"上帝说我创造了世界上最好用的编译器。"
Don Knuth一脸疑惑的说:"等等,等等,我什么时候说过这些话?"
由此可以看出,Linus Torvalds的技术水平并不像想象中那么高,只是"牛人"和"大虾"觉得"大牛"比他们更牛吧了。在我国,有一些当时还处于"大虾"层的人物,也能写 出介绍如何写操作系统的书,并且书写得非常出色,而且写出了一个有那么一点点象模象样的操作系统来。我想中国的"大牛"们是不会比西方差的,之所以没有人 写出类似的商业产品来,完全是社会环境的原因,并不是技术能力达不到的原因。
"大牛"们之所以成为大牛,主要的原因是因为把"牛人"给盖了下去,并不是他们自己觉得如何牛。也许有很多菜鸟、大虾甚至牛人觉得"大牛"这层已经 到顶了,但大多数"大牛"估计应该是有自知之明的,他们知道自己现在还没有爬到半山腰,也就勉强能算个半桶水的水平,其中有些爬到这层没有累趴下,仍然能 量充沛,并且又有志者,还是会继续往更上一层楼爬的。
看到这里,也许有些菜鸟、大虾、牛人想不明白了,还有比"大牛"们更高的楼层,那会是什么样的楼层?下面就来看看第5层楼的奥妙。
第5层 专家当大牛们真正动手做一个操作系统或者类似的其他软件时,他们就会发现自己的基本功仍然有很多的不足。以内存管理为例,如果直接抄袭Linux或者其 他开源操作系统的内存管理算法,会被人看不起的,如果自动动手实现一个内存管理算法,他会发现现在有关内存管理方法的算法数量众多,自己并没有全部学过和 实践过,不知道到底该用那种内存管理算法。
看到这里,可能有些人已经明白第5层楼的奥妙了,那就是需要做基础研究,当然在计算机里,最重要的就是"计算"二字,程序员要做基础研究,主要的内容就是研究非数值"计算"。
非数值计算可是一个非常庞大的领域,不仅时下热门的"多核计算"与"云计算"属于非数值计算范畴,就是软件需求、设计、测试、调试、评估、质量控 制、软件工程等本质上也属于非数值计算的范畴,甚至芯片硬件设计也同样牵涉到非数值计算。如果你还没有真正领悟"计算"二字的含义,那么你就没有机会进到 这层楼来。
可能有人仍然没有明白为什么比尔·盖茨被划在了大牛层,没有进到这层来。虽然比尔·盖茨大学未毕业,学历不够,但是家有藏书2万余册,进入软件这个 行业比绝大部分人都早,撇开他的商业才能不谈,即使只看他的技术水平,也可以算得上是学富五车,顶上几个普通的计算机软件博士之和是没有问题的,比起 Linus Torvalds之类的"大牛"们应该技高一筹才对,怎么还进不了这层楼呢?
非常遗憾的是,从Windows操作系统的实现来看,其对计算的理解是很肤浅的,如果把Google对计算方面的理解比做大学生,比尔·盖茨只能算做一个初中生,所以比尔·盖茨永远只能做个大牛人,成不了"专家"。
看到这里,也许国内的大牛们要高兴起来了,原来比尔·盖茨也只和我等在同一个层次,只要再升一层就可以超越比尔·盖茨了。不过爬到这层可没有从"牛 人"升为"大牛"那么简单,人家比尔·盖茨都家有2万多册书,让你看个500~1000本以上的专业书籍并掌握好它应该要求不高吧。当然,这并不是主要的 条件,更重要的是,需要到专业的学术站点去学习了,到ACM,IEEE,Elsevier,SpringerLink,SIAM等地方去下载论文应该成为 你的定期功课,使用Google搜索引擎中的学术搜索更是应该成为你的日常必修课。此外,你还得经常关注是否有与你研究相关的开源项目冒出来,例如当听到 有TBB这样针对多核的开源项目时,你应该第一时间到Google里输入"TBB"搜索一下,将其源代码下载下来好好研究一番,这样也许你的一只脚已经快 迈进了这层楼的门槛。
当你象我上面说的那样去做了以后,随着时间的推移,总会有某天,你发现,在很多小的领域里,你已经学不到什么新东西了,所有最新出来的研究成果你几 乎都知道。此时你会发现你比在做"牛人"和"大牛"时的水平不知高出了多少,但是你一点也"牛"不起来,因为你学的知识和思想都是别人提出来的,你自己并 没有多少自己的知识和思想分享给别人,所以你还得继续往楼上爬才行。
我不知道国内的"专家"到底有多少,不过有一点可以肯定的是,如果把那些专门蒙大家的"砖家"也算上的话,我们的砖家比西方的要多得多。
第6层 学者
当"专家"们想继续往上一层楼爬时,他们几乎一眼就可以看到楼梯的入口,不过令他们吃惊的是,楼梯入口处竖了一道高高的门槛,上面写着"创新"二字。不幸的是,大多数人在爬到第5层楼时已经体能消耗过度,无力翻过这道门槛。
有少数体能充足者,可以轻易翻越这道门槛,但是并不意味着体力消耗过度者就无法翻越,因为你只是暂时还没有掌握恢复体能的方法而已,当掌握了恢复体能的方法,将体能恢复后,你就可以轻易地翻越这道门槛了。
怎么才能将体能恢复呢?我们的老祖宗"孔子"早就教导过我们"温故而知新",在英文里,研究的单词是"research",其前缀"re" 和"search"分别是什么意思不用我解释吧。或许有些人觉得"温故而知新"和"research"有些抽象,不好理解,我再给打个简单的比方,比如你 在爬一座高山,爬了半天,中途体力不支,怎么恢复体力呢?自然是休息一下,重新进食一些食物,体力很快就可以得到恢复。
由此可知,对体能消耗过度者,休息+重新进食通常是恢复体能的最佳选择。可惜的是,国内的老板们并不懂得这点,他们的公司里不仅连正常国家规定的休 息时间都不给足,有些公司甚至有员工"过劳死"出现。所以国内能翻越"创新"这道门槛的人是"少之又少",和西方比起来估计是数量级的差别。
再说说重新进食的问题,这个重新进食是有讲究的,需要进食一些基础性易消化的简单食物,不能进食山珍海味级的复杂食物,否则很难快速吸收。以查找为 例,并不是去天天盯着那些复杂的查找结构和算法进行研究,你需要做的是将二分查找、哈希查找、普通二叉树查找等基础性的知识好好地复习几遍。
以哈希查找为例,首先你需要去将各种冲突解决方法如链式结构、二次哈希等编写一遍,再试试不同种类的哈希函数,然后还需要试试在硬盘中如何实现哈希 查找,并考虑数据从硬盘读到内存后,如何组织硬盘中的数据才能快速地在内存中构建出哈希表来,...,这样你可能需要将一个哈希表写上十几个不同的版本, 并比较各个版本的性能、功能方面的区别和适用范围。
总之,对任何一种简单的东西,你需要考虑各种各样的需求,以需求来驱动研究。最后你将各种最基础性的查找结构和算法都了然于胸后,或许某天你再看其他更复杂的查找算法,或者你在散步时,脑袋里灵光一现,突然间就发现了更好的方法,也就从专家晋升为"学者"了。
学者所做的事情,通常都是在前人的基础上,进行一些小的优化和改进,例如别人发明了链式基数排序的方法,你第1个发现使用一定的方法,可以用数组替代链表进行基数排序,性能还能得到进一步提高。
由于学者需要的只是一些小的优化改进,因此中国还是有一定数量的学者。不过和国外的数量比起来,估计少了一个数量级而已。
也许有人会觉得现在中国许多公司申请专利的数量达到甚至超过西方发达国家了,我们的学者数量应该不会比他们少多少。因此,有必要把专利和这里说的创新的区别解释一下。
所谓专利者,只要是以前没有的,新的东西,都可以申请专利;甚至是以前有的东西,你把他用到了一个新的领域的产品里去,也可以申请专利。比如你在房 子里造一个水泥柱子,只要以前没有人就这件事申请专利,那么你就可以申请专利,并且下次你把水泥柱子挪一个位置,又可以申请一个新的专利;或者你在一个柜 子上打上几个孔,下次又把孔的位置改一改,...,均可申请专利。
这层楼里所说的创新,是指学术层面的创新,是基础研究方面的创新,和专利的概念是完全不同的,难度也是完全不同的。你即使申请了一万个象那种打孔一类的专利,加起来也够不到这层楼里的一个创新。
当你爬到第6层楼时,你也许会有一种突破极限的快感,因为你终于把那道高高的写着"创新"二字的门槛给翻过去了,实现了"0"的突破。这时,你也许 有一种"独上高楼,欲望尽天涯路"的感觉,但是很快你会发现看到的都是比较近的路,远处的路根本看不清楚。如果你还有足够的体力的话,你会想爬到更高一层 的楼层去。
第7层 大师
从第6层楼爬到第7层楼,并没有多少捷径可走,主要看你有没有足够的能量。你如果能象Hoare一样设计出一个快速排序的算法;或者象Eugene W. Myers一样设计出了一个用编辑图的最短路径模型来解决diff问题的算法;或者象M.J.D. Powell一样提出了一个能够处理非线性规划问题的SQP方法;或者你发现基于比较的排序算法,它的复杂度下界为O(NLogN);或者你发现用栈可以 将递归的算法变成非递归的;或者你设计出一个红黑树或者AVL树之类的查找结构;或者你设计出一个象C++或Java一样的语言;或者你发明了 UML;...,你就爬到了第7层,晋升为"大师"了。
上面举的这些例子中,其中有些人站的楼层比这层高,这里只是为了形象说明而举例他们的某个成就。从上面列出的一些大师的贡献可以看出,成为大师必须 要有较大的贡献。首先解决问题必须是比较重要的,其次你要比前辈们在某方面有一个较大的提高,或者你解决的是一个全新的以前没有解决过的问题;最重要的 是,主要的思路和方法必须是你自己提供的,不再是在别人的思路基础上进行的优化和改进。
看了上面这些要求,如果能量不够的话,你也许会觉得有些困难,所以不是每个人都能成为"大师"的。中国软件业里能称得上是"大师"的人,用屈指可数来形容,估计是绰绰有余。值得一提得是,国外的"大师"就象我们的"大牛"一样满天飞的多。
我把我猜测本国有可能进到这层楼的大师列一下,以起个抛砖引玉的作用。汉王的"手写识别"技术由于是完全保密的,不知道它里面用了什么思想,原创思 想占的比重有多少,因此不知道该把它划到这层楼还是更高一层楼去。原山东大学王小云教授破解DES和MD5算法时,用到的方法不知道是不是完全原创的,如 果是的话也可进到这层楼来。
陈景润虽然没有彻底解决哥德巴赫猜想,但他在解决问题时所用的方法是创新的,因此也可以进到这层楼来。当然,如果能彻底解决哥德巴赫猜想,那么可以算到更高的楼层去。
求伯君和王志东等大牛们,他们在做WPS和表格处理之类的软件时,不知是否有较大的原创算法在里面,如果有的话就算我错把他们划到了大牛层。由于所 学有限,不知道国内还有那些人能够得上"大师"的级别,或许有少量做研究的教授、院士们,可以达到这个级别,有知道的不妨回个帖子晾一晾。
鉴于"大师"这个称号的光环效应,相信有不少人梦想着成为"大师"。或许你看了前面举的一些大师的例子,你会觉得要成为大师非常困难。不妨说一下,现在有一条通往"大师"之路的捷径打开了,那就是多核计算领域,有大量的处女地等待大家去挖掘。
以前在单核时代开发的各种算法,现在都需要改写成并行的。数据结构与算法、图像处理、数值计算、操作系统、编译器、测试调试等各个领域,都存在大量的机会,可以让你进到这层楼来,甚至有可能让你进到更高一层楼去。
第8层 科学家
科学家向来都是一个神圣的称号,因此我把他放在了“大师”之上。要成为科学家,你的贡献必须超越大师,不妨随便举一些例子。
如果你象Dijkstra一样设计了ALGOL语言,提出了程序设计的三种基本结构:顺序、选择、循环,那么你可以爬到第8层楼来。顺便说一下,即使抛开这个成果,Dijkstra凭他的PV操作和信号量概念的提出,同样可以进到这层楼。
如果你象Don Knuth一样,是数据结构与算法这门学科的重要奠基者,你也可以进到这层楼来。当然,数据结构和算法这门学科不是某个人开创的,是许多大师和科学家集体开创的。
如果你象巴科斯一样发明了Fortran语言,并提出了巴科斯范式,对高级程序语言的发展起了重要作用,你也可以进到这层楼来。
或者你象Ken Thompson、Dennis Ritchie一样发明了Unix操作系统和功能强大、高效、灵活、表达力强的C语言,对操作系统理论和高级编程语言均作出重大贡献,那么你也可以进到这层楼来。
或者你有Frederick P. Brooks一样机会,可以去领导开发IBM的大型计算机System/360和OS/360操作系统,并在失败后反思总结,写出《人月神话》,对软件工程作出里程碑式的贡献,你也可以进到这层来。
或者你提出了面向对象设计的基本思想,或者你设计了互联网的TCP/IP协议,或者你象Steven A.Cook一样奠定NP完全性的理论基础,或者你象Frances Allen一样专注于并行计算来实现编译技术,在编译优化理论和技术取得基础性的成就,…,均可进入这层。
当然,如果你发明了C++语言或者Java语言,你进不到这层来,因为你用到的主要思想都是这层楼中的科学家提出的,你自己并没有没有多少原创思想在里面。
看了上面列出的科学家的成就,你会发现,要成为“科学家”,通常要开创一门分支学科,或者是这个分支学科的奠基者,或者在某个分支学科里作出里程碑式的重大贡献。如果做不到这些的话,那么你能象Andrew C. Yao(姚期智)一样在对计算理论的多个方向如伪随机数生成,密码学与通信复杂度等各个方向上作出重要贡献,成为集大成者,也可以进入这层楼。
成为“科学家”后,如果你有幸象Dijkstra一样,出现在一个非常重视科学的国度。当你去世时,你家乡满城的人都会自动地去为你送葬。不过如果不幸生错地方的话,能不挨“板砖”估计就算万幸了。
从上面随便举的一些例子中,你可能能猜到,西方科学家的数量是非常多的,于是你会想中国应该也有少量的科学家吧?我可以很负责任地告诉你一个不幸的结果,中国本土产生的科学家的数量为0。目前在国内,软件领域的唯一的科学家就是上面提过的姚期智,还是国外请回来的,并不是本土产生的。
可能你不同意我说的本土科学家数量为0的结论,因为你经常看到有许多公司里都有所谓“首席XX科学家”的头衔。我想说的是,这些所谓的“首席XX科学家”都是远远够不到这层楼的级别的,有些人的水平估计也就是一个“牛人”或“大牛”的级别,好一点的最多也就一个“学者”的级别。尤其是那些被称作“首席经X学家”的,基本上可以把称号改为“首席坑大家”。
虽然我国没有人能爬到这层楼上来,但是西方国家仍然有许多人爬到了比这层更高的楼上。如果要问我们比西方落后多少?那么可以简单地回答为:“落后了三层楼”。下面就来看看我们做梦都没有到过的更高一层楼的秘密。
第9层 大科学家
进入这层楼的门槛通常需要一些运气,比如某天有个苹果砸到你头上时,你碰巧发现了万有引力,那么你可以进到这层楼来。当然,万有引力几百年前就被人发现了,如果你现在到处嚷嚷着说你发现了万有引力,恐怕马上会有人打110,然后警察会把你送到不正常人类的聚集地去。因此,这里举万有引力的例子,只是说你要有类似的成就才能进到这层楼来。
牛顿发现万有引力定律开创 了经典物理运动力学这门学科,如果你也能开创一门大的学科,那么你就从科学家晋升为“大科学家”。比如爱因斯坦创建了相对论,从一个小职员变成了大科学 家。当然大科学家可远不止这两人,数学界里比物理学界更是多得多,如欧几里得创建了平面几何,笛卡尔开创解析几何,还有欧拉、高斯、莱布尼茨等数不清的人 物,跟计算相关的大科学家则有图灵等人。
从上面列出的一些大科学家 可以发现,他们的成就不仅是开创了一个大的学科,更重要的是他们的成就上升到了“公理”的层面。发现公理通常是需要一点运气的,如果你的运气不够好的话, 另外还有一个笨办法也可以进到这层楼来,那就是成为集大成者。例如冯·诺伊曼,对数学的所有分支都非常了解,许多领域都有较大的贡献,即使撇开他对计算机 的开创贡献,成为大科学家照样绰绰有余。
当然,程序员们最关心的是 自己有没有机会变成大科学家。既然计算机这门大学科的开创性成果早就被冯·诺伊曼、图灵等人摘走了,那么程序员们是不是没有机会变成大科学家了呢?我们的 古人说得好:“江山代有才人出,各领风骚数百年”,现在在计算机这门学科下面诞生了许多非常重要的大的分支,所以你还是有足够的机会进到这层楼的。
如果你能够彻底解决自然语言理解(机器翻译)这门学科中的核心问题, 或者你在人工智能或者机器视觉(图像识别)方面有突破性的发现,那么你同样可以轻易地晋升为“大科学家”。这样当某天你老了去世时,或许那天国人已经觉醒,你也能享受到如Dijkstra一样的待遇,有满城甚至全国的人去为你送葬。
❸ 周鸿祎表示互联网大佬编程他可以排第三,排名首位的是谁
说起周鸿祎相信有不少朋友非常熟悉的,这是360公司的创始人,也是一位非常聪明的互联网大佬,而他也是以耿直的性格让很多人对他非常的喜欢。最近一段时间周弘毅在接受采访的时候,就表示在所有互联网大佬的编程之中,他能够排到第3名,那么排名首位的是谁呢?相信有不少朋友也是非常感兴趣的。
虽然这位企业家的说法非常的谦虚,但是从他的描述我们也能够看得出来,他的整体编程实力还是非常不错的,而至于到底在能够超过他的两位企业家之中,谁的水平更高一筹,这位企业家并没有进行分析,但是我们也能够看得出来有很多的企业家本身的水平也的确是非常不错。
在互联网企业发展的过程中,编程是一件非常重要的事情,我们也相信这一些企业家能够通过自己的努力来更好的创造出更多优秀的互联网产品,也能够给我们的生活带来更多的便利和惊喜,这样才能够让自己获得更多人的认可和支持。
❹ 求求伯君故事
求伯君,1964年11月20日出生于浙江新昌县。1984年,毕业于中国人民解放军国防科技大学,后分配到河北省徐水县石油部物探局的一个仪器厂;1986年,从仪器厂辞职,加盟北京四通公司,1987年调深圳四通公司;1988年,加入香港金山公司,在深圳从事软件开发;1989年,转到珠海,成功开发国内第一套文字处理软件WPS;1994年,在珠海独立成立珠海金山电脑公司,自任董事长兼总经理。1998年,联想注资,金山重组,求伯君出任副董事长兼总裁。
求伯君金山十年路
1984年,求伯君从国防科技大学毕业后,被分配到河北省徐水县石油部物探局仪器厂。 1986年他的生活被改变了。一个深圳大学的女学生到它们厂实习,为了爱情,求伯君去了一趟深圳。一段没有结局的爱情故事,却成了中国软件业一个传奇的开始。1986年底,求伯君辞掉公职,求伯君被深圳给迷住了。
金山公司老板张旋龙给求伯君在深圳的一家宾馆里租了一间房子,摆上一台386电脑,让他编制开发他的文字处理程序。当香港金山公司与北京大学合作把装有WPS1.0的汉卡推向市场的时候,售出1000 套。
WPS上市了。1993年,鉴于求伯君为公司做出的贡献,香港金山公司的老板张旋龙在珠海为他买了一套价值200万元的别墅,作为奖励。1994年,香港金山公司被北大方正公司合并,求伯君在珠海成立了珠海金山软件公司。现在,金山是国内最有影响力的软件公司之一。
这一年,美国微软的Windows系统在中国悄然登陆。微软OFFICE中的WORD迅速占领了中国文字处理软件市场。
为了应付挑战,求伯君首先卖掉公司奖励给他的豪华别墅,筹资400多万元,开始了每周7天、每天10多个小时、历时3年多的艰苦开发,终于推出了WPS97,而且一上市就登上了软件排行榜的榜首。WPS97推出仅两个多月,就销出了一万三千套,这样好的势头让求伯君始料未及。
1998年8月,联想公司向金山公司注资900万美元,两大民族品牌的联手,给WPS带来了新的机遇。求伯君和联想公司联合,好处不仅仅是资本,还有联想成功的管理模式,联想对市场的运作方式:搭班子、定战略、带队伍。同时,求伯君看到了Inteet发展对文字处理软件的冲击。在从DOS转到Windows平台以后,WPS未来很有可能会转向Inteet 平台。
求伯君评价说:“联想公司注资带来的变化是巨大的,我们从散兵游勇变成了正规军。”
1999年3月,求伯君领导的金山公司宣告智能集成办公软件WPS2000已于4月3日上市。长期由国外办公软件一统天下的被动局面终于结束。金山宣布,投入千万巨资,发布以 WPS2000为龙头的一系列产品,宣言民族软件业将崛起于世纪末, 下个世纪将是中国人的世纪。这是民族软件业的第一声宣言。求伯君也被认为是中国民族软件业的代表。
1999年,“红色正版风暴”,以28元的价格推出金山词霸和金山快译,在100天以内,创造了中国软件销量突破100万套的奇迹。红色潮席卷全国。
2000年5月,金山公司发表互联网战略计划。8月8日,该公司在北京正式发布了“中国软件.NET”战略,业界迅速掀起了一轮软件.net的轩然大波。就在金山是挑战微软还是跟风微软的的激烈争论中,金山公司推出的国内首款.net软件产品――iWPS.net已正式抢滩。
2000年11月,金山全面进军反病毒软件,推出金山毒霸。
除了编程,求伯君爱看武侠书、历史书和社会纪实作品,唯独对外国文学不感兴趣。
“国外名着,包括电影、音乐,都没有共同感,无法引起共鸣。我是个传统的民族主义者,喜欢中国的民族音乐,比如古筝和古琴。”他说。
参考资料:中国经营报
❺ 求伯君的资料谁有啊,谢谢了
求伯君,1964年11月20日出生于浙江新昌县。1984年,毕业于中国人民解放军国防科技大学,后分配到河北省徐水县石油部物探局的一个仪器厂;1986年,从仪器厂辞职,加盟北京四通公司,1987年调深圳四通公司;1988年,加入香港金山公司,在深圳从事软件开发;1989年,转到珠海,成功开发国内第一套文字处理软件WPS;1994年,在珠海独立成立珠海金山电脑公司,自任董事长兼总经理。1998年,联想注资,金山重组,求伯君出任副董事长兼总裁。
求伯君金山十年路
1984年,求伯君从国防科技大学毕业后,被分配到河北省徐水县石油部物探局仪器厂。 1986年他的生活被改变了。一个深圳大学的女学生到它们厂实习,为了爱情,求伯君去了一趟深圳。一段没有结局的爱情故事,却成了中国软件业一个传奇的开始。1986年底,求伯君辞掉公职,求伯君被深圳给迷住了。
金山公司老板张旋龙给求伯君在深圳的一家宾馆里租了一间房子,摆上一台386电脑,让他编制开发他的文字处理程序。当香港金山公司与北京大学合作把装有WPS1.0的汉卡推向市场的时候,售出1000 套。
WPS上市了。1993年,鉴于求伯君为公司做出的贡献,香港金山公司的老板张旋龙在珠海为他买了一套价值200万元的别墅,作为奖励。1994年,香港金山公司被北大方正公司合并,求伯君在珠海成立了珠海金山软件公司。现在,金山是国内最有影响力的软件公司之一。
这一年,美国微软的Windows系统在中国悄然登陆。微软OFFICE中的WORD迅速占领了中国文字处理软件市场。
为了应付挑战,求伯君首先卖掉公司奖励给他的豪华别墅,筹资400多万元,开始了每周7天、每天10多个小时、历时3年多的艰苦开发,终于推出了WPS97,而且一上市就登上了软件排行榜的榜首。WPS97推出仅两个多月,就销出了一万三千套,这样好的势头让求伯君始料未及。
1998年8月,联想公司向金山公司注资900万美元,两大民族品牌的联手,给WPS带来了新的机遇。求伯君和联想公司联合,好处不仅仅是资本,还有联想成功的管理模式,联想对市场的运作方式:搭班子、定战略、带队伍。同时,求伯君看到了Inteet发展对文字处理软件的冲击。在从DOS转到Windows平台以后,WPS未来很有可能会转向Inteet 平台。
求伯君评价说:“联想公司注资带来的变化是巨大的,我们从散兵游勇变成了正规军。”
1999年3月,求伯君领导的金山公司宣告智能集成办公软件WPS2000已于4月3日上市。长期由国外办公软件一统天下的被动局面终于结束。金山宣布,投入千万巨资,发布以 WPS2000为龙头的一系列产品,宣言民族软件业将崛起于世纪末, 下个世纪将是中国人的世纪。这是民族软件业的第一声宣言。求伯君也被认为是中国民族软件业的代表。
1999年,“红色正版风暴”,以28元的价格推出金山词霸和金山快译,在100天以内,创造了中国软件销量突破100万套的奇迹。红色潮席卷全国。
2000年5月,金山公司发表互联网战略计划。8月8日,该公司在北京正式发布了“中国软件.NET”战略,业界迅速掀起了一轮软件.net的轩然大波。就在金山是挑战微软还是跟风微软的的激烈争论中,金山公司推出的国内首款.net软件产品――iWPS.net已正式抢滩。
2000年11月,金山全面进军反病毒软件,推出金山毒霸。
除了编程,求伯君爱看武侠书、历史书和社会纪实作品,唯独对外国文学不感兴趣。
“国外名着,包括电影、音乐,都没有共同感,无法引起共鸣。我是个传统的民族主义者,喜欢中国的民族音乐,比如古筝和古琴。”他说。
参考资料:中国经营报
❻ 雷军:从网络黑客到小米创始人的经历你知道吗
很多企业家的名字在网友心中都是很熟悉的,他们给人们看到了一个成功的企业家,可是在成功的背后,他们付出的努力也是非常多的。
对于他们的成功,我们深知都是非常不容易的,但是从来没有真正的去了解过,看了视频以后,才发现每个人的成功都不是巧合,而是他们通过多年的努力取得的,看了这个视频之后,了解了小米创始人雷军的创业人生,
2010年4月,雷军与原Google中国工程研究院副院长林斌(曾参与微软亚洲工程院创建并任工程总监)、原摩托罗拉北京研发中心高级总监周光平(主持设计“明”系列手机)、原北京科技大学工业设计系主任刘德、原金山词霸总经理黎万强、原微软中国工程院开发总监黄江吉和原Google中国高级产品经理洪峰六人联合创办小米科技并于2011年8月公布其自有品牌手机小米手机 。
❼ 求伯君简介
求伯君,男,1964年11月26日出生于浙江省绍兴市新昌县,毕业于中国人民解放军国防科技大学,有“中国第一程序员“之称。2000年,求伯君当选CCTV中国十大经济年度人物。金山软件股份有限公司创始人。
1、求伯君履历
1964年11月26日出生于浙江新昌县;
1984年,毕业于中国人民解放军国防科技大学信息系统专业,后分配到河北省徐水县石油部物探局的一个仪器厂;
1986年,从仪器厂辞职,加盟北京四通公司;
1987年,调深圳四通公司;
1988年,加入香港金山公司,从事WPS办公软件的开发;
1989年,成功开发出WPS1.0,填补了我国中文字处理软件的空白;同时,求伯君从深圳转到珠海;
1994年,成立珠海金山电脑公司,出任董事长兼总经理;
1998年,联想注资,金山重组,求伯君出任副董事长兼总裁;
2000年,求伯君担任金山股份公司董事长;
2000年底,担任金山公司执行董事及董事会主席;
2011年07月06日,正式公布其退休计划,副董事长雷军接任金山公司董事长;
2011年10月24日正式退休。
2、求伯君成就
1995年,获得珠海市科技重奖特等奖。
2000年,当选CCTV中国十大经济年度人物。
2001年,当选为2001年度中国IT十大风云人物。
2008年,入选“2008年度中国游戏产业最具影响力人物”。
2008年,入选“中关村十大创新先锋”。
2008年,荣获“2008年度中国游戏行业优秀企业家”殊荣。
2009年,荣获“2009年度中国游戏产业最具影响力人物”。
2003年12月,获得GameSpot China 评出的“2003年度游戏新闻人物奖”。
(7)求伯君编程水平扩展阅读
一、盘古组件失利
求伯君把盘古组件失利的原因归纳为四点:
1、盘古力量分散,没有发挥WPS当时在字处理领域的领先优势;
2、没有沿用WPS这个很有号召力的名称;
3、盘古自身不够完善,没有做到“所见即所得”,完全是DOS版的照搬;
4、刚刚独立的珠海金山公司没有销售经验。
盘古是香港金山被方正合并后,求伯君脱离方正,自己独立自主做的第一个软件。
二、求伯君给WPS的3大法宝
第一,WPS97集文字办公、电子表格、多媒体演示和图像处理于一体,而且安装小巧,不占用多大内存,不像office安装程序需要好几个硬盘。
第二,WPS非常紧凑,让每一个功能键都发挥最大的作用,没有一个多余。例如F8是模拟现实,不需要鼠标也可以操作。
第三,大打民族牌。WPS1.0积累的2000多万的用户群是求伯君翻盘的制胜法宝,因为对第一代网民来说,WPS已经不仅仅是一款软件,而是一种情怀。
❽ 编程需要什么样的文化水平
一切都不难!难的是你有没有这颗恒定、持久、热烈的《心》!
有很多IT江湖大佬都是玩游戏转编程的,如史玉柱、陈天桥、鲍岳桥、求伯君、丁磊等等。
还有很多初中文化水平的人,编程序都相当好。
编程基本要求:有较严密的逻辑思维,懂些英文更好。
入手:建议你编网页吧,所见兼所得,你会很有成就感的!这种即时的成就感会不断激励你,成为你以后成长的动力。
先编本地VBSCRIPT脚本,水平高了,再搞服务器端技术,如ASP、PHP、JSP、.NET等。
VBSCRIPT不仅可用于网页,也是Windows的默认脚本语言,是很有用处,用途很广的。
努力吧,小伙子!