摊牌了,.NET开发者,准备赋能未来

hi,这里是桑小榆。一名.net开发,从19年毕业至今一直从事相关技术已近4年。

发展至今,很有必要分享分享我的经历以及对于.net开发的看法和见解。

篇幅有些长,无论你是学生,职业人,.NET开发者还是其他语言开发者,都请你能够读到末尾,或许将赋能于你。

你是.NET开发?

老读者可能会发现,我是第一次对外讲是.net开发者,以往的文章中讲解的技术案例使用的C#语言,不仔细看都不知道作者是一名.net开发者。

所谓事出必有因。我在毕业前实习那会,自觉所掌握的技术很弱,直接称呼菜鸟。

在第一家公司实习的时候,做的是asp.net开发,那时候给甲方客户做OA,做官网和审批系统。

这类项目使用的asp.net框架技术是非常繁杂的,而且公司流动性也非常大,也大多是一些新人开发的东西,很难具备可读性和继承性。

所以使用起来非常头疼,业务代码和界面代码揉搓在一起,各个同事也是非常繁忙也没多少时间给你一一查找和排除。虽然凭借自己的毅力撑了下来,也掌握了asp.net框架开发技术。

尽管如此,我还是非常讨厌asp.net。虽然开发东西非常快,接一个项目直接一套就基本上完成了,但是接的系统越来越庞大,里面的业务逻辑越来越臃肿,没有人愿意花时间重构或者制定一套跟紧时代的开发。

导致维护起来简直令人头大,虽然参与其中,我明知自己没有能力重构系统和制定标准流程的能力,被迫往“shit mountain”里叠加“shit code”。无论你是否追求优雅的代码,在那里都变成了“shit code”。

我很难想象这是人的复杂还是人的逻辑混乱造成的结果。

因为.net在之前是非常火的,也是很容易入手的一门技术,这也造就了功利性往这方面靠,一进来就出不去了,他们只能继续使用asp.net,并没有精力深入下去了,更没有精力去学别的语言,比如java,python。

所以彼时还是很抗拒说是一名.net开发,因为不自觉想到界面样式和业务逻辑混合在一起的场景,觉得不符合一名程序员。

毕竟我也时常阅读开发者相关的文章,以及阅读别人的代码,当然java也能看懂,学校里有学,也会在业务对接阅读别人写的代码,以及github里阅读到优美的代码。

我曾因为阅读到别人精悍而优美的代码而喜悦一晚上,并立志成为一名优雅的代码选手。

19年毕业之后,也就是实习结束,当前这家公司因为主要做的是政府,各大机构的官网,OA等。因此转行java开发,配合linux服务器部署,迎合政策以及市场。

也迎来了作为开发者的思考,是否要跟着转java?

虽然在16年.NET Core就诞生了,但是处于不温不火,也没多少企业去碰它。到了 19年那时候的.netcore开源社区已经开始有所行动,不断冲击市场和影响开发者,下半年在上海举办了首场线下大会,而我也参与其中,要是没受影响那是假的。

55b6d3a46493034923093b75669c9271.jpeg

▲图/ 19年首届.netconf 开发者大会

在职场里,转前端,转java,转go似乎成为了.net开发者见面就会聊的话题。

对于我而言,本身技术掌握并不精湛,当时我在想,我连.net都搞不定,何以谈java?

在这样的内心驱使之下,我选择继续做.net开发,并且离开了东家。

谁说.NET入门容易学起来不难?

2020年,我开始了netcore职业旅程,为什么说是职业旅程,是因为之前仅限于理论上了解并且自行实践demo,并没有进入商业生产化。

在加入新东家开始做.net之后,我也接触到了.net core带来的惊喜,每天都在玩转 .net core,把linux+docker部署,jekins+octopus自动化部署,swagger+restfulapi,以及自身带来的依赖注入,日志体系,控制台式开发,nuget打包,授权体系,微服务等等通通玩了个遍。

甚至各大组件也是很好的融合,并且我还体验了完全通过vscode 来开发.netcore,别提有多舒服。

1c0a89f417b79a2921e05010ba692728.jpeg


▲图/ .netcore开发路线,不会不.net

可以说语法上要多优雅就可以多优雅,我并不是在吹,而是在谈恋爱。

尽管在编程上高了几阶段,但是过程还是因为经验问题在面对业务上有些吃力,但是整体的体验是非常棒的。

看我说到这里,你脑袋里肯定会浮现出.net在国内的HC的问题。

没错,.net在国内的岗位确实不如其他热门语言,毕竟几年的落后,也因服务器的问题导致大面积滞后,不可否认失去了很多先机。

作为一名开发者,除去自身的coding热爱,那一定是为了谋生,人人都想追求高薪,良好的办公环境以及含佬率。

毕竟,总要回归到一个哲学问题:“一行代码究竟为何而生”。

很显然,对于自身的定位我很清晰,我的代码至少在这年纪里是为老板而生。

这一家的新东家虽然技术上是前沿的,但终究无法为开发者提供更大更甜的蛋糕。

我每年都会去市场上考察自己的技术以及能力。说到面试,你肯定听听过不少java开发者深入底层源码,jdk,链表,集合,排序等等,更有甚者出现手写红黑二叉树,吊打面试官系列云云。

一比较之下,.net面试都是浅显的内容,是吧?以前确实是,不过那时候我还是学生并不是很了解,但是最近几年绝对不是的。也开始深入源码,数据库优化,各种集合优劣势,设计模式等等。

如果你还没接触到,那就是还没进入到该环节。

就如21年的时候,我首先通过.net 开发大会上认识的肖老师举荐到校宝在线面试。

很遗憾,校宝的面试官面的内容很全面并且由浅入深,但我没能很好地解答出来,很遗憾错过了机会。

这场面试里,我很清晰认识对于一些技术只是浅尝辄止,并没有深入了解原理和阅读源码,去了解.netcore技术。

于是我认识到了自身的不足,决定好好深究技术。把.netcore底层原理统统去学一遍,把设计模式搞懂并根据现有业务结合起来,相关的授权认证也就是oauth2.0+identityservice掌握,数据库优化,网络原理等等,这些相关内容我都有在我的公众号和博客有发表,只有学会用自己的语言描述以及动手实践才能真正掌握。

在此期间我也面试了边锋网络,很庆幸面试我的主管也是一名.net开发热爱者,和我谈论的.netcore技术,微服务,授权认证以及分析netcore市场变化等等令我印象深刻,至今也记得他。

他以前在博客园独当一面负责项目,把.net技术玩了个遍,后面加入了一家医疗公司也玩转了.netcore技术,最后加入了边锋网络做.net开发,已经是.net开发部门的主管。

只是,边锋大量业务转为java技术开发,.net业务逐渐被替换,主管凭借自身的力量做了一份技术迁移方案,就是由.net framework迁移到.netcore技术。

不过,由于人力物力以及市场的不可控因素,最终没有被采纳,选择了java技术替代。

最后,他的部门基本上被裁完,只剩两三个人。

既然大量裁员,为啥还要把我招进去呢?

因为边锋内部的.net开发者大量跑路,需要有人来维护老系统。

二面的总监是java开发者,考查我的基本上是算法,最终他们录用了我,给我开出了诱人的薪资。

当我决定要来并通知了主管之后,他把内部信息告诉了我。没有内编,项目周期结束便会被裁掉,而且染上外包的性质简历就会拉胯。

这里有几番观点对峙,不便多讲,最终我采纳了他的建议,拒绝任职。

事实证明,.net开发者对.net开发者是非常友好且惜才的,如果此次我去了,那我不到半年就会被裁掉,并且简历拉胯一半,至今我对他还是感谢的。

22年上半年我还联系了他,他对于netcore技术的热爱是没的话说,但是由于市场的原因最终继续在边锋网络工作并转成golang开发。

这也是很多人血的经历建议新人不要去外包,不是说外包不好,外包也有大佬是不可否认。

但是市场上对于外包就是很抵触,市场上风气也不好,大体能够知道进入外包的都是哪些人群。

国内市场上一半以上对于开发者的贬值,不尊重,就是大量外包扩张导致,企业降低成本采用外包,其中就是有你们为了一时的诱人薪资加入他们,成为蓝牌,红牌,绿牌区别。

蝴蝶效应,好好细品。

以前我对外包并没有啥认识,觉得只要工资高工作差不多得了,“钱多就去”这句话可能会有很多人误导你判断,导致一不留神就加入了外包。

就举个简单的例子,我认识的几家企业的面试官,他们在决定候选人是否入职之后,有一个环节就是搜索简历里的公司是否外包,作为当事人听着有些打颤,但就是这样。

所以有时候面试良好也进不去,这个几率也包含在里面。

规则由金字塔顶端的人决定,我们只能遵守规则并通过一定条件利用规则。

我的建议就是,无论你是新人也好,入门也好,开发2-3年也好,如果你们对于行业存在疑惑和飘摇不定,一定记得咨询当前行业走在顶端的大佬,一定要保持学习,冲顶。

他们能够走在前沿一定有自身的硬实力和眼光,市场的供求关系不可能出现弱联系。

不然随便在一个群里咨询,总是有一群看山是山充满戾气建议这建议那,他们对于自身无力改变的东西,很喜欢指点别人的路线。

这里我会有让你们联系.net开发们走在前面的大佬认识的机会,请你一定要看到末尾。

你在跟着谁跑?

在2022年的时候,其实我已经有些动摇了并且已经在系统性学习前端技术了。

飘摇不定的时候,我选择咨询了.net社区引领者之一,微软mvp的张队,他告诉我.net 能做的东西多,基本属于全能技术栈,要学的东西自然是非常广,学的东西广度和深度要搭配。

至于市场,市场影响我认为是暂时的。

他的建议非常中肯,纵观.net开发走在前面的大佬,他们总是充满了坚定信念,做自己认为值得做的事情。

所以我自身沉下心来,继续做自己认为有价值的事情。在空闲的时候,我依然会翻github,在B站学习相关源码,同时也会在《中国大学》学习操作系统,网络原理等等。作为程序员,《中国大学》里资源好又多,不利用真是可惜。

至今学了操作系统,我都觉得控制台输出一句“hello world”不简单,上至字节码表现,下至操作系统指令运转,资源调度,妙不可言。这不是卷,而是程序员应该有的知识和素质。

有的人,真的只是停留在输出“hello world”。

就在今年,大环境就业严峻,大家都有感受。而我还是选择了裸辞,这些内容也有在公众号发表过,建议可以多参考。

就在我国庆回家,结束之后,我选择了去面试深圳和杭州的岗位,其中有几场面试是我非常享受的。

他们不会问你语言语法内容,问的都是计算机网络,面向对象思维,设计模式,数据库优化等等。看吧,最重要的还是计算机知识底子,所以一定要打好基础,不要花里胡哨搞这个那个。

花了10天左右,我就已经拿到了几份offer,其中有一份是做证券,金融行业的企业,也是.netcore技术。

很市侩的我选择了包吃住薪资尚可的车企,目前已经超越了同批次不少的小伙伴了。

是的,我的代码更多还是为了老板而生。

当我进入发现回到了原点,做回了.netframework之后,当然非常痛苦,甚至有逃避的心理。

摆烂的时候,在群里咨询了线下大会认识的那群大佬。大佬们的建议是改成netcore技术就好。

虽然很容易想到的方案,但是本能的痛苦逃避是顾不了那么多。被醍醐灌顶之后我仿佛又多了一项使命,重新建立公司的架构体系。

我也了解同事们大多想做新技术,只是缺乏契机又或者是引领的人。

那么,我已经逐渐开始搭建生产框架了。

开发者们,我们的使命应该如此,将自己的技术赋能所到之处。这就是意义所在。

我的代码也开始为我而生。

我也自发组织架构师群,分析师群组织大家进行学习和考试。

很有意思的是,里面也有大学学生参与,他们对于就业总是充满选择困难,总是会抛出:选java好还是前端好,又或者是.net?

当人们看到.net,潜意识里就是没有前途,没有市场,而且还不能跨平台。

也看到有伙伴推从.net开发,直接被怒怼是何居心。

对此,他们对于.net的认知和他们的技术一样,停留在以前。

是很难与其争论的。

我的建议还是前面的建议,勿要在一群不在山顶的人指引你左右。

赋能开发者

到了这里,你或许开始斟酌于自身的定位和方向。

而我此次,将是赋能你做决策的能力,认识更多大佬的机会,同时对于技术的走向和风口更加清晰的认识和实时追踪。

到目前为止,2022年的 .net conf 开发者大会已经是第四届了,里面更有豪华阵容:龙芯团队、张善友、苏震巍、肖伟宇、衣明志、杨舜宇,周国庆等,更有资深架构师,高级开发者,独立开发者,各大领域的佼佼者,以及你的学长学姐们。

那么,在大会上你能get到什么?

显然,在大会上,你能和他们近距离互动,吸收他们一路走在领域前沿经验分享以及精湛技术的见解。

也能和他们交友,.net开发者们一向友好,且惜才。不仅能解决你的迷惑,更能赋予你做更加有利于自己职业的决策能力。务必要积极加他们的联系方式,更有助于你个人问题和领域的探讨呢。

更有各大企业领导人的参与以及岗位招聘,智能之士思得明企,不是吗?

同时,本次大会的主题更多涵盖低代码、云原生、工业互联网、AI开源,开源项目等领域。

2022年了这些热门领域都不会不知道吧?

另外,工业互联网,数字化经济转型也是国家未来着重的方向,我希望想要弯道超车的开发者们做好自身知识储备,抓好风向口。

e196da0254bfaf08a5e90e2e5a44b400.png

▲图/ 二十大会议报告

9f540ca5f7d6278e196c492f715e9d04.jpeg

▲图/ 国家推进产业数字化转型

f6c53142980e4e59e3a4ca67f485388d.jpeg


▲图/ 国家推进产业数字化转型

因此,无论你是学生,职业人,.net开发者还是其他语言开发者。在此都希望打开你们的心门,去接触更多精彩的领域,认识各个智慧结晶的产物,同时早做准备,抓好风向口,跟着站在山顶上的人跑。

当然,此次的重点。是举办的2022届.net conf开发者大会,2022年12月3日~4日,于上海举办。

为回馈读者和开发者们,我将给定限定名额,免费线下参与大会,认识各大佬的机会。

.NET Conf 2022 线下会场 嘉宾专属邀请票:

请通过以下链接报名:http://hdxu.cn/Gt5h2

操作步骤为:

1.点开链接,点击【我要报名】

2. 先点击【使用优惠或邀请码】并输入;

3. 兑换成功,参会票价变为0后  ,再进行购买。

备注:【使用优惠或邀请码】需要加作者微信告知:elicaliu

这里是桑小榆,不会决定你左右,但是会赋予你做决策的能力,名额有限,速来勿虑!

👇 更多有趣内容,请多关注!👇

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

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

相关文章

BZOJ 3434 时空穿梭

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id3434 题意: 思路: const int mod10007; const int N100005;int g[22][N]; int C[N][22],mou[N]; int h[22][N][13];int prime[N],cnt; int tag[N];void init() {int i,j;mou[1]1;f…

plex实现流媒体服务器_如何从Plex Media Server离线查看下载和同步媒体

plex实现流媒体服务器Streaming content from your Plex Media Server is great, but sometimes—like when you’re going to be offline or stuck with cruddy internet speeds while traveling—there’s no substitution for having a copy of the media stored on your de…

.NET Conf 2022 大会日程全曝光!!前沿、硬核、创意.....精彩就等你来!!

倒计时2天一场规模宏大,内容硬核,大咖齐聚的.NET 领域年度最大的盛会即将开幕.NET Conf 2022 12月3日-12月4日开源 安全 赋能诚邀您的加入立即扫码预约加入.NET年度盛宴!!.NET Conf China 2022.NET Conf China 2022是面向开发人员…

Linux下SSH远程连接断开后让程序继续运行解决办法

screen -S yourname #新建一个叫yourname的sessionscreen -r yourname #回到yourname这个sessionscreen -X -S [yourname # you want to kill]quit #删除无用的screen,使用时不用加中括号 screen -ls #列出当前所有的session screen -d yourname #远程detach某个ses…

wmi服务或wmi提供程序_什么是WMI提供程序主机(WmiPrvSE.exe),为什么使用那么多的CPU?...

wmi服务或wmi提供程序The WMI Provider Host process is an important part of Windows, and often runs in the background. It allows other applications on your computer to request information about your system. This process shouldn’t normally use many system re…

正在创建系统还原点_如何使Windows在启动时自动创建系统还原点

正在创建系统还原点By default, System Restore automatically creates a restore point once per week and also before major events like an app or driver installation. If you want even more protection, you can force Windows to create a restore point automaticall…

在ubuntu 16.04里使用python—scrapy将爬取到的数据存到mysql数据库中的一些随笔

一、将爬取的数据保存到mysql数据库的代码(已经能将爬取的数据保存到json文件) (1)编辑Pipeline.py文件 (2)编辑settings.py文件 二、将数据保存至mysql数据库出现的问题 (1)在将数据…

十大经典排序算法(动图演示)

转自:https://www.cnblogs.com/onepixel/articles/7674659.html 0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn)&#xff0c…

如何实现 WPF 视频封面查看器

如何实现 WPF 视频封面查看器控件名:NineGridView作 者:WPFDevelopersOrg - 驚鏵原文链接[1]:https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用.NET40;Visual Studio 2019;实现视频封面查看器NineGridView基于Grid实…

如何从Internet Explorer或Edge迁移到Chrome(以及为什么要迁移)

Google’s Chrome web browser is now more widely used than Microsoft’s Internet Explorer and Edge combined. If you haven’t switched to Chrome yet, here’s why you might want to–and how to quickly switch over. Google的Chrome网络浏览器现在的使用范围比Micro…

SQL中触发器的使用

创建触发器 是特殊的存储过程,自动执行,一般不要有返回值 类型: 1.后触发器 (AFTER,FOR)先执行对应语句,后执行触发器中的语句 2.前触发器 并没有真正的执行触发语句(insert,update…

浏览器自动化操作标准--WebDriver

WebDriver是一个浏览器远程控制协议,是一个既定标准,它本身的内容非常丰富,本文不可能全部介绍,本文仅粗略带大家了解一下WebDriver的部分内容以及一个小的实际应用。想深入了解的请参考W3C文档WebDriver. 问题背景 开发的同学都知…

versa max_如何从Mac(和Vice Versa)打开或关闭iPhone的Safari选项卡

versa maxMany of us are familiar with this scenario: you’re looking something up on our iPhone, find exactly what we’re looking for, but then have to put our phone away to attend to something else. Later, while working on your Mac, you want to continue w…

【nuxtjs 指南】解决nuxtjs本地开发跨域和防止路由与api冲突问题

目前vue很火,大部分开发者把vue当做框架首选,然而spa是对搜素引擎很不友好,就会想到ssr,在vue社区nuxtjs完美的解决了这个问题,目前nuxt还不算太成熟,当然对于新手坑比较多,当我们确定使用了这个…

WPF效果第二百零五篇之自定义导航控件

前面摸索了一下会简单玩耍自定义控件了;今天再次分享一下N年前想要在GIS实现的一个导航控件;来看看最终实现的效果:1、先来看看前台xaml布局:2、后台路由事件就参照上一篇快捷方式3、关键依赖属性的回调触发路由事件:4、内部Arc的MouseDown事件触发路由事件:private void Arc_M…

mac命令行将输出写入文件_如何在Linux中使用命令行将PDF文件转换为可编辑文本...

mac命令行将输出写入文件There are various reasons why you might want to convert a PDF file to editable text. Maybe you need to revise an old document and all you have is the PDF version of it. Converting PDF files in Windows is easy, but what if you’re usi…

Windows Socket和Linux Socket编程的区别

2019独角兽企业重金招聘Python工程师标准>>> 1、一些常用函数的移植 http://www.vckbase.com/document/viewdoc/?id1586 2、网络 socket相关程序从Windows移植到Linux下需要注意的: 1)头文件 Windows下winsock.h/winsock2.h Linux下sys/socket.h 错误处理&…

使用 C# 开发的现代轻量级 Windows 文本编辑器

你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用!Notepads 是一个具有简约设计的现代化轻量级文本编辑器,在 github 上开源,由微软大佬 Jiaqi Liu 开发。开发背…

分布式压测系列之Jmeter4.0第一季

1)Jmeter4.0介绍 jmeter是个纯java编写的开源压测工具,apache旗下的开源软件,一开始是设计为web测试的软件,由于发展迅猛,现在可以压测许多协议比如:http、https、soap、ftp、database数据库、LDAP 轻量目…

Hive学习之路 (一)Hive初识

Hive 简介 什么是Hive 1、Hive 由 Facebook 实现并开源 2、是基于 Hadoop 的一个数据仓库工具 3、可以将结构化的数据映射为一张数据库表 4、并提供 HQL(Hive SQL)查询功能 5、底层数据是存储在 HDFS 上 6、Hive的本质是将 SQL 语句转换为 MapReduce 任务运行 7、使不熟悉 MapR…