那些优秀的开发者----汪宇杰:从重视细节,到成就技术专家

汪宇杰(Edi Wang),.NET及Windows开发者,2018-2019年度微软最有价值专家(Windows Development方向)。现担任某金融科技企业的网站开发工程师。他对微软技术有鉴定的信念和不灭的热情,曾在Windows Phone及Windows 10应用商店发布过《上海轨道交通》、《描图》、《Character Map UWP》等几十款免费无广告应用,也使用ASP.NET构建了自己的个人博客。

初识汪宇杰



在长沙.NET技术社区筹建过程中,溪源有幸认识来自上海的MVP汪宇杰Edi Wang。在中国众多的微软MVP中,Edi Wang作为一名九零后,也是一位年轻而充满才气的开发者,或许他或许外表平(Ying)平(Jun)无(Xiao)奇(Sa),但是却没有走奶油小生的颜值出道,而是心怀丘壑,视.net技术为精神动力,他对c#语言和微软的技术体系尤其充满了学习的兴趣,他甚至以微软大国王自称,写了许许多多有关.net 技术的博客,在坊间留下了许多精彩的故事。

 当我说想写《我们身边那些优秀的.NET开发者》系列的第二篇博客,想写一写他的故事时,他起初还有点抗拒,他说别写我,应该没有人有我这么惨,遇到过那么多的坑吧,他说社区中优秀的开发者无比众多,每一个人都有自己的独特品质,而他也不过只是最平凡的一位。

他这种谦虚内秀的品质令我敬佩,并促使我把这篇博客写了出来。这篇博客也期待能向陈希章老师的三天前写的文章《汪宇杰:以终为始的技术践行者致敬,所有优秀的开发者,都值得我们学习~

640?wx_fmt=png


从UWP到.NET CORE专家


在.NET技术体系中,最悲催的一种技术大概属于微软移动开发技术,包括Windows Mobile开发以及后来的UWP开发技术(通用Windows平台技术)。 

640?wx_fmt=png

在微软的产品线规划中,曾经对移动充满了梦想,花了72亿美刀的高价收购了没落贵族Nokia,然而由于各种原因,最终移动战略失败,留下满地鸡毛。直到萨提亚·纳德拉被推举成CEO之后,逐渐的将微软在移动领域上的积累往surface上发展,推出了UWP技术,其目的是为了能够通过开发一个应用,在所有的windows10设备上运行。不过对于广大.net开发者来说,虽然这种技术吸收了XAML和WPF技术的精华,可谓站在了巨人的肩膀上,但是由于学习资源的限制或市场原因,未能得到普及,尤其在中国内地,基于UWP开发app的开发者少之又少。2017年我也曾经学习和了解UWP技术,并试图使用这种技术来开发一个移动端的应用,但是后来由于项目过于赶工期,踩UWP的坑将面临的挑战过于巨大,因此仅仅开发了一个最简单的demo,然后就被迫放弃了。

而翻开Edi Wang的个人博客网站(edi.wang),从2015年到2018年间前前后后发表了大约40多篇关于UWP开发的博客,他还曾经坚持使用UWP技术开发了30多个应用,目前在github上得到了较为瞩目的关注度,有的应用还拥有数百万用户,但是Edi Wang都将这些项目开源出来了,成为了UWP开发者们(如果还有的话)了解和学习这种技术过程中轻易可以获得的宝贵财富,尤其是他踩过的那么多坑,也可以为其他开发者提供便利。 

当然,后来有幸听ediwang说UWP只是他会的众多技术栈中间的一个,而他的主要技术依然是asp.net的技术栈。对于开发者来说,所谓技术,不过是解决问题的工具而已,优秀的开发者总是善于钻研技术和学习技术,并从技术中汲取进步的养分,并成长为更加优秀的开发者。 

Edi Wang就是这样的开发者,一位年轻的90后开发者,从最早的ASP.NET,UWP技术出发,现在又在.NET Core领域认真钻研,一方面为实现企业的技术转型做出了贡献,另一方面也为开源社区贡献了许多学习资料,这使得他得以成长为一位MVP,他的成长历程,堪称我们身边的典范。

绿帽风波

3月初,微软vs2019预览版的发布成为不少.NET开发者关注的新闻,而其中一个不起眼的小问题格外引人注目,在此后的新闻中,被称为“微软绿帽事件”。在vs2019之前的宇宙第一IDE visual studio安装文件的启动项,都是一位头戴绿色遮阳帽的骑自行车少年。如下图: 

640?wx_fmt=png

以前笔者也经常跟朋友谈起,说微软肯定不知道中国人对于绿帽子的避讳。但是在visual studio 2019预览版中,这个bug被微软进行了修复,而这个issue的提出者正是EdiWang。

640?wx_fmt=png

在事件发生之后,这个新闻占领了一周的头条,不少看热闹的群众纷纷指责微软这是浪费时间、那么多优先级更高的bug不解决,却优先解决这个无关紧要的bug,而且Edi Wang作为一位mvp,一位社区领袖,不花时间做开源,却操这些闲心干这些无聊的事,根本就是尸位素餐,浪费资源,一时间Edi Wang莫名其妙的成为了一位网络红人。 

但是笔者却认为,作为一位负责任的技术专家、一位MVP,让微软技术能够在中国内地更好的落地,更好的符合当地的文化习俗,本身是他的义务。而遇到问题要较真,刨根问底,发现问题,并想办法解决,这正是体现了一位优秀工程师的精神。 当然不仅仅是这件小事,在他的个人博客中,写了许许多多不同的问题,这些问题,有的看似简单却极其刁钻,有的则看起来非常的高大上,让人不明觉厉。 当然,他的博客很多都是英文版的,可能阅读需要花一点点时间,这也让他的博客在国内.net开发者中拥有大量拥趸的同时,也获得了大洋彼岸优秀开发者的关注。

工程师思维


回到这个成功学泛滥的21世纪,大概大家心目中,认为优秀,一定是用来形容那些事业有成,财富自由的企业家,或者为国家做出突出贡献的专家,或者只有成为管理者,才能证明一个人的价值。

然而,笔者认为,企业家和专家学者们,他们固然是优秀的典范,而那些在我们身边,深耕于技术,致力于技术的应用和普及的优秀开发者们,他们不仅仅是我们学习路上的良师益友,更是我们引以为傲的榜样,他们身上表现出来的精神,正是工程师精神和工程师思维,这种优秀的思维方式,让他们脱颖而出,得以成为企业的栋梁以及社区的精神支柱。 

640?wx_fmt=png

上面这张图,来源于《软件质量报道》公众号的文章《软件研发三大思维之三:工程思维》,在这张图表中,介绍了三种不同的思维,而工程思维则是与软件工程师们最为接近的一种思维方式。无论是基于目标为导向的解决问题、价值定向的基本能力外、做正确的事并正确地做事,并在做事中不断的提高质量与效率和规范化,也是一种正确的思维导向,由于全文太长,这里就不再赘述了。

随着中国互联网发展速度的逐渐放缓,也意味着像过去十年那样大规模的IT 基础设施投入的可能性将越来越小,IT 产业的寒冬显然将一直持续。 而离开IT 我们还能干什么?这或许是个问题。但是在此之前,只有努力使自己成为最专业的软件工程师,或许可能让我们具备更多的筹码。 与软件行业莫过于制造业和建筑业吧,在这些工业领域,涌现出了许多大国工匠,这些工匠们他们对产品、技术孜孜不倦,一丝不苟,于小处着眼、矢志于产品品质的提高,持续五年、十年,乃至数十年的辛苦付出,最终让他们得以生产出最优质的产品,服务于最优质的客户,创造最优秀的价值。 而软件工程师或许同样应该如此,我们所设计开发的软件产品,就是我们的作品。


总结

对技术充满渴望,时刻探究技术细节,让每一个部分都能尽可能的了然如心,做一位刨根问底的开发者,培养自己的工程师思维,努力成为最优秀的工程师,或许,未来我们都将成为IT产业的大国工匠。 

【版权声明】 

作品来自于长沙.NET技术社区成员【邹溪源】,有兴趣了解长沙.NET技术社区详情,请关注公众号【DotNET技术圈】,作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

 

码字不易,求打赏smiley_20.png

(本文是作者为社区贡献的内容,赞赏的所有费用都将作为长沙.NET技术社区运营费用用以维持社区运营,感谢您的关注,让我们一起努力,共同创造长沙.NET技术社区更好的明天)

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

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

相关文章

P4062 [Code+#1]Yazid 的新生舞会(线段树做法)

P4062 [Code#1]Yazid 的新生舞会(线段树做法) 题意: 给你一个序列a[1…n]​,求存在绝对众数的子区间个数。 绝对众数指:区间中出现次数最多的那个数,出现次数严格大于区间长度的一半。 题解&#xff1a…

《从零开始学ASP.NET CORE MVC》课程介绍

大家好,欢迎来到52ABP学院,收看我们的 《从零开始学ASP.NET CORE MVC》。ASP.NET Core 简介从2015年开始随时互联网成长,云计算和AI、大数据的爆发,大家从谈论项目信息化到数字化的转型,从ToC产业到ToB产业的转型&…

Docker - 容器部署 Consul 集群

目录 准备 Consul 镜像安装单个 Consul组装集群 Consul启动 Consul 和 Web 管理器Consul 命令简单介绍Web 管理器Server 加入集群Client 加入集群了解 ConsulConsul 使用场景Consul 优势Consul 中的概念说明简介安装总结引用和附件说明本文主要介绍怎么使用 Docker 在 Linux…

VS2017创建ASP.NET Core Web程序

创建ASP.NET Core Web应用程序如果您使用的是VS2019 请看 VS2019创建ASP.NET Core Web程序在这个视频中我们将讨论可用的不同项目模板及其功能预制的项目模板有什么不同,哪些是可以使用的,以及他们的作用。在Visual Studio2017中创建新的ASP.NET Core 项…

巧用linux版powershell,管理linux下的docker

owershell,docker,cli,命令,docker ps,docker image第一章 在linux中搭建docker环境目的:在任意版本的linux(物理机,虚拟机,节点机)中,安装docker服务。动作:教程略,不是本文主要目的…

从ASP.NET Core2.2到3.0你可能会遇到这些问题

趁着假期的时间所以想重新学习下微软的官方文档来巩固下基础知识。我们都知道微软目前已经发布了.NET Core3.0的第三个预览版,同时我家里的电脑也安装了vs2019。So,就用vs2019.NET Core3.0来跟着做一下Contoso University这个WEB应用,但是在基…

EntityFramework Core 3.0 Preview

前段时间.Net Core 3.0 发布了,Entity Framework Core 3.0 也发布了Preview版。假期用了一上午大致研究了一遍,同时又体验了一把Visual Studio 2019。总结一下分享给大家:VS2019 新建.Net Core 3.0 Console应用,添加EFCore相关的N…

机器学习 ML.NET 发布 1.0 RC

ML.NET 是面向.NET开发人员的开源和跨平台机器学习框架(Windows,Linux,macOS),通过使用ML.NET,.NET开发人员可以利用他们现有的工具和技能组,为情感分析,推荐,图像分类等常见场景创建自定义机器…

容器化时代我们应当选择Kubernetes

昨天发的文章《基于Kubernetes 构建.NET Core 的技术体系》,有同学问.NET Core上有Spring Cloud类似的平台吗? .NET Core出现这么久了,这个为云原生应用开发而准备的系统需要Spring cloud这样的全家桶吗? 大家希望使用Spring Clou…

[ZJOI2015]幻想乡 Wi-Fi 搭建计划(dp + 结论)

problem luogu-P3344 solution 这个题面,这个数据范围,完完全全就是网络流宗教。。然而我发现建不出来。 很多一眼网络流最后却不是网络流而往往是 dpdpdp 的题目都有一个特性:一个点可以流出多条流量,流入流量却只能为 111。…

CefSharp中c#和JavaScript交互读取电脑信息

介绍CEF是由Marshall Greenblatt于2008年创建的基于Google Chromium的BSD许可开源项目。与主要关注谷歌Chrome应用程序开发的Chromium项目本身不同,CEF专注于在第三方应用程序中促进嵌入式浏览器用例。CEF通过提供生产质量稳定的API,发布跟踪特定Chromiu…

C#8.0可空引用类型的使用注意要点

最近VS2019正式版发布了,装下来顺便试用了一下C#8.0,最大的看点应该就是可空引用类型了。不过C#8.0仍然处于Beta的状态,而且试用时也遇到了几个坑。背景知识说明:所谓的可空引用类型是指,一旦启用了可空引用类型这个新…

ASP.NET Core Web 项目文件介绍

ASP.NET Core Web 项目文件在本视频中,我们将探索并了解asp.net core项目文件。 我们使用C#作为编程语言,因此项目文件具有.csproj扩展名。如果您使用过以前版本的ASP.NET,那么您可能对此文件非常熟悉,但此文件中包含的…

DotNetCore 3.0 助力 WPF 开发

前言Visual Studio 2019 已经正式发布了,DotNetCore 3.0 的正式版也指日可待。在之前的版本中,作为一名基于微软生态的传统 WPF 程序员看着隔壁同学在开发 DotNetCore 网站时用着各种特性好生羡慕,想着巨硬啥时候能让客户端开发者也能尝尝甜头…

H - Square Card HDU - 7063

H - Square Card HDU - 7063 题意: 有两个圆形区域,一个是得分区域,一个是获得奖金区域,现在你有一个边长为a的正方形,当正方形在如果在某一时刻它严格在圆形范围内,才算合法。 问把牌扔到任意的位置被得分和同时获得…

《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)

创建ASP.NET Core Web应用程序如果您使用的是VS2017请看 VS2017创建ASP.NET Core Web程序(三)在这个视频中我们将讨论可用的不同项目模板及其功能预制的项目模板有什么不同,哪些是可以使用的,以及他们的作用。在Visual Studio 2019中创建新的ASP.NET Cor…

ASP.NET Core 沉思录 - 结构化日志

在 《ASP.NET Core 沉思录 - Logging 的两种介入方法》中我们介绍了 ASP.NET Core 中日志的基本设计结构。这一次我们来观察日志记录的格式,并进一步考虑如何在应用程序中根据不同的需求选择不同的日志记录形式。太长不读:直接飞到文章最后 :-DMicrosoft…

为什么我们要做单元测试?(二)

引子当我第一篇博客发布,并被张善友老师的公众号转载之后,在公众号文章和博客园的留言中,许多开发者纷纷表示,单元测试作为企业行为,与实施的技术栈不同,不是开发者个人行为,实施单元测试花费的…

P4159 [SCOI2009] 迷路

P4159 [SCOI2009] 迷路 题意: 该有向图有 n 个节点,节点从 1 至 nn 编号,windy 从节点 1 出发,他必须恰好在 t 时刻到达节点 n。 现在给出该有向图(带边权),你能告诉 windy 总共有多少种不同的路径吗? …

程序员修神之路--提高网站的吞吐量

点击上方蓝色字体,关注我们菜菜哥,有个事你还得帮我呀呦西,YY妹子,最近天这么热了,你怎么还穿这么多?苦笑一下.....前几天写了几个接口,领导让提高一下接口吞吐量这是你技术提高的大好机会呀可吞…