不知道從什么時(shí)候開(kāi)始,“碼農(nóng)”這個(gè)名字,就成了程序員、軟件工程師的泛指,指代“寫代碼的農(nóng)民”。
為什么有這個(gè)說(shuō)法?因?yàn)榛ヂ?lián)網(wǎng)的發(fā)展實(shí)在是太快了,有各種各樣的軟件開(kāi)發(fā)需求,程序員就變得越來(lái)越稀缺,工作量也越來(lái)越大,導(dǎo)致這不得不瘋狂的加班??啾频某绦騿T們工作壓力大,經(jīng)常到各大網(wǎng)站和媒體自嘲,逐漸就形成了“碼農(nóng)”這個(gè)說(shuō)法。
工程師、程序員、碼農(nóng)
要說(shuō)起碼農(nóng)就不,就必須得說(shuō)出他的幾個(gè)近義詞。
碼農(nóng)->程序員->軟件工程師->架構(gòu)師
這可能在外行人的眼里,這些都是差不多稱謂的職位,沒(méi)必要搞清楚,直接呼喚“碼農(nóng)”還來(lái)得直接了當(dāng)。
而實(shí)際上,其實(shí)他們都是不一樣的。
比如說(shuō)碼農(nóng),寓意“寫代碼的農(nóng)民”,指那種就是寫著重復(fù)代碼,不需要經(jīng)過(guò)太多思考的程序員。這很多假如一直停留在這個(gè)階,寫著重復(fù)不需要過(guò)多思考的代碼。
程序員,就是一個(gè)寫程序的人,他跟寫代碼的人有什么區(qū)別?寫代碼的目的,就是為了制造一個(gè)程序,程序的維度去考慮這個(gè)事情,那就變得不一樣。
比方說(shuō),初學(xué)入門者,關(guān)注的是代碼,而稍有入門的人,則考慮的是“程序”,只是在逐漸培養(yǎng)出大局觀。
軟件工程師,這算是比較正規(guī)的稱謂。軟件是由程序而組成的,當(dāng)然近年“軟件”這個(gè)詞,已經(jīng)逐漸變得不常出現(xiàn)了,大家都更新喜歡用“app”這個(gè)叫法,而“app”其實(shí)就是application,就是程序。
軟件是產(chǎn)品化的程序的泛指,“工程師”,則體現(xiàn)了軟件開(kāi)發(fā)的本質(zhì),它是一種工程,是一種需要將事物結(jié)構(gòu)化組織的工作。
此外,還有架構(gòu)師。因?yàn)檐浖拈_(kāi)發(fā),是一種“工程”,將各種不同的事物進(jìn)行結(jié)構(gòu)化組織。當(dāng)這項(xiàng)工程變得龐大時(shí),它就不再純粹的只是工程了。
為什么會(huì)有架構(gòu)?這要怎么理解?其實(shí)在小霖看來(lái),我們生活中幾乎所有的事情,當(dāng)發(fā)展到一定的階段時(shí),它就會(huì)出現(xiàn)架構(gòu)。
你比方說(shuō),一個(gè)團(tuán)隊(duì),它只有2個(gè)人,工作溝通很方便。但當(dāng)一個(gè)團(tuán)隊(duì)變成20人,200人,它就自然而然的產(chǎn)生“組織架構(gòu)”。
從代碼、程序、工程、架構(gòu),對(duì)應(yīng)到碼農(nóng)、程序員、軟件工程師、架構(gòu)師,這是層層維度遞進(jìn)的關(guān)系。
這種遞進(jìn)關(guān)系,放在真實(shí)世界的很多地方,都有著相同的邏輯。
與真實(shí)的世界
假設(shè)我們要建起一棟樓房,就需要有建筑設(shè)計(jì)師,需要建筑公司,需要施工隊(duì),還有粉刷匠。
這就像軟件行業(yè),要做出一個(gè)軟件(app、網(wǎng)站等),就需要有產(chǎn)品設(shè)計(jì)師、架構(gòu)師、軟件工程師,和碼農(nóng)。
我們并不會(huì)說(shuō)建筑設(shè)計(jì)師,等同于粉刷匠,但卻很多人把從事軟件開(kāi)發(fā)的人員,稱作“碼農(nóng)”。
那只是因?yàn)槟壳埃浖€沒(méi)有達(dá)到那么的成為大眾標(biāo)準(zhǔn)化的行業(yè),很多的大眾認(rèn)知,還沒(méi)有正確的形成。
同樣的,在設(shè)計(jì)界也有類似的維度遞進(jìn),像藝術(shù)家、設(shè)計(jì)師、美術(shù)、美工。
只要是在締造一些新的東西的人,都會(huì)有這么一個(gè)層次劃分。
所以,你會(huì)喊一個(gè)建筑設(shè)計(jì)師成粉刷匠嗎?并不會(huì)。
碼農(nóng)之“道”
其實(shí),程序員們其實(shí)并沒(méi)那么忙。
程序員有最好的工作環(huán)境,安全、健康,低甲醛,無(wú)粉塵,無(wú)噪音,甚至——還經(jīng)常有時(shí)間在網(wǎng)絡(luò)上抹黑自己。
你會(huì)發(fā)現(xiàn),很多程序員的苦逼,都是程序員們自己在網(wǎng)絡(luò)上公關(guān)出來(lái)的。
一天下來(lái),偶然上上網(wǎng),刷刷微博,也不用跟人撕逼,下班打打游戲,多么的寫意。
多出來(lái)得時(shí)間,再在各大社交媒體上自嘲一下自己。
然而,碼農(nóng)的工作量大,是不爭(zhēng)的事實(shí)。但這工作量的大小,跟“架構(gòu)師”是相當(dāng)有關(guān)系的。
軟件開(kāi)發(fā)中,一個(gè)好的軟件架構(gòu),對(duì)工作量的影響,是可以有成百倍的差距。
不同人對(duì)同一個(gè)詞語(yǔ)有不同理解,有的人覺(jué)得,“碼農(nóng)”代表著高薪,有的人卻覺(jué)得,“碼農(nóng)”代表著苦逼加班。
但不得不否認(rèn),互聯(lián)網(wǎng)技術(shù),正在締造一個(gè)新的世界。
也許今天的農(nóng)民,會(huì)是未來(lái)世界的新主人。