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

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

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

怎樣才算是一名合格的程序員

工程師人生 ? 來源:工程師吳畏 ? 2018-12-31 16:50 ? 次閱讀

正文

最近同一部門另一個項目組的一位程序員被“主動離職”了,雖然我未曾與這個程序員共事過,但是聽過一兩次他的內(nèi)部分享,感覺技術(shù)還是挺厲害的。后來與一個消息靈通的同事聊天,才知道真正的原因是老大覺得A難以溝通,搞得其他程序、QA都怨聲載道。工作這些年,身邊的好多同事來了又走了,主動或被動,這不禁讓我思考什么樣的程序員算得上合格的程序員。

雖然大家都自稱“碼農(nóng)”、“IT民工”,但我相信,這僅僅是自嘲或者自黑,大多數(shù)程序員應(yīng)該還是認(rèn)可自己的這個職業(yè)的,當(dāng)然,我算不上一個優(yōu)秀的程序員,因為我都不曾在開源社區(qū)貢獻(xiàn)過代碼、也不精通白板算法、對技術(shù)也不狂熱、不geek。我的目標(biāo)是做一個合格的程序員:把本職工作做好,對得起自己的薪水,在生活與工作平衡,996什么的我是難以接受的。

對于程序員而言,技術(shù)過關(guān)當(dāng)然是非常重要的,這是硬實力。然而只會技術(shù)也是不行的,畢竟大多數(shù)的程序員還是要與人打交道,軟實力也是不可或缺的。怎樣才能算合格,我認(rèn)為有以下幾點:

扎實的基礎(chǔ)

計算機領(lǐng)域是一個快速更新?lián)Q代的領(lǐng)域,每隔一段時間都會有新的語言、框架、思想產(chǎn)生,追隨每一個新技術(shù)很累。但仔細(xì)想想,事實上并沒有那么多新東西。很多新東西只不過是已有技術(shù)的封裝、或者借鑒的其他領(lǐng)域的技術(shù)。比如緩存數(shù)據(jù)庫redis、memcached,其基本思想不就是操作系統(tǒng)中的緩存嗎;分布式存儲中的分片與復(fù)制集,不就是文件系統(tǒng)中RAID的擴展嗎;還有Google的MapReduce框架,不就是來源于函數(shù)式編程語言的map reduce嗎。掌握好計算機基礎(chǔ)知識,能夠更本質(zhì)的看待新技術(shù)。

善用工具

磨刀不誤砍柴工,打造好自己的工具集非常重要。

開發(fā)中會用到大量的工具,不管是編輯器、調(diào)試工具還是監(jiān)控工具。大家都喜歡爭論哪個IDE更好,然而這并沒有多大意義,關(guān)鍵在于能夠熟練的使用自己喜歡的工具,掌握各種快捷鍵,高度自定義,這樣能夠大大提高工作效率。而且對于日常中重復(fù)的操作,最好腳本自動化,這里推薦以下python,寫小工具還是很快的。

另外,強調(diào)程序員必備的兩個工具,那就是瀏覽器和VPN。后者大家都懂的,不多說,主要是有了后者才能發(fā)揮瀏覽器的威力。瀏覽器大家天天都在用,但是如何高效的使用,比如在指定網(wǎng)站搜索、通過標(biāo)題、url過濾、選擇合適的關(guān)鍵字 還是值得研究一下,對于程序員,要使用好瀏覽器,那還得具備下一個能力:英語

過得去的英語

不得不承認(rèn),在軟件創(chuàng)新領(lǐng)域,國內(nèi)還是落后于國外的,新的技術(shù)、一手的資料都是英文的。當(dāng)新技術(shù)被廣泛應(yīng)用之前,我們在百度搜到翻譯要么是machine translated,要么錯誤百出??捶g的最大問題取決于翻譯者本身的水平,即使翻譯水平都很高,但同一個單次往往有不同的翻譯,導(dǎo)致看文章的時候會有困惑,最好還是直接看英文原文。大多數(shù)原文,除去專業(yè)詞匯、還是比較好理解的,而且,我發(fā)現(xiàn)很多牛逼的項目,都有非常通俗易懂的文檔。

良好的編碼習(xí)慣

代碼是寫給機器執(zhí)行的,同時也是給人閱讀與維護(hù)的。維護(hù)者可能是別人、也可能是幾個月后的樣子。良好的代碼規(guī)范,必要的、清晰的注釋可以讓自己少被問候祖宗十八代。

對于代碼風(fēng)格,網(wǎng)上爭議也很多,最重要的是保持項目內(nèi)的統(tǒng)一。做為技術(shù)負(fù)責(zé)人,一定要在項目開啟之初就頂號規(guī)范,當(dāng)大量代碼被堆出來之后就很難統(tǒng)一了,然后做好新人的review。

保持學(xué)習(xí)

程序員這個職業(yè),相比其他職業(yè),可能還是要年輕許多。特別是在國內(nèi),最老的一批程序員好多都轉(zhuǎn)管理了,再過10年20年,我們會怎么樣呢,沒人知道。前段時間華為35歲程序員被離職的事情,給我們敲響了警鐘,悲哀之余,只有盡力學(xué)習(xí)了,拼不過體力就拼能力與經(jīng)驗吧

學(xué)習(xí)這個事情說起來就復(fù)雜了,我覺得兩點很重要:基礎(chǔ)、學(xué)以致用。

獨立思考

合格的程序員解決的是問題,而不是實現(xiàn)某個解決方案。產(chǎn)品經(jīng)理(特別是知道一點技術(shù)的產(chǎn)品經(jīng)理)的某個需求可能只是某個問題的解決方案,他認(rèn)為這個方法可以解決他的問題,于是把解決方案當(dāng)成了需求,而不是真正的問題。程序員應(yīng)該主動溝通,多問幾個為什么,了解真正的問題,也許能有更好的解決方案。

之前就有這么個例子,給到的需求:為每一個用戶(用戶有唯一的id標(biāo)示)生成一個唯一的邀請碼,同時也要為未來一段時間可能增加的用戶預(yù)生成邀請碼,保存到數(shù)據(jù)庫。而真正的需求是老用戶分享自己的邀請碼,如果新用戶使用了該邀請碼,則老用戶獲得相應(yīng)獎勵。而我提出的方案很簡單,直接用戶的唯一id生成可逆的邀請碼,這樣就根本無無需數(shù)據(jù)庫存儲。

產(chǎn)品經(jīng)理經(jīng)常改需求這是程序員最頭疼的事情,作為程序員應(yīng)該也站在PM的角度思考,幫助PM分析出本質(zhì)的需求,這也許可以減少需求的變更。當(dāng)然,前提是得干一行愛一行,需要對業(yè)務(wù)有一定的了解。

先思考后行動

寫代碼的時候先想清楚了再下筆,而不是先寫出一堆代碼,然后在開始修bug。

休bug的時候,多看看上下文,搞明白為什么出bug,修改這個bug可能帶來的影響,然后再修改。反面教材有兩種:第一種隨便改改就把代碼改好了,但自己心里并不清楚為什么這樣修改就修好了,撞運氣,也許還有其他同樣的bug也發(fā)現(xiàn)不了。另一種就是,頭痛醫(yī)頭腳痛醫(yī)腳,不仔細(xì)評估修改的影響,這樣往往會引入新的問題。

程序員成長的一個辦法就是修bug,修別人用不了的bug,但前提是搞清楚bug的緣由,這樣才能避免類似的錯誤,有所收獲。

順暢溝通

不是巧如舌簧、也不是忽悠達(dá)人。需要的只是耐心傾聽,然后清晰表達(dá)自己的意見。

現(xiàn)在的軟件開發(fā),已經(jīng)不再是單打獨斗的年代,大多數(shù)的軟件、產(chǎn)品都需要多人、多部門的協(xié)作。而交流、溝通是非常耗時耗力的。溝通之前,先想好目標(biāo),組織好語言,盡量不要發(fā)散、不要跑題,對事不對人。對于重要的事情,保留溝通記錄,最好有郵件,免得說不清。

溝通是門復(fù)雜的藝術(shù),最基本是聽明白、說清楚。

管理好自己的暴脾氣

作為 一個程序員,要被PM懟、要被交互懟、要被QA懟,再變態(tài)的需求都可能有,QA給你提的BUG可能也不屬于你。而且,還有豬一樣的隊友(自己在別人眼里何嘗不是這樣呢)和下屬。不管誰是誰非,發(fā)脾氣、吵架都一點用沒有,吵完還是得解決問題。calm down,有怒火也得等個幾秒再發(fā)作,也許這幾秒理智思考一下,就能解決問題。

負(fù)責(zé)任

能力(技術(shù)能力)與責(zé)任心誰更重要呢,都重要。如果一個新人有培養(yǎng)的潛力,那么責(zé)任心就更重要。兩個人,第一個技術(shù)能力很強,但責(zé)任心很差,對項目的事情也不上心;第二個能力差些,但責(zé)任心強,是自己的問題一定負(fù)責(zé)到底,即使自己不能解決也能主動詢求幫助。我覺得前者對項目的危害更大,特別是項目緊要時期,因為能力強的人一般負(fù)責(zé)的是比較復(fù)雜、困難的功能,別人上手也需要時間,這個時候如果摞擔(dān)子,bug也不修,那么就很為難了。

不負(fù)責(zé)任的典型表現(xiàn)就是扯皮、甩鍋:這不是我的bug、不關(guān)我的事。有協(xié)作的地方更容易出現(xiàn)問題,比如前端與后端、各個部門之間。如果不清楚到時是誰的問題,不妨主動一點,幫助排查。

不要總是說不會

作為程序員,總有一些工作是以前沒有做過的,也許來自產(chǎn)品人員的需求,也許來自項目自發(fā)的優(yōu)化。我見過一些程序員,在面臨未知的問題、挑戰(zhàn)時,總是習(xí)慣于說:不會、沒辦法、不可能,這樣的程序員就算不上合格的程序員。事實上,這樣的程序員是給自己過早地留好退路,事實上問題可能并沒有想象得那么困難,也許經(jīng)過一番探索就能解決。如果習(xí)慣于對未知說不,那么在別人看來就是能力不行,影響個人形象與聲譽,而且總是待在自己的舒適區(qū)也不利于自我成長。

當(dāng)然,也不是說要盲目自信,急于拍胸脯保證一定能解決,這樣往往是坑自己。

所以,面對新的需求,謹(jǐn)慎對待,既不輕易否決也不隨意承諾,而是再理清需要先去研究一下,評估是否能完成,需要的資源與時間。

聲明:本文內(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

    文章

    948

    瀏覽量

    29736
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    90后程序員的職業(yè)成長漫談

    開始,逐步了解公司的業(yè)務(wù)、文化,以及學(xué)習(xí)如何成為一名合格的職場人;19-21年,我開始負(fù)責(zé)塊完整的業(yè)務(wù),并逐漸成長為小組負(fù)責(zé)人; 2022年開始負(fù)責(zé)整個部門的架構(gòu),并且開始參與些公
    的頭像 發(fā)表于 10-15 15:24 ?80次閱讀
    90后<b class='flag-5'>程序員</b>的職業(yè)成長漫談

    程序員節(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語言高手需要長時間的學(xué)習(xí)和實踐。下面將介紹些方法和
    發(fā)表于 04-07 16:03

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

    如何成為一名嵌入式C語言高手? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域的核心,而C語言則是嵌入式系統(tǒng)開發(fā)中最常用的編程語言之。成為一名嵌入式C語言高手需要長時間的學(xué)習(xí)和實踐。下面將介紹些方法和
    發(fā)表于 03-25 14:12

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

    程序員沒有永遠(yuǎn)的護(hù)城河??!就目前的互聯(lián)網(wǎng)大環(huán)境來看,it行業(yè)已經(jīng)是……
    的頭像 發(fā)表于 03-11 17:11 ?345次閱讀
    適者生存,<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 ?736次閱讀
    2024<b class='flag-5'>程序員</b>的未來方向如何走?還看今朝

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

    Android”、與互聯(lián)網(wǎng)大廠合作已達(dá)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 ?484次閱讀

    程序員表白程序

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

    嵌入式程序員應(yīng)知道的幾個基本問題

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

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

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