聽說你在為天天寫業務程式碼而煩惱?
寫業務程式碼一般就是完成業務應用的功能,天天寫業務程式碼的程式設計師也被戲稱為CURD程式設計師,CURD就是增(create)、改(update)、查(read)、刪(delete)的意思。CURD程式設計師每天的工作內容就是根據業務邏輯需要對資料庫資料進行增刪改查,這在很多人看來是沒有技術含量的,尤其是工作了多年的程式設計師,認為這無法提高他們的技術能力,寫了十年的業務程式碼,卻和寫一年業務程式碼的年輕人差別不大,可能對某個框架更為熟悉一點罷了,此外,少有其他方面的優勢。
實際上,每個能正常被使用的業務系統都需要CURD的工作,但僅僅是CURD也是無法完成一個比較複雜的業務系統的。一個業務系統除了需要編寫功能程式碼,還要有需求分析、架構設計、詳細設計、功能編寫、測試、整合部署等等工作內容,CURD頂多是功能編寫的子集。因此,如果你的任務只是CURD,那時間長了以後確實可能會厭煩,並且覺得技能得不到提高。也因此,論壇裡常有人求助於高手,問怎樣才能脫離這種CURD工作:
高手們的答案也不一致,有的說寫業務程式碼同樣牛逼,CURD是核心競爭力呢,有的建議換工作,擺脫CURD,也有的說要做個有心人,多解決實際問題,自然就會提高,等你水平到一定程度了,就可以不做這類工作了。
而在我看來,不寫業務程式碼的人,也不一定有多牛掰,他們也不過是根據需求實現一些東西,也需要領域知識和程式設計技能,只不過有些領域知識和我們常見的上層應用業務知識有比較大的區別。即使是核心開發人員,如果只是負責實現某個模組,而且他並沒有多少進取心,每天只是讀讀文件和協議,調調介面來實現功能,沒有深挖原理,也不關注其他方面的技術,沒有全域性視角,那他其實頂多也算是一個搬磚的,離高手還是有很大的距離。
而做CURD工作的,也並不是完全學不到東西。CURD從小的方面來說,是老闆的需求,從大的方面來說,是社會需求,需要大量的人來從事這個工作。CURD程式設計師離業務比較近,有機會可能也必須去更多地理解業務,而業務知識也是一種領域知識,具有深刻的領域知識的人,在職場中是有競爭優勢的。因此,你可以在CURD的同時,多瞭解業務知識,或者多思考怎麼把CURD做得更好,比如製作一些模板工具,想辦法通過各種方式來提高工作效率,這樣面對同樣的工作時,你會更輕鬆因而也更具有競爭力。如果你真想擺脫或者基本擺脫,那麼在平時就應該注意積累其它方面的知識,能完成其他CURD程式設計師難以完成的任務,在工作中,你要懂得合理地越俎代庖、份內份外!
越俎代庖本來是個貶義詞,指的是越權辦事、多管閒事的行為,但在這裡是褒義詞。其他同事遇到難題時,你主動幫忙解決,在你自己任務已經完成的情況下,可以研究其他人的工作內容,這樣可以在其他同事只有不太好的實現方案時,適時給出你自己的方案,這樣也不出現搶活邀功的現象。即便你的方案使用不上,你有過自己的思考研究,對自己的成長也是有利的。
可能有同學會說了,你這是站著說話不腰疼,平時加班加點才能完成任務,哪有時間去做這樣的事情。如果是這樣,那你的確難以擺脫這種境況,要不你就安心地每天CURD,要不就換個更適合自己的工作。就我自己而言,工作這麼多年,和行業裡其他人相比,加班真的很少,不過我花在學習上的時間,可能會比大部分人都多。這個學習,包括工作的時候去學習其他人的任務所涉及的技能、整個專案的架構原理,以及其它自己認為有用或感興趣的技術。一般來說,工作上的事情,我工作時間就解決可能也順便理解其原理了,而要拓寬知識和技術面,一般就靠下班時間。下班時間學習的東西,有時候也是跟工作內容相關的,即便是不相關的內容,可能也會在你工作時給你帶來靈感,或者有助於你更快理解工作上的事情,這樣的話也使得你能更快速完成工作任務,於是又有更多的時間去學習和擴寬技能,形成一個良性迴圈。關於良性迴圈和惡性迴圈,可以參考我之前的文章:停止無謂抱怨,構建你的良性迴圈系統。
總之,如果你覺得自己目前就是CURD程式設計師並且不滿足於此,那你可以先思考如果把CURD做得更好更高效更少出bug,同時儘可能地熟悉業務,爭取在某個業務方向上比普通人更熟悉。因為你最熟悉CURD,可能在換工作時,人家還是傾向於給你提供CURD的崗位,因此如果要擺脫這種境況,就需要你在業餘時間加倍地學習、實踐新技能,然後在機會到來時,才有可能抓住它。“機會永遠只留給有準備的人”,以我的親身體會,這句話在99.9%的情況下應該是正確的,希望我們都記住它!
原文發表於:聽說你在為天天寫業務程式碼而煩惱?
歡迎關注公眾號: