㈠ 看看一位清华计算机专业的学生怎么看linux与windows的
看看一位清华计算机专业的学生怎么看LINUX与WINDOWS的! (转载)
本文是一位清华退学学生所写!他的名字叫王垠,人很出名,不信GOOGLE一下就知道!
我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。
GNU/Linux 不是每个人都想用的。如果你只需要处理一般的事务,打游戏,那么你
不需要了解下面这些了。
我不是一个狂热的自由软件份子,虽然我很喜欢自由软件。这篇文章也不是用来推
行自由软件运动的,虽然我觉得自由软件运动是非常好的。
这篇文章也不是用来比较 Linux 和 Windows 内核效率,文件系统,网络服务的。
我现在是作为一个用户而不是一个开发者来说话的,我们的讨论是基于操作,应用
层面的。是为了告诉大学里还不了解,或者不理解 UNIX 的科学工作者和大学生,
UNIX 比 Windows 更适合用于科学研究工作,请大家理解 UNIX 的工作方式,不要
用 Windows 的标准来要求 Linux,而要用一个科学工作者的标准来要求自己,用
UNIX 的思想来武装自己。
我显然是反对在大学,特别是理工科专业推广 Windows 的。我也反对在对“娃娃”
们的计算机启蒙教育中使用 Windows。因为 Windows 不论从技术上,经济上,思想
风格上都是与我们培养高科技人才的目标格格不入的。Windows 的流行属于历史遗
留问题,爷爷一级的人当然已经不可救药,但是我们不应该让下一代继续走上歧途。
UNIX 不是计算机专家的专利
当我建议一些非计算机专业的人用 Linux 的时候,很多人说:“UNIX 是计算机系
的人用的,我们不能理解。” “UNIX 是男孩用的,我们女孩不用。”
但是其实世界上的大多数科学家和工程师几乎用的都是 UNIX 作为他们的电脑工具。
就因为它简单,可靠,稳定,强大,有趣。甚至很多时候 UNIX 就是唯一的选择。
你说:“我们都会用 UNIX 的话,你们计算机专业的人还用来干什么?” 很容幸的
告诉你,计算机专业的有一部分人就是专门为你们提供这样强大而方便的计算机工
具的。如果他们制造的工具只有自己会用的话,那这个工具还有什么用?
理解 GNU/Linux 不要用 Windows 的标准来要求 Linux。
由于GNU/Linux这个词太长,下面如果没有特别指明,“Linux”就是指“GNU/Linux”。
在这个年代,恐怕没有人需要我来介绍 Linux 是什么了吧?如果你觉得“Linux 只
不过是跟 DOS 差不多的东西”,那请问问你旁边的 Linux 用户,Linux 到底是什么?
那为什么我还要写一篇这样的文章?因为,我发现还有很多人不不理解 Linux 和
UNIX,虽然他们也在用它,但是他们有时会问:“为什么 Linux 不能像 Windows 那
样 ……?”,“怎么Redhat Linux不能 mount NTFS 分区!”,“Linux 下用什么
整理硬盘?”,“什么时候OpenOffice才能完全兼容Word文件啊?”,“现在还有什
么Windows能干的事情Linux干不了的?”……
他们有40G的硬盘,却只为 Linux 分配了2G空间,有时还抱怨“这个东西怎么占这么
多硬盘!” 似乎 Windows 该占用大部分硬盘。他们把重要的数据装在Windows的分
区,似乎信不过Linux。他们总是到处寻找新奇的,好看的GUI程序,对命令行的东西
一概不屑一顾。他们对Drag&Drop,菜单配置,自动升级非常感兴趣。他们如果找到
一个很像 Windows 程序的 Linux 程序,一定会很高兴的说:“哈哈!Linux 也能……了!”
如果Linux在某种测试中胜过Windows,他们会高兴得跳起来。他们没有办法用Linux
解决问题的时候,甚至用Wine来运行Windows程序。有时实在没办法,只好重起到
Windows,或者干脆省得麻烦,在 Windows 下装一个 VMWare 虚拟一个 Linux 玩。
你如果出现了上面的情况,说明你的思想受到了 Windows 的某种潜移默化的影响和
误导。你没有能够从本质上理解存在于 Linux 身上的 UNIX 思想。你支持 Linux,
你喜欢 Linux,你能从中感觉到快乐,这非常好。你现在只需要明白的是:Linux 从
来就不是一个玩具,它是天才UNIX的后代。UNIX 是自晶体管发明以来最伟大的发明,
它从诞生那一天开始就比 Windows 的设计出色。
你要体会什么叫做“设计”,一个糟糕的设计并不是到后来缝缝补补就可以变好的,
而一个出色的设计,不但可以以不变应万变,而且可以影响到后来者。一个出色的设
计配上一个出色的实现,那就是非常出色的发明。Linux 就是这样的一个出色的发明。
Linux 并不需要追赶 Windows,也不需要打垮微软。它的最终目标是改变整个计算机
世界,还人们自由,给人们乐趣和方便。
Unix 是简单的,你不需要成为一个天才也能理解这种简单。
UNIX的设计者 Dennis Ritchie 说:“Unix is simple. It just takes a genius
to understand its simplicity.” 但是我不这么认为,因为我不是一个天才,但是
我却勇敢的把 Windows 完全删除掉,遇到不明白的事情的时候努力用 UNIX 的方式
去解决,而不是寻求 Windows 的帮助。现在我体会到了 UNIX 的思想和好处,我可
以用比 Windows 高效几倍的效率工作。因为我相信这样的信念:“Windows 能办到
的事 Linux 一定能办到,而且办的更好。”
这小节开头的话应该改成:“Unix 是简单的,你不需要成为一个天才或是计算机专
家。但是在这个冲斥着 Windows 错误观念的世界,你需要信念和勇气才能理解它的
简单。” 我下面就告诉你一些我理解到的东西。首先,你要知道的是微软在国际科
学领域是根本没有地位的。
微软的地位
微软的名声在欧洲和美国的大学里,特别是在计算机系里之坏,大家可能有所耳闻。
我认识的 MIT,Stanford 的教授,贝尔实验室的专家,甚至一个欧洲小国的高中计
算机老师都绝口不提微软的名字。在他们眼里,微软只是一个没有真技术,专靠在落
后国家商业宣传和垄断经营的小公司。这个“小”并不是说它人少,钱少,而是说它
先进技术少。
我上次和王益合作写了一个算法演示程序,那个算法是贝尔实验室一位科学家Steven
Fortune很天才的发明,为了程序能够被身边大多数人使用,我们选择了 VC+MFC 作为
平台。我在分析算法时还得到 Fortune 很热情的鼓励,寄给我一份资料,还多次回信
耐心的给我讲解了很多细节。但是程序完成之后,我把样品发给 Fortune,他回信说:
“对不起。我机器上没有 MFC。” 话说的很客气,但是我已经感觉到了他对 Windows
的不屑。然后我把 MFC 静态编译进程序再发给他,他就没有再回信了。他显然不是瞧
不起我,而是确实有难处。
你能感觉到这位科学家对微软和 Windows 是什么态度了吧?不是反感,而是他心里根
本没有 Windows 这个东西!微软在高科技领域没有发展,那么它怎么生存呢?到发展
中国家去发展一下,他们的人民还对电脑一无所知,我说不定甚至可以打入大学的计
算机系呢。我送他们软件,我捐钱盖大楼,我出钱找图灵奖获得者来演讲,让他们觉
得我们都是科学家!
好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学
校的选课系统是非IE不能正确浏览,论文用 Word 编辑,演示用ppt做,email 的通知
附件是 doc 文件,你不用 Word 打不开,连 863 项目都用 VC 写程序了。我很久以
前就看到一份报纸说,“微软为什么不严厉打击盗版?” 这篇文章说,微软非但不打
击中国的盗版行为,而且有放任之趋势。放长线吊大鱼,“以后我要你们加倍的来还
我!” 确实如此,它的目的快实现了。
Windows 笼罩下的中国计算机教育
说句丢脸的话,比尔盖茨很久以前是我的偶像…… //blush
在中国,比尔盖茨被很多人奉为神圣,“少年电脑天才”,甚至有的人提到他的名字
就做出“抱拳对天”的姿势。很多人谈到微软的“新技术”,“高科技” 都是眉飞色
舞。各种“VC编程圣经”,“深入了解 Visual C++”之类的书,在开头几页都会出现
非常肉麻的字眼,“在那团团的混沌中,一个开天辟地的精灵,Windows 1.0,诞生了……”
微软的软件被这么多人盗用,那么人们是怎样使用这些盗版程序的呢?先看看电脑培
训班,教的都是一些 DOS 命令,打字,Windows 基本操作,Word 文档处理,Power
Point,高级班可能有 Excel,Access…… 参加各种微软认证考试,MCSE,MSDE 的人
络绎不绝。考试辅导班都贴出了“280元,考过为止”之类的字样。考试参考资料更是
昂贵,有些电脑书店整整两书架都是“Microsoft Press”的东西。我有个同学参加认
证考试,每门考试都要200多元。而且你一次考不过可以再考,又要交钱。他后来还津
津乐道跟我说,看我,花了XXXX(一个四位数)元考过了微软认证,得到一张比尔盖茨
亲笔签名的证书和价值6000元的 Windows XP 内部发行版。
“电脑要从娃娃抓起”,我们再来看看娃娃们学的是什么。大部分家长给孩子买了电
脑之后,他们首先就会装一个盗版的 Windows,然后买来盗版的游戏开始玩。如果哪
个孩子会用 Delphi 编程序,那可不得了。报社记者,电视台争相报导,说,某某学
校的初中生某某,在别人都还在玩电脑游戏这种“初级阶段”的时候就已经用 Delphi
写程序了。镜头还瞄准了他显示器上面的像框中的比尔盖茨头像!
我刚进入大学计算机系时还不懂得什么是操作系统,因为我以前只用过“中华学习机”。
看到新入学的同学们各个谈论的都是 “Windows 95”,“VC”…… 我简直觉得我落
后了好几十年一样,整个一土人,根本跟他们答不上话。好不容易找到一个比较熟的
同学问了一下:“你们天天谈论的瘟95是什么啊?”答:“win95就是一个操作系统,
跟DOS是一类。”“朵死是什么?” “你连DOS都不知道是什么?别在计算机系混了。”
学校上课当然不讲VC编程之类的东西,但是上 Pascal 的老师有一次就说:“嗨,我
们学校真是落后。现在别人都用 C, C++,甚至 VC 了,我们还在讲 Pascal。不知道
什么时候才能有VC课啊。你们出去也是要用VC的,只好自学了。” 于是,有些同学很
多时候上课都捧着一本很重的“Windows 编程大全”之类的书,根本没有听课。吃饭
时就念念有词的跟我说,“代码的优化是无止境的”,“匈牙利命名法真是伟大的发
明” …… 这就是中国很多大学计算机系的情况。
感觉到无知了?这不是偶然的,而是微软长久以来埋下的伏笔。它要让无知的大家都
把它奉为神圣,它要让支持UNIX,Xwindow的人一旦说 UNIX 好,Xwindow 好的时候,
都被一群人围着说教:“这个 Windows 也能做到”,“你对 Windows 有偏见”,
“微软才是主流啊”,“你敢瞧不起 win2k?”,“.NET 就是世界潮流”,“微软的
毕竟是新技术”,“有钱就是有技术”…… 甚至在一番论战比较后败下来还是要说:
“Windows 性能差点,但是易用性强”,“Windows 是老百姓用的,要求别那么高”,
“微软那么有钱,以后想超过 UNIX 还不容易吗?”……
发达国家的计算机教育
我前段时间在 USENET 发文问有关 Scheme 语言的问题时,认识了一位丹麦人。他解
决了我所有的问题,并且建议我阅读一些很“深奥”的有关程序语言语法,文法的书,
他告诉我很多网站可以学习 LISP,Scheme,人工智能,算法。他叫我看 Jonathan
Rees 的论文 \"Syntactic Closures\"。他还打包给我寄过来一份 MIT 的 \"How to
Design Programs\"。他说他在自己的 PC 机上装的是 Linux,他用 Emacs 编辑,运行
Scheme 程序。他对 Emacs 的了解和爱好真是使人惊讶。他大学本科毕业时做的毕业
设计是一个 Scheme 解释器。这对于我来说是望尘末及了。
他是那么的不厌其烦,我的每一个问题他都详细的回答。我有时都觉得过于详细了,
怎么这么耐心啊?我觉得他似乎是我的高中老师。他是什么样的人呢?我好奇的打听
了他的情况。原来,他是丹麦一所普通高中的计算机老师。
他说他在高中里讲授程序设计和算法,计算机语言文法。他说用 Scheme,他的学生不
用再为内存泄漏等程序语言本身的问题而烦恼,而专注于问题和算法本身。有利于培
养学生解决问题的能力,特别是用计算机解决数学问题的能力。
天哪!为什么欧洲出现那么多数学家,几何学家?你看看别人重视的是什么!我们的
计算机教育如果继续这样下去,只会沿着弯路越走越远!
微软和它的朋友们的如意算盘
下面来看看微软的收入是怎么来的。首先,Windows 98系列操作系统,一个就是 100
多美元,每次升级又是几乎同样的价钱。Windows NT 还要贵几倍,而且有用户数目限
制,5个用户的,10个用户的…… 以后如果要增加用户数目还要按比例付钱。
花了如此多钱买来的操作系统就能用了吗?它竟然连压缩程序都没有提供!你装上
Windows 之后一般第一件事就是去下载一个 WinZip 吧,“只要 29 美元”。Windows
会中病毒啊,马上花 70 美元买一个 Norton AntiVirus 吧。还有黑客呢?再买一个
Norton Internet Security 好了,100 美元。系统需要优化,磁盘需要整理,买一个
Norton System Works 是你最佳的解决方案,100美元。
可是你现在还是不能干正事啊!你想要一个 Word, PowerPoint?那就买一套 Office
XP 吧,一起买便宜些,$459.90。
那些程序不会用啊!那些菜单怎么设置,到底有什么功能啊?看“帮助”也学不会。
买本书看看吧,我推荐“Special Edition Using Microsoft Office XP”,不贵,
$27.99。这本书里面大部分是屏幕抓图,还是买一本旧的比较划算,$17.85。
你如果只是当个秘书,上面的差不多还凑合了。可是你有更高的追求,你想成为 Windows
程序员。首先买一个 Visual Studio.NET 吧,要不然怎么编译程序。$494.95。
为了紧跟微软动向,世界潮流,不能不注册个 MSDN 什么的吧?这个贵一点,不过物
有所值啊,$2,799。
嗯,你现在已经是上层阶级,白领人士了。你现在可以像这样“自由”的,“安全”
的生活了:
为什么要反对使用 Windows
很多人都说不应该完全否定 Window,Windows 也有它的长处。不应该骂微软。
对。Windows 容易操作,适合普通用户。如果微软把它自己定位在 P&G,Philips 那样
的地位,能够给我们的百姓提供周到的,完善的,价廉物美的服务。那我肯定是很喜欢
它的。
但是从上面的种种情况说明,微软是一个野心极大的国际垄断组织!它的产品没有一个
是不出问题的:Windows 不稳定,容易中病毒,而微软不为大家免费提供杀毒软件。我
就是要让你们花钱买我的朋友 Symantec 的杀毒软件,谁叫你们已经上了我的贼船?这
叫什么售后服务啊!
你买来微软的程序,安装的时候一般都有一个协议,说:“由于微软的程序造成你的数
据损坏或丢失,微软概不负责。” 我想很多人肯定觉得这个不合理,不想按那个 \"I
accept\"。但是你的软件买都买来了,钱都花了,现在一按 \"I decline\",安装程序马
上就会退出。你只好被迫点击了 \"I accept\"!这不是不平等条约吗?
我已经目睹了好几个朋友的文档被 Microsoft Word 损坏,有的是编辑了十多天的30多
页的论文,有的是费了很大工夫做出来的个人简历,那个朋友为此失去了到自己向往的
P&G 工作的机会。就在他要投简历的前一个晚上,就在那一瞬间…… 不知道他痛哭的
时候有没有想起要投诉微软,可是谁叫我们用的都是盗版呢,况且你还点击了 \"I accept\"。
微软仗势已经占有大部分PC市场,制定不符合国际标准的“微软的标准”,以不合理的
方式压制其它公司的软件,这个问题已经在美国司法部闹了很久了。他甚至在 Windows
系列操作系统中放置能够通过网络泄漏用户信息的代码,以至于 Windows 刚进入澳大
利亚时被澳大利亚ZF禁止使用。
有些人说:“微软毕竟开创了一个历史,造就了今天的 IT 行业。” 但是,如果没有
微软,我们今天早就用上非常稳定,非常可靠,非常方便,非常“傻瓜”的软件了!微
软是阻挡信息技术发展的罪魁祸首。
微软的程序的工作方式(注意,我只是说操作方式,病毒的事情另外算)确实适合于一般
家庭,上上网,发发邮件,打打游戏都不错。可是微软却要把自己包装成什么“高科技”
企业,要在世界各地设置“研究院”,在大学计算机系赠送不适合用于科研的 Windows
产品,甚至出钱请图灵奖得主来中国畅谈“二十一世纪的计算”,还在大会上宣传自己
的 .NET 技术。非要把别人认为自己是科学的,自己是领导世界高科技的。但是呢?它
什么高科技也没有。欧洲,美国,哪一个关键部门在用微软的东西?NASA? DOE? CERN?
你仔细想一想,微软的程序对人类到底有什么重大作用?
什么是 Windows 能干而 Linux 干不了的事情?---
“Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。”
有个朋友看我半年没有用 Windows,有时就会问我:“你只用 Linux,有没有发现有些
Windows 能处理的事情 Linux 干不了?”---
我回答说:“Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。”
Windows 能做的有益的事情 Linux 都能做---
Windows 下的某些功能确实是我们需要的,那么 Linux 的开发者们和用户也需要这种功
能,他们就会去实现这种功能,而且比 Windows 的方式好得多。由于大多数科学家,工
程师用的都是 Linux 或者某种商业 UNIX, 所以几乎所有商业的科学工程程序,比如
Matlab, Mathematica, AutoCAD, Candence的,Synopsys的,Avant! 的……全都是先有
UNIX 的版本(包括Linux),然后再考虑移植给 Windows,甚至根本不移植给 Windows,
因为 Windows 的机器一般没有足够的能力运行这样的程序。你不要以为只有 Windows
才有 PSpice, UNIX 的 HSpice 要好得多,而且可以运行在大型主机上。当然它们不是免
费的,但是它们值那个价钱。
但是 Windows 下有些东西在 Linux 下没有很相似的,或者你找到很多类似的,但是它
们每一个比起 Windows 的那个程序都要差很多,那么原因有两种可能性:
有一个完全类似的程序,但是由于它乍一看不漂亮,被你忽略了。而其它程序虽然看起
来很漂亮,但是它们是一些初学编程的人写的。现在由于 Gtk, Qt 的诞生,Linux 下开
发图形界面程序极其简单,很多初中生甚至小学生都可以随手编出一些漂亮不中用的程
序。如果你整天寻找这样的程序挑来挑去,永远也找不到你满意的。当然也有一流的程
序用 Gtk 和 Qt,比如 GVIM 就可以用 Gtk 作为图形界面,我还知道 Synopsys 一些
程序用了 Qt。
我曾经也犯过这样的错误,从外表区分一切。结果优秀的 FVWM, lftp, Mutt, wget 都
被我忽略过。当我找回它们的时候,我是那么的羞愧不已,它们现在都是我的朋友 我
第一次看到 FVWM 觉得它只不过是一个有很厚很难看边框的东西。可是现在,我的同学
看到 FVWM 都说:“哇!真漂亮。”
有另一种完全不同的方式可以达到相同的目的,甚至更好。
很多人很关心 Open Office, Star Office, AbiWord, ... 他们多么盼望有一天某一个
Linux 程序能够完全兼容的打开一个复杂的 doc 文档。但是你永远也不可能有那一天。
为什么呢?因为微软为了占有市场,必定不会让其它系统的程序能够完全兼容它的文档
格式。它一定会不断变化 doc 文档的内部结构,隐藏一些秘密,让其它公司的程序打
开 doc 文档时总是有某种问题,从而你必需购买 Microsoft Office 和 Windows。
你应该想一下,那么多的高智商的大学教授,科学家,学生,他们用的都是 Linux 或
者其它类型的 UNIX,他们没有 Word 可用,怎么处理文档呢?这么多年没有一个像
Open Office 的程序出现,难道大家没有办法写文档吗?
显然不是这样。你看看那些高水平的学术杂志,论文,那些大学教授的网页,那些漂亮
的幻灯片,它们是什么做的?原来 UNIX 用户早就有非常方便的 troff, LaTeX, SGML
等东西可以处理文档,而且它们比起 Word 都要高明的多。Word 显然被这些大拿忽略
了,以至于很久以来没有人想在 Linux 下开发一个类似 Word 的程序,除非某些公司
想抢微软的饭碗。
很多人留着 Windows 在硬盘上的原因无非是为了用 Word 和 PowerPoint。我见过一个
教授,他的 Windows 笔记本电脑上除了 PowerPoint 什么都没有。有一天演示的时候,
他指着堆乱字符说:“对不起,这是一个公式……怎么每次都是这样……” 其实有比
PowerPoint 好几百倍的东西可以制造幻灯片,你可以用最简单的方法制造世界一流效
果的论文和幻灯片。你待会儿可以看看我的TeX网页,你就会知道为什么我可以完全离
开 Windows。
Windows 能做的那些没用的事情 Linux 永远做不好
电脑游戏
有些人说 Linux 下不能玩 Windows 下所能得到的所有游戏。的确,Linux 下虽然也
有少量的游戏,比如 Quake。但是它没有 Counter Strike, 没有 Star Craft, ……
并不是说电脑游戏不该玩,但是应该适可而止。电脑是用来处理事务,帮助你学习,解
决问题的工具,而不是一个玩具!整天沉迷于电脑游戏中,而不出去感觉外面的世界,
你会变得越来越冷酷,越来越缺乏人情味。你与真实的世界越来越远。
你可以在 CS 里杀人,你可以在 Tomb Raider 里探险,你甚至可以在 Tony Hawk’s Pro
Skaters 里滑板…… 但是 It’s not real!你虽然有很高的“反恐技巧”,但是遇到
歹徒的时候,你是那么的怯懦;你虽然控制 Laura 伸手敏捷,但是你打篮球的时候怎
么总是被人断球?你虽然可以轻易的在 THPS 里作出一个 \"360 kickflip to hangten
grind to fakie\",但是你踩在自己的滑板上的时候还不会 ollie!
说回来,如果你偶尔玩一下电脑游戏未尝不可。但是世界上有远比 Windows + PC 更好
的游戏方式。
㈡ 如何评价王垠的《数学和编程》
王垠的《数学和编程》这本书还是不错的,而且这本书借鉴了很多前人的经验,以及教学还有他们的成果,还有我做着自己的借鉴这些都融合了起来所以这本书真实还是不错的,如果说有需要的人看会得到很大的帮助
㈢ 求高人给个计算机学习指导。
一、广泛了解,从科普书籍开始
选择计算机专业的同学,也许是因为原先有一定的基础,也许是因为一时的激情,但更多的人,可能对自己的选择没有深刻的认识,或多或少对计算机专业有一些神秘的感觉。自己究竟是否喜欢这个学科?才华能够在哪个分支领域有所施展?抑或是真的不适合这个专业?诸多疑问,解决的方法首先便是了解和认识我们的学科。浓厚的兴趣是学好任何学科的源泉;而广泛的了解则是获得兴趣的途径。当今我们对于信息的获取已非难事,其中“阅读”是一个简洁而有效的方法。
也许你认为阅读专业书籍对于刚刚步入大学的自己来说有点困难,也很枯燥,那么不妨先从科普书籍看起。科普书籍是了解理论、获得应用知识最好的途径。相信不少理工科的同学被量子物理和相对论搞得头昏脑胀过。究其原因,是我们的现实生活与抽象的数学模型之间存在思想意识上的鸿沟。然而要是读读斯蒂芬•霍金的《时间简史》,你就会被书中有趣的故事和例证所吸引,从而对抽象的理论有了感性的认识——即使仍然没有读懂,你也至少了解了这个学科研究的领域和目标是什么,也必然有所收获。所有理工学科都有这样的性质,计算机专业也不例外。
我们知道,计算机理论是建立在数学基础之上的。大学计算机专业对数学的要求较高,其重要性不必多言。数学令不少同学头痛,除了其“繁”与“难”外,很大程度上是因为他们没有理解这些抽象理论的实际应用方向。与本科数学专业的课程设置相比,计算机专业的数学课程大都偏重实用性。比如我们的离散数学课程中涉及到的逻辑代数奠定了计算机一切运算的基础,形式语言构成了计算机程序编译的模型,代数系统则是当前各类数据库系统的理论依据等等。因此,如果能够提前地了解到并简单地学习一下这些数学知识的具体应用,对理解理论是很有益处的。此外,电子学、信号与系统、控制理论等也是计算机专业学生必修的公共课,然而不少同学往往认为它们与计算机专业的关系不大,从而放松了学习。事实上这些学科是计算机硬件与网络通信的基础,学好这方面知识的前提是认识它们的现实应用及其与计算机的密切联系。
也许你将来学习图论的时候,对“欧拉路”的概念会很清晰,这是因为你在小时候的图画书上玩过“一笔画”的游戏;然而“二分图”、“生成树”这些概念又是怎么回事呢?你的理解可能就不是那么深刻了——因为你一时难以找到一些生活中的实例,并从中抽取出特性。在这种情况下,翻阅一些涉及这些知识的科普书籍就十分有必要了。我曾读过一套《数学游戏》(《科学美国人》杂志汇编,中文版:科学技术文献出版社),它将图论、逻辑代数、自动机理论等领域的抽象的概念具体化为一个个有趣的故事,引导读者了解这些知识的现实应用,启发读者将抽象思维与感性生活有机结合。我还读过一本《编码的奥秘》(《CODE》,中文版:机械工业出版社),它则将逻辑代数、数字电路、汇编语言等知识以实物和简单电路的形式进行类比,揭示其中的原理,并引导读者动手实践。事实上这类与计算机专业相关的科普书籍还有很多,在学习课本的间隙阅读一下,绝对能起到催化剂的作用。
谈到科普书籍,相关的另一个问题便是计算机科学与计算机技术之间的关系。也许不少同学选择计算机专业,是源于对计算机令人眼花缭乱的应用的认识。所谓计算机技术,一般是指包括文字处理、信息管理、多媒体、网站建设等在内的计算机应用技术;而所谓计算机科学,一般指数据结构、组成原理、操作系统、编译原理等计算机内部实现机制。前者是计算机在各行各业提高生产力的体现,属于各类职业教育和专科教育的范畴;而后者是研究是计算机本身的理论,是本科计算机教学的重点。市面上大多数计算机书籍与杂志是计算机应用技术方面的,属“技术普及型”,从受众角度来看与科普书籍有着类似的性质。适当地涉猎一些自己感兴趣的应用技术,对培养学习兴趣、增强实践能力、了解业界行情是很有好处的。不过如果确实想在计算机行业长期做下去,仍然应当将主要精力放在对计算机科学的学习方面。毕竟用科学的理论指导实践是大学教育的意义所在。
总之,广泛了解计算机学科基础科普知识,在今后学习具体理论的时候才会少一些盲目,多一些顿悟。
二、把握全局,学习计算机导论
当你对计算机学科涉及的领域有所了解后,就应该着手展开专业学习了。初读本专业的教学计划与课程设置,你或许会被诸如离散数学、编译原理、接口技术等生疏的课程名称弄得一头雾水。这些课程都是研究什么的?它们各自与我们面前的计算机有哪方面的联系?要回答这类问题,首先需要把握全局,从整体上认识计算机科学。
国内高等院校一般都为大一学生开设计算机基础课程。这类课程的受众面广,主要涉及计算机基础应用知识。各种版本的计算机基础教程几乎都以计算机科学导论作为开篇。对于把计算机作为应用工具的其他专业的学生而言,导论只算是“内容概要”,他们往往更注重后面的应用型知识;而对于把计算机作为研究对象的我们,则决不能忽略这类指导性的内容。专门地、有意识地学好计算机科学导论,能够使你对计算机科学有一个大局观,清楚地认识到每一个分支学科的研究领域与重要意义,从而在今后的具体学习中明确方向,加深理解。
依我个人的学习经验,建议初学者阅读一些国外优秀计算机基础与导论教材。与国内大多数讲解软硬件具体使用的同类教材相比,国外教材更偏重以应用为切入点,深入浅出地阐述计算机科学原理。诸如《计算机文化(第8版)》(《New Perspectives on Computer Concepts》,中文版,机械工业出版社)、《计算机科学导论》(《Foundations of Computer Science: From Data Manipulation to Theory of Computation》,中文版,机械工业出版社):前者适合于各种信息类专业的学生或计算机爱好者阅读。该书图文并茂,语言生动,从应用角度出发,广泛涉及计算机软件、硬件、网络的基本原理,同时概述了计算机学科的历史背景与行业现状。随书的光盘中给出了不少影音材料,在学习的同时还可以提高计算机专业英语听说能力。后者在风格上与前者类似,但内容更适合计算机专业学生阅读,被美国不少高校定为计算机专业学生的入门课。它以实例作为出发点,系统地讲解了计算机组成、计算机网络、操作系统、数据结构、算法设计等分支学科的研究领域、基本原理和应用方向,而几乎不涉及晦涩的数学模型与实现细节。阅读此类书籍,可以在潜移默化中理清初学者对于计算机科学学习的思路。
计算机科学是一个有机联系的整体,每个分支都或多或少地与其它分支存在依赖关系。如果死板地依照教学计划线性地进行学习,往往会遇到知识理解上的问题。例如算法分析课程与程序设计课程分属理论与实践;组成原理课程与体系结构课程是对计算机系统不同层面的剖析。我们不能简单地找出它们的先修、后修关系,这样难以建立完整的知识体系。因此在把握大局之后,我们仍有必要简单了解一下每个分支学科的基础知识。在这方面,推荐大家阅读《编程卓越之道(第一卷):深入理解计算机》(《WRITE GREAT CODE: Volume 1:Understanding the Machine》,中文版,电子工业出版社)这本书。分开来看每一章节,其内容编排结构与国内高校计算机课程体制相近,涵盖了逻辑代数、数字电路、机器指令、体系结构、存储器管理等方面的基础知识和实现方法,特别是阐明了各个分支学科之间的本质联系。有了这些基础之后,在遇到更高阶的问题时,你至少会明白这个问题应该在哪个分支学科中寻找答案了。
当你有了一定的计算机理论基础,尤其是程序设计基础后,想更加深入地把握计算机科学的脉络,不妨看看这本书:《深入理解计算机系统(修订版)》(《Computer Systems A Programmer's Perspective》,中文版,中国电力出版社)。它与《编程卓越之道》系列的共同特点是从程序员的视角观察计算机系统。而这本书作为国外数十所高校的计算机系统导论教材,其组织更加严密,风格更加严谨。它以“程序在计算机中如何执行”为主线,全面阐述计算机系统内部实现的诸多细节。当你在学习数据结构、组成原理和体系结构等课程和时候,翻阅一下此书的相应章节,同时编程实现其中的例子,一定会对课本上单纯的文字型理论有更加感性的认识——原来它们是这样活生生地存在于我的计算机里的!
正所谓“会当凌绝顶,一览众山小”,从计算机科学全局的高度整体把握其分支学科,在头脑中率先构建计算机科学的整体框架并为其夯实最基层的结构,就能够为你在未来每一步的学习中扫清迷雾,指明方向。
三、运筹帷幄,掌握编程的思想
程序设计与开发是计算机学习的一个关键环节,编程能力是衡量一名计算机专业人员素质的重要考核点。这是因为程序是连接理论与实践的纽带,是计算机科学与计算机技术相交融的领域。作为一名计算机专业学生,我们一方面有别于其它专业将计算机作为工具的应用型人才,不能仅仅利用计算机,而要为他人利用计算机提供平台;另一方面我们暂时达不到计算机科学家的水平,不能做出理论研究成果,但能为理论学习铺垫实践基础。因此,只有具备足够的程序设计与开发能力,才能真正体现我们的智慧,同时充分发挥计算机的潜力。
学习编程,首先应掌握至少一门程序设计语言。C语言作为一种语法清晰、功能强大、应用广泛的高级语言,长期以来被国内大多数高校的定为程序设计必修课。全面理解和掌握C语言的脉络的重要意义这里毋庸多言。市面上C语言的教程多如牛毛,但最经典的当数C语言的设计者Kernighan与Ritchie合着的权威白皮书——《C程序设计语言(第2版)》(《The C Programming Language》,中文版,机械工业出版社)。书虽不厚,但绝对全面而准确。其语言简洁,例证通俗,实用性强。相比之下国内的一些C语言教材在学习曲线可能比前者平滑,但它们往往以考试为导向,过多地纠缠语法死角,同时大都未遵从ANSI标准。对于计算机专业学生来说,前者能够让我们看到更加严谨与实务的态度。当你的语言功底达到一定程度后,就需要从一个更高的视角来探察语言的本质,不妨看看这本:《计算机程序的构造和解释(第2版)》(《Structure and Interpretation of Computer Programs》,中文版,机械工业出版社)。它阐述了编程语言本身的机制与实现,同时引入了一门对于大多数中国学生来说不甚了解的语言——LISP。LISP是很多美国高校计算机专业的入门语言,也是一种结构上与C、Pascal、Java、Basic等完全不同的非冯•诺依曼语言。研读SICP,体味LISP,给你耳目一新的感觉之后更多地可以加深对编程思想本质的理解。
大学的各类程序设计与开发课程旨在培养我们两方面的能力——算法设计能力与应用开发能力。前者偏重计算机科学,后者偏重计算机技术。算法是用计算机思维解决现实问题的理论,具有较强的数学性。算法学的旷世巨着应数Knuth的《计算机程序设计艺术》(《The Art of Computer Programming》,中文版,清华、机工、国防等出版社皆有授权),不过要彻底读懂这个大部头需要相当的数学理论基础与编程实践经验积累。对于初学者,建议首先培养使用常规算法解决小规模问题的能力,并行地提高驾驭语言的水平与抽象问题的思维。针对这个目的,结合程序设计实践一类的课程,可以读读这几本书:《编程珠玑(第2版)》(《Programming Pearls》,中文版,中国电力出版社)、《程序设计实践》(《The Practice of Programming》,中文版,机械工业出版社)、《代码阅读方法与实践》(《Code Reading: The Open Source Perspective》,中文版,清华大学出版社)、《C专家编程》(《Expert C Programming》,中文版,人民邮电出版社)。它们的侧重点各有不同,但对于通过实践来学习算法与数据结构都是很有益处的。
应用开发方面,实践是第一要务,然而高效的实践是建立在科学的程序设计方法之上的。以C语言为代表的结构化程序设计方法是规范的程序逻辑的基础,目前主要使用在系统级开发中,前面所提到的诸多书籍都或多或少有所涉及。而以Java、C++为代表的面向对象程序设计方法广泛应用于实用项目开发,这方面的经典之作中,推荐阅读Bruce Eckel的《Java编程思想(第3版)》(《Thinking in Java》,中文版,机械工业出版社)与《C++编程思想(第2版)》(《Thinking in C++》,中文版,机械工业出版社)。此外软件架构设计、编码规范与风格、代码除错与质量管理以及软件工程的各类原则在实际项目开发中都是及其重要的,在具备了一定的编程经验、准备投入一些实际项目开发的时候务必要了解。建议阅读《代码大全(第2版)》(《Code Complete》,中文版,电子工业出版社)这本大而全的软件构建综合性宝典,它在从总体上指导软件开发的各个环节的同时也引入了一些细节问题(诸如goto的使用)的讨论,引导我们对一些司空见惯的程序设计理念不但要知其然,而且要知所以然。
有一位热衷于游戏的同学告诉我,游戏给予他满足控制欲的空间。但是请放眼看看,游戏的控制范围不外乎一个特定进程中他人预先设定好的一系列数据,并以有限的图像与声音形式体现出来。然而如果你掌握了编程这一强大的武器,就能够面对眼前的计算机游刃有余,在硬件条件允许的情况下尽你所能将控制欲升华为创造力,方便自己的同时造福他人。运筹帷幄,掌握编程的思想,无论走向科学研究或是应用开发,这都将为你奠定坚实的基础!
四、理性思辨,体味计算机哲学
Bill Gates对计算机事业充满激情——“每天早晨醒来,一想到所从事的工作和所开发的技术将会给人类生活带来的巨大影响和变化,我就会无比兴奋和激动。”自由软件运动的精神领袖Richard Stallman几十年如一日,将打破知识垄断、共享人类智慧作为己任,带领着数以万计的软件志愿者推动着开源世界的发展。但并非每个计算机业者都能有Gates那样豪迈的气度和Stallman那种坚定的信仰,计算机及其相关技术对于大多数业者来说仅仅是兴趣爱好或者谋生的工具。计算机行业半个多世纪以来形成了其独有的文化氛围,作为一名计算机专业学生,了解专业文化,体味专业哲学,对于学习和从业都是具有指导意义的。
首先必须承认,计算机世界中存在着形形色色的意识理念差异。诸如微软帝国与开源世界的明争暗斗,不仅仅是一场商战,更多的是两种哲学的搏击。当代大学生多数是在微软Windows光环照耀下认识计算机的。在这种环境下,多接触一些开源世界的事物,对于理解计算机的本质不无裨益。《共创未来:打造自由软件神话》(《Free for All: How Linux and the Free Software Movement Undercut the High-Tech Titans》,中文版,上海科技教育出版社)是一本讲述开源世界发展史的书,你可以从中了解自由软件运动及其领袖人物的传奇故事,从而对GNU、Linux、OpenSource这些概念蕴生人性化的理解。清华大学王垠的《完全用GNU/Linux工作,摈弃Windows——你我共勉》、兰州大学黄平的《自由,你忘记了吗?》等长篇文章则是国人对开源运动的慷慨陈辞。尽管这些文章常常被指为“偏激”,但没有调查就没有发言权,无论支持还是反对,客观的认识是第一位的。
其次,我们应该用平和的心态对待知识与技术,衡准专业学习在生活中的位置。一些同学出于种种原因,成为了“先进技术”的追随者:通晓各类流行的编程语言,一有新版本的工具推出立即安装学习,一有新的技术论战立即关注其走向。还有一些同学成为了某些技术的忠实信徒:看准了Java就对.NET的东西置之不理。这些追随者和信徒们往往为突飞猛进的技术所累,以至于有感于学习的空虚。过分追捧技术可谓舍本逐末,死扣某一知识也显得目光短浅。一方面百变的技术离不开计算机科学的本源,在实践过程中深入理解基础知识是关键;另一方面任何技术都有统领其实现细节的思想精髓,观其形不如知其神。我们不妨甩开冗繁的技术,换个角度静下心来读几部计算机文化与哲学作品:
程序人生方面:《编程之道》(《The Tao of Programming》,双语版,电子工业出版社)一书出自一位对东方道家与禅宗思想有着独特理解的美国软件工程师之手,全书由一则则短小而富有哲理故事组成,以类似寓言的形式生动地反映了程序员群体的生活以及计算机文明的演进。闲暇时随手翻阅,即使不能立刻体会到每个故事的真谛,但随着自身阅历的增长,相信你会领悟程序人生的“道法自然”。
设计理念方面:开源软件界的“斗士”级元老Eric Raymond所着的《Unix编程艺术》(《The Art of Unix Programming》,中文版,电子工业出版社)一书,以Unix系统的设计原则为主线,展示了Unix所开启的“KISS”(Keep It Simple, Stupid!)编程文化与思维方式。对于很多干啃千篇一律的课本、禁锢于Windows开发的计算机专业学生来说,这本书一定能够使你眼界大开——“结构化”并非真理,“面向对象”也不是王道;而对于有一定Unix/Linux使用或开发经验的同学,这本书也一定会使你豁然明朗——原来一个程序的设计竟可以如此精巧!
管理哲学方面:对于有志于软件工程,想涉足项目管理的同学,《人月神话》(《The Mythical Man-Month》,中文版,清华大学出版社)这本书就有必要读一读了。它拿真实案例说事,仿佛一部实例化的软件工程课本。如果你在团队开发的道路上陷入了困境,不如参考一下前辈们是如何处理“人”与“月”二者之矛盾的吧。事实上不仅是软件工程,任何事业的成功,往往技术不是关键,社会科学的因素才是埋头技术的朋友们更应当关注的。
归根结底,计算机的哲学依旧是人的哲学。抛开理念之争议,超越技术的形式,以人为本地认识我们的行业与自身的地位,或许会使将来的发展道路走得更舒心一些。
㈣ [王垠系列]“解决问题”与“消灭问题”
一直以来,人们都重视“解决问题”的能力,却忽视了另一种重要的能力:“消灭问题”的能力。各种各样的竞赛,分数和排名,让很多人从小就片面的认为,能“解决问题”的人,就是最厉害的人。拿到一个问题就埋头求解,很少考虑这问题到底有什么意义。这种呆板的思维方式,不仅存在于低级的“应试”和“解题”过程,而且蔓延到了很多艰深的研究领域。
如果你仔细观察就会发现,很多“难题”,其实是“人造”出来的,而不是“必然”的。它们的存在,往往是由于一些早期的“设计错误”。人造的东西里面往往有设计上的错误,如果你把这些东西看成是不可改变的东西,那你就会遇到很多不必要的问题。打个比方,如果当初轮子被设计成方形的,而没有人质疑这样做的“必要性”,那么也许人类早就因为“能源问题”而灭绝了。有点夸张,但它却形象的说明了,为什么错误的设计会导致不必要的难题。
其实如果我们转换一下思路,或者改变一下“设计”,很多问题就可以不解自消。这就是我所谓的“消灭问题”的能力。这种“消灭问题”的能力,表面上容易其实难,有点像脑经急转弯,所以经常受到人们的忽视。看到一个问题轻而易举的消失了,总有人满不在乎的说:“这个容易。我也能做到。” 可问题就在于,你怎么没想到?说这种话的人,完全没有意识到,他们的思维里面其实缺少了非常重要的东西。由于喜欢炫耀自己的“头脑暴力”,他们经常解决(甚至制造)错误的问题。
所以,在解决问题之前,我们应该先问自己三个问题:
这问题是否真的“存在”?
也许你已经看出来了,很多问题,即使众人都认为它存在,其实也可能是不存在的。在这一点上不能相信任何人或者机构,不管他有多么的“权威”。就像小马过河的道理,只有靠自己的实践。
如果解决了这个问题,会给我和他人带来什么实际的好处?
世界上不存在“永远”,也不存在“无穷”。如果一个“科学算命家”花100年才能算出我的未来,那我还不如坐等“未来”的到来。所有的人,都不过是来这世界上做短暂的旅行。所以,问题的答案,应该能在合理的时间之内给人带来实际的好处。
这问题是否可以在简单的改变某些“设计”或者“思路”之后,不复存在?
很多问题的“存在”,其实是因为人们的“思维定势”。他们看不到问题的“根源”和因果关系,而是经常在下意识里假定某种“先决条件”(A)的存在,然后坚定不移的相信由此“导致”的问题(B)的存在,如下图:
A-----> B
然后,他们开始呆头呆脑的解决 B,完全忘记了质疑 A 存在的必要性。他们从来没有想过,如何消除 A,或者切断 A 与 B 之间的关系。他们没有发现,一旦这前提 A 不复存在,问题 B 就可以不解自消。
对这一点,我想起一个有趣的故事。有人在饭桌上给大家出了一道“难题”,要他们把自己盘子里的鸡蛋立起来,最后只有一个人做到了。这个人把蛋壳打破了。所有其他人都没有想到这个做法,却说他“犯规”。可是应该检讨的其实应该是他们自己,因为出题的人根本没有说不能打破蛋壳,他们却对此做出了错误的假设。
我经常发现计算机科学界存在这样的问题。研究了几十年,结果到最后才发现,辛辛苦苦解决的问题,其实包含了错误的假设。如果换一个角度来看,或者稍微改一改设计,这问题就基本不存在了。其中一个例子,就是编译器里面的“语法分析”(parsing)问题。
语法分析成为一个问题的原因,就在于很多人错误的以为程序语言应该有复杂的语法。正是这些复杂的语法,造成了这个问题研究了很多年,仍然没有一个很好的解决方案。可是一旦语法设计被简化(比如像 Lisp 那样),语法分析就变成一个非常容易的问题。实际上计算机系统(比如 Unix)里的很多问题都是由此引发的,想要利用字符串来进行数据交换,却又设计了一些非常不方便的“数据格式”。简单的语法设计,会让这些问题一并消失掉。关于这个问题,我不想重复发文,细节请见另一篇博文《 谈语法 )》。
爱因斯坦说“想象力比知识更重要”,也许就是这个道理。没有想象力的人经常钻牛角尖,走死胡同,忘记了自己其实还有另外的路可走。
㈤ 神童的没落:放弃攻读3所顶尖大学博士,后被微软全球封杀
他真的是一块读书的料,从小被称之为“神童”,是家长嘴里“别人家的孩子”。
他凭借自己超高的智商,在大四那年获得了保送清华大学硕博连读的机会。
之后,他又连入两所世界顶尖名校——美国康奈尔大学和印第安纳大学攻读博士。
然而,他在这3所顶尖名校读博,却没有拿到一本博士毕业证书。
尽管这样,依然阻止不了他进入三大世界巨头公司工作。
只是,他加入谷歌,加入微软,加入英特尔后,三大世界巨头公司都为他大动肝火,最后微软更是直接对他进行了“全球封杀”。
一手好牌硬是被他打得稀巴烂。
他就是在2005年洋洋洒洒写下了1.7万字《清华梦的粉碎》的王垠。
神童没落——放弃攻读3所顶尖大学博士
王垠考上3所世界顶尖名校读博,却没拿一本博士毕业证书,真可谓惊呆众人!
原因都是他没有坚持读完,就退学了。
并非是他天资不够,无法毕业,相反在读书生涯中,他一直是“天才”般的存在。
1997年,王垠参加高考,原本志取清华北大,因为在高考中发挥失常,屈才进了四川大学。
但这并没有打击到他的自信心,读到大四时,他完美逆袭成功,获得了保送清华大学硕博连读的机会。
并且,在清华求学期间,王垠展现自己超人的计算机天赋。
他提出了计算机的两大系统语言,因为独到的见解,他宣扬linux操作系统,痛斥windows的弊端,成为当时偶像级人物,收获了许多忠实粉丝。
只可惜,风光过后的王垠并没有按大家的预期那样完成博士学业。
2005年,就离博士毕业只差一年时间,王垠写下了那篇1.7万字的文章——《清华梦的粉碎》,彻底宣布从清华退学。
他《清华梦的粉碎》文中写道:
就这样,他离开了众人梦寐以求的清华大学。
天才的世界里,确实让人难以理解,可人家依然“天才”般存在。
一年后,王垠如愿考上了美国顶尖的计算机高校——康奈尔大学。
他原本以为在康奈尔大学可以进行真正的研究了,没想到该校给他的印象更糟糕。
他直接骂:美国的教育是商业性的应试教育,外国研究生基本上是导师廉价的劳动力,“真正的研究”的环境是很难存在。
王垠失望地离开康奈尔大学后,又考上了印第安纳大学伯明顿分校,继续攻读博士。
其实从王垠离开清华开始,就注定了没有任何一种教育制度能够在他心中占据理想的位置。
所以,他最后还是以一篇《对博士学位说永别》痛骂了一通印第安纳大学的教育制度,彻底结束了自己的“求学生涯”。
放弃攻读3所顶尖大学博士,没能拿到一本博士毕业证书,似乎对王垠没有什么可惜的,却留给了家人无尽的遗憾,也留给了世人一声声的扼腕叹息。
神童的没落——被微软全球封杀
没有博士毕业证书,并没有影响王垠进入世界顶尖公司工作。
凭借对计算机领域独特的见解,让他在2012年敲开了谷歌的大门,获得了一个实习的工作机会。
尽管只是一个实习生,他却可以参与制作一个重要的项目——跨语言的“服务式”编程工具,不应该是他独立完成的。
直到现在,他完成的这个项目,仍然在谷歌运行,每天检索和分析谷歌内部所有项目代码。
尽管如此优秀,但是,王垠当时项目刚开始没多久,便与这个项目的负责人有不同的意见。
一个领导,一个倔强的实习生,互不相让,闹到了不可开交的地步。
王垠拒绝团队合作,独自完成了项目中检索部分。
最终,负责人才对王垠另眼相看,承认他的项目技术十分领先。
只是,负责人对他180度的态度扭转,也无法挽留住他。
反而让王垠更加孤傲,认为这个Python的东西是至今技术最牛的项目,而他却得不到应有的报酬。
结果,他写下一篇文章痛骂谷歌,便摔门而出,潇洒地离开了谷歌。
接下来,王垠踌躇满志地加入微软公司,以为自己可以在这里“一技”称雄,不曾想公司的规章制度又令他水土不服,只好又选择了退出。
这次和上次一样,王垠对微软也毫不留情,开口便骂这样的公司迟早会倒闭。
不同的是,微软没有选择隐忍,而是下达文件: 不允许王垠加入微软旗下任何一家子公司,就算是合资企业也不行。
2019年,失意离开微软的王垠抱着一线希望来到英特尔,最终也是失意而去。
从那以后,这个昔日的计算机天才,再也没有爆出更惊人的消息了。
他的人生本不该如此
对于王垠而言,他想要拿到一本顶尖高校的博士毕业证并不难,只可惜他总是认为“教育界不存在一所适合我的高等学校”,并用退学来反抗这些教育制度。
对于王垠而言,他想要应聘到世界500强的一份好工作不难,只可惜他总是在骂——“IT业界不存在适合我生长的公司环境”,并用辞职和谩骂来彰显自己的独特个性。
这个世界永远不会公平,也永远不会因个人而发生改变,并存在着各种不合理不规范的规则,而且想要挑战规则的人不止王垠一人。
对于教育制度的不满,历来就有好几人,河南的蒋多多、安徽的徐孟南和陕西的张皎,他们都是在高考时用零分来表示对现行教育制度的不满。
最终,他们付出了很大的代价,高考落榜,无书可读,四处打工。
可是,事情过去那么多年,教育制度依然如旧,没有太大的改变,为什么?
如果我们从上层的视角看问题,就会比较容易理解:任何制度不可能只适用于个别人,而是要服务于大多数人;而且制度不可能十分完善,也没有最好,只有更好。
也就是说,尽管现行的教育制度有诸多弊端,但是能让大多数学生受益,让学生只要通过努力读书就可以得到自己想要的生活。
然而遗憾的是,王垠们表现出对教育的诸多不满,不是去寻求解决方法,反而是用自己的前途来赌气,“你不改变到让我顺心,我就不读了”,最终把一手好牌打得稀巴烂。
其实,王垠的人生本不该如此。
要知道,对教育的不满,不是马上就可以改变得了的事情。
既然这样,王垠应以个人前途为主,读完博士,实在是有心去改变现行的教育,就努力进教育部工作,努力当上领导,凭他的毅力是可以做到的,那时候想怎么改教育制度就怎么改,改到自己顺心为此。
但相信,他到那个时候就会理解教育的种种“无奈”了。
而对于工作制度和公司行事作风的不满,王垠也有两种更为妥当的处理方法:
首先,他可以选择辞职,但也需要留些余地,留些退场的体面,既然已经离开了,骂再多也无益。
其次,凭借自己的天资聪明,他只要肯努力和坚持,无论在谷歌、微软,还是在英特尔,都可以闯出一片属于自己的天地,当上一个举足轻重的领导。此时,他不仅创造了自己的价值,还可以对现行制度进行完善,何乐不为?
只可惜,直到如今,王垠对任何事情的不满,依然是以抱怨,以自己的前途来抗争。
据了解,他回国后,也没有找到更适合自己的工作,而是开了一个网站,继续宣传自己的想法和思想。
为此,他还做了一个事业计划,建立一个世界最高水准的教育机构,没有条条框框的束缚,学生的创造力不会被世俗教育束缚。
他会实现吗?
我想,难!无规矩不成方圆,除非每个人天生都能自觉做事情!
㈥ 如何看待王垠 如何掌握程序语言
教了多年《C程序设计》课程,大多学生觉的这门课程难学。其实,按照我们现在的教学大纲和教学要求,只要同学们掌握一些方法,克服心理上畏难、不轻言放弃,是完全可以学好的。 《C程序设计》的内容很丰富,按照我们现在的教学大纲
㈦ 王垠,40行代码,JAVA吧的大神怎么评论
1.这段 40 多行代码是给 Scheme 程序脱糖的程序,属于解释器的代码,而不是应用代码。对其的客观评价显然只有设计解释器的人才能给出。
2.这代码不是一般人看的,本身他用的语言就是极客向的语言,而且这搞的又是很专业的东西,主要是与解释器相关的领域。CPS的功能是很明确的,但其价值只有对编译器解释器很有研究的人才能判定。
3.以自然语言写作比喻,编写自解释器级别的代码,就像你在写一本小说,而小说的主角也在写一本小说,这位主角在描写你,对你的刻画会影响到你,你受到影响之后又会改变小说中的主角,从而影响到他对你的描写。你俩要相安无事,情节合符逻辑地发展,直到最后圆满的结尾。这比写一本普通小说可难多了。
㈧ 大家觉得王垠对空指针的处理怎么看待
我觉得这个思想看起来非常简单粗暴,但很有效。
世界上有两种有才华的人,一种热爱自己的事业,愿意为之付出一切;另一种热爱自己的才华,任何的事业只是展示才华的舞台。
编程语言仍然是个很重要的话题,这种情况在用户不知情情况下擅自降低在两个维度谈两个问题:第一个维度:预计这空指针可接受的第二个维度:我们讨论软件之前或之后的版本吗?显然,如果这个空指针是一个这几起诉讼金额可能会达到可接受的预期的输入,程序必须正确地处理它,不管第二维度的价值;如果是意外输入,则需要继续查看第二个维度。
总结:我们在根据自己最熟悉的场景给出对我们而言最可控的方案。