攤牌了,.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.pswp.cn/news/280758.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280758.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280758.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡爬蟲練習

1.利用requests.get(url)獲取網頁頁面的html文件 import requests newsurlhttp://news.gzcc.cn/html/xiaoyuanxinwen/ res requests.get(newsurl) #返回response對象 res.encodingutf-8 print(res.text) 2.利用BeautifulSoup的HTML解析器,生成結構樹 import reques…

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…

powershell /遍歷/psobject/字符串轉換Json/json數組操作

讀取json文檔 $json (Get-Content "C:\HDDList.json" -Raw) | ConvertFrom-Json $select$json.Content.selected[0] $HddCoun$json.Content.normal.Count 遍歷數組 foreach($str in $json.versions) { echo "value: $str" } json數據轉換psobject.pro…

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是面向開發人員…

SpringMVC 數據的格式化、JSR 303數據校驗和國際化

SpringMVC 數據的格式化、JSR 303數據校驗和國際化轉載于:https://www.cnblogs.com/lusufei/p/7400963.html

C# 對程序窗口進程和進程ID

獲取當前激活窗口(頂置) GetForegroundWindow() [DllImport("user32.dll")]public static extern IntPtr GetForegroundWindow();[DllImport("user32.dll", EntryPoint "GetWindowText")]public static extern int GetW…

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…

網游的服務器瓶頸

1.服務器的數量。 2.服務器的I/O瓶頸。 3.游戲當中的突發性高并發量。 4.CPU主頻。

誰說.NET沒有GC調優,只改一行代碼就讓程序不再占用內存

經常看到有群友調侃“為什么搞Java的總在學習JVM調優?那是因為Java爛!我們.NET就不需要搞這些!”真的是這樣嗎?今天我就用一個案例來分析一下。昨天,一位學生問了我一個問題:他建了一個默認的ASP.NET Core …

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…

C# 快捷鍵/hotkey簡單例子

1.導入dll [System.Runtime.InteropServices.DllImport("user32.dll")] //申明API函數public static extern bool RegisterHotKey(IntPtr hWnd, // handle to windowint id, // hot key identifieruint fsModifiers, // key-modifier optionsKeys vk // virtual-key …

POJ 3233

矩陣分治 注意不要用 (*this) 會改變原值 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <cstdlib> using namespace std; int n, p, k; struct Matrix{int num[35][35];voi…

zookeeper和etcd有狀態服務部署

zookeeper和etcd有狀態服務部署實踐 docker etcd zookeeper kubernetes 4k 次閱讀 讀完需要 78 分鐘 0 一. 概述 kubernetes通過statefulset為zookeeper、etcd等這類有狀態的應用程序提供完善支持&#xff0c;statefulset具備以下特性&#xff1a; 為pod提供穩定的唯一…

正在創建系統還原點_如何使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…

WinForm(十六)綁定

在WinForm中&#xff0c;有很多添加和修改數據的場景&#xff0c;一般的做法是當點擊“添加”按鈕時&#xff0c;收集各控件的值&#xff0c;然后賦值給實體類的各個屬性&#xff0c;然后再完成保存工作。在修改時&#xff0c;首先把實體的原值&#xff0c;一個個賦值給控件&am…

在ubuntu 16.04里使用python—scrapy將爬取到的數據存到mysql數據庫中的一些隨筆

一、將爬取的數據保存到mysql數據庫的代碼&#xff08;已經能將爬取的數據保存到json文件&#xff09; &#xff08;1&#xff09;編輯Pipeline.py文件 &#xff08;2&#xff09;編輯settings.py文件 二、將數據保存至mysql數據庫出現的問題 &#xff08;1&#xff09;在將數據…

powershell XML操作

1.直接加入xml結構 加入<title>是為了后續能直接添加其他node&#xff0c;否則&#xff0c;后續操作可能無法AppendChild $xml "<?xml version1.0 encodingUTF-8?><case><title>please check each point</title></case>"$xm…

十大經典排序算法(動圖演示)

轉自&#xff1a;https://www.cnblogs.com/onepixel/articles/7674659.html 0、算法概述 0.1 算法分類 十種常見排序算法可以分為兩大類&#xff1a; 非線性時間比較類排序&#xff1a;通過比較來決定元素間的相對次序&#xff0c;由于其時間復雜度不能突破O(nlogn)&#xff0c…

【Python】安裝配置Anaconda

優點&#xff1a;解決Python 庫依賴問題清華安裝鏡像https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 轉載于:https://www.cnblogs.com/Neo007/p/7419253.html