月薪3000和月薪30000的程序員差別是什麼?

今天有時間想跟大家聊聊在我們所接觸的程序員當中,那些高級的程序員和初級程序員的差距在哪裡?為什麼工資差距會如此之大?

一、初級程序員在寫代碼,高級程序員在設計

大多數程序員在拿到需求之後,直接就開始寫代碼了。從而就會遇到功能越來越多然後代碼就越來越複雜的情況,一個產品下來自己甚至都不知道該如何維護,一上線還掛掉了。

但是高級程序員會思考整體的頁面應該如何設計,一個頁面分為哪些板塊,有什麼事件,每個事件應該dispatch哪些action,整個模塊有哪些數據放在store當中,哪些模塊放在state裡面。

如何提升自己的代碼能力?

很多人會告訴你,去看源碼,哪些很簡單的函數,別人是怎麼實現的?要你從效率,邏輯和註釋看別人是如何設計的,並且看完要練習,光看不練的都是耍流氓。這是有一定的效果,如果你要從初級程序員升級高級程序員的必經之路。

下面說說TDD(測試驅動開發),我來推薦TDD的問題在於,現在很多程序員並沒有寫測試用例和重構的能力!TDD主要是在寫代碼之前就要寫測試用例,那麼在寫的時候你自然而然的就會思考每一個函數和每一個模塊等問題。從中可以認識到自己原有的編程方法不足,並且彌補,在養成拿到需求之後去設計代碼再去寫的習慣之後,就不需要再用TDD了。

二、初級、高級程序員拿到需求之後思考的問題:

我見過有的實習生,和應屆生看到以前的老代碼用的框架不夠新,就開始吐槽,改成新的,一上線發現掛了。其實這種情況很常見,這就是初級程序員所考慮的技術問題,然而高級程序員會考慮什麼?在技術的基礎上,會直接想到業務需求。畢竟技術是為業務服務的;

其實看到技術不夠新,我們應該去想為什麼以前的人要這麼寫,為什麼用這些東西?真是因為那時候還沒有出新的東西或者是別人比你差?

我在HW的時候,負責一個版本的開發,這個版本的工作量大約是2000行左右,但是我除了做完這個功能,還將關聯的功能全部掌握清楚了,代碼(大約10000行)也全部看了一遍,做完這個版本後,我對這個版本相關的整套業務全部很熟悉了。經過一兩次會議後,大家發現我對這塊掌握最熟了,接下來就有趣了:產品討論需求找我、測試有問題也找我、老大對外支撐也找我;後來,不是我負責的功能他們也找我,即使我當時不知道,我也會看代碼或者找文檔幫他們回答。最後我就成了我這個系統的“專家”了。雖然這個時候我還是做業務的,還是寫業務代碼,但是我已經對整個業務都很熟悉了。

我很喜歡引用這個故事,其實給大家一個很好的思路。企業老闆根本就不在乎你用的是什麼技術,他要的只是需求實現,產品順利上線。所以該如何突出自己?那就是重業務,在技術層面能夠把業務的需求放在前面。

月薪3000和月薪30000的程序員差別是什麼?

三、初級程序員接需求,高級程序員砍需求

一般的程序員在產品經理,運營說了一些需求之後,滿口答應的去接,之後加班幾天,做了很多根本沒有價值的東西,還有很多重複的工作。但是真正高級的程序員,有一個自己對業務的理解之後,會說出自己的看法。

該如何判斷一個需求是不是該接呢?

這也就是上一個階段提到的,思考這個需求背後的價值。為什麼要做這個東西?做了之後能有什麼要的效果?如果一個產品功能最後出不來什麼價值,是完全可以不要做的。或者是這個產品產生出來的價值與消耗的人力物力時間成本不匹配,那麼需求也是需要商量的。

四、初級程序員解決一個問題,高級程序員解決一類問題

初級程序員完成一個項目,出現問題都是一個一個解決,按時按量的完成。但是高級程序員在做什麼呢?封裝幾個共用組件到npm大家需要都可以來用。初級程序員常說:這個很簡單,過幾天給你。高級程序員:這個我以前寫過一個模塊,我去找找,馬上給你。

有的程序員會問我,我們要上線一個功能,小程序和H5都要再寫;但是我會說,我見過的程序員,寫了一個可以將vue代碼轉化為小程序的框架,一套vue代碼,不僅是H5,小程序都可以用。

打個總結

想要成為一個高級程序員,拿年薪的那種。要有思想的轉變,不僅要代碼寫的好,做的東西需要更有用,要常常思考積極主動。你想成為高級程序員嗎?

如果你想要成為高級程序員,黑馬程序員附送全套的在職加薪課程,只限本週。關注+私信回覆:高級。即可獲得全套課程,帶你在職加薪!


分享到:


相關文章: