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
這里是桑小榆,不會決定你左右,但是會賦予你做決策的能力,名額有限,速來勿慮!
👇?更多有趣內容,請多關注!👇