3K和3w的月薪的程序员,差别在哪里?
高級(jí)程序員和低級(jí)程序員差別在哪里?
?
一、初級(jí)程序員在寫代碼,高級(jí)程序員在設(shè)計(jì)
大多數(shù)程序員在拿到需求之后,直接就開始寫代碼了。從而就會(huì)遇到功能越來越多然后代碼就越來越復(fù)雜的情況,一個(gè)產(chǎn)品下來自己甚至都不知道該如何維護(hù),一上線還掛掉了。
但是高級(jí)程序員會(huì)思考整體的頁面應(yīng)該如何設(shè)計(jì),一個(gè)頁面分為哪些板塊,有什么事件,每個(gè)事件應(yīng)該dispatch哪些action,整個(gè)模塊有哪些數(shù)據(jù)放在store當(dāng)中,哪些模塊放在state里面。
如何提升自己的代碼能力?
很多人會(huì)告訴你,去看源碼,哪些很簡單的函數(shù),別人是怎么實(shí)現(xiàn)的?要你從效率,邏輯和注釋看別人是如何設(shè)計(jì)的,并且看完要練習(xí),光看不練的都是耍流氓。這是有一定的效果,如果你要從初級(jí)程序員升級(jí)高級(jí)程序員的必經(jīng)之路。
下面說說TDD(測試驅(qū)動(dòng)開發(fā)),我來推薦TDD的問題在于,現(xiàn)在很多程序員并沒有寫測試用例和重構(gòu)的能力!TDD主要是在寫代碼之前就要寫測試用例,那么在寫的時(shí)候你自然而然的就會(huì)思考每一個(gè)函數(shù)和每一個(gè)模塊等問題。從中可以認(rèn)識(shí)到自己原有的編程方法不足,并且彌補(bǔ),在養(yǎng)成拿到需求之后去設(shè)計(jì)代碼再去寫的習(xí)慣之后,就不需要再用TDD了。
二、初級(jí)、高級(jí)程序員拿到需求之后思考的問題:
我見過有的實(shí)習(xí)生,和應(yīng)屆生看到以前的老代碼用的框架不夠新,就開始吐槽,改成新的,一上線發(fā)現(xiàn)掛了。其實(shí)這種情況很常見,這就是初級(jí)程序員所考慮的技術(shù)問題,然而高級(jí)程序員會(huì)考慮什么?在技術(shù)的基礎(chǔ)上,會(huì)直接想到業(yè)務(wù)需求。畢竟技術(shù)是為業(yè)務(wù)服務(wù)的;
其實(shí)看到技術(shù)不夠新,我們應(yīng)該去想為什么以前的人要這么寫,為什么用這些東西?真是因?yàn)槟菚r(shí)候還沒有出新的東西或者是別人比你差?
我在HW的時(shí)候,負(fù)責(zé)一個(gè)版本的開發(fā),這個(gè)版本的工作量大約是2000行左右,但是我除了做完這個(gè)功能,還將關(guān)聯(lián)的功能全部掌握清楚了,代碼(大約10000行)也全部看了一遍,做完這個(gè)版本后,我對這個(gè)版本相關(guān)的整套業(yè)務(wù)全部很熟悉了。經(jīng)過一兩次會(huì)議后,大家發(fā)現(xiàn)我對這塊掌握最熟了,接下來就有趣了:產(chǎn)品討論需求找我、測試有問題也找我、老大對外支撐也找我;后來,不是我負(fù)責(zé)的功能他們也找我,即使我當(dāng)時(shí)不知道,我也會(huì)看代碼或者找文檔幫他們回答。最后我就成了我這個(gè)系統(tǒng)的“專家”了。雖然這個(gè)時(shí)候我還是做業(yè)務(wù)的,還是寫業(yè)務(wù)代碼,但是我已經(jīng)對整個(gè)業(yè)務(wù)都很熟悉了。最后,關(guān)于C/C++編程學(xué)習(xí),小編給大家提供一個(gè)學(xué)習(xí)交流群,歡迎到訪:893154226。
我很喜歡引用這個(gè)故事,其實(shí)給大家一個(gè)很好的思路。企業(yè)老板根本就不在乎你用的是什么技術(shù),他要的只是需求實(shí)現(xiàn),產(chǎn)品順利上線。所以該如何突出自己?那就是重業(yè)務(wù),在技術(shù)層面能夠把業(yè)務(wù)的需求放在前面。
三、初級(jí)程序員接需求,高級(jí)程序員砍需求
一般的程序員在產(chǎn)品經(jīng)理,運(yùn)營說了一些需求之后,滿口答應(yīng)的去接,之后加班幾天,做了很多根本沒有價(jià)值的東西,還有很多重復(fù)的工作。但是真正高級(jí)的程序員,有一個(gè)自己對業(yè)務(wù)的理解之后,會(huì)說出自己的看法。
該如何判斷一個(gè)需求是不是該接呢?
這也就是上一個(gè)階段提到的,思考這個(gè)需求背后的價(jià)值。為什么要做這個(gè)東西?做了之后能有什么要的效果?如果一個(gè)產(chǎn)品功能最后出不來什么價(jià)值,是完全可以不要做的。或者是這個(gè)產(chǎn)品產(chǎn)生出來的價(jià)值與消耗的人力物力時(shí)間成本不匹配,那么需求也是需要商量的。
四、初級(jí)程序員解決一個(gè)問題,高級(jí)程序員解決一類問題
初級(jí)程序員完成一個(gè)項(xiàng)目,出現(xiàn)問題都是一個(gè)一個(gè)解決,按時(shí)按量的完成。但是高級(jí)程序員在做什么呢?封裝幾個(gè)共用組件到npm大家需要都可以來用。初級(jí)程序員常說:這個(gè)很簡單,過幾天給你。高級(jí)程序員:這個(gè)我以前寫過一個(gè)模塊,我去找找,馬上給你。
有的程序員會(huì)問我,我們要上線一個(gè)功能,小程序和H5都要再寫;但是我會(huì)說,我見過的程序員,寫了一個(gè)可以將vue代碼轉(zhuǎn)化為小程序的框架,一套vue代碼,不僅是H5,小程序都可以用。
?
打個(gè)總結(jié)
想要成為一個(gè)高級(jí)程序員,拿年薪的那種。要有思想的轉(zhuǎn)變,不僅要代碼寫的好,做的東西需要更有用,要常常思考積極主動(dòng)。
總結(jié)
以上是生活随笔為你收集整理的3K和3w的月薪的程序员,差别在哪里?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦燕服饰:企业数字化走得快不是真本事,走
- 下一篇: 从会计到IT老兵,我的11年转行经历