今年7月份,再一次成功连任微软全球最有价值专家(Microsoft Most Valuable Professional)。说心里话,今年连任成功,让我感觉有些意外,因为从去年开始,MVP项目进入了全球性的改革阶段,不仅续任周期发生了变化,技术方向和考核标准也都发生了一定程度的变更,变得更为完善。在这样的“风浪”中能够连任,不仅仅是因为自己平时还是尽可能地抽时间进行线上和线下的技术经验分享,更重要的是得到了微软MVP项目组的关心和帮助,在此向MVP中国 组表示感谢。 一直打算写点东西从我个人的角度介绍一下微软最有价值专家项目,平时也有很多同事朋友在问如何才能成为微软MVP,因此,我就在这里进行一些介绍总结,希望能够解答朋友们的疑惑。回首往事,自2012年第一次获得微软MVP,已经是第七个年头了,期间还拿了一个五周年纪念版的“秤砣”(下文会介绍)。在介绍MVP项目之前,我打算先简单介绍一下我是如何成为微软MVP的。 其实,很久以前我一直是Borland Delphi的忠实粉,虽然初中的时候自学了BASIC,高中的时候自学了C语言,但是Borland Delphi的高效开发和丰富的控件库深深吸引了我,Delphi不仅编译速度快,而且即使是使用第三方的控件库,编译生成物也不会产生额外的库引用,所产生的DLL或者EXE也都非常小,实为桌面软件开发之佳品,以至于直到2005年,我仍然在使用Delphi进行一些小工具的开发。很长一段时间的Delphi开发对于我的面向对象经验的养成起到了很大的作用,以至于在后来6年的Microsoft Axapta(也就是现在的Microsoft Dynamics AX,下文简称AX)开发工作中,让我产生了非常多的想法:为什么AX的架构设计这么棒,为什么AX的系统集成功能做得这么好。AX有着完整的代码分层概念,有着内嵌的X++脚本化开发语言,有着所见即所得的快速二次开发工具,有着严格的基于功能模块的许可证控制,有着超细粒度的权限控制系统,有着跟SharePoint无缝集成的Enterprise Portal等等。我在想,如果我能够自己开发一套应用系统,能够引入AX的设计理念来实现快速扩展的能力,或许也是一件非常令人兴奋的事情。于是,在业余时间,我花了不少精力基于.NET Windows Forms技术实现了一个类似的技术框架,它允许开发人员在服务器上写代码,然后客户端只需要启动一个轻量的Windows Forms应用程序,连上服务器,即可运行事先定义好的逻辑。这种架构有一定的好处,比如代码都在服务器上,客户端只需要连接不同的服务器,即可运行不同的业务代码;另一方面,相同的代码可以由不同类型的客户端执行,比如Windows Forms客户端,或者是浏览器,这就保证了不同的客户端有着相同的用户体验,并且只需要一套代码。当时我还将架构设计总结成文,发表在了《 计算机工程与应用》期刊上。后来回想起来,这不就是实现了一个简单的ASP.NET的框架么?虽然感觉有些乌龙,不过在实现这一架构的过程中,我学到了很多,其中最重要的一点,就是我开始接触并了解了领域驱动设计(Domain Driven Design)。 关于领域驱动设计(DDD),2007年的时候还是一个非常新颖的词汇,就像现在的AI、ML和微服务一样,不同的是,DDD本身并不是一种技术,也不是一种方法论,而是一种大型复杂软件的设计指导。好吧,在此也就不多深入解释什么是DDD了,总之,当时我花了非常大的精力去学习去理解,DDD中有很多思想的确很难理解,即便是做过很多项目,要深刻理解里面所涉及的内容也不是件容易的事情。有的时候,在上下班挤地铁的路上,我会思考为什么我所做的框架设计会有这样的问题,我当然有解决方案,可是,总觉得这种方案并不优雅,但问题又出在哪里呢?上下班挤地铁也有好的一面,它能让你有时间思考人生,在想不出来的时候,我会上一些国外的技术网站和论坛,以寻求一些帮助和启示。当时的设计疑惑,我往往都能从领域驱动设计中找到满意的答案,并会情不自禁地赞叹:太巧妙了! 由于这些经验得之不易,我慢慢形成了总结的习惯,并于2008年底在博客园开了自己的博客,在博客中进行了一些分享,以便帮助遇到相同问题的朋友。直到现在,我都坚持能够为社区提供高质量的博客分享,不仅仅是在阅读体验上,更是在文章内容以及用户评论上,力争做到文章无水分,有评论必回复。在2010年前后,我有不少博客文章接二连三地上榜博客园头条,我还在CodePlex上基于.NET分享了几个基于DDD的架构案例,这使得博客的关注度持续上升。在了解到微软MVP项目的相关信息后,我觉得我应该符合条件能够试着申请一下,在大名鼎鼎的博客园老大杜勇(dudu)的支持和推荐下,终于在2012年获得了第一个微软MVP奖项。 微软最有价值专家项目最早是由Bill Gates倡导的,始于1993年,最开始只有37位专家,如今全球已经发展到4000多人,中国从2003年开始也有了MVP项目,目前全国在任的MVP大概200人不到。目前我只能提供这些大致的信息,如果大家对MVP项目的历史和发展有兴趣,可以联系我或者任何一位MVP,我们可以提供更为详细的项目历史和介绍。总之,微软公司鼓励社区技术精英使用和发展微软技术,并在社区中以各种形式对技术进行分享和推广,通过自己的影响力帮助到更多的技术人员。
微软最有价值专家的权益
在介绍如何成为MVP之前,我还是先介绍一下MVP的权益吧,在了解了作为MVP,你能得到哪些好处之后,或许你就更愿意深入地了解应该如何成为MVP了。微软MVP主要有以下这些权益:
- 新任或者续任MVP成功,可以获得微软总部寄来的MVP奖礼包,其中包括:奖杯水晶座(仅新任MVP)、年份水晶环(也就是所谓的“秤砣”,新任和连任MVP)、带有MVP Logo的胸针、由全球MVP项目负责人以及微软CEO签名的奖状、MVP身份卡片、项目说明书等等。上文图中所示就是我的水晶奖杯以及代表着各个年份的秤砣
- 使用微软MVP Logo的权益:可以在公开出版物、博客、名片、论坛个人介绍等地方使用微软官方提供的MVP Logo。可以参考本博客的“博客简介”部分。感觉是不是特别的拉轰?
- 一年期微软MSDN订阅:它允许你下载使用包括Windows、Office、SQL Server、Visual Studio等任意一款微软的软件,并且提供了一定数量的序列号,你可以在家里或者工作的电脑上安装微软的软件,只需要保证是你自己在使用就可以了。请注意:订阅名称是Visual Studio Enterprise,也就是说,你可以下载使用Visual Studio企业版、Windows 10 Pro以及SQL Server企业版等高端版本
- 每月150美金的Microsoft Azure使用权益。使用这150美金,你可以熟悉使用Azure,并可以在Azure中搭建并测试你的云计算环境。你也可以搭建一些虚拟机,供平时测试使用
- 免费的MSDN杂志
- Xamarin大学的培训课程
- LinkedIn金牌会员:金牌会员的权益可以上LinkedIn网站了解
- 有很多软件供应商会与微软合作,为MVP提供免费的软件和开发工具。比如:JetBrains,如果你是微软MVP,可以到他们的官方网站提交申请,审批通过之后,就可以下载JetBrains的所有软件。还有著名的Axialis Software,制作图标的Icon Workshop软件就出自他们公司,如果你是微软MVP,也可以获得他们公司开发的所有软件
- 微软总部每年都有一次全球MVP的峰会,注册即可前往参加,包峰会期间食宿,机票需要自理。这也是访问微软总部大楼的好机会
- 以微软MVP身份参加由微软组织的本地活动,比如技术分享大会、微软MVP中国区峰会、Microsoft Build Tour、Tech Summit等
- 不定期地与微软副总裁进行面对面的交流。之前我参加过与微软全球副总裁、红衣教主Scott Gu的面谈会,主要交流了Azure云在中国的现状与契机;还参加过一次与微软全球资深副总裁潘正磊女士的面谈会,沟通了Azure云以及开发工具在国内的发展形势
- 微软专业的7x24技术支持
总体上看,MVP的权益还是非常吸引人的。那么如何才能成为MVP呢?
成为微软最有价值专家
首先,你必须是某一方面的技术精英,比如你Office用得很好,或者开发技术非常厉害,那么,你就满足了成为MVP的前提条件。此外,你还需要有分享自己经验心得的意愿,并在适当的平台或者媒体分享自己的东西(也就是自己的贡献),从而引领社区的专业技能以及技术发展。这些条件成熟之后,由现任MVP进行提名,在通过全球MVP项目组的审核之后,就可以成为微软MVP啦。是不是非常的简单? 那么,适当的平台或媒体,或者说实现经验分享和贡献的方式有哪些呢?基本上可以是以下几种:
- 撰写博客,可以针对自己的技术方向,使用博客的形式进行分享
- 主题演讲。在技术峰会或者技术论坛中,进行公益性质的主题演讲
- 参与论坛,答疑解惑
- 组织技术峰会或讲座
- 倡导开源项目,组织或者参与开源项目的开发和推广
- 撰写书籍、翻译审校
- 发布技术主题视频
- 在社交媒体中推广技术。比如在微信中开公众号,分享技术文章等
- 为微软相关产品组提供产品信息反馈
- 以技术专题为主的个人网站
需要说明的是,无论哪种分享方式,都必须是无偿的,否则在申请MVP时,无法提升自己的贡献值。 就我个人而言,我的贡献主要还是在博客上。我在博客园的主页应该有不少朋友已经知道了,但为了能够提供更好的阅读和交流体验,我于今年上半年从博客园迁移到了目前这个个人站点,虽然一定程度上会损失部分读者流量,但如果能够提供更高的文章品质,我想应该还是值得的。志同道合的朋友仍然会光临我的新站点,与我一起研究探讨软件开发技术。 此外,今年我还参与了两次线下技术交流活动,分别对领域驱动设计、ASP.NET Core以及C#的语言新特性进行了分享。
线下分享活动也都是几位MVP一起使用业余时间组织举办的,每次都是座无虚席,大家都非常的热情。每场主题结束后的茶歇时间,大家都会聚到一起,聊聊平时学习工作中遇到的问题,或者聊聊生活,聊聊人生。当然,我们也会准备一些茶水甜点,大家边吃边聊。
或许你会问,我虽然是一名软件技术人员,但我熟悉和使用的并不是微软本身的技术,而是诸如Java、Python、R等这样的编程语言,是否也可以申请微软最有价值专家呢?当然可以,事实上,在“开发者技术(Developer Technologies)”方向下,就包含了这些语言。不过对于R语言,我记得应该是属于“数据平台(Data Platform)”方向的。微软这几年变了很多,开始拥抱开源,拥抱Linux,拥抱各种异构的开发技术,因此,不用犹豫,赶紧上吧。
总结
MVP是一个大家庭,加入MVP,你就成为了这个大家庭中的一员。我想,通过加入MVP,我所得到的不仅仅是上面列举的这些权益,我觉得更为宝贵的是,我加入了这个大家庭,加入了这个高手云集的圈子,就有幸认识了不少传说中的大神,结交了更多来自各行各业的朋友。对了,补充说明一下,微软最有价值专家一定不是微软员工,如果有朝一日成为了微软员工,那么就需要放弃最有价值专家的身份。最后预祝MVP项目越办越好,加入MVP大家庭的朋友越来越多。