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开源社区已经开始有所行动,不断冲击市场和影响开发者,下半年在上海举办了首场线下大会,而我也参与其中,要是没受影响那是假的。
▲图/ 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,别提有多舒服。
▲图/ .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年了这些热门领域都不会不知道吧?
另外,工业互联网,数字化经济转型也是国家未来着重的方向,我希望想要弯道超车的开发者们做好自身知识储备,抓好风向口。
▲图/ 二十大会议报告
▲图/ 国家推进产业数字化转型
▲图/ 国家推进产业数字化转型
因此,无论你是学生,职业人,.net开发者还是其他语言开发者。在此都希望打开你们的心门,去接触更多精彩的领域,认识各个智慧结晶的产物,同时早做准备,抓好风向口,跟着站在山顶上的人跑。
当然,此次的重点。是举办的2022届.net conf开发者大会,2022年12月3日~4日,于上海举办。
为回馈读者和开发者们,我将给定限定名额,免费线下参与大会,认识各大佬的机会。
.NET Conf 2022 线下会场 嘉宾专属邀请票:
请通过以下链接报名:http://hdxu.cn/Gt5h2
操作步骤为:
1.点开链接,点击【我要报名】
2. 先点击【使用优惠或邀请码】并输入;
3. 兑换成功,参会票价变为0后 ,再进行购买。
备注:【使用优惠或邀请码】需要加作者微信告知:elicaliu
这里是桑小榆,不会决定你左右,但是会赋予你做决策的能力,名额有限,速来勿虑!
👇 更多有趣内容,请多关注!👇