程序員和碼農有什麼不同?從這三個單詞就看得出來

碼農這個詞很早就有了,但我以爲這只是程序員偶爾自黑的幽默,直到論壇、博客上越來越多人正兒八經地自稱“碼農”、“碼畜”、“搬磚的”…

有人認爲“碼農”、“程序員”、“工程師”等等這些稱謂大可不必過於在意,名稱和真實情況是兩回事。

在這裏插入圖片描述
不過我也比較介意別人叫我碼農,可能本身並無惡意,但是感覺這個稱呼實在配不上自己的工作創意與工作程度,就像我可以說自己是屌絲,但別人這麼叫自己肯定不舒服。

舉個對比的例子:
設計師VS美工
藝人VS唱歌的
心理諮詢師VS路邊算卦
財務計算VS收銀
新媒體運營VS小編

程序員不是碼農,碼農也不是真正的程序員。不自稱"碼農"(或者其他亂七八糟的稱呼),是希望大家對編程工作的價值有明確的定位和認知,對自己的工作更加審慎、嚴格。

在學習編程的初級階段,可以偶爾調侃一下,但是總不能一直如此,這是對自己的尊重也是對編程的尊重。
在這裏插入圖片描述

01 三個單詞看碼農與程序員的區別

在英文中,“程序員”這個詞有三個對應的單詞:Coder、Programmer、Software Engineer。

Coder:運用自己熟練的語言在已有的編程環境寫代碼,按照既定的設計完成編碼即可。

Programmer:精通算法、編碼技巧和設計模式;精通幾種編程語言、開發框架和開發庫。能夠獨立編碼,解決現實問題。

Software Engineer:瞭解業務知識,知道爲什麼這樣子可以實現需求,能考慮框架的實現、開發成本、與產品經理溝通後順利完成業務。

我知道要成爲專業的程序員必須付出大量的時間和精力,我也知道現實世界是很殘酷的,有很多人一開始就是做着“增、查、改、刪”的工作,沒有什麼技術含量更別提高薪或者自己當初的理想與情懷了。

在這裏插入圖片描述
有很多人迷失在從Coder到Software Engineer轉變的路上,最大的問題不是在學習和技術上,現在各種方法、理論、總結都有很多,我認爲影響這個轉變過程的在於能否做到對技術有熱情。

“碼農”和“程序員”,從稱呼的角度來看確實不會對人產生影響,但是折射出來的是一個IT人對自身的定位和對職業是否有足夠的熱情。

有熱情的IT人不一定會發展得很好,但沒有熱情的IT人基本都發展不好。

如果你的潛意識中認爲自己處於低級職業、低級能力,對自身技術的追求得過且過,不主動學習新興技術,那又怎麼能有更好的職業規劃、更高的收入呢?

慢慢地,他們開始變成了沒有感情的cv機器,他們認爲敲代碼沒有前途沒有出路並拒絕和他人溝通,技術和業務能力停滯不前,對於他們來說碼農真的就是吃青春飯的程序員。

在這裏插入圖片描述

02 爲什麼要做程序員而不是做碼農?

舉3個不太成熟的例子:

求2的32次方:

程序員:

System.out.println(1L<<32);

碼農:

System.out.println(222222222222222222222222222…)

類屬性定義:

碼農:

public static int TYPE = 1;

程序員:

/**

  • 此策略下消息類型爲全局類型,用以通知所有符合B05協議要求的處理者

  • …… ……

*/

public static int TYPE = MsgTypes.TYPE_GLOBAL;

交換兩個數:

碼農:

void swap(int &a,int &b)

{

int temp;

temp=a;

a=b;

b=temp;

}

程序員:

void swap(int &a,int &b)

{

a=a^b;

b=a^b;

a=a^b;

}

在這裏插入圖片描述
程序員更想把技術和業務融合

大多數碼農就是軟件的主體實現者。同千千萬萬農民工一樣,他們只是軟件大廈的締造者。

也許他們熟悉或者精通幾門語言,但是在商業上面並不熟練。

程序員則會希望把自己的創意、技術和業務相結合,創造出更容易被大衆所接受的東西,對他們來說,利用技術所創造出來的產品纔是重點,技術本身不是重點。

他們渴望把現有的產品做到行業領先,甚至創造新的產品從而改變市場規則。

程序員更注重深度挖掘

和被迫996不同,真正的程序員願意爲了把一個產品研發到最好的效果,心甘情願地投入大量的精力和時間到公司的產品上面。

他們很樂意接觸核心代碼,並參與項目結構的設計,由於經驗豐富所以具有技術前瞻性,能夠未雨綢繆,對市場的變化與業界技術的更新及時做出反應。

他們經常在思索如何能夠解耦,用靈動的設計應對突然到來的變更,當掌握某種代碼的寫法,他們看到的往往是背後深層次的問題,並向專業水準看齊。
在這裏插入圖片描述

程序員更無太多功利性

程序員的工作生涯中存在一個重要的節點,就是不再傻傻地問:“學習什麼語言有前景?”、“我適合什麼語言?”、“這個語言以後能賺錢嗎?”

而是發散思維,從大局着手,開始考慮什麼語言更加適合這個項目。

我知道生活高於理想,但是程序員們,我們需要知道當技術只爲你的金錢、利益服務的時候,它就已經不再是技術了,而是一個謀生的工具罷了。

過於功利性地學習一門技術,漸漸地就會失去好奇心與興趣,所追求的高薪和崗位只會越來越遠。

一個真正的程序員並不需要什麼語言都精通,但是他一定願意從技術的角度與他人討論一門語言、一個系統,當他保持學習技術的初衷甚至帶一些自得其樂的精神,反而更容易得到別人所難以企及的東西。

程序員更加“叛逆”

一個“叛逆”的程序員,他願意聆聽你的想法但絕不會盲從,他會詢問What和Why,而不僅僅只停留在How上面。

當程序員知道你的想法,他或許會開始和團隊成員討論,或許提出另一種不同的解決方案,從本質上節省公司的時間和資源。

Programmer能更快更高效地完成任務,他們抵制自己像流水線工人一樣僅僅爲了加班而加班,並能常常堅持自己的意見,對根據手機殼顏色改變app顏色這種不合理需求說不。所以產品經理和老闆會感覺他們在挑戰權威,有點叛逆。
在這裏插入圖片描述

軟件的構建者是Programmer而不是Coder。如果你是一匹狼,而你有感受不到團隊的認同感,那你不妨換一換環境,狼只有在狼羣中才能得到自身的認同感,可能沒有令他人羨慕的安穩,但是卻擁有強大的自信、力量、尊嚴。

03 如何避免成爲一個低級的碼農?

1.不去不重視開發的公司

有一句話“選擇比努力更重要”。每個公司的情況都不一樣,有的公司不重視開發團隊,或者要求開發者按照已有的既定模式工作,程序員們不需要什麼創新點也不需要解決難題,跟着框架走就可以把項目完成。
在這裏插入圖片描述

在這種團隊氛圍中我們很難再強迫自己保持學習的驅動力,所以儘量避免去不重視開發團隊的公司。

2.和熱愛技術的人一起混

正所謂“近朱者赤近墨者黑”,如果你身邊的人都是僅僅滿足於工作內容,把奮鬥掛在嘴邊卻又不作出任何實際行動的,不僅他們很難在這個行業中走遠,而且你也會被帶偏從而原地踏步。

所以切記和熱愛技術的人一起混,通過關注他們來獲取新技術,並通過他們激勵自己。

3.主動承擔一些大項目

如果你有機會在工作中參與一些大型項目自然是好的,沒有比工作經驗更寶貴的東西了。然而不是每個人都有資格去參與,所以如果你有時間的話一定要試着去開源社區參與大型項目,你甚至都不需要把它整個做完。只是在其中解決一些接口、編譯器的問題就能讓你學會很多東西了。

加油,奧利給!
在這裏插入圖片描述

開源社區網站放在這裏了,大家有空可以上去看看:

http://www.gitee.com

http://www.gitee.com

4.關注行業動態

抓住行業動態是很重要的,對於70後來說,房地產是一個風口。那個年代的房價便宜,而中國的房地產發展突飛猛進,只要是進入房地產公司,或者說和房地產生意沾上邊的,現在都富得流油。

對於80後來說,炒股是一個風口。1990年至1991年間,上海證券交易所和深圳證券交易所先後成立,上證A股從96點攀升至現在的2800點…其中的利潤不言而喻。

對90後來說,最火的風口莫過於電商與編程,未來幾年中,大數據、算法、AI都在向你招手,當你的技術已經成熟,做風口上的豬有何不可?
在這裏插入圖片描述

簡言之,碼農寫的是代碼,程序員寫的是系統。工具正在替代人類的體力活,而“大腦思考”是最難被替代的“體力活”,一個好的程序員,不光只考慮怎麼用代碼實現功能,而要考慮整體、模塊之間關係以及效率等問題。

只有通過這樣逐步地積累經驗和長時間錘鍊,知識體系才能構建完備和豐富,才能避免淪落爲碼農,從而更好地做時代的弄潮兒。

最後

從Coder到Programmer再到Software Engineer,這不僅僅是三個單詞,更是做編程的三種階段。

在這個過程中我們要經歷枯燥、挫折、迷茫,正是因爲如此,所以我們才需要更多的創新與創意來與之抗衡。

無論我們正在經歷哪一個階段,請一定記住我們曾懷着好奇、尊重、熱情,敲下的第一個程序:“Hello,World!”

那是所有程序員的初心:改變世界。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章