那些优秀的.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三大云厂 ...
随机推荐
- 试试看读一下Zepto源码
在浏览器上(Safari.Chrome和Firefox)上开发页面应用或者构建基于html的web-view本地应用,你如PhoneGap,使用Zepto是一个不错的选择. Jquery和Zepto的 ...
- 2013-09-16 构建C1000K的服务器(1) – 基础
http://www.ideawu.net/blog/archives/740.html 著名的 C10K 问题提出的时候, 正是 2001 年, 到如今 12 年后的 2013 年, C10K 已经 ...
- 25.创业真的需要app吗?真的需要外包吗?
两个星期前,一名亲戚的朋友打算投入自己的二十多万元去搞个摄影社交app,问我有没有靠谱的外包推荐,我赶紧劝住他,现在app的成本已经非常高了,初期的研发就要十几万,加上后期的推广(每个用户成本大概2元 ...
- JDBC连接MySQL数据库基础
主要内容 MySQL的基本操作和基本SQL语法 使用JDBC进行MySQL数据库的开发 使用DriverManager.Connection.PreparedStatement.ResultSet对数 ...
- 在Windows Server 2008 R2下搭建jsp环境(二)-mysql的下载安装
个人推荐java开发过程中的数据库首选MYSQL,MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保 ...
- 【最小生成树+子集枚举】Uva1151 Buy or Build
Description 平面上有n个点(1<=N<=1000),你的任务是让所有n个点连通,为此,你可以新建一些边,费用等于两个端点的欧几里得距离的平方. 另外还有q(0<=q< ...
- 常用 Linux 命令的基本使用
常用 Linux 命令的基本使用 操作系统 作用:管理好硬件设备,让软件可以和硬件发生交互类型 桌面操作系统 Windows macos linux 服务器操作系统 linux Windows ser ...
- 大白话5分钟带你走进人工智能-第十五节L1和L2正则几何解释和Ridge,Lasso,Elastic Net回归
第十五节L1和L2正则几何解释和Ridge,Lasso,Elastic Net回归 上一节中我们讲解了L1和L2正则的概念,知道了L1和L2都会使不重要的维度权重下降得多,重要的维度权重下降得少,引入 ...
- 神奇的Scala Macro之旅(三)- 实际应用
在上一篇中,我们示范了使用macro来重写 Log 的 debug/info 方法,并大致的介绍了 macro 的基本语法.基本使用方法.以及macro背后的一些概念, 如AST等.那么,本篇中,我们 ...
- jdk源码阅读笔记-Integer
public final class Integer extends Number implements Comparable<Integer> Integer 由final修饰了,所以该 ...