程式設計師該如何改變枯燥的程式設計生活?

澀郎發表於2017-08-23

今天我們來聊一聊程式設計師枯燥的程式設計生活,相對於其他行業來說,程式設計這件事肯定是枯燥的,即使是對程式設計非常有興趣的同學和朋友也會如此,我為什麼這麼說呢?大家可以不看下文,在這裡停頓思考一下。

實事求是的說,作為一個開發者,一個程式設計師,我相信大多數人幹同一份工作的時間基本上不會超過兩年,換句話說就是:一個程式設計師在同一家公司幹同一份工作超過兩年的很少。

很多人說,程式設計師是一個跳槽比較頻繁的職業,每一次的跳槽都會使工資大幅度甚至成倍的增長,所以這時候就會有很多人跳出來說:程式設計師跳槽的目的很簡單,就是因為想漲工資了。在這裡,我想說:我並不否認,確實有很多開發者和程式設計師跳槽是為了漲工資,但是我相信作為一個有責任,有志向的程式設計師,跳槽中最大的目的並非漲薪,而是換一個更好的環境,更好的成長平臺和發展空間,漲薪只不過是跳槽過程中附帶的價值。

聊到這裡,你們可能會說:你是不是跑題了?今天不是聊枯燥的程式設計生活,以及如何改變這種現狀嗎?其實這是有關聯的,而且有時候可能關聯還是很大的。我先賣個關子,一會再說其中的關係,在這裡你們也可以停頓思考一下,到底是什麼關係?好,回到正題上來說:程式設計師的程式設計生活為什麼很枯燥,或者換句話說:是什麼導致程式設計師的程式設計很枯燥的?

其實原因無非就是以下這幾種:

同一個環境,同一種技術

什麼意思?跟同一個世界,同一個夢想不同的是,你在一個公司待久了,使用你所知的一種技術,重複的幹著一個專案,你說時間久了,是不是很無聊呢?如果在一個公司做一個專案,長達一年,在這一年裡,你僅僅是用你所知的技術一步一步的去實現,學不到新的技術和知識,技能得不到提高?這時候,無聊自然就會隨之而來,悄無聲息。可能對於公司來說,這是有意義的工作,但是對你來說:這是重複的,機械的搬磚。

貼上複製……

其實和上邊道理差不多。工作每天都是從網上貼上複製,專案就是這樣被壘起來的。很多人離開了網路,基本上就喪失了百分之八十的程式設計能力,而剩餘的那百分之二十還是抄書。很多程式設計師程式設計不思考,而是簡單的貼上複製。

當然,聰明點的程式設計師還是會封裝的,自己就會把一些常用的工具類,一些方法,一些控制元件進行封裝,留著以後備用。在公司開發完 A 專案,然後開發 B 專案的時候,就會很簡單,把自己封裝的東西拿過來直接用,這樣機械的複用或者貼上複製是不是很無聊呢?答案是肯定的。

重複的迭代和維護,以及修改 Bug

其實當一個專案進入測試階段以及後期維護和迭代階段的時候,開發人員基本上百分之九十的工作任務就是在修復 Bug ,而不是在研發新功能,學習和使用新技術。天天在維護和更新迭代這個專案的時候,其實工作是很乏味的。

沒有思想的程式設計師

其實很多時候,程式設計師是沒有話語權的,尤其是在小的創業公司,因為老闆基本上就是產品經理,需求說讓你做什麼,你就得做什麼?讓你去實現什麼,你就得實現什麼。不會讓你參與到產品的討論當中來的,當然,如果老闆讓你參加,估計由於產品經理是老闆,你也沒有什麼話語權和發言權。

再這樣一個沒有個人思想和獨立思考的開發環境中,你是不是很無聊呢?只是機械的去實現老闆想法的一個工具?是的,你就是一個工具,這種現狀那又該如何改變呢?

你們感覺還有哪些讓程式設計師程式設計無聊的原因呢?

既然,有原因了,那就得想解決辦法,而不是選擇逃避。我們該如何改變這種程式設計無聊的狀態呢?

如何解決程式設計無聊的狀態

首先,面對環境的限制,技術的瓶頸,其實我們應該想的是如何實現自我的需求和改變,而不是通過逃避和跳槽,其實你應該知道,不管你怎麼跳槽,你都會將要面臨這種無聊的狀態,除非你這一輩子都在跳槽中度過。你試想一下:你今天跳槽了了另外一個公司,解決當時的無聊狀態,學到了新東西,可是在新公司待了一段時間,又發展受限,技術又遇到瓶頸該怎麼辦?還跳槽,一直跳槽?

遇到問題,首先想到的應該是解決辦法,而不是用跳槽的方式來逃避。比如:我們可以嘗試輪崗,讓前端去學習後臺,後臺來學習前端,大家互相幫忙,一起交流學習,是不是能夠解決你這種無聊呢?還比如:公司的一群小夥伴,可以一起嘗試著去創造和維護一個開源專案,再或者長期舉辦一些技術分享,擴充視野。其實從本質上講要學會利用公司資源來改變無聊的現狀,當然公司也應該在實現自己利益的前提下,還要關注和滿足員工自己自我需求的實現才行。

其次,不要整天想著貼上和複製,應該自己學習思考和學習,尤其是程式設計的思想和原理,平時多看,多讀一些專案的原始碼,系統原始碼,看看高手是如何實現這個功能的,學會其中的思想和原理,不要僅僅從網上找到相關工具類或者開源專案就什麼都不想,什麼都不管,直接感覺能用就行。這樣從本質上解決不了你自身的任何問題,當然,這確實讓你實現專案功能,但是哪有如何呢?又不是你的。

再次,維護和迭代,以及修改 Bug ,不管你跳槽到哪家公司,這都是避免不了的,你感覺天天修改 Bug 和維護專案很無聊,那該如何改變這個現狀呢?

  1. 不要出現 Bug 就暴力的去堵,很多程式設計師解決 Bug 的方式就是暴力解決法,舉個例子:比如報了空指標異常,他們就會在報空指標異常的地方做不為空的判斷,這也太暴力了,宜疏不宜堵。你應該找到報空指標的真正原因,看看有沒有更好的,更合適的解決方式,這樣可能就會一下子解決很多地方的相同的 Bug 。
  2. 還可以嘗試著想著辦法,如何優化一段程式碼,可能是不是有更好的方式可以提高效能,加入你的程式碼效能提高1秒的速度,你可能就會很高興,就感覺很有成就感,這樣就不會很枯燥和無聊了,反而很高興。
  3. 在 code review 的時候,可以專案的人之間相互 code review ,這樣大家可以互相來找茬,既能夠學到對方的程式設計的方法和方式,還能夠把程式碼共同維護好,何樂而不為呢?

最後,關於沒有思想的程式設計師來說,這個其實是公司文化的一部分,當然可能跟公司太小有關,其實不管產品經理聽不聽你的,你都可以嘗試著大膽說出自己的想法和看法,有時候,老闆並不是專橫,而是由於你們不敢說,認為老闆專橫。如果你的想法更好,我不相信你老闆傻到還在堅持自己?當然,我並否認有這樣傻的老闆。總之,要鼓勵討論的公司企業文化,要大膽說出自己想法。說不定,有一天,你們老闆由於沒有聽你的,而感到後悔,這可能也是你的成就感。

最後的最後,我想說:公司環境,還有技術瓶頸,還有一些導致無聊的原因其實那都是外部原因,本質上遇到這些問題,解決的最後的方式是從自己身上找到解決方法,而不是逃避和抱怨。

歡迎大家關注我的公眾號:非著名程式設計師。特別宣告:未經允許,禁止任何形式的轉載!

相關文章