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

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

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

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

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

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

學校里的學科

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

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

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

職場里各行各業(yè),唯有“專業(yè)人士”,才能夠受人尊重;人們尋找?guī)椭鷷r,首先想到的也是對應領(lǐng)域里的“專業(yè)人士”。我們說一個醫(yī)生很專業(yè),除了他醫(yī)術(shù)精湛之外,還有他心系患者、盡心盡責的醫(yī)德,同樣的,對于程序員,我們除了要有犀利的技術(shù)之外,還要有對應的職業(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:“稍等一下哈…”,然后記下當前工作的上下文信息,讓自己重新回到工作時,能盡快進入狀態(tài)

4)業(yè)余時間

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

M:終于有時間學習新知識了

……

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

主動學習

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

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

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

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

個人品牌意識

《軟技能——代碼之外的生存指南》里,作者提到,程序員要學會自我營銷,在業(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)的時候,去里面檢索就好,有興趣的同學可以前去看看我對怎么使用這本書的一些感受。

敢于說不

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

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

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

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

謹慎承諾 言出必行

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

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

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

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

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

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

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

善于對付中斷

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

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

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

重視單元測試

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

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

管理時間

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

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

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

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

管理精力

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

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

管理壓力

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

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

不固執(zhí)

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

編程之外的技術(shù)

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

我的同事Peter就是這樣一個專業(yè)的程序員,作為一個前端工程師,他對網(wǎng)絡(luò)方面的知識非常熟悉,VLAN、網(wǎng)關(guān)、掩碼、信任域等等,簡直就是一本網(wǎng)絡(luò)百科全書,他操作起Linux命令行也是相當熟練,出現(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)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    947

    瀏覽量

    29734
收藏 人收藏

    評論

    相關(guān)推薦

    程序員節(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)是當今科技領(lǐng)域的核心,而C語言則是嵌入式系統(tǒng)開發(fā)中最常用的編程語言之。成為一名嵌入式C語言高手
    發(fā)表于 04-07 16:03

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

    如何成為一名嵌入式C語言高手? 嵌入式系統(tǒ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 ?334次閱讀
    適者生存,<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 ?733次閱讀
    2024<b class='flag-5'>程序員</b>的未來方向如何走?還看今朝

    1月18號“純鴻蒙”千帆啟航,程序員預備!

    Android”、與互聯(lián)網(wǎng)大廠合作已達400+家、原生開發(fā)薪資崗位來看。鴻蒙對程序員來說無疑是條非常好的道路。 鴻蒙對程序員的影響 鴻蒙的出現(xiàn),首先直接影響的是程序員。鴻蒙直接切割
    發(fā)表于 01-16 22:13

    誠邀報名 | GPT驅(qū)動的新程序員時代,開發(fā)者如何編程?

    模式,開發(fā)者們迎來了編程范式的全新變革。傳統(tǒng)的編程不再局限于編寫線性代碼和優(yōu)化邏輯,自然語言取而代之,成為了編程的新工具,這大大降低了開發(fā)的門檻。 如今,以ChatGPT、Copilot等為代表的AI工具,將全球的知識庫和代碼庫都呈現(xiàn)在用戶面前,只要有足夠的想象力,每個人都可以
    的頭像 發(fā)表于 12-11 22:20 ?479次閱讀

    程序員表白程序

    電子發(fā)燒友網(wǎng)站提供《程序員表白程序.rar》資料免費下載
    發(fā)表于 11-21 10:41 ?16次下載
    <b class='flag-5'>程序員</b>表白<b class='flag-5'>程序</b>

    嵌入式程序員應知道的幾個基本問題

    電子發(fā)燒友網(wǎng)站提供《嵌入式程序員應知道的幾個基本問題.pdf》資料免費下載
    發(fā)表于 11-20 11:21 ?0次下載
    嵌入式<b class='flag-5'>程序員</b>應知道的幾個基本問題

    智能低代碼洪流涌動程序員節(jié),華為云 Astro 觸發(fā) 1024 的乘法效應!

    ? 從人工智能至量子計算,再到最新的云原生技術(shù),越來越多的榮耀被程序員斬獲。今年 1024 程序員節(jié),華為云 Astro 向全民致敬:「低代碼高產(chǎn)出?拓荒數(shù)字化版圖——人人皆是程序員」,為全球工程師
    的頭像 發(fā)表于 11-13 09:39 ?413次閱讀
    智能低代碼洪流涌動<b class='flag-5'>程序員</b>節(jié),華為云 Astro 觸發(fā) 1024 的乘法效應!

    如何成為一名優(yōu)秀的嵌入式工程師?

    如何成為一名優(yōu)秀的嵌入式工程師?嵌入式學習的第步,首先是C語言。 1.理解內(nèi)存管理:C語言不同于高級語言,它不會自動管理內(nèi)存。因此,你需要理解并掌握如何使用malloc()、free()等函數(shù)
    發(fā)表于 11-07 15:36

    中軟國際鴻蒙生態(tài)實踐成果閃耀程序員節(jié),以智聯(lián)創(chuàng)新碼動程序世界

    專家、高校學者、開源社區(qū)領(lǐng)袖、軟件百強企業(yè)大咖以及廣大程序員起面對面交流,解鎖行業(yè)前沿新技術(shù),預見行業(yè)發(fā)展新趨勢。 在24日下午舉辦的“2023中國國際開源論壇”上,中軟國際智能物聯(lián)網(wǎng)軍團(AIG)產(chǎn)品與研發(fā)管理部總經(jīng)理、OpenHa
    的頭像 發(fā)表于 10-27 09:30 ?448次閱讀
    中軟國際鴻蒙生態(tài)實踐成果閃耀<b class='flag-5'>程序員</b>節(jié),以智聯(lián)創(chuàng)新碼動<b class='flag-5'>程序</b>世界