實(shí)話實(shí)說(shuō):只會(huì).NET,會(huì)讓我們一直處于鄙視鏈、食物鏈的下游
本文轉(zhuǎn)載自微信公眾號(hào)「全棧碼農(nóng)畫像」,作者小碼甲 。轉(zhuǎn)載本文請(qǐng)聯(lián)系全棧碼農(nóng)畫像公眾號(hào)。
面試了大小廠,有收獲也有沮喪, 結(jié)合工作和面試談一談看法:
1. .NET 技術(shù)棧的現(xiàn)狀
目前.NET普遍用在數(shù)字化轉(zhuǎn)型的中小企業(yè),或者用于一些OA、CRM等中小流量的站點(diǎn)。
.NET 技術(shù)頻繁升級(jí),雖然我自己也升級(jí)到最新的.NET 5, 但是并不會(huì)刻意關(guān)注新版本的功能。
從我實(shí)際使用看,每次這種升級(jí)也沒(méi)帶上肉眼可見(jiàn)的改變;或者說(shuō)每次升級(jí),并不能從Java、Javascript群體中搶得一塊肉食。
這與一些自媒體上吹噓的能力、拋出的JD并不匹配, 當(dāng)然我這樣說(shuō),肯定會(huì)引來(lái)很多罵戰(zhàn)。
- 每次這種擠藥膏式的小升級(jí),我內(nèi)心只會(huì)覺(jué)得是不是早期.NETcore 1.0設(shè)計(jì)不達(dá)預(yù)期,并不如當(dāng)初橫空出世時(shí)標(biāo)榜的這么牛逼;
乃至每次升級(jí)都鼓噪.NET 2.0最佳、3.0最佳、5.0最佳,以后出.NET6,7,8是不是又打臉.NET5是最佳設(shè)計(jì)。
- .NET 客觀上講處在追趕Java的時(shí)代, 這里我用時(shí)代這個(gè)時(shí)間概念;物競(jìng)天擇,不進(jìn)則退,其他語(yǔ)言JAVA、javascript 也在進(jìn)化。
主流技術(shù)大廠的技術(shù)洞察力相比信息化轉(zhuǎn)型的中小企業(yè)更加深厚,主流技術(shù)大廠的技術(shù)雷達(dá)里面目前選擇性忽略.NET, 他們寧愿用Go,也不會(huì)用已經(jīng)20歲的.NET
二面鵝廠的對(duì)話:".NET只能windows服務(wù)器下”,當(dāng)我準(zhǔn)備說(shuō).NET 5年前已經(jīng)跨平臺(tái), 有runtime時(shí), 他們適時(shí)打斷了我的回答,下一個(gè)話題。另一大廠的面試官一開(kāi)始也有這樣的疑惑。
(不管你愿不愿意承認(rèn),市場(chǎng)上確實(shí)存在語(yǔ)言鄙視鏈(???_??))
2. .NET的價(jià)值
大前端、微服務(wù)、云原生蓬勃發(fā)展, 但是大多數(shù)時(shí)候主流.NET技術(shù)還是用來(lái)做api 。
從我近2份工作(6年),不管是技術(shù)經(jīng)理還是開(kāi)發(fā)人員自身 ,都將.NET 定位為api;
不是說(shuō)我們要刻意迎合微服務(wù)、云原生這些高精尖概念,
但是客觀上講,微服務(wù)、云原生提高了應(yīng)對(duì)復(fù)雜業(yè)務(wù)的天花板,提高了應(yīng)對(duì)高并發(fā)、高可用、可伸縮場(chǎng)景的能力, 而這些能力也是主流大廠目前需要的。
??? 你現(xiàn)在回想一下, .NET結(jié)合微服務(wù)、云原生用到了哪些知名項(xiàng)目上;就算你有心想用,這些技術(shù)理念里面的必要組件在純.NET技術(shù)棧能信手拈來(lái)嗎?敢用嗎?
網(wǎng)上有個(gè)調(diào)侃,. net從不加班,從不996,這側(cè)面反映. net沒(méi)能用于大場(chǎng)面。(手動(dòng)狗頭,輕噴)
所以, 如果.NET還是被定義為api語(yǔ)言,或者大多數(shù)時(shí)候CRUD用于中小站點(diǎn),那我內(nèi)心覺(jué)得.NET程序員確實(shí)只能值目前的市場(chǎng)價(jià)。
(本文標(biāo)題所說(shuō)的食物鏈,還可以解構(gòu)為:使用這門語(yǔ)言,得到的報(bào)酬讓我們能吃的食物鏈)
以上的1,2點(diǎn)都是基于普遍觀感,不排除有少量大佬將.NET技術(shù)體系用到高精尖項(xiàng)目,并據(jù)此獲得產(chǎn)品高價(jià)值、個(gè)人高回報(bào)。
?? 那怎么辦? 我也是吃.NET這碗飯的。還是那句話,弱化.NET在你核心技術(shù)體系中的地位 。
一萬(wàn)年太久,只爭(zhēng)朝夕。我建議大家一開(kāi)始就使用主流成熟技術(shù) + 主流技能樹(shù)。
3. 掌握通用的技術(shù)架構(gòu)
微服務(wù)的服務(wù)獨(dú)立性客觀上為.NET參與高精尖項(xiàng)目提供了可能性, 微服務(wù)中各種技術(shù)語(yǔ)言可充分參與,取決與你的技術(shù)選型、習(xí)慣、喜好、
語(yǔ)言在整個(gè)體系中是最異變的,不變的是支撐整個(gè)業(yè)務(wù)的通用架構(gòu)。
比如說(shuō) nginx/負(fù)載均衡,又比如說(shuō)后端三大中間件
- 緩存 redis memorycache
- 消息 rabbitmq kafka
- 搜索 Elasticsearch
不管技術(shù)怎么升級(jí), 這些核心的架構(gòu)點(diǎn)始終存在, 現(xiàn)在有redis memorycache,以后有xxCache也不是沒(méi)可能,但是這個(gè)技術(shù)點(diǎn)落地的場(chǎng)景基本不會(huì)變動(dòng)。
提醒:.NET 程序員不要認(rèn)為使用 sdk Client 對(duì)接了Elasticsearch rabbitmq, 就掌握了這些中間件。
??? 我個(gè)人的技術(shù)體系是 弱前端+后端(.NET) +sql+ DevOps,我希望具備一個(gè)完整的、能落地的web技術(shù)棧,當(dāng)然整個(gè)技術(shù)棧里面有側(cè)重,這個(gè)你從我公眾號(hào)內(nèi)容也能感受到。
4. 不要頻繁造輪子,也不要圖新鮮去使用什么不知名的小技能點(diǎn)
舉個(gè)栗子:目前主流的Devops框架 Jenkins、Gitlab-CI等, 你倒騰什么中小輪子codeing等,
不管是職業(yè)生涯、還是大廠面試,誰(shuí)會(huì)用,誰(shuí)會(huì)問(wèn)。
當(dāng)然如果你已經(jīng)倒騰并已經(jīng)點(diǎn)亮這顆并不一定閃耀的技能點(diǎn)了,那沉淀下來(lái)的東西還是你的, 也無(wú)妨。
時(shí)間很寶貴!
5. 多深究 多提問(wèn)
多深究,多倒騰,每一個(gè)你叫的出名的技術(shù)棧/技能點(diǎn),都是經(jīng)過(guò)開(kāi)發(fā)者擼掉上萬(wàn)根頭發(fā)絲弄出來(lái)的,后面也經(jīng)過(guò)市場(chǎng)上的千錘百煉。
他們的技術(shù)深度 不是我們寫一兩個(gè)Demo就能參透
- 為什么會(huì)產(chǎn)生這個(gè)技能點(diǎn)?
- 整個(gè)數(shù)據(jù)流是怎樣的?
- 為什么這樣設(shè)計(jì)?
- 這個(gè)技能點(diǎn)如果用到其他場(chǎng)景(云、集群)我需要注意什么
- 這一段寫法看似是騷操作, 開(kāi)發(fā)者為什么推薦這么做?
很多時(shí)候,我們一時(shí)也難以參透, 沒(méi)關(guān)系,記下來(lái), 隨著時(shí)間的流逝,認(rèn)知和視野會(huì)解鎖這些問(wèn)題。
最怕的是遇到問(wèn)題選擇性忽略:
“這是騷操作寫法,為什么?官方這么寫,哎呀我也這么寫吧,不知道!”
6. 多關(guān)注產(chǎn)品和市場(chǎng)
工作時(shí)以主人翁的心態(tài)Cover所有與你有關(guān)的事情,什么意思?參見(jiàn)美帝"長(zhǎng)臂管轄權(quán)" 。
把成果推到市場(chǎng)驗(yàn)證,你的產(chǎn)品體驗(yàn)做得好、市場(chǎng)反饋爆棚,資本家受益,自然會(huì)給你多分一點(diǎn)口糧。
回過(guò)頭來(lái),如果在可預(yù)期的未來(lái),這個(gè)產(chǎn)品不會(huì)好過(guò),我建議你適時(shí)執(zhí)行“沉末成本”“時(shí)間成本”的方案, 改變不了公司,那就改變自己。
產(chǎn)品有沒(méi)有潛力,能不能增長(zhǎng)?
- 可對(duì)比公司年報(bào)增長(zhǎng)率;該產(chǎn)品的貢獻(xiàn)率;業(yè)內(nèi)對(duì)公司產(chǎn)品的關(guān)注度;競(jìng)品的能級(jí)。(上市公司)
- 從公司產(chǎn)品的活躍度、留存來(lái)感受;從你們團(tuán)隊(duì)的實(shí)力或者態(tài)度來(lái)感受;公司年會(huì)老板在畫餅的時(shí)候提到你們團(tuán)隊(duì)的次數(shù);把你們的產(chǎn)品手把手推給認(rèn)識(shí)的素人,看看他們的評(píng)價(jià)。 (非上市公司)
--- 兩者可結(jié)合---
我承認(rèn)產(chǎn)品和團(tuán)隊(duì)是有生命周期的,不可能一直優(yōu)秀,這就有點(diǎn)像NBA魚腩球隊(duì)重建,有的甚至是擺爛重建。
落實(shí)到個(gè)人,每個(gè)人背后的環(huán)境不一樣、每個(gè)人所處的階級(jí)不一樣、每個(gè)人所處的人生階段也不一樣,最后每個(gè)人的訴求也會(huì)不一樣。
7. 做好向上匯報(bào)、平級(jí)管理、向下共情
技術(shù)人養(yǎng)成了教條式輸入輸出的思維, Stateless Serverless ,技術(shù)人是標(biāo)準(zhǔn)的工具人。
- 向上匯報(bào) 不是說(shuō)要你耍語(yǔ)言藝術(shù),搞花花腸子;
- 向上匯報(bào)是一種職業(yè)素養(yǎng):在上級(jí)提出需求的時(shí)候,給出幾個(gè)可行方案和方案的預(yù)期、風(fēng)險(xiǎn)點(diǎn)、人工成本;在項(xiàng)目進(jìn)行中,主動(dòng)以百分比形式匯報(bào)進(jìn)度和遇到的新的風(fēng)險(xiǎn)點(diǎn)。
平級(jí)管理 也不是說(shuō) 茶水間家長(zhǎng)里短,閑言碎語(yǔ);
而是說(shuō) 與同事技術(shù)溝通,形成合理的技術(shù)預(yù)期;給產(chǎn)品經(jīng)理一個(gè)讓他難以反駁的拒絕理由;給跨部門同事一個(gè)承諾必答的Deadline節(jié)點(diǎn)。
你據(jù)此在上級(jí)、平級(jí)同事中形成技術(shù)影響力,也是極好的。做到這些,剩下的你我無(wú)法決定。
- 向下共情
每個(gè)人的認(rèn)知都會(huì)成長(zhǎng),時(shí)間會(huì)對(duì)齊你們當(dāng)時(shí)的分歧。不干預(yù) 多引導(dǎo), 多站在對(duì)方角度思考。
8. 多記錄,多分享
大多數(shù)人智力和能力的最高峰都是在高三階段,相信那時(shí)大家每個(gè)科目都有一個(gè)錯(cuò)題本。
好記性不如爛筆頭,魯迅肯定沒(méi)有說(shuō)過(guò)。
記錄是一個(gè)腦力活動(dòng),能刻意讓我們有層次、有角度、有策略的思考問(wèn)題。