<button id="dvsem"></button>

        RELATEED CONSULTING
        服务咨询
        选择下列产品马上在线沟通
        服务时间:24小时服务
        你可能遇到了下面的问题
        关闭右侧工具栏

        【薛来】超级演说家嘉宾其实是it奇才!

        【薛来】超级演说家嘉宾其实是it奇才!
        【薛来】超级演说家嘉宾其实是it奇才!

        薛来于1992年出生于成都,90后创业者,毕业于成都国际学校,曾被卡内基梅隆大学录取。

        1、十七岁的他荣获ISEF(英特尔国际科学与工程大奖赛)团体一等奖;

        2009年5月,薛来与林晨阳、李贤基仰仗独立研发的“启示多触式界面数据传输”系统,荣获有全球青少年科学竞赛“世界杯”之称的“英特尔国际科学与工程大奖赛”团体一等奖。

        薛来,作为团队的“灵魂人物”,和他的团队制造的“启示多触式界面数据传输”系统,相似微软的多点触控技术,仅以842美圆的价钱PK比尔盖茨的surface:“surface以展现性为主,家庭运用的比拟少,而我们提出了一个全新的概念就是无键盘、无鼠标,完好用一块基于视觉的多点触控屏幕来控制电脑,把它带到了日常家庭就能够充沛运用的程度上,还具有体积小、扩容性强等优点”。

        2、年仅17岁的薛来被授予“2009-2010影响世界华人盛典——希望之星”。

        薛来说:“做中国人是十分自豪的,因为无论在哪儿中国学生都是最优秀的。”

        该盛典曾经连续举行了好几年,钱学森、张艺谋、金庸、冯小刚、李连杰、杨紫琼……社会各界顶尖人士都曾获此殊荣。
         

        3、薛来获得的成果得益于对计算机软件编程的酷爱。

        薛来的母亲说,从9岁时,薛来就是她和她身边的同事们的“计算机工程师”,担任处置他们遇到的各种电脑技术问题。

        在国内读完小学三年级后,8岁的薛来随母亲前往斯洛伐克。他说,在斯洛伐克的那段时间,让他接触到计算机,并对其产生浓重的兴味。而在国外自在轻松的学习气氛,让他有更宽裕的时间来展开本人的兴味。不到10岁的他,看完了很多计算机英文原版书籍,至今,仍然坚持每天花10多个小时的时间来研讨计算机,学习软件编程。

         

        薛来的身上,透着90后初生牛犊不怕虎的“张扬”与自信,正如他们在“影响世界华人颁奖仪式”上所说的那样,固然申请了专利,但是没有任何一件事情是圆满的,任何有才干、能对设备中止改良的人都能够运用他们的产品。获奖并不是为了知名,而是希望可以奉献社会。

        如何成为跟他们一样的it奇才呢?无非就是努力加一点天赋。

         

        1. 你是编程初学者,不知道该选择什么程序语言来入门。

        2. 你是资深的程序员或者团队领导,对新出现的种种语言感到困惑,不知道该“投资”哪种语言。

        3. 你的团队为使用哪种程序语言争论不休,发生各种宗教斗争。

        4. 你追逐潮流采用了某种时髦的语言,结果两个月之后发现深陷泥潭,痛苦不堪……

         

        虽然我已经不再过问这些世事,然而无可置疑的现实是,程序语言仍然是很重要的话题,这个情况短时间内不会改变。程序员的岗位往往会要求熟悉某些语言,甚至某些奇葩的公司要求你“深入理解 OOP 或者 FP 设计模式”。对于在职的程序员,程序语言至今仍然是可以争得面红耳赤的宗教话题。它的宗教性之强,以至于我在批评和调侃某些语言(比如 Go 语言)的时候,有些人会本能地以为我是另外一种语言(比如 Java)的粉丝。

         

        显然我不可能是任何一种语言的粉丝,我甚至不是 Yin 语言的粉丝 ;) 对于任何从没见过的语言,我都是直接拿起来就用,而不需要经过学习的过程。看了这篇文章,也许你会明白我为什么可以达到这个效果。理解了这里面的东西,每个程序员都应该可以做到这一点。嗯,但愿吧。

         

        重视语言特性,而不是语言

         

        很多人在乎自己或者别人是否“会”某种语言,对“发明”了某种语言的人倍加崇拜,为各种语言的孰优孰劣争得面红耳赤。这些问题对于我来说都是不存在的。虽然我写文章批评过不少语言的缺陷,在实际工作中我却很少跟人争论这些。如果有其它人在我身边争论,我甚至会戴上耳机,都懒得听他们说什么 ;) 为什么呢?我发现归根结底的原因,是因为我重视的是“语言特性”,而不是整个的“语言”。我能用任何语言写出不错的代码,就算再糟糕的语言也差不了多少。

         

        任何一种“语言”,都是各种“语言特性”的组合。打个比方吧,一个程序语言就像一台电脑。它的牌子可能叫“联想”,或者“IBM”,或者“Dell”,或者“苹果”。那么,你可以说苹果一定比 IBM 好吗?你不能。你得看看它里面装的是什么型号的处理器,有多少个核,主频多少,有多少 L1 cache,L2 cache……,有多少内存和硬盘,显示器分辨率有多大,显卡是什么 GPU,网卡速度,等等各种“配置”。有时候你还得看各个组件之间的兼容性。

         

        这些配置对应到程序语言里面,就是所谓“语言特性”。举一些语言特性的例子:

        • 变量定义

        • 算术运算

        • for 循环语句,while 循环语句

        • 函数定义,函数调用

        • 递归

        • 静态类型系统

        • 类型推导

        • lambda 函数

        • 面向对象

        • 垃圾回收

        • 指针算术

        • goto 语句

         

        这些语言特性,就像你在选择一台电脑的时候,看它里面是什么配置。选电脑的时候,没有人会说 Dell 一定是最好的,他们只会说这个型号里面装的是 Intel 的 i7 处理器,这个比 i5 的好,DDR3 的内存 比 DDR2 的快这么多,SSD 比磁盘快很多,ATI 的显卡是垃圾…… 如此等等。

         

        程序语言也是一样的道理。对于初学者来说,其实没必要纠结到底要先学哪一种语言,再学哪一种。曾经有人给我发信问这种问题,纠结了好几个星期,结果一个语言都还没开始学。有这纠结的时间,其实都可以把他纠结过的语言全部掌握了。

         

        初学者往往不理解,每一种语言里面必然有一套“通用”的特性。比如变量,函数,整数和浮点数运算,等等。这些是每个通用程序语言里面都必须有的,一个都不能少。你只要通过“某种语言”学会了这些特性,掌握这些特性的根本概念,就能随时把这些知识应用到任何其它语言。你为此投入的时间基本不会浪费。所以初学者纠结要“先学哪种语言”,这种时间花的很不值得,还不如随便挑一个语言,跳进去。

         

        如果你不能用一种语言里面的基本特性写出好的代码,那你换成另外一种语言也无济于事。你会写出一样差的代码。我经常看到有些人 Java 代码写得相当乱,相当糟糕,却骂 Java 不好,雄心勃勃要换用 Go 语言。这些人没有明白,是否能写出好的代码在于人,而不在于语言。如果你的心中没有清晰简单的思维模型,你用任何语言表述出来都是一堆乱麻。如果你 Java 代码写得很糟糕,那么你写 Go 语言代码也会一样糟糕,甚至更差。

         

        很多初学者不了解,一个高明的程序员如果开始用一种新的程序语言,他往往不是去看这个语言的大部头手册或者书籍,而是先有一个需要解决的问题。手头有了问题,他可以用两分钟浏览一下这语言的手册,看看这语言大概长什么样。然后,他直接拿起一段例子代码来开始修改捣鼓,想法把这代码改成自己正想解决的问题。在这个简短的过程中,他很快的掌握了这个语言,并用它表达出心里的想法。

         

        在这个过程中,随着需求的出现,他可能会问这样的问题:

        • 这个语言的“变量定义”是什么语法,需要“声明类型”吗,还是可以用“类型推导”?

        • 它的“类型”是什么语法?是否支持“泛型”?泛型的 “variance” 如何表达?

        • 这个语言的“函数”是什么语法,“函数调用”是什么语法,可否使用“缺省参数”?

        • ……

         

        注意到了吗?上面每一个引号里面的内容,都是一种语言特性(或者叫概念)。这些概念可以存在于任何的语言里面,虽然语法可能不一样,它们的本质都是一样的。比如,有些语言的参数类型写在变量前面,有些写在后面,有些中间隔了一个冒号,有些没有。

         

        这些实际问题都是随着写实际的代码,解决手头的问题,自然而然带出来的,而不是一开头就抱着语言手册看得仔仔细细。因为掌握了语言特性的人都知道,自己需要的特性,在任何语言里面一定有对应的表达方式。如果没有直接的方式表达,那么一定有某种“绕过方式”。如果有直接的表达方式,那么它只是语法稍微有所不同而已。所以,他是带着问题找特性,就像查字典一样,而不是被淹没于大部头的手册里面,昏昏欲睡一个月才开始写代码。

         

        掌握了通用的语言特性,剩下的就只剩某些语言“特有”的特性了。研究语言的人都知道,要设计出新的,好的,无害的特性,是非常困难的。所以一般说来,一种好的语言,它所特有的新特性,终究不会超过一两种。如果有个语言号称自己有超过 5 种新特性,那你就得小心了,因为它们带来的和可能不是优势,而是灾难!

         

        同样的道理,最好的语言研究者,往往不是某种语言的设计者,而是某种关键语言特性的设计者(或者支持者)。举个例子,著名的计算机科学家 Dijkstra 就是“递归”的强烈支持者。现在的语言里面都有递归,然而你可能不知道,早期的程序语言是不支持递归的。直到 Dijkstra 强烈要求 Algol 60 委员会加入对递归的支持,这个局面才改变了。Tony Hoare 也是语言特性设计者。他设计了几个重要的语言特性,却没有设计过任何语言。另外大家不要忘了,有个语言专家叫王垠,他是早期 union type 的支持者和实现者,也是 checked exception 特性的支持者,他在自己的博文里指出了 checked exception 和 union type 之间的关系 :P

         

         

        很多人盲目的崇拜语言设计者,只要听到有人设计(或者美其民曰“发明”)了一个语言,就热血沸腾,佩服的五体投地。他们却没有理解,其实所有的程序语言,不过是像 Dell,联想一样的“组装机”。语言特性的设计者,才是像 Intel,AMD,ARM,Qualcomm 那样核心技术的创造者。


        以上就是【薛来】超级演说家嘉宾其实是it奇才的见解!


        大唐传易福州网站建设推荐阅读:

        管家婆一句赢