那些优秀的.NET开发者----汪宇杰:从重视细节,到成就技术专家
初识汪宇杰
在长沙.NET技术社区筹建过程中,溪源有幸认识来自上海的MVP汪宇杰Edi Wang。在中国众多的微软MVP中,Edi Wang作为一名九零后,也是一位年轻而充满才气的开发者,或许他或许外表平(Ying)平(Jun)无(Xiao)奇(Sa),但是却没有走奶油小生的颜值出道,而是心怀丘壑,视.net技术为精神动力,他对c#语言和微软的技术体系尤其充满了学习的兴趣,他甚至以微软大国王自称,写了许许多多有关.net 技术的博客,在坊间留下了许多精彩的故事。 当我说想写《我们身边那些优秀的.NET开发者》系列的第二篇博客,想写一写他的故事时,他起初还有点抗拒,他说别写我,应该没有人有我这么惨,遇到过那么多的坑吧,他说社区中优秀的开发者无比众多,每一个人都有自己的独特品质,而他也不过只是最平凡的一位。正是这种谦虚内秀的品质令我敬佩,并把这篇博客写了出来。
从UWP到.NET Core
在.NET技术体系中,最悲催的一种技术大概属于微软移动开发技术,包括Windows Mobile开发以及后来的UWP开发技术(通用Windows平台技术)。

在微软的产品线规划中,曾经对移动充满了梦想,花了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安装文件的启动项,都是一位头戴绿色遮阳帽的骑自行车少年。如下图:

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

然而,在事件发生之后,这个新闻占领了一周的头条,不少看热闹的群众纷纷指责微软这是浪费时间、那么多优先级更高的bug不解决,却优先解决这个无关紧要的bug,而且Edi Wang作为一位mvp,一位社区领袖,不花时间做开源,却操这些闲心干这些无聊的事,根本就是尸位素餐,浪费资源,一时间Edi Wang莫名其妙的成为了一位网络红人。
但是笔者却认为,作为一位负责任的技术专家、一位MVP,让微软技术能够在中国内地更好的落地,更好的符合当地的文化习俗,本身是他的义务。而遇到问题要较真,刨根问底,发现问题,并想办法解决,这正是体现了一位优秀工程师的精神。
当然不仅仅是这件小事,在他的个人博客中,写了许许多多不同的问题,这些问题,有的看似简单却极其刁钻,有的则看起来非常的高大上,让人不明觉厉。 当然,他的博客很多都是英文版的,可能阅读需要花一点点时间,这也让他的博客在国内.net开发者中拥有大量拥趸的同时,也获得了大洋彼岸优秀开发者的关注。
工程师思维
回到这个成功学泛滥的21世纪,大概大家心目中,认为优秀,一定是用来形容那些事业有成,财富自由的企业家,或者为国家做出突出贡献的专家,或者只有成为管理者,才能证明一个人的价值。然而,笔者认为,企业家和专家学者们,他们固然是优秀的典范,而那些在我们身边,深耕于技术,致力于技术的应用和普及的优秀开发者们,他们不仅仅是我们学习路上的良师益友,更是我们引以为傲的榜样,他们身上表现出来的精神,正是工程师精神和工程师思维,这种优秀的思维方式,让他们脱颖而出,得以成为企业的栋梁以及社区的精神支柱。

上面这张图,来源于《软件质量报道》公众号的文章《软件研发三大思维之三:工程思维》,在这张图表中,介绍了三种不同的思维,而工程思维则是与软件工程师们最为接近的一种思维方式。无论是基于目标为导向的解决问题、价值定向的基本能力外、做正确的事并正确地做事,并在做事中不断的提高质量与效率和规范化,也是一种正确的思维导向,由于全文太长,这里就不再赘述了。
随着中国互联网发展速度的逐渐放缓,也意味着像过去十年那样大规模的IT 基础设施投入的可能性将越来越小,IT 产业的寒冬显然将一直持续。
而离开IT 我们还能干什么?这或许是个问题。但是在此之前,只有努力使自己成为最专业的软件工程师,或许可能让我们具备更多的筹码。
与软件行业莫过于制造业和建筑业吧,在这些工业领域,涌现出了许多大国工匠,这些工匠们他们对产品、技术孜孜不倦,一丝不苟,于小处着眼、矢志于产品品质的提高,持续五年、十年,乃至数十年的辛苦付出,最终让他们得以生产出最优质的产品,服务于最优质的客户,创造最优秀的价值。
而软件工程师或许同样应该如此,我们所设计开发的软件产品,就是我们的作品。
总结
对技术充满渴望,时刻探究技术细节,让每一个部分都能尽可能的了然如心,做一位刨根问底的开发者,培养自己的工程师思维,努力成为最优秀的工程师,或许,未来我们都将成为IT产业的大国工匠。
【版权声明】
作品来自于长沙.NET技术社区成员【邹溪源】,有兴趣了解长沙.NET技术社区详情,请关注公众号【DotNET技术圈】,作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
那些优秀的.NET开发者----汪宇杰:从重视细节,到成就技术专家的更多相关文章
- 我们身边那些优秀的.NET开发者-
我们身边那些优秀的.NET开发者----邹琼俊 初识大佬 非常有幸通过博客园认识了邹琼俊邹老师,他也是<ASP.NET企业级开发实战>这本书的作者,这本书的销量达到了将近九千本,在这个实体 ...
- 一位年轻而优秀的.NET开发者的成长点滴
一,社区的小圈子 今年3月的一次技术交流活动上,那是我们.NET技术社区第一次组织线下活动,由于没什么经验,所以活动组织得比较仓促,内容也比较一般,效果还是有点欠缺.当然,活动本身是必要的,这次活动上 ...
- 一个优秀的Unity3d开发者必备的几种设计模式
Unity脚本编程 众所周知,unity的编程属于脚本化,脚本没有一个具体的概念跟架构, 导致在项目过程中,经常出现哪里需要实现什么功能,就随便添加脚本, 结果,就造成了一片混乱,不好管理. 更有甚者 ...
- 代码规范、GitHub提交源码的标准 答题人-杨宇杰
1.格式与命名规范1.1 缩进 使用Tab缩进,而不是空格键1.2 换行 每行120字符 if,for,while语句只有单句时,如果该句可能引起阅读混淆,需要用" {"和&quo ...
- 第二章-如何使用github建立一个HelloWorld项目,git的add/commit/push/pull/fetch/clone等基本命令用法。--答题人:杨宇杰
1.配置Git 首先在本地创建ssh 秘钥:在git bash输入: $ ssh-keygen -t rsa -C "your_email@youremail.com" eg:$ ...
- 优秀的PHP开发者是怎样炼成的?
4.在数据库中避免使用联合操作 比起其它的Web编程语言来说,PHP的数据库功能十分强大.但是在PHP中数据库的运行仍然是一件十分费时费力的事情,所以,作为一个Web程序员,要尽量减少数据库的查询操作 ...
- 微信公众账户的开发者模式(一) 部分细节access_token的获取等
十四老久没有写博客了,中间经历了,事业,感情的几分波折.现在终于稍微缓过来一点.又是一次从头开始,走在匆忙的路上. 好了煽情完了,直接上代码了. 基础就不说了我用的是vs2005开发的,部署在iis6 ...
- 【WinRT】国内外 Windows 应用商店应用开发者博客收集
本文格式:博主名 博客链接 本人点评.排名不分先后. 中文: 博客园: webabcd http://www.cnblogs.com/webabcd/ 微软最有价值专家(MVP),他做的 Win8.1 ...
- 2020中国.NET开发者峰会近50场热点技术专题揭秘
简介 / Summary 2014年微软组织并成立.NET基金会,微软在成为主要的开源参与者的道路上又前进了一步.2014年以来已经有众多知名公司加入.NET基金会,微软,Google,AWS三大云厂 ...
随机推荐
- 6.app架构基础
app架构,一个听起来高大尚的名字,很多小伙伴听到这个词语感觉很迷茫,不知道架构具体说的是啥?在q群里,"app后端应该怎么架构"这个问题被问了无数次.通过阅读本文,根据本人提出的 ...
- phantomjs Can not connect to the Service phantomjs错误
尝试方法一: 打开hosts文件配置 cat /etc/hosts 添加 127.0.0.1 localhost 重新运行 尝试方法二: 1,抛开服务,直接调用phantomjs定位问题 由于我是从服 ...
- BZOJ1854: [Scoi2010]游戏 二分图
很早之前写的题了,发现没有更博,想了想,更一发出来. Orz ljss 这是冬令营上的例题...之后,我推出来了一种时间复杂度没有问题,空间复杂度没有问题的方法,额(⊙o⊙)…和给出的正解不同,但是能 ...
- MYSQL一键安装
#!/bin/bash #baishuchao qq:995345781 ############################################################### ...
- Linux文件系统选择
通过综合使用多种标准文件系统Benchmarks对Ext3, Ext4, Reiserfs, XFS, JFS, Reiser4的性能测试对比,对不同应用选择合适的文件系统给出以下方案,供大家参考.文 ...
- 面试阿里前端P6血和泪换来的收获
我的一个朋友在前端耕耘一段时间,也在网上进行了高度培训学习,最近一段时间他打算跳槽去阿里面试前端P6开发岗位,结果被痛虐了一回,估计从此以后会给他留下不可磨灭的阴影啊 真是十年生死两茫茫,一鲁代码 ...
- appium 常用API使用总结!
将常用函数进行适用总结,后期在使用的过程中直接查找调用即可 获取界面属性.控件属性 1.current_activity:获取activity名称 device.current_activity 2. ...
- django+mysql的使用
Django中每一个模型model都对应于数据库中的一张表,每个模型中的字段都对应于数据库表的列.方便的是,django可以自动生成这些create table, alter table, drop ...
- C#简单继承示例详解——快速入门
在面向对象当中继承是非常重要的,也是面向对象的三大特性之一(继承.封装.多态),今天我们来揭开他的神秘面纱. 话不多说,我们上菜. using System; using System.Collect ...
- Http通讯Util
目录 HttpUtil类 HttpUtil类 import java.io.BufferedReader; import java.io.IOException; import java.io.Inp ...