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