寫業務代碼通常就是完成業務應用的功能,每天寫業務代碼的程序員也被戲稱爲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%的狀況下應該是正確的,但願咱們都記住它!測試
原文發表於:據說你在爲每天寫業務代碼而煩惱?spa
歡迎關注公衆號:架構設計