那些优秀的.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三大云厂 ...
随机推荐
- 7.app和app后端的通讯
经常有开发者问:app和后端通讯是用http协议还是私有的协议?是用长连接还是短连接?通过阅读本文,帮你解除上面的疑问. (1)是用http协议还是私有的协议? 在间谍电视剧中,经常能看到间谍们的书信 ...
- Android 手势检测实战 打造支持缩放平移的图片预览效果(下)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39480503,本文出自:[张鸿洋的博客] 上一篇已经带大家实现了自由的放大缩小图 ...
- RabbitMQ Network Partitions的预警和处理策略
网络分区的意义 RabbitMQ的模型类似交换机模型,且采用erlang这种电信网络方面的专用语言实现.RabbitMQ集群是不能跨LAN部署(如果要WAN部署需要采用专门的插件)的,也就是基于网络情 ...
- stack的empty()
public static void main(String[] args) { Stack stack=null; System.out.println("1."+stack.e ...
- BZOJ_3589_动态树_容斥原理+树链剖分
BZOJ_3589_动态树_容斥原理+树链剖分 题意: 维护一棵树,支持1.子树内点权加上一个数 2.给出k条链,求路径上的点权和(重复的计算一次) (k<=5) 分析: 可以用树剖+线段树解 ...
- java可用与串口通信的一些库
java原生对串口的支持只有javax.comm,javax.comm比较老了,而且不支持64位系统,我在看jlibmodbus(一个java实现的modbus协议栈)的时候发现了几个可供使用的jav ...
- .NET Core 迁移躺坑记
最近将自己负责的一个核心接口系统从.Net Framework迁移到了.Net Core. 整体过程,从业务层面说一般般吧(整体还好但还是搞的业务有感,没出严重故障)但是技术层面上感觉其实并没有达到要 ...
- 深入理解java虚拟机之java内存区域
java虚拟机在执行java程序的时候会把它所管理的内存分为多个不同的区域,每个区域都有不同的作用,以及由各自的生命周期,有些随着虚拟机进行的启动而存在,有些区域则依赖于用户线程的启动或结束而建立或销 ...
- WebGL three.js学习笔记 使用粒子系统模拟时空隧道(虫洞)
WebGL three.js学习笔记 使用粒子系统模拟时空隧道 本例的运行结果如图: 时空隧道demo演示 Demo地址:https://nsytsqdtn.github.io/demo/sprite ...
- Filter、Interceptor、Aspect 区别及实现
Fliter 过滤器 请求在到达Controller之前进行与返回去之后 调用 入参为 reuqest,response,chian,过滤器获取不了具体调用哪一个类,哪一个方法. 实现: 1.继承 F ...