不是每一個寫代碼的都是程序員。這裏,大牛把程序員定義爲以編程爲生的人。認爲世界上存在四類程序員:科學家、碼農、專家和工匠。下面和小編一起來看看吧!

科學家,與其說他們是程序員,不如說他們是數學家。他們發明了各種理論、算法和術語,教科書上那深入的證明和計算也出自他們之手,其他的程序員都或多或少受益於他們的成果。有時,他們的一篇論文能改變整個業界的思維方式,但他們通常不會也不喜歡把那驚世駭俗的理論商業化。相比之下,他們更喜歡沉浸在科學的象牙塔裏,自得其樂,好不快活。他們是程序員中最不經常寫程序的人,甚至有一些大師一輩子都沒寫過程序,你也許認爲這違反了我們開頭對程序員的定義,可誰說編程非要用鍵盤呢?

碼農,這個詞彙來自網絡上程序員的自嘲。但在這裏,我把他定義爲軟件的主體實現者。正如農民工兄弟一樣,他們是軟件大廈的實際締造者,他們通常熟悉或精通一到兩門語言,在現有的架構下進行開發。他們是程序員中的藍領,幹着某種程度上的體力活,但這並不是什麼壞事,事情總要有人做,並且編程的自由行賦予了碼農很大的創造和學習空間。如果承認自己是個碼農並樂於所從事的工作,那也是件極其美好的事,可問題在於很多人並不是自己願意做碼農,而是被迫成爲了碼農,他們本應是音樂家、運動員或者是商人,可因爲種種原因成爲了碼農,幹着他們認爲枯燥且重複的體力活,所以他們不開心,這種狀態下工作身心俱疲,也就是他們最容易發出程序員喫青春飯,三十歲以後還寫程序沒出息,應該轉管理之類的蠢話。可當他們真的成爲了管理者,通常情況下,只有極少部分人找到了自己喜歡做的事,其他大部分碼農仍將繼續他們的抱怨。綜上,碼農是程序員中佔比最大的羣體,他們的可塑性最高,有剛學習編程的中學生,有剛參加工作的畢業生,也有工作多年仍樂於戰鬥在第一線的資深工程師;作爲碼農,首先要承認自己的身份,然後找到自己的興趣與方向,或者樂於做一輩子碼農,或者準備向其他三類程序員轉換,再或者換個行業,追尋自己最初的夢想。

專家,他們在軟件行業中摸爬滾打多年,見多識廣且精於一個或多個領域。他們在公司裏通常被稱之爲高級程序員,架構師或是CTO,他們通常設計軟件大廈的結構,然後安排碼農去實現,或者自己寫一些核心代碼。他們經驗豐富,具有技術前瞻性,能夠未雨綢繆,提前做出反應以應對軟件大廈腐朽的趨勢和業界的技術變化。他們性格單純,喜歡自己的工作,且薪水不菲,通過閱讀科學家的論文來保持與時代共同進步。軟件行業很特殊,對於製造業,傑出者與平庸者帶來的結果差距通常只有一到兩倍,可在軟件行業恐怕用千萬倍形容都不爲過。所以專家是公司的寶貝,任何一家公司都要不懈餘力去爭取或培養專家;同時,成爲專家通常也是很多碼農的終極夢想。因此,如果你是一位專家,請接受我致以的崇高敬意。

工匠,他們是很特殊的程序員,與其他程序員關心技術本身相比,他們更關注實現的結果,他們是把科學家論文商業化的實踐者。對他們而言,重要的不是技術本身,而是利用技術創造偉大的產品。因此,你很難用前端、後臺、DBA、安全工程師定義他們,爲了創造偉大的產品,他們願意學習任何技術,有些淺嘗而止,有些因爲需要或興趣而精通無比。他們通常具有叛逆精神,本能地抵制權威,喜歡挑戰某個領域的領導者,具有傳統意義的黑客精神。他們對自己和別人都極其嚴格,具有很強的控制慾,喜歡插手編程之外與產品有關的事物,如設計、UI、市場等等;因爲他們不希望因爲某個環節的失誤而降低了產品的影響力,雖然他們並不總是對的。他們喜歡編程,但編程通常並不佔據生活的全部,他們一定會有一些與大衆眼中程序員氣質不符的愛好,如吹笛子,打劍道,玩音樂,繪畫,種地,旅行等等。他們特立獨行,性格倔強,工作瘋狂,只願和優秀的人合作。因爲如此種種,在一般的企業中,工匠很難共事,他們總會覺得自己的才華受到了限制,周圍的人跟不上他的節奏;他們在某種意義上是公司的不穩定因素,要麼是天使,要麼是魔鬼;絕大部分的企業不需要工匠,但對偉大或立志偉大的企業而言,工匠比專家還重要,專家可以把現有的產品做到行業領先,但工匠可以創造新的產品從而改變遊戲規則。因爲適合工匠的企業如此至少,他們中的有些人選擇自己創辦一個。

以上是個人對程序員的分類,科學家、碼農、專家、工匠;每一個程序員依據技術能力,性格習慣一定會找到自己的類型,但通常或多或少都會具有其他類型的氣質,有工匠氣質的科學家,喜歡與碼農並將作戰的專家等等。對於每一位程序員,重要的不是你現在屬於哪種類型的程序員,而是找到你希望成爲的那種程序員,併爲之努力。每一位程序員,都會有自己的精彩。

相關文章