成不了天才,但为何也没成人材?(转)

 

长期以来,"软件业"一直被视为"智力密集"型的"朝阳"产业,大多数从业者都受过高等教育,其平均素质居于社会各行业的前列,这个产业的顶尖人物被公众视为"知识英雄",比如微软公司的创始人比尔盖茨雄据世界首富之位多年,更是为人"津津乐道"。16年前我下决心开始学习计算机技术的时候,对这个行业也充满了自豪感。然而世事难料,在2009年高考刚刚结束之际,中国权威出版机构社会科学文献出版社于2009年6月10日发布首部《中国大学毕业生就业报告(2009)》,其中"计算机专业"荣登 "就业最困难的十大专业"光荣榜。

大约从2003年开始,我在北京理工大学这所211、985重点大学开设.NET课程,这件事后来给某些人"炮轰"--说我要将重点大学学生培养成IT民工,也曾有技术牛人谆谆教诲年青学生--想学软件,离金某人远些……

"程序员"何时变成了"IT民工"? 仅仅十多年,"程序员"就从"精英"沦落为"民工",这也未免太戏剧性了吧!

"程序员"真的是"IT民工"?在中国,不少程序员都是"CRUD"程序员,这不能怪他们,因为中国多数项目都是CRUD的。所以,CRUD似乎成为了"IT民工"身上的标签,问题是CRUD这活真的象在建筑工地上倒水泥一样,不需要太高的智商和较多的训练?

下面分析一下需要从事这个CRUD的工作的程序员,到底需要哪些知识和技能。我大致地思索了一下,画了以下这个图,展示出一名 ".NET程序员民工"要顺利参与一个CRUD的数据库应用项目开发所大致需要掌握的知识与技能:

说句实话,这个图虽然"挂一漏万",但列出来的知识点与需要掌握的技能之多已经很"恐怖"了,对于一个需要掌握这么多知识与技术才能胜任与干好的工作,非要认为它是一个"低级"的 "民工"就可以干的活,想必持这种观点的人一定知识丰富如汪洋大海,属"白骨精(白领-骨干-精英)"一族。

需要掌握这么多的知识,才有资格当一名合格的"CRUD"程序员,"IT民工"的"门槛"其实挺高的,不是吗?

事实也如此,软件开发行业从业人员的平均学历我估计至少是大专,很可能是"本科",其中固然有一些只有"高中"甚至更低学历的"奇才",但这仅是少数,而且这些人,虽然学历低,但绝不会是一个低智商的人。这说明软件开发行业从业者的"平均智商"应该是挺高的。

我在旅美学者薛涌写的《天才是训练出来的》一书中找到了美国的一些统计数据:

美国大学本科生的中等智商为118,学士学位获得者的中等智商为123,优秀毕业生的中等智商为133,物理学博士的平均智商为140。而在一般的人口中,中等智商为100。也就是说,你的智商如低于100分,你就属于偏笨的人,高于此线,就属于偏聪明的了。

老外依据数据得出结论:要把书读懂读好,智商还真的得达到一定的水准。所以,能上大学并且顺利拿到学位的人,基本上是属于比较聪明的那一批人。

我们中国也有类似的观点,比如经常可以听到某家长叹息其小孩子成绩不好:我家的那个小祖宗,看来根本就不是读书的那块料!套用老外的观点,就是说这个小孩可能智商达不到上大学的基本要求。

老外什么都喜欢数字化,所以动不动就来个什么"智商"测试,而中国虽然不讲智商这一套,但其实高考就可以看成是一次智商测试。在80、90年代,那时的大学生,经常都是百里挑一、几十里挑一,记得89年我参加高考,那年我们省的录取率还是十几取一。所以那个时代的大学生被称为"天之娇子",并非"空穴来风"。

重大的变化发生于1999年,从这一年开始中国大学开始扩招,尤其是计算机专业,更是扩招的重点,其规模迅速膨胀,录取率大大地提高,其结果是,用一句打趣的话说,"阿猫阿狗都去读大学了",中国大学没有做智商测试的制度,不然,我想应该会看到21世纪在校大学生的平均智商比上世纪80、90年代的在校大学生的平均智商要低。但扩招对一些历史悠久声誉良好的重点大学的影响就没那么大,因为不管你怎么扩招,能进名校(比如北大清华)的学生,智商是不会低的,因为其入学竞争仍然十分激烈,各方面差一点的根本就没这个机会。

老外还给出了一些著名科学家的智商:牛顿190,伽利略195,开普勒175,达尔文165,哥白尼160。

我对这些数据抱有怀疑:牛顿和伽利略等的那个时代有智商测试吗?这些数据是从哪计算出来的?但这些著名科学的智商高于普通人,我想不会有人怀疑。

现在回到软件开发这个行业,其从业者平均学历为大专以上,应该说明这个行业需要的是整个人群中比较聪明的那一批。这个观点与我的实际感受是一致的。

我在IT业"混"了十多年,深感这个行业牛人辈出,别说这个行业的"顶尖"级别人物,就是在许多普通的IT企业、科研院所中,也有不少的让人佩服的牛人。我在北理工教了8年书,"笨"的学生实在没见着,而不少学生的聪明程度和学习能力等,都比我在他们这个年纪时要强得多,还有一些学生,真的很聪明,悟性好,能举一反三,在技术上没多久就可以跑到我前面去了。所以,软件开发应该是一个需要有较高智商的行业,我觉得不会有太大疑义。

为什么智商重要?我在薛涌 写的《天才是训练出来的》找到了以下描述:

在美国的白人中,生于占人口5%的最低层的穷孩子,日后生活在贫困线以下的可能比那些生于占人口5%的最富裕阶层的孩子要高8倍。但是,那些智商属于最低的5%的孩子,则比那些智商属于最高的5%的孩子日后生活于贫困线以下的可能性高15倍。也就是说,你的脑子是否好使,比你的家庭是否富裕对你的未来重要得多。

中国人有句俗话:三百六十行,行行出状元。这些"状元"的出身并不重要,但他们应该接近100%的都有高的智商。

智商这个东西非常奇特,老外研究了这么多年,也没研究明白很多关键问题,比如智商是不是纯天生的?后天不能提高?如果能,那能提高多少?如何解释一些高智商的人一辈子成就平平?如何解释某些天才在某个领域内出类拔萃,在其他领域却连普通人都比不上?还有,更重要的一点:普通人付出艰苦的努力,能成为天才吗?

我不是心理学家,下面我仅就想针对软件开发来聊聊自己对这个问题的看法。

你能成为软件天才吗?

在整个计算机领域,有一些老外的名字如雷贯耳:冯诺依曼,图灵,比尔盖茨、Anders Hejlsberg,在中国,诸如"求伯君"、"柳传志"、"李开复"等名人的故事也是众人皆知,虽然我们拿不到其智商测试的分数,但相信他们个个都是聪明人。

"高智商"其实是成为"天才"的必要条件。相应的另一个结论就是:普通人再怎么努力,也成不了天才。这话看上去令人泄气,但这是客观事实。天才在各自领域内所达到的高度,大多数普通人是永远达不到的,比如如果有某人告诉我:你只要努力,就可以比Anders Hejlsberg还牛。我一定会认为他在开一个让我很生气的玩笑。

回想起当年的高考,我费了九牛二虎之力,总分才刚够重点大学的最低分数线,后来的考研,我要考3次才侥幸过关,我也曾参过北大的博士生入学考试,结果惨败而回,以后知趣地不再尝试……,我就这智商,普通人一个,所以您就别忽悠我了,我才不信天天坚持跑步,日后就可以参加奥运会的马拉松比赛呢!

个体间智商的差异是客观存在的。但成为不了天才不能成为躺倒不干的理由。因为这里有一个引发了巨大争论的问题……

智商重要还是努力重要?

国外心理学的统计数据明确无误地说明了智商的重要性,但这里有一个问题:就算是具有"天才"浅质的人在总人员的比例很少,但人类有数十亿之多,"天才"应该不少啊?怎么数千年来,公认 "天才"的就是牛顿等那几个?

1973年,诺贝尔经济学奖得主、人工智能研究的开拓者Herbert Simon和William Chase在研究国际象棋大师的成长规律时发现:再大的天才,也需要10年修炼成器。音乐天才莫扎特似乎打破了这个"十年定律"。5岁做曲,10岁登台演出,一生创作了数百部传世之作。尽管如此,西方学者们还是发现,莫扎特6岁时就已经和父亲一起训练了3500个小时,他第一部达到大师水平的作品,创作年纪是21岁,实际上已经经历了18年的严格训练。

聪明的脑瓜是必要的,但仅有它也是不够的。

我引用了这么多的资料,其实只为了说明一个结果:不经"十年寒窗","天才"不可能出来。本身具有高智商的人是这样,在平均智商上下的人更应该努力。

现在很好解释当下的一些现象了:

  1. "程序员"为何是"IT民工"?因为这些所谓的"程序员"本身就没有具备从事软件开发的基本知识与基本技能,加上人数众多,可替换性强,怎么会不成为"IT民工"?
  2. 计算机专业学生为何就业难?很简单,一个计算机专业本科生,四年下来至少应该有4~6万行的代码量,但就我观察,达到这个要求的不到10%。

尽管软件开发行业需要较高的智商,但在平均学历为本科的软件开发行业,从业者已经过高考的筛选,智商并不是问题关键,之所以"IT民工"多和计算机专业学生就业难,主要问题是"懒"和"训练不得法"。

下图是我总结的一个靠技术吃饭的"程序员"知识与能力增长路线图:

这个图不是针对"天才"设计的,而是针对一个普通的计算机专业大学生可能的主要人生经历绘制的,虽然经过了大量的简化,但主线还是很清楚的。

我成不了天才,那成为"人材",可以吗?

对这个问题,我的观点和薛涌先生在《天才是训练出来的》这本书中所表达的观点是一致的: 完全可以。

我们需要解决的问题是"如何努力"的问题。薛涌先生在书中介绍了一种名为"处心积虑的训练(deliberation practice)"的天才训练方法,这种方法是由天才研究的权威人士Ericsson教授提出的,简称为"深练(deep practice)",其意思是一般人练得浅,水平自然平庸,天才则练得深,所以能超出凡人之上。

普通人如果能科学地深练,虽然不能成为天才,但成为"半个"天才是完全可能的。有关"深练"的介绍,朋友们可以自行去看《天才是训练出来的》这本书。就我多年自学软件技术和8年的教学经验,我并不觉得"深练"有何奇特之处,我将"深练"总结为以下几句话:

  1. 织网:分解软件技术的大块知识为多个小的知识点,各个击破,将新知识与老知识联系起来,构造一张完整的可动态扩充的知识之网。
  2. 训练:将开发技能给拆分为多个小的步骤或子技能,针对每个步骤或子技能反复地严格地训练,然后再这些步骤或子技能组合起来,以达到职业的水准。
  3. 探究性的学习与实践:要将被动的学习转换为主动的探索,要通过开发实践把一切给"激活"。

我写了不少文章表达过自己针对软件技术学习的看法,在个人所写的几本书的前言中也比较系统地表达过类似的观点,这里就不再重复了,这些文章在我的个人博客上都可以找到。而我也将在日后的开发与教学实践中应用这些原则,探索更有效的学习与训练方法。

下面,我们来看另一个很困扰人的问题:

我是知道我成不了天才,但为何我也没成"人材"?我可从没偷懒过啊!

这个问题太有中国特色了!这里面关键有几点:

1. 你错过了"学习天窗"。任何一种知识和技能,都有学习与培养它的最佳时间段,我们将它称为"学习天窗",比如一个两三岁的小孩子可以轻而易举地学会两三种语言,而且不会有口音,而一个成人就够呛了,以英语为例,我们都受够了难听无比的"日本英语"和"印度英语","中国英语"也好不到哪去。拿软件技术而言,最佳的学习时间是大学的这几年,18岁~25岁左右,精力、体力、智力,无不处于高峰,你这时不学,拿这个时间去玩游戏,看大片,QQ海聊,上网乱逛……,等到30岁以后再学,会发现你花3个小时才能记住的东西,10年以前可能1.5个小时(甚至更少的时间)就能记住了。后悔也晚了。这也只能怪你自己。

2. 命运:

幸运的是,你生在中国!你没生在阿富汗和非洲,那里天天子弹飞,饿肚子,闹瘟疫,这种环境下你还能学计算机,编程序?

倒霉的是,你也生在中国!如果你生在美国,你就可以摆脱那因为千军万马过独木桥而喘不过气来的中小学应试体制,上了大学,也可以得到比较好的专业引导和教育,避开那因为"行政化"而"弊端从生"的中国高等教育体制。中国这个大环境你个人是改不了的。

最倒霉的是,你不仅生在中国,而且你爸不是李刚,你家在很远的地方,那地方很穷,家里买不起电脑,更别说上网了,你可能要到大学才第一次接触到电脑……,让你雪上加霜的是:你竞争不过那些学习条件好的同学,虽然你不笨,也很努力,但在起点就落后了,结果你没上到好大学,没碰到好老师,一步晚,步步晚……

这不是你的责任,真的,不是你的责任!但不要追问是谁的责任。再追问下去,你可能就要去宗教中寻找归宿了。

路在何方?

你手上抓的牌不太好,这没办法,这是命运问题,这世界本来就是不公平的,老子说过:天地不仁,以万物为刍狗……别想那么多了,不抱怨不等待,积极努力,想办法把手头抓的这副"坏牌"打好,这是最现实最正确的选择。只要个人努力了,其他的丢给命运吧!你还能怎的?

http://www.nowamagic.net/librarys/veda/detail/861

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET 6 RC2 版本发布

原文:bit.ly/3FS9xm7作者:Richard日期:2021-10-12翻译:精致码农-王亮说明:文中有大量的超链接,这些链接在公众号文章中被自动剔除,一部分包含超链接列表的小段落被我删减了,如果你对…

最诡异数学悖论:1+1=1

全世界只有3.14 % 的人关注了爆炸吧知识今天,8岁表妹的老师给她奖励了一块大巧克力,超模君打趣她能不能分给我点,遭到残忍拒绝,超模君很愤怒,暗下决心要神不知鬼不觉地吃上表妹的巧克力。超模君趁表妹在认真做作业的时…

JS URL Parser

为什么80%的码农都做不了架构师?>>> /** *param {string} url 完整的URL地址 *returns {object} 自定义的对象 *description 用法示例:var myURL parseURL(http://abc.com:8080/dir/index.html?id255&mhello#top); myURL.fileindex.ht…

如何使用Instruments诊断App(Swift版):起步

2019独角兽企业重金招聘Python工程师标准>>> 本文由Mr_cyz(博客)翻译自raywenderlich,欢迎参与我们的翻译活动。原文:Instruments Tutorial with Swift: Getting Started 更新记录:该教程由 James Frost 更…

tcp抓包返回fin_TCP/IP学习二TCP链接建立与断开

今天详细学习下TCP链接的三次握手四次挥手,因为开发web服务还是会经常遇到一些网络问题的。其实这方面的资料很多,可能我们看过很多次但也忘了无数次[捂脸],这次我主要通过抓包例子来展示这个过程。TCP传输控制协议(TransmissionControlProto…

70%的单身女孩都是这样想的!

1 父爱如山,山就是杵在那里一动不动!2 3 单身的女孩不要着急4 哎呀,没有两条小鱼干是起不来了!5 一分钟教你画二哈,这次真的厉害了!6 披着羊皮的狼???你点的每个赞&#…

.NET基金会讨论 .NET 开源事业之路

【编者按】从闭源走向开源,.NET 背后都发生了哪些有趣的故事。本文采访了 6 位微软 .NET 团队成员,分享他们在 GitHub 以及建立 .NET 开源项目的经历。作者 | Richard Lander 译者 | 弯月出品 | CSDN(ID:CSDNnews&#xff0…

Process Explorer 15.2:微软增强型任务管理器

Process Explorer 是一款免费的增强型任务管理器,同时也是微软著名工具包Sysinternals下的组件之一。 Process Explorer 能让使用者了解看不到的在后台执行的处理程序,可以使用 Process Explorer 方便地管理你的程序进程。Process Explorer 已经完美的支…

号称最强“抓取”工具,没有搞不到的资源!

全世界只有3.14 % 的人关注了爆炸吧知识分享一个超级好用的工具,绝对用心挑选,让你惊艳!不仅帮你赚钱,还能完善生活的方方面面。“能轻松赚钱,真的超爽!”好朋友雪球,前段时间负责一个市场营销的…

oracle cpu 100%原因,oracle 12.1 cpu 100%

查看整体负载cpu使用居高不下;基本上整体CPU是百分80%以上了;此时:物理读600MB/s,REDO也不算太高;全为latch free,一般为bug高发区检查相关SQL基本为系统SQL:4b4wp0a8dvkf0,11bzv8fm87zvr,3uqkkfu1crw8y,frjd8zfy2jfdq,8mdz49zkajhw3相关BUG:1 Frequent Execution of Recursive…

C#多线程开发-处理子线程中的异常

C#多线程开发-处理子线程中的异常在平时的多线程开发中,对于异常的处理是至关重要的,千万不能马虎。如果在实际的项目中,对于某些线程中的异常没有处理,会直接导致整个程序崩溃,软件无法使用。其中需要说明的是&#x…

GAC及其作用

http://www.cnblogs.com/smallstone/archive/2010/06/29/1767508.html 一、GAC的作用 全称是Global Assembly Cache作用是可以存放一些有很多程序都要用到的公共Assembly,例如System.Data、System.Windows.Forms等等。这样,很多程序就可以从GAC里面取得…

高校教师抄袭豆瓣博主文章,学校证实:基本属实!记过并调离教学科研岗位...

全世界只有3.14 % 的人关注了爆炸吧知识导读作为高层次人才被杭州市引进,并于杭州师范大学任教的教师郭某某最近陷入了一则被指博士论文涉嫌抄袭豆瓣网友事件,近日,学校调查后证实。本文来源:募格学术综合自:红星新闻 …

linux默认归档目录,Linux系统管理(第4章:目录和文件管理二)

Linux系统管理(第4章:目录和文件管理二)一.练习文件查看及检索操作1.查看/etc/filesystems文件,确认当前系统支持的文件系统类型Cat:用于连接多个文件的内容,更多用于查看文件内容2.分页查看/etc/services文件,了解各种…

一组动图看懂3D打印原理

全世界只有3.14 % 的人关注了爆炸吧知识3D打印是制造业领域的一项新兴技术,被称为“具有工业革命意义的制造技术”。近年来,随着工业技术的进步,3D打印技术得到迅速发展并得到媒体的广泛关注,各类3D打印技术被纷纷报道。下面&…

生产者消费者_【线程通信】生产者消费者模型

1生产者消费者模型介绍生产者消费者模型,是每一个学习多线程的的人都需要知道的模型; 大致情况就是:有两个线程,一个负责生产产品,一个消费产品,两者公用同一块内存区域,也就是产品放在了同一块内存上面&am…

在Orchard中使用Image Gallery模块

作为ASP.NET MVC领域一款优秀的开源CMS,Orchard值得所有.NET Web开发人员学习和研究,然后二次开发,最后在其基础上创新。也是遵循国内人员学习IT技术的路线:引进->吸收->消化。 Orchard有很多优秀的功能,在此不一…

Dapr + .NET 实战(十二)服务调用之GRPC

欢迎大家参加4小时Dapr.NET 5的实战课程课程链接 https://ke.qq.com/course/4000292?tuin1271860f什么是GRPCgRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架。gRPC 的主要优点是:高性能轻量级 RPC 框架。协定优先 API 开发,默认使用协议缓冲…

SCVMM 2012 R2运维管理九之:添加非信任的Hyper-v主机和群集

SCVMM 2012 R2运维管理九之:添加非信任的Hyper-v主机和群集之前的博文中我们为各位朋友介绍了如何向SCVMM中添加受信任的Hyper-v的主机和群集,相信大家也都已经有了一个比较深刻的理解,那么今天的博文中就来和大家聊聊:如何添加非受信任的Hyp…

走访近20家代工厂后:近千块的大牌T恤,成本只要几十块

▲ 点击查看“很多人都知道大牌有溢价但是不知道大牌溢价逼近900%打个比方一件1000块的T恤,T恤成本如果是100那么剩下的900,算是买了个大牌logo”这是我们上个月去到的一家中国代工厂工厂内部人员向我们透露的他说,其实无论是纪梵希、爱马仕、…