TUP对话大师系列:微软技术大师Jeffrey Richter(现场实录)
CSDN和《程序员》杂志联合组织的线下活动TUP对话大师系列第三期如期而至。今天的主角是享誉全球的技术作家和“微软传奇人物”Jeffrey Richter,其经典著作《Windows高级编程指南》和《Windows核心编程》早已成为Windows程序设计领域的巅峰之作,培育了几代的软件开发设计人员(关于他的简介无需多费笔墨,可查看这里)。
活动由CSDN&《程序员》杂志总编刘江担任主持人。他介绍了Jeffrey Richter和CSDN举办TUP活动的宗旨。
15:20分,北京理工大学计算机学院教师 金旭亮老师首先登场,他的演讲主题是《深度探索.NET》。
金旭亮先分享了他对于.NET框架的理解,在他看来,.NET Framework = CLR +基类库。
随后,他重点讲了IL(Intermediate Language)以及开发者是否需要掌握IL。
此外,金旭亮还谈到了并行编程给传统.NET开发者带来的挑战,以及并行程序和串行程序的对比。最后,金旭亮在谈到NET4.0特性时重点阐述了线程池关键原理和任务窃取、如何开发具有可控性软件系统等内容。
17:10分,Jeffrey Richter重磅登场,他先简单介绍了自己近期在做的事,他透露最近没有在写Windows相关的新的书籍,因为上本书做修订版的时候让他“非常痛苦”。但他同时表示,如果.NET有全新的版本出来,他会考虑再写一本书。他现在另一个重点转移到云计算上,他花了很多功夫在这个方面。
Jeffrey Richter
17:15分,直接进入Jeffrey Richter和与会者互动环节。
与会者提问
有人问到:如何看待C#的未来和发展趋势?
Jeffrey Richter首先回顾了C#的简史,从C# 1.0到4.0不同版本的变迁和功能上的侧重。从C#1.0开始作为一个C++和Java的补充,作为一种微软挑战Java语言,从2.0引用泛型机制,到3.0以后引用一些其他机制,现在4.0以后,主要是像刚才引入了一些首先是并行机制,其次是动态语言机制,4.0已经提供动态履行。总的来说,还是看好C#的未来。
C#是否就是Java的特殊的版本?
Jeffrey Richter同意C#在一定程度上确实借助了Java一些优秀的机制,因为C#是在Java之后才出现的。
有人问到:如何看Mono?
他答到,很高兴看到Mono当前的发展。
17:50进入圆桌环节。
圆桌论坛(从左到右分别为Jeffrey Richter、翻译巩朋、金旭亮、微软技术专家方敏)
主持人刘江抛出的第一个话题是:如何在技术的浪潮中选择正确的方向?
对此,Jeffrey Richter认为有一个重要原则是选择自己职业一定要根据自己的兴趣,跟随兴趣做自己想做的事情,当前计算机界技术非常繁多,变化非常快,他自己这20多年也用过很多语言。他认为在计算机界生存要具备一个特性要具有很强的适应性。其次就是关于技术选择方向上来说,应该学好计算机基础和核心内容,比如说像操作系统概念、进程管理、线程等。此外,在学好自己计算机基础之上,要专精某一个方向,这样使得自己找工作或者以后从事什么职业就不会有太大问题,例如可以专注计算机图形处理等等。
方敏则结合自身招聘员工的经验对毕业的学生给出了一些建议,他在招聘程序员的时候,发现很多学生写程序能力比较弱,微软有面试当场写程序的环节,很多学生写不出来,有的是能写出来,但是没有用最佳的方案,这时候有90%都过不去。他建议学生上课的时候一定要多写程序,这样等到毕业的时候,才会发现从学生到工业界门槛不是特别高。
金旭亮也强调首要因素是兴趣,他也以自己接触过的一个计算机学生成长经历为例,选择一个感兴趣领域,刚刚开始选一些实用性比较强的内容,入门以后从实践到理论摸通,一开始写一些小游戏,后面接触游戏引擎,再到后面人工智能发现可能数学基础不够,再补数学。他建议选择一个领域以后不要随便见异思迁,从实践到领域打通,马上做东西出来有成功感,逐步向理论扩充,发现什么不懂马上补。一个普通人有足够毅力,基本上要掌握某个技术应该是不成问题,有了这个技能再进一步发展机会就比较多,否则的话,代码没有写过几个程序,看一个设计原本也是不切实际的。
主持人提的第二个问题是:如何能够尽快的掌握一种新技术?
Jeffrey Richter认为,学习掌握一门新技术主要途径就是实践!他以自己学习Windows的历程举例,最初Windows对他是崭新的工程,之前从来没有碰过它,通过观看一些相关教程,下载SDK,看原代码并动手做代码运行,看效果逐渐掌握;其次自己过去一些经验也会对掌握一门新技术产生非常大的作用,像滚雪球一样。最后快速掌握新技术最后一点是要专注,选择一门技术不能在选择这一门又看另外一门,这样什么都学不好。
主持人随后还问到了如何看待云计算,对于程序员会有哪些方面的影响?
Jeffrey Richter在谈到这个话题时认为云计算是一门比较新的技术,很多方面还不够成熟,这项技术投资会是有受益但是受益期比较长,需要耐心一些。至于云计算对程序员影响他认为主要出现未来软件设计上,需要更多的考虑伸缩性以及如何把现有软件移植到整个云平台是一个非常大的挑战。
金旭亮则对微软发出呼吁,能够给开发者以免费的帐号使用并配合一定实验资源,只有这样才能推动云计算的应用。其次他认为单从开发角度来看,开发云计算应用和桌面应用程序没有太大差别,面临是一个虚拟机,里面跑的是.NET程序但是这个虚拟机很厉害。
最后,在谈到当前最看好的技术时,Jeffrey Richter表示是HTML 5!
清华大学出版社科技图书部赠给Jeffrey Richter的礼物
关于TUP:
TUP是由全球最大的中文IT技术社区CSDN和最具影响力的IT技术期刊《程序员》发起组织的线下活动,以业界知名专家讲座和论坛形式在北京、上海等主要城市定期举行,主要针对IT产品研发相关的技术、设计、运营、运维、管理专业人士,目的是与技术界人士共同关注IT产品研发背后的成败经验,关注技术、用户体验和产品设计,信仰开放、创新、交流和社区。