今天我們來(lái)聊一聊程序員枯燥的編程生活,相對(duì)于其他行業(yè)來(lái)說(shuō),編程這件事肯定是枯燥的,即使是對(duì)編程非常有興趣的同學(xué)和朋友也會(huì)如此,我為什么這么說(shuō)呢?大家可以不看下文,在這里停頓思考一下。
實(shí)事求是的說(shuō),作為一個(gè)開(kāi)發(fā)者,一個(gè)程序員,我相信大多數(shù)人干同一份工作的時(shí)間基本上不會(huì)超過(guò)兩年,換句話說(shuō)就是:一個(gè)程序員在同一家公司干同一份工作超過(guò)兩年的很少。
很多人說(shuō),程序員是一個(gè)跳槽比較頻繁的職業(yè),每一次的跳槽都會(huì)使工資大幅度甚至成倍的增長(zhǎng),所以這時(shí)候就會(huì)有很多人跳出來(lái)說(shuō):程序員跳槽的目的很簡(jiǎn)單,就是因?yàn)橄霛q工資了。在這里,我想說(shuō):我并不否認(rèn),確實(shí)有很多開(kāi)發(fā)者和程序員跳槽是為了漲工資,但是我相信作為一個(gè)有責(zé)任,有志向的程序員,跳槽中最大的目的并非漲薪,而是換一個(gè)更好的環(huán)境,更好的成長(zhǎng)平臺(tái)和發(fā)展空間,漲薪只不過(guò)是跳槽過(guò)程中附帶的價(jià)值。
聊到這里,你們可能會(huì)說(shuō):你是不是跑題了?今天不是聊枯燥的編程生活,以及如何改變這種現(xiàn)狀嗎?其實(shí)這是有關(guān)聯(lián)的,而且有時(shí)候可能關(guān)聯(lián)還是很大的。我先賣個(gè)關(guān)子,一會(huì)再說(shuō)其中的關(guān)系,在這里你們也可以停頓思考一下,到底是什么關(guān)系?好,回到正題上來(lái)說(shuō):程序員的編程生活為什么很枯燥,或者換句話說(shuō):是什么導(dǎo)致程序員的編程很枯燥的?
其實(shí)原因無(wú)非就是以下這幾種:
同一個(gè)環(huán)境,同一種技術(shù)
什么意思?跟同一個(gè)世界,同一個(gè)夢(mèng)想不同的是,你在一個(gè)公司待久了,使用你所知的一種技術(shù),重復(fù)的干著一個(gè)項(xiàng)目,你說(shuō)時(shí)間久了,是不是很無(wú)聊呢?如果在一個(gè)公司做一個(gè)項(xiàng)目,長(zhǎng)達(dá)一年,在這一年里,你僅僅是用你所知的技術(shù)一步一步的去實(shí)現(xiàn),學(xué)不到新的技術(shù)和知識(shí),技能得不到提高?這時(shí)候,無(wú)聊自然就會(huì)隨之而來(lái),悄無(wú)聲息??赡軐?duì)于公司來(lái)說(shuō),這是有意義的工作,但是對(duì)你來(lái)說(shuō):這是重復(fù)的,機(jī)械的搬磚。
粘貼復(fù)制……
其實(shí)和上邊道理差不多。工作每天都是從網(wǎng)上粘貼復(fù)制,項(xiàng)目就是這樣被壘起來(lái)的。很多人離開(kāi)了網(wǎng)絡(luò),基本上就喪失了百分之八十的編程能力,而剩余的那百分之二十還是抄書(shū)。很多程序員編程不思考,而是簡(jiǎn)單的粘貼復(fù)制。
當(dāng)然,聰明點(diǎn)的程序員還是會(huì)封裝的,自己就會(huì)把一些常用的工具類,一些方法,一些控件進(jìn)行封裝,留著以后備用。在公司開(kāi)發(fā)完 A 項(xiàng)目,然后開(kāi)發(fā) B 項(xiàng)目的時(shí)候,就會(huì)很簡(jiǎn)單,把自己封裝的東西拿過(guò)來(lái)直接用,這樣機(jī)械的復(fù)用或者粘貼復(fù)制是不是很無(wú)聊呢?答案是肯定的。
重復(fù)的迭代和維護(hù),以及修改 Bug
其實(shí)當(dāng)一個(gè)項(xiàng)目進(jìn)入測(cè)試階段以及后期維護(hù)和迭代階段的時(shí)候,開(kāi)發(fā)人員基本上百分之九十的工作任務(wù)就是在修復(fù) Bug ,而不是在研發(fā)新功能,學(xué)習(xí)和使用新技術(shù)。天天在維護(hù)和更新迭代這個(gè)項(xiàng)目的時(shí)候,其實(shí)工作是很乏味的。
沒(méi)有思想的程序員
其實(shí)很多時(shí)候,程序員是沒(méi)有話語(yǔ)權(quán)的,尤其是在小的創(chuàng)業(yè)公司,因?yàn)槔习寤旧暇褪钱a(chǎn)品經(jīng)理,需求說(shuō)讓你做什么,你就得做什么?讓你去實(shí)現(xiàn)什么,你就得實(shí)現(xiàn)什么。不會(huì)讓你參與到產(chǎn)品的討論當(dāng)中來(lái)的,當(dāng)然,如果老板讓你參加,估計(jì)由于產(chǎn)品經(jīng)理是老板,你也沒(méi)有什么話語(yǔ)權(quán)和發(fā)言權(quán)。
再這樣一個(gè)沒(méi)有個(gè)人思想和獨(dú)立思考的開(kāi)發(fā)環(huán)境中,你是不是很無(wú)聊呢?只是機(jī)械的去實(shí)現(xiàn)老板想法的一個(gè)工具?是的,你就是一個(gè)工具,這種現(xiàn)狀那又該如何改變呢?
你們感覺(jué)還有哪些讓程序員編程無(wú)聊的原因呢?
既然,有原因了,那就得想解決辦法,而不是選擇逃避。我們?cè)撊绾胃淖冞@種編程無(wú)聊的狀態(tài)呢?
如何解決編程無(wú)聊的狀態(tài)
首先,面對(duì)環(huán)境的限制,技術(shù)的瓶頸,其實(shí)我們應(yīng)該想的是如何實(shí)現(xiàn)自我的需求和改變,而不是通過(guò)逃避和跳槽,其實(shí)你應(yīng)該知道,不管你怎么跳槽,你都會(huì)將要面臨這種無(wú)聊的狀態(tài),除非你這一輩子都在跳槽中度過(guò)。你試想一下:你今天跳槽了了另外一個(gè)公司,解決當(dāng)時(shí)的無(wú)聊狀態(tài),學(xué)到了新東西,可是在新公司待了一段時(shí)間,又發(fā)展受限,技術(shù)又遇到瓶頸該怎么辦?還跳槽,一直跳槽?
遇到問(wèn)題,首先想到的應(yīng)該是解決辦法,而不是用跳槽的方式來(lái)逃避。比如:我們可以嘗試輪崗,讓前端去學(xué)習(xí)后臺(tái),后臺(tái)來(lái)學(xué)習(xí)前端,大家互相幫忙,一起交流學(xué)習(xí),是不是能夠解決你這種無(wú)聊呢?還比如:公司的一群小伙伴,可以一起嘗試著去創(chuàng)造和維護(hù)一個(gè)開(kāi)源項(xiàng)目,再或者長(zhǎng)期舉辦一些技術(shù)分享,拓展視野。其實(shí)從本質(zhì)上講要學(xué)會(huì)利用公司資源來(lái)改變無(wú)聊的現(xiàn)狀,當(dāng)然公司也應(yīng)該在實(shí)現(xiàn)自己利益的前提下,還要關(guān)注和滿足員工自己自我需求的實(shí)現(xiàn)才行。
其次,不要整天想著粘貼和復(fù)制,應(yīng)該自己學(xué)習(xí)思考和學(xué)習(xí),尤其是編程的思想和原理,平時(shí)多看,多讀一些項(xiàng)目的源碼,系統(tǒng)源碼,看看高手是如何實(shí)現(xiàn)這個(gè)功能的,學(xué)會(huì)其中的思想和原理,不要僅僅從網(wǎng)上找到相關(guān)工具類或者開(kāi)源項(xiàng)目就什么都不想,什么都不管,直接感覺(jué)能用就行。這樣從本質(zhì)上解決不了你自身的任何問(wèn)題,當(dāng)然,這確實(shí)讓你實(shí)現(xiàn)項(xiàng)目功能,但是哪有如何呢?又不是你的。
再次,維護(hù)和迭代,以及修改 Bug ,不管你跳槽到哪家公司,這都是避免不了的,你感覺(jué)天天修改 Bug 和維護(hù)項(xiàng)目很無(wú)聊,那該如何改變這個(gè)現(xiàn)狀呢?
不要出現(xiàn) Bug 就暴力的去堵,很多程序員解決 Bug 的方式就是暴力解決法,舉個(gè)例子:比如報(bào)了空指針異常,他們就會(huì)在報(bào)空指針異常的地方做不為空的判斷,這也太暴力了,宜疏不宜堵。你應(yīng)該找到報(bào)空指針的真正原因,看看有沒(méi)有更好的,更合適的解決方式,這樣可能就會(huì)一下子解決很多地方的相同的 Bug 。
還可以嘗試著想著辦法,如何優(yōu)化一段代碼,可能是不是有更好的方式可以提高性能,加入你的代碼性能提高1秒的速度,你可能就會(huì)很高興,就感覺(jué)很有成就感,這樣就不會(huì)很枯燥和無(wú)聊了,反而很高興。
在 code review 的時(shí)候,可以項(xiàng)目的人之間相互 code review ,這樣大家可以互相來(lái)找茬,既能夠?qū)W到對(duì)方的編程的方法和方式,還能夠把代碼共同維護(hù)好,何樂(lè)而不為呢?
最后,關(guān)于沒(méi)有思想的程序員來(lái)說(shuō),這個(gè)其實(shí)是公司文化的一部分,當(dāng)然可能跟公司太小有關(guān),其實(shí)不管產(chǎn)品經(jīng)理聽(tīng)不聽(tīng)你的,你都可以嘗試著大膽說(shuō)出自己的想法和看法,有時(shí)候,老板并不是專橫,而是由于你們不敢說(shuō),認(rèn)為老板專橫。如果你的想法更好,我不相信你老板傻到還在堅(jiān)持自己?當(dāng)然,我并否認(rèn)有這樣傻的老板。總之,要鼓勵(lì)討論的公司企業(yè)文化,要大膽說(shuō)出自己想法。說(shuō)不定,有一天,你們老板由于沒(méi)有聽(tīng)你的,而感到后悔,這可能也是你的成就感。
最后的最后,我想說(shuō):公司環(huán)境,還有技術(shù)瓶頸,還有一些導(dǎo)致無(wú)聊的原因其實(shí)那都是外部原因,本質(zhì)上遇到這些問(wèn)題,解決的最后的方式是從自己身上找到解決方法,而不是逃避和抱怨。
-
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30412
發(fā)布評(píng)論請(qǐng)先 登錄
程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)
如何在 樹(shù)莓派 上編寫和運(yùn)行 C 語(yǔ)言程序?

零基礎(chǔ)入門:如何在樹(shù)莓派上編寫和運(yùn)行Python程序?

阿里云升級(jí)通義靈碼AI程序員,全面上線
Triton編譯器與GPU編程的結(jié)合應(yīng)用
TMS320C55x DSP CPU程序員參考補(bǔ)充

BQ78412應(yīng)用程序編程接口

UCD3138A64/UCD3138128程序員手冊(cè)

機(jī)械革命發(fā)布CODE AI程序員本
Linux驅(qū)動(dòng)程序程序員指南

AI編程工具會(huì)不會(huì)搶程序員飯碗
軟通動(dòng)力子公司鴻湖萬(wàn)聯(lián)助陣?guó)櫭?024程序員節(jié)成功舉辦

第五屆長(zhǎng)沙·中國(guó)1024程序員節(jié)開(kāi)幕
技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:掌握程序結(jié)構(gòu)知識(shí)

評(píng)論