0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何成為一名專業(yè)的程序員

工程師人生 ? 來源:工程師吳畏 ? 2018-11-30 10:21 ? 次閱讀

“專業(yè)”,在百科里有下面這三種解釋:

學(xué)校里的學(xué)科

生產(chǎn)部門里的業(yè)務(wù)部門

有知識修養(yǎng)的專門職業(yè)者;職業(yè)畫家[演員等],職業(yè)選手;內(nèi)行,專家

標(biāo)題中的“專業(yè)”,指的是第三種解釋。請注意這個詞——“有知識修養(yǎng)”,有知識還不夠,還要有修養(yǎng)。

職場里各行各業(yè),唯有“專業(yè)人士”,才能夠受人尊重;人們尋找?guī)椭鷷r,首先想到的也是對應(yīng)領(lǐng)域里的“專業(yè)人士”。我們說一個醫(yī)生很專業(yè),除了他醫(yī)術(shù)精湛之外,還有他心系患者、盡心盡責(zé)的醫(yī)德,同樣的,對于程序員,我們除了要有犀利的技術(shù)之外,還要有對應(yīng)的職業(yè)修養(yǎng)。

業(yè)余選手 vs 專業(yè)主義

面對同樣一件事情,業(yè)余程序員(Amateurs)和專業(yè)程序員(Majors)往往有不同表現(xiàn):

1)看到爛代碼時

A:WTF?。?! 這代碼誰寫的!

M:讓我來重構(gòu)它

2)項目進度緊張

A:哎,時間那么緊,考慮不了那么多了,先把功能做了再說

M:我得找經(jīng)理商量,這么短時間是不可能把這個功能完全做好的

3)被同事打斷時

A:要么馬上被從工作中帶走,“啊,怎么啦”,要么很不耐煩,“少煩我,沒看我這正忙么”

M:“稍等一下哈…”,然后記下當(dāng)前工作的上下文信息,讓自己重新回到工作時,能盡快進入狀態(tài)

4)業(yè)余時間

A:終于有時間好好睡個懶覺了

M:終于有時間學(xué)習(xí)新知識了

……

最近閱讀了一些關(guān)于程序員職業(yè)素養(yǎng)的書籍,發(fā)現(xiàn)專業(yè)的程序員,大都有下面這些特質(zhì):

主動學(xué)習(xí)

專業(yè)的程序員懂得不斷精進自己的專業(yè)技能,抽出時間來學(xué)習(xí)。就像《歡樂頌》里的趙醫(yī)生一樣,帶上你的Mac,找一家安靜的咖啡廳,待上一個上午,看最新的醫(yī)學(xué)文獻。程序員也要這樣做,必須不斷地更新自己的技能,提高自己的“基線”。

這里的基線是一個很重要的概念,用吳軍老師的話來說就是:

每個人的基線都不一樣,民間科學(xué)家的基線,決定了他們就算奮斗一生,最多也只能到達中科院科學(xué)家的基線。

我們只有通過不斷地學(xué)習(xí),才能用知識把自己墊高,站的更高,才能看的更遠。

個人品牌意識

《軟技能——代碼之外的生存指南》里,作者提到,程序員要學(xué)會自我營銷,在業(yè)界打造自己的個人品牌。而在工作中也一樣,對公司和同事來說,你的名字就是一個品牌。別人一提到你的名字,就會想到這人的代碼寫的怎么樣、看他的代碼累不累、實現(xiàn)的功能質(zhì)量怎么樣、Bug多不多…

專業(yè)的程序員會努力打造和維持自己的個人品牌,在同事心目中樹立一個品牌的形象。

代碼潔癖

專業(yè)的程序員不會僅僅滿足于實現(xiàn)功能,他們還會主動優(yōu)化自己的代碼。

他們會聞到自己代碼里的壞味道,對變量命名、函數(shù)、注釋等進行重構(gòu)優(yōu)化。

專業(yè)的程序員遵守童子軍軍規(guī)——“讓營地比你來時更干凈”,他們知道“破窗”的危害,他們有代碼潔癖。

不畏懼任何代碼

專業(yè)的程序員在開發(fā)之前,會閱讀相關(guān)模塊的代碼,因為他們知道,文檔會撒謊,但是代碼不會。不管代碼寫的多難看,他們都知道,那才是反映系統(tǒng)真實運作機制的“文檔”。

如果代碼寫的非常一般,他們會對其進行一小步一小步的重構(gòu),每次重構(gòu)之后都會運行單元測試,以確保自己的改動沒有對原先功能造成影響。

如果這個模塊之前沒有足夠的單元測試,那么在開始重構(gòu)之前,專業(yè)的程序員會主動補充測試用例,因為他們知道,如果自己連測試用例都寫不出來,就根本談不上理解了這個模塊,也就根本沒資格去動這塊代碼。

如果代碼根本無法正常運行,在很多情形下都有Bug,那么專業(yè)的程序員不會浪費時間去重構(gòu),他們會選擇重寫。

重構(gòu),是在不改變代碼外在行為的前提下,對代碼作出修改,以改進程序的內(nèi)部結(jié)構(gòu)。 —— 《重構(gòu)》,Martin Fowler

在這里墻裂推薦大家,把《重構(gòu)》這本書放在自己座位旁邊,你不必一下子把這本厚厚的“重構(gòu)字典”看完,因為它就是一本字典,在你需要重構(gòu)的時候,去里面檢索就好,有興趣的同學(xué)可以前去看看我對怎么使用這本書的一些感受。

敢于說不

專業(yè)的程序員懂得主動掌控自己的工作,如果有一個需求最早也要在周五才能完全,但是領(lǐng)導(dǎo)要求必須在周三之前,他們不會說,“好,我盡量”,因為那不僅是在欺騙自己,還是在欺騙經(jīng)理,最后傷害的是整個團隊。他們會跟經(jīng)理商量,如果要在周三之前完成,哪些功能是無法實現(xiàn)的,讓經(jīng)理作出取舍。

與此相反,不專業(yè)的程序員,往往會屈服于經(jīng)理的權(quán)威,最終交付一個代碼質(zhì)量極差、還帶有很多Bug的功能。

《程序員的思維修煉》中提到了德雷福斯模型,這個模型對“新手”的定義就是——只會按照指令列表做事,如果你不懂得說不。把別人交給你的每一件事都接下來,那你和“新手”也沒什么區(qū)別了。

不要以為你說“不”會辜負了經(jīng)理的期望,相反,答應(yīng)一件自己完成不了的事情才是對經(jīng)理最大的辜負。學(xué)會說不,恰恰是你靠譜的表現(xiàn)。人們都喜歡真實的人,經(jīng)理也不例外。

謹慎承諾 言出必行

專業(yè)的程序員不會輕易許下承諾,如果承諾,那必定是他自己能夠完全掌握的事情,而不是承諾需要依賴他人的事情。

比如你的模塊需要依賴Peter的模塊,你就不能承諾既把自己的模塊開發(fā)完成,還可以跟Peter的模塊完成對接,因為對接可以完成地前提是Peter能夠按時交付他的模塊,而這不是你能控制的。你能承諾的只有跟Peter一起坐下來,討論一下對接的方案,然后每天互相匯報一次各自的開發(fā)進度。

專業(yè)的程序員還懂得及時匯報風(fēng)險。有些事情確實很難預(yù)測,這時候你就要去調(diào)整別人對你的預(yù)期,盡早向你的承諾對象發(fā)出預(yù)警,跟他溝通有沒有更好的解決方案。Peter就經(jīng)常干這種事,每當(dāng)工作被堵塞時,他會主動地跟項目經(jīng)理說,“Bob,幫忙看個問題”,“Bob,感覺周三之前完成有很大風(fēng)險啊…”

不在狀態(tài)不好的時候?qū)懘a

剛和老婆吵了一架,然后回去公司,心煩意亂地寫代碼?

通宵定位問題,然后在疲憊不堪時打算修改代碼解決這個Bug?

專業(yè)人士不會這么做,他們知道,在狀態(tài)不好的時候?qū)懘a,只會寫出一堆Bug。

善于對付中斷

編程時總免不了被同事打斷,一個突如其來的電話會議,右下角突然冒出來的聊天信息,還有Peter突然從背后過來的擁抱…

面對“打斷”,專業(yè)的程序員懂得說,“稍等一下…”,然后他們會在記下當(dāng)前工作的上下文信息,讓自己重新回到工作時,能盡快進入狀態(tài)。

當(dāng)然,如果你在跟別人結(jié)對編程,或者你用了TDD,那么保存上下文信息就變得非常簡單。

重視單元測試

專業(yè)的程序員知道單元測試的重要性,他們會把測試代碼和產(chǎn)品代碼看的一樣重要,他們還會使用TDD。

關(guān)于單元測試的重要性和TDD,我在之前的文章中有介紹過,歡迎閱讀:如何說服你的同事使用TDD

管理時間

專業(yè)的程序員對待會議的三項原則:

拒絕那些與自己無關(guān)的會議;

如果進入會議后發(fā)現(xiàn)自己沒必要參加,那么安靜的離席;

尊重對方的時間。只召集那些必要的同事參加會議,并且會在會議前整理好會議的主題和議程。

管理精力

專業(yè)的程序員能夠讓自己精力充沛地投入到工作中。

他們知道保持充足的睡眠,知道通過一些體力活動,來放松自己的大腦。

管理壓力

專業(yè)的程序員會盡量避免壓力,他們謹慎承諾,不答應(yīng)做不到的事情;他們保持代碼的整潔,方便問題定位和重構(gòu)代碼;他們堅持著自己的編碼原則,對自己交付的功能有很大信心,就算有Bug,也能很快定位處理。

而當(dāng)壓力來臨時,專業(yè)的程序員不會驚慌失措,因為他們了解他們負責(zé)的代碼的邏輯,如果有不懂的地方,他們會及時溝通,向他人求助。

不固執(zhí)

專業(yè)的程序員不會在一條道上耗費太多時間,一旦發(fā)現(xiàn)這是個死胡同或者泥潭,就會及時抽身,往回走。

編程之外的技術(shù)

專業(yè)的程序員不會是“離開了編輯器就渴死的魚”,他們具備計算機原理、TCP/IP協(xié)議這些計算機學(xué)科的基礎(chǔ)知識,他們對常用的Shell命令牢記于心,他們還善于使用各種工具的快捷鍵來提升他們的工作效率。

我的同事Peter就是這樣一個專業(yè)的程序員,作為一個前端工程師,他對網(wǎng)絡(luò)方面的知識非常熟悉,VLAN、網(wǎng)關(guān)、掩碼、信任域等等,簡直就是一本網(wǎng)絡(luò)百科全書,他操作起Linux命令行也是相當(dāng)熟練,出現(xiàn)問題了,需要定位,他會說,“給我環(huán)境信息,我上去看看”,然后就是各種查找日志、抓包分析,他敲鍵盤的速度也是賊快賊快,我想,這大概是我見過最完美、最酷炫、最專業(yè)的程序員了吧。

以上就是我總結(jié)出來的專業(yè)程序員的特質(zhì)。你心目中專業(yè)的程序員還有哪些好的職業(yè)素養(yǎng)呢?歡迎在評論區(qū)里和大家一起分享!讓我們一起做一只既有技術(shù),又有修養(yǎng)的程序猿!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    952

    瀏覽量

    29809
收藏 人收藏

    評論

    相關(guān)推薦

    TMS320C6000程序員指南

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000程序員指南.pdf》資料免費下載
    發(fā)表于 12-24 17:19 ?0次下載
    TMS320C6000<b class='flag-5'>程序員</b>指南

    TMS320C55x DSP CPU程序員參考補充

    電子發(fā)燒友網(wǎng)站提供《TMS320C55x DSP CPU程序員參考補充.pdf》資料免費下載
    發(fā)表于 12-21 11:36 ?0次下載
    TMS320C55x DSP CPU<b class='flag-5'>程序員</b>參考補充

    UCD3138A64/UCD3138128程序員手冊

    電子發(fā)燒友網(wǎng)站提供《UCD3138A64/UCD3138128程序員手冊.pdf》資料免費下載
    發(fā)表于 12-09 14:42 ?0次下載
    UCD3138A64/UCD3138128<b class='flag-5'>程序員</b>手冊

    機械革命發(fā)布CODE AI程序員

    近日,英特爾新質(zhì)生產(chǎn)力技術(shù)生態(tài)大會在成都舉行,機械革命作為重要參展商帶來了多款明星產(chǎn)品引爆全場!其中更是在AI PC軟件生態(tài)產(chǎn)品發(fā)布分論壇上,Intel、智譜、機械革命三方聯(lián)合發(fā)布了專為程序員設(shè)計的CODE AI程序員本,成為
    的頭像 發(fā)表于 11-30 10:34 ?410次閱讀

    Linux驅(qū)動程序程序員指南

    電子發(fā)燒友網(wǎng)站提供《Linux驅(qū)動程序程序員指南.pdf》資料免費下載
    發(fā)表于 11-22 15:53 ?0次下載
    Linux驅(qū)動<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南

    AI編程工具會不會搶程序員飯碗

    AI編程工具可輔助編程,減少手動編碼,提升效率,對程序員有積極影響也有挑戰(zhàn)。程序員需深化技能、拓寬知識應(yīng)對。長遠看,AI與人類程序員將共生共榮。
    的頭像 發(fā)表于 11-08 10:17 ?175次閱讀

    第五屆長沙·中國1024程序員節(jié)開幕

    據(jù)官方媒體報道,10月24日;? 第五屆長沙·中國1024程序員節(jié)在湖南湘江新區(qū)開幕;本次中國1024程序員節(jié)以“智能應(yīng)用新生態(tài)”為主題。設(shè)置有岳麓對話、技術(shù)英雄會、主題峰會及賽事、展覽等活動,
    的頭像 發(fā)表于 10-25 15:42 ?204次閱讀

    程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動!這不僅是場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每
    的頭像 發(fā)表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動!這不僅是場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每
    的頭像 發(fā)表于 07-04 09:00 ?67次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    如何成為一名嵌入式C語言高手?

    如何成為一名嵌入式C語言高手? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域的核心,而C語言則是嵌入式系統(tǒng)開發(fā)中最常用的編程語言之。成為一名嵌入式C語言高手
    發(fā)表于 04-07 16:03

    如何成為一名嵌入式C語言高手?

    如何成為一名嵌入式C語言高手? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域的核心,而C語言則是嵌入式系統(tǒng)開發(fā)中最常用的編程語言之成為一名嵌入式C語言高手
    發(fā)表于 03-25 14:12

    適者生存,程序員最終會流向哪……

    程序員沒有永遠的護城河??!就目前的互聯(lián)網(wǎng)大環(huán)境來看,it行業(yè)已經(jīng)是……
    的頭像 發(fā)表于 03-11 17:11 ?417次閱讀
    適者生存,<b class='flag-5'>程序員</b>最終會流向哪……

    薪資高、青春飯,是不是程序員=青樓?

    花期太短。技術(shù)迭代快,年齡大容易失業(yè)。 就這幾年的互聯(lián)網(wǎng)環(huán)境而言,不管是前端、Java、Android開發(fā)等等行業(yè)。已經(jīng)感受到程序員不是太卷就是工作難找,薪資過低。以前高工現(xiàn)在拿著中低程序員薪資
    發(fā)表于 03-06 21:32

    瑞薩Flash程序員V3 發(fā)布說明

    電子發(fā)燒友網(wǎng)站提供《瑞薩Flash程序員V3 發(fā)布說明.pdf》資料免費下載
    發(fā)表于 02-19 09:37 ?1次下載
    瑞薩Flash<b class='flag-5'>程序員</b>V3 發(fā)布說明

    2024程序員的未來方向如何走?還看今朝

    這幾年的IT行業(yè)想必大家已經(jīng)感受到了,Android、Java、前端等等程序員都經(jīng)歷了大廠……
    的頭像 發(fā)表于 02-02 09:45 ?833次閱讀
    2024<b class='flag-5'>程序員</b>的未來方向如何走?還看今朝