今天我們來(lái)聊一聊程序員枯燥的編程生活冷守,相對(duì)于其他行業(yè)來(lái)說(shuō),編程這件事肯定是枯燥的惊科,即使是對(duì)編程非常有興趣的同學(xué)和朋友也會(huì)如此拍摇,我為什么這么說(shuō)呢?大家可以不看下文译断,在這里停頓思考一下授翻。
實(shí)事求是的說(shuō),作為一個(gè)開(kāi)發(fā)者孙咪,一個(gè)程序員堪唐,我相信大多數(shù)人干同一份工作的時(shí)間基本上不會(huì)超過(guò)兩年,換句話(huà)說(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)還是很大的涧黄。我先賣(mài)個(gè)關(guān)子,一會(huì)再說(shuō)其中的關(guān)系副瀑,在這里你們也可以停頓思考一下弓熏,到底是什么關(guān)系?好糠睡,回到正題上來(lái)說(shuō):程序員的編程生活為什么很枯燥挽鞠,或者換句話(huà)說(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ì)把一些常用的工具類(lèi)浪腐,一些方法纵揍,一些控件進(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)有話(huà)語(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)有什么話(huà)語(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)注和滿(mǎ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)工具類(lèi)或者開(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í)候雀监,老板并不是專(zhuān)橫,而是由于你們不敢說(shuō)彬伦,認(rèn)為老板專(zhuā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)題闺魏,解決的最后的方式是從自己身上找到解決方法未状,而不是逃避和抱怨。