<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一個(gè)技術(shù)總監(jiān)的忠告:你精通那么多技術(shù),為何還是不受重用?

          共 5139字,需瀏覽 11分鐘

           ·

          2021-02-02 04:17

          前段時(shí)間發(fā)了一篇文章——“中年架構(gòu)師,悲催的一天”,反響蠻多,今天這篇文章,我們繼續(xù)說架構(gòu)師大劉的故事。

          老田升職了,年薪漲到了百萬級(jí)別!

          這是大劉在加班搞技術(shù)攻堅(jiān)的時(shí)候,聽別的同事聊了那么一嘴。

          大劉心里不是滋味兒。老田和大劉其實(shí)在這家公司之前就是同事了,老田能到這家公司,說起來還是大劉推薦的。

          但是,在公司的這幾年,老田越來越受領(lǐng)導(dǎo)賞識(shí),到如今,晉升成功,赫然成了大劉的上司。大劉百思不得其解。

          大劉和老田本身在前家公司都是高級(jí)程序員,前后腳跳槽到了現(xiàn)在這家公司。

          大劉來的早,成了架構(gòu)師。老田呢,技術(shù)本就不如大劉,被大劉拉來后,先是當(dāng)了個(gè)高級(jí)工程師,只是為了避嫌,沒跟大劉一個(gè)團(tuán)隊(duì)。

          后來,老田被那時(shí)候的 Leader 賞識(shí),做了帶項(xiàng)目的組長,再后來,就是現(xiàn)在成功的晉升總監(jiān)了。而大劉,好幾年了卻依然在架構(gòu)師這崗位原地踏步,動(dòng)彈不得。

          大劉陷入了濃濃的迷茫,他自問自己工作態(tài)度毫無問題,做事情也兢兢業(yè)業(yè)。公司的技術(shù)攻關(guān),經(jīng)常也是大劉牽頭搞定。公司的技術(shù)培訓(xùn),作為架構(gòu)師的大劉儼然是一個(gè)非常權(quán)威的大牛講師。

          就算是老田,也需要時(shí)不時(shí)去找大劉請(qǐng)教一些技術(shù)難題和技術(shù)方向。可是,即使這樣,在公司技術(shù)領(lǐng)域造詣很深的大劉,卻依然沒有獲得進(jìn)身之階,被老田壓了一頭。

          大劉沒忍住,找了個(gè)不忙的日子,拉著老田去了個(gè)小飯館,在飯桌上,大劉就說起了他自己的尷尬處境以及對(duì)老田升職加薪的不解。

          老田對(duì)大劉并沒有藏著掖著,在飯桌上,他和大劉坦誠溝通了他的經(jīng)驗(yàn),并列出了他認(rèn)為他可以升職加薪的一些非常突出的能力。

          二人酒足飯飽,大劉回到家后,仔細(xì)琢磨深究,他總結(jié)了以下幾點(diǎn)。

          1. 盡量努力的多去閱讀別人的代碼,越多越好

          這點(diǎn)大劉開始并沒當(dāng)回事,可是在和老田溝通的過程中,大劉發(fā)現(xiàn),老田理解的閱讀別人的代碼和他理解的閱讀代碼是兩回事。

          大劉閱讀代碼,特別喜歡看那些開源的好代碼。跟著文檔品讀那些開源的優(yōu)秀代碼的卓越之處,每當(dāng)看到妙處,大劉都覺得學(xué)到了新東西,感覺自己技術(shù)進(jìn)步了許多。

          但是,當(dāng)大劉閱讀自己公司的各種代碼的時(shí)候,大劉是相當(dāng)沒有耐心的。他覺得別人代碼寫的太次了,他把這些代碼統(tǒng)統(tǒng)成為“屎山”。

          而老田恰恰相反。老實(shí)說,老田對(duì)市面上各種開源框架的了解水平,對(duì)各種中間件的內(nèi)部原理理解都是遠(yuǎn)遠(yuǎn)不如大劉的,經(jīng)常還需要咨詢大劉。

          但是,對(duì)于公司的各項(xiàng)目代碼,老田卻是了如指掌,對(duì)各項(xiàng)目中的那些代碼和問題都是有十分深入的了解。

          那么最終升職加薪不是大劉,這是為什么?

          二人聊完之后,大劉終于明白了。

          首先,公司除了需要大劉的技術(shù)能力,更需要的是作為技術(shù)專家解決公司實(shí)際問題的能力。

          由于大劉抵觸閱讀公司很多項(xiàng)目的代碼,所以,往往大劉的某些技術(shù)方案在落地的時(shí)候會(huì)出現(xiàn)脫節(jié)。有時(shí)候,又由于對(duì)項(xiàng)目代碼的不理解,甚至沒有給出有效的解決方案。

          而老田,由于對(duì)公司項(xiàng)目代碼了解的很深入,雖然技術(shù)能力或者說知識(shí)面不如大劉,但是卻總是能給出最合理的解決方案來。

          長此以往,老田反而比大劉更展示出了一位高級(jí)技術(shù)人員應(yīng)該具有的能力。

          很多程序員和大劉其實(shí)是一樣的,他們不喜歡自己公司的很多代碼,認(rèn)為這些代碼質(zhì)量極差,文檔也非常欠缺,對(duì)自己的成長幫助不大。

          其實(shí)這個(gè)觀念其實(shí)是很有問題的。

          對(duì)這些所謂“屎山”的代碼,你如果全都讀進(jìn)去,研究下去,你起碼會(huì)有兩個(gè)好處:

          1. 你能具體知道代碼爛在什么地方,那么以后你的代碼就不會(huì)出現(xiàn)同樣的問題——由于你知道了爛代碼爛在哪里,你一定能寫出更好的代碼,從而讓那些屎山的代碼逐漸會(huì)被自己寫的好代碼所替代。這樣一比較,你的專業(yè)能力會(huì)顯得非常突出,讓更多的人認(rèn)可你這位架構(gòu)師的能力。

          2. 你對(duì)公司這些代碼讀的越多,掌握的越多,你越不可替代——對(duì)公司這些代碼讀的越通透,你越能更快速輕松地把控這些代碼,讓以后對(duì)這些代碼的變革變得更容易。而輕松修改、革新這些代碼的能力,就會(huì)變成你在這家公司不可替代性的重要因素。

          所以,各種代碼,無論質(zhì)量好壞,都需要能讀懂讀通,并且讀的越多越好。

          能讀懂讀通任何質(zhì)量的代碼,才是真正的掌握了閱讀代碼的能力。讀的越多,則能識(shí)別代碼質(zhì)量的能力就越強(qiáng),將來自己就越能寫出更好質(zhì)量的代碼。

          2. 能準(zhǔn)確判斷項(xiàng)目的發(fā)展方向

          大劉和老田談的時(shí)候,讓大劉印象最深刻的就是,老田對(duì)項(xiàng)目發(fā)展?fàn)顟B(tài)的精準(zhǔn)判斷。

          三年前,倆人一起搞了個(gè)供公司所有業(yè)務(wù)項(xiàng)目用的監(jiān)控系統(tǒng),目的是解決公司項(xiàng)目錯(cuò)誤無法及時(shí)發(fā)現(xiàn)和處理的問題。

          當(dāng)時(shí),這套監(jiān)控系統(tǒng)公司要的急,大家匆匆設(shè)計(jì)了一版,就趕緊趕鴨子上架的做了一版。

          技術(shù)方案也沒花太多心思,怎么快怎么來。搞完之后,大劉覺得這項(xiàng)目以后也就這樣了,公司內(nèi)部項(xiàng)目,既沒有發(fā)展,也沒有什么前景。

          可是,如今和老田溝通后,大劉才吃驚的發(fā)現(xiàn),老田居然一直跟著這個(gè)項(xiàng)目,并對(duì)這項(xiàng)目進(jìn)行了無數(shù)次總結(jié)分析和優(yōu)化。

          隨著不斷地改進(jìn),這套項(xiàng)目竟然發(fā)展出來了一套非常完備的 APM 系統(tǒng),使用體驗(yàn)非常不錯(cuò)。公司的商務(wù)給客戶出解決方案的時(shí)候,經(jīng)常也會(huì)連帶著把這套監(jiān)控系統(tǒng)包含到解決方案里。客戶的反饋也很好,為公司拿下了更多的訂單。

          而大劉自己呢,為公司的核心系統(tǒng)設(shè)計(jì)了一套底層的服務(wù)調(diào)度編排框架,公司很多系統(tǒng)的底層都依賴于這套框架。

          雖然這套框架大劉自己認(rèn)為寫的很棒,但是由于部署復(fù)雜,對(duì)應(yīng)的一些輔助工具鏈也由于大劉的忽視,沒有及時(shí)開發(fā)出來。導(dǎo)致后續(xù)的新項(xiàng)目,大家寧肯用一些開源框架自己改進(jìn),也不再使用大劉的這套框架。

          分析起來,其實(shí)這也算是大劉和老田對(duì)各自項(xiàng)目的發(fā)展判斷能力的差距導(dǎo)致的。

          老田根據(jù)用戶反饋和市場行情,他感覺監(jiān)控系統(tǒng)本身應(yīng)該是有前途的。并在調(diào)研了市面上競對(duì)產(chǎn)品的基礎(chǔ)上,讓這套監(jiān)控系統(tǒng)迸發(fā)出來了絢爛的色彩。

          而大劉,高開低走,寫出來一個(gè)好框架,但是由于對(duì)框架的預(yù)期判斷錯(cuò)誤,加上對(duì)用戶反饋重視不夠,最終導(dǎo)致本來應(yīng)該非常出彩的框架就此沉淪了下去。

          3. 去主動(dòng)管理會(huì)議

          作為公司比較重要的技術(shù)專家,大量的會(huì)議是免不了的。

          大劉對(duì)此非常煩惱,經(jīng)常因?yàn)檫@些冗長的會(huì)議,耽誤了許多手頭的工作。

          特別是,大劉作為架構(gòu)師,需要大塊連續(xù)的時(shí)間去思考技術(shù)難題,解決系統(tǒng)問題,以及考慮新項(xiàng)目的架構(gòu)設(shè)計(jì)。但是頻繁的會(huì)議,把大劉的時(shí)間攪和的支離破碎。

          對(duì)于這個(gè)問題,大劉在飯桌上請(qǐng)教了老田。老田說,他也面對(duì)了這些問題,好在他通過一些自己的方法,很大程度緩解了這些問題。

          老田做了如下幾個(gè)事情:

          1. 老田對(duì)第二天的會(huì)議提前和參會(huì)各方溝通,開會(huì)時(shí)間盡量協(xié)調(diào)到一起,這樣老田能騰出一整塊兒時(shí)間,把當(dāng)日所有可能的會(huì)議都集中開完。后續(xù)老田就會(huì)有連續(xù)的時(shí)間去深度工作了。
          2. 老田會(huì)在開會(huì)前一天,把會(huì)議內(nèi)容和可能出現(xiàn)的問題都預(yù)先做功課。一方面是防止會(huì)議開著開著跑題;二是萬一出現(xiàn)爭議問題,老田可以列舉出來事先準(zhǔn)備的技術(shù)方案,這樣也能加快會(huì)議進(jìn)度。
          3. 還有,對(duì)于一些不那么重要的會(huì)議,老田一定會(huì)態(tài)度堅(jiān)決的避開或者指派別人參加。

          4. 版本控制工具的熟練應(yīng)用

          這個(gè)問題是老田主動(dòng)和大劉提出來的。

          老田發(fā)現(xiàn),對(duì)于版本工具使用不當(dāng),會(huì)耽誤開發(fā)人員很多時(shí)間。而版本控制工具,即使一些工作多年的程序員,往往也經(jīng)常會(huì)使用不當(dāng)。

          這些不當(dāng)?shù)氖褂茫瑫?huì)造成許多問題。比如,各種各樣的代碼沖突、版本重疊,莫名其妙的代碼丟失。

          對(duì)此,老田每次負(fù)責(zé)一個(gè)新項(xiàng)目,都會(huì)嚴(yán)格指定版本工具的使用規(guī)范,會(huì)花時(shí)間對(duì)開發(fā)人員統(tǒng)一培訓(xùn)版本工具的使用。同時(shí),也會(huì)把各種技巧、注意事項(xiàng)、常用命令整理好,放在內(nèi)部的共享文檔中。

          老田的這些舉措,在實(shí)踐中,大大改善了版本控制工具不當(dāng)使用造成的問題。

          有一個(gè)項(xiàng)目組在規(guī)范使用之后,竟然比之前的開發(fā)速度快了三分之一。可想而知,這個(gè)問題有多嚴(yán)重了。

          5. 不要把解決方案復(fù)雜化

          老田和大劉談了談關(guān)于技術(shù)和技術(shù)落地之間存在的問題。

          老田和大劉都發(fā)現(xiàn)有些程序員特別喜歡炫技,這些炫技某些時(shí)候會(huì)導(dǎo)致整個(gè)系統(tǒng)復(fù)雜化,最終產(chǎn)出反而不盡如人意。

          老田舉了個(gè)例子,比如,一套內(nèi)部使用的資產(chǎn)管理系統(tǒng),中間有一個(gè)需要調(diào)用公司其他項(xiàng)目接口的小功能,這種簡單的東西交給了一個(gè)比較年輕的程序員。

          結(jié)果這個(gè)程序員又是考慮對(duì)方接口不穩(wěn)定的情況,又是考慮這個(gè)功能會(huì)有使用過度頻繁的情況,還使用了緩存去儲(chǔ)存一些狀態(tài),防止頻繁調(diào)用數(shù)據(jù)庫。

          對(duì)于這種情況,從純技術(shù)角度,當(dāng)然會(huì)鼓勵(lì)人們想的越全面越好。但是,在實(shí)際落地的時(shí)候,你要明白這只是一個(gè)公司內(nèi)部使用的小項(xiàng)目,沒必要為了各種概率很低的風(fēng)險(xiǎn),把明明很小的一個(gè)功能給做的很復(fù)雜。

          針對(duì)這種問題,就需要技術(shù) Leader 及早發(fā)現(xiàn)、介入,防止出現(xiàn)過度設(shè)計(jì)、過度開發(fā)。

          6. 把任務(wù)安排的井井有條

          老田其實(shí)和大劉一樣,每天雜事兒很多,每天的任務(wù)也很多。大家對(duì)這些任務(wù)的管理能力自然就有高有低。

          老田對(duì)于任務(wù)緊急程度的判斷都是經(jīng)過深思熟慮、實(shí)際分析過的,任務(wù)之間的先后順序,也和任務(wù)交付人認(rèn)真溝通過。對(duì)一些根本沒必要的任務(wù),老田會(huì)態(tài)度堅(jiān)決的對(duì)這些任務(wù)說 No。

          大劉自我總結(jié),他這方面做的不好。首先,他安排任務(wù)容易被任務(wù)交付人的情緒影響,對(duì)方催的急,他就優(yōu)先安排。其次,任何任務(wù)大劉都沒有拒絕過,頂多是排期靠后。最后,大劉沒有考慮任務(wù)和任務(wù)之間的關(guān)系,有些任務(wù)之間是關(guān)聯(lián)的,完全可以融合一起搞定,大劉卻沒有思考,從而割裂開安排,這也是很大的問題。

          比如上次,大劉接到兩個(gè)任務(wù):1、去掉 VMware;2、MQ 版本升級(jí)。

          這兩個(gè)任務(wù)都需要業(yè)務(wù)系統(tǒng)停服才能干,大劉當(dāng)時(shí)也沒在意,兩個(gè)任務(wù)放在兩天,連續(xù)兩天停服,雖說每天停的時(shí)間不長吧……

          這倆任務(wù)完全可以放在一起,利用一次停服集中解決。這樣對(duì)用戶影響更小,業(yè)務(wù)部門也不會(huì)那么不滿。

          7. 不要死板的寫代碼

          很多程序員知識(shí)面很寬,基本功也非常扎實(shí)。但是,有一種能力,是學(xué)校教不出來、面試也不容易看出來的,就是代碼能力。

          所謂的代碼能力,有的是指寫代碼不出 Bug 的能力,有的是指算法落地能力……但這里想說的,是不寫死板的呆代碼的能力。

          這是什么意思呢?

          我們都知道,程序員少不了要維護(hù)老項(xiàng)目。在維護(hù)項(xiàng)目的時(shí)候,我們面對(duì)各種不斷的新需求,經(jīng)常要去修改代碼。

          修改代碼是個(gè)很危險(xiǎn)的事情,因?yàn)槲覀冃薷牡拇a往往會(huì)和別的功能耦合住。改了一點(diǎn)代碼,結(jié)果影響一大片功能的情況經(jīng)常出現(xiàn)。最虐心的是,這種連帶影響可能不會(huì)馬上出現(xiàn),不知道哪天就突然冒出來折騰一把。

          如果改代碼經(jīng)常出問題,這誰扛得住啊!別說你自己的技術(shù)話語權(quán)了,也別說在職場脫穎而出了,工作能不能保得住都不好說。

          所以,對(duì)于修改代碼的事情,我們需要學(xué)會(huì)的是不要寫呆代碼。再說的直白點(diǎn)就是,你不能寫完代碼運(yùn)行下沒問題就覺得正常了,你在寫代碼之前需要好好思考。

          這種思考,既不是什么搞設(shè)計(jì)模式松耦合,也不是搞功能切分獨(dú)立成塊。這種思考本質(zhì)是需要你寫代碼前去理解業(yè)務(wù),去真正明白業(yè)務(wù)在實(shí)際是怎么運(yùn)作的。

          簡單說兩個(gè)例子:

          7.1. 修改完代碼后,用戶會(huì)怎么使用你現(xiàn)在修改的功能?

          比如,你修改了注冊(cè)功能,可以兼容第三方登錄。那么,可能有的老用戶會(huì)重新注冊(cè)一個(gè)賬號(hào),以方便第三方登錄。那你對(duì)這種情況,其實(shí)該做的是綁定,而不是讓用戶重新注冊(cè)個(gè)新賬號(hào)。

          這種疏漏,等到上線之后才發(fā)現(xiàn)就晚了。這不能完全依賴產(chǎn)品經(jīng)理,作為一個(gè)技術(shù)人員本來就應(yīng)該對(duì)自己的功能做通盤的考慮,這才是真正的負(fù)責(zé)。

          7.2. 你現(xiàn)在修改的功能,會(huì)不會(huì)由于運(yùn)營需要,會(huì)換成你完全沒想過的用法?

          比如,你搞一個(gè)用戶充值功能。本來你只是想著用戶游戲內(nèi)購直接充值即可。但是,在實(shí)際上線后,有時(shí)候運(yùn)營為了方便 vip 客戶或者為了和第三方渠道互換資源,也會(huì)使用這個(gè)充值功能。

          運(yùn)營大批量的連續(xù)充值,并且這些充值轉(zhuǎn)換成系統(tǒng)中的貨幣,就像游戲中的元寶,就有可能超出 Java 中的整數(shù)上限,從而造成問題。如果你提前知道用戶、運(yùn)營人員都是怎么使用這個(gè)功能的,你就會(huì)把數(shù)據(jù)類型修改成 Long 了。

          類似的例子有很多,老田還要繼續(xù)說下去的時(shí)候,大劉給他打斷了,“扎心了,你說這些坑我沒少掉進(jìn)去。”

          后記

          通過和老田溝通,大劉知道自己的問題出在哪了。他明白了,技術(shù)只是技術(shù)人員的基礎(chǔ),在實(shí)際工作中想脫穎而出,除了要有過硬的技術(shù),還需要你的態(tài)度、你的各種軟實(shí)力,需要你把技術(shù)轉(zhuǎn)化為實(shí)際生產(chǎn)力的能力。
          大劉的故事這次先說到這里。

          上次故事回顧:中年架構(gòu)師,悲催的一天


          推薦閱讀

          從手握鋼鉗的牙醫(yī)到名滿世界的作家

          外企年薪60萬 vs?互聯(lián)網(wǎng)公司年薪90萬
          那些比“工資低”更危險(xiǎn)的事
          工作不開心想辭職可又不知道做什么
          能出奇跡的職場笨策略
          歡迎添加安曉輝老師微信a32352937
          一對(duì)一咨詢識(shí)別上圖二維碼
          文字咨詢請(qǐng)戳閱讀原文
          瀏覽 59
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  网红操逼视频在线观看免费视频在线观看 | 国产毛片毛片毛片 | 久久九九er精品在线 | 尤物193.c om | 操逼片网站 |