程式設計師一定不能光靠看書提升 | 聊聊Java初級開發的提升方式

韓楠發表於2022-08-19





責編 | 韓楠

約 2124 字 | 5 分鐘閱讀


你好,今天我想與你聊聊Java初級開發的提升方式。


這樣說吧,如果單看書或影片等資料,不去做真實的專案實踐,那麼真有可能適得其反,或者是學到的技能由於長久派不上用處而被遺忘。


先列舉些光看不練的後果吧。

1.比如某人看了一些重構程式碼或設計模式等知識點,然後不切合專案實際,就用到專案裡,那麼一定會引發大量重構程式碼而導致測試量增大的情況,進而會引發專案釋出延期。這種事情幹多了,一定會被專案經理嫌棄。

2.比如某人做Java,看到微服務分散式比較火,雖然專案裡沒有實際需求,但還是投入大量精力去學,這樣真有可能學了白學,學到的技能在幾個月以後就給忘了。

3.或者哪怕說不上是光看不練,就僅僅是透過GitHub等學習專案去學習Python 機器學習 等技能,由於學習專案一定無法體現實際專案中的真實經驗,所以只要不是透過真實專案,用看資料加透過學習專案實踐的方式,依然無法提升技能。

那麼在程式設計過程中,怎麼提升實際技能呢?多管齊下:

•  第一要在真實的專案開發環境中;

•  第二要多去解決實際問題;

•  第三再透過看資料去鞏固;

•  第四再去看招聘要求去了解該學哪些技能。

1.如果當下沒有Java真實專案經驗,說白了就還沒入行Java,那麼入行前,要多去準備專案經驗,技術層面的基礎技能,先別深入學。

因為在脫離真實專案階段,自學時大部分學到的內容其實是用不到專案裡的,所以與其在這個階段大量投入時間學用不到的技能,那還真不如集中精力去學些入行所需要的技能。

2. 進入到專案組以後,要提升的點可以從專案實際中去找,更要透過看招聘需求去找。

這話怎麼說呢?比如Java程式設計師入行後,如果單注重業務,幹個三五年以後,可能會因為熟悉業務,從而在現有公司裡混得風生水起,但技術上真只限於增刪改查。或者程式設計師脫離專案,直接去看一些資深技能,這個後果前面也提到了,效果不大。

那麼該怎麼做呢?在做熟當前業務的前提下,就去看下個職級的招聘需求,針對初級開發,下個職級是資深開發,對應的能力確實還是分散式高併發這塊,但學的時候應該結合專案學,在面試的時候要結合專案準備說辭。


   3. 比如在一個專案裡,哪怕公司規模再小,專案再是單機版,其實只要肯挖掘,一樣有透過專案提升技能的機會。

J ava專案一般都是放在linux上跑,而且一般是分散式部署,這樣多少會用到閘道器,負載均衡和反向代理這套,對應於不同的技術系列,一般是nginx、gateway或ribbon等。

再比如,一個專案,多少會用快取redis,或訊息中介軟體kafka之類 的,也就是說,只要肯留心,專案裡其實除了增刪改查,還真有值錢的技術。

4.而且 不僅技術值錢,一些流程和實施方案,或者說解決問題的經驗更值錢。

比如專案的釋出方式,用Mysql+Redis部署資料庫的技術,以及解決業務,調優和元件層面問題的經驗,由於看書也學不到,因此真要比用用API等技術更值錢。

這些技能怎麼掌握呢?多去排查線上問題,多去問運維和測試怎麼做,多跟著專案經理做釋出,多跟著資料庫DBA去做資料遷移,幹個幾次就熟悉了。


5.熟悉以後,去準備面試說辭。

畢竟有技術有經驗是一方面,面試會說是另一方面。這塊怎麼準備呢?先列面,比如分散式元件,資料庫調優,專案部署,以及常用的Spring Boot框架,這些屬於面。再準備點,比如分散式元件裡有redis,kafka等點。

針對每個點,同時結合專案需求,api用法和解決過的問題來說。

•  比如是Redis,先說專案資料庫層面併發量高,所以要用redis;

•  再說用redisTemplate,具體的是鍵,是商品ID,值是商品列表;

•  最後說下解決過快取穿透等問題。

照此辦法再去準備調優,微服務等中介軟體,這樣一定能從專案應用,實際用法和解決過的問題等維度,綜合展示自己的能力。

按照上述步驟,程式設計師一般能在半年,最多是一年的時間內,極大程度上提升能力。

比方說,一個Java小白,用3個月熟悉業務,熟悉幹業務的spring boot技能,再用3個月去熟悉專案測試部署等技能,再用3個月時間去熟悉分散式高併發等問題的排查方式,再用3個月時間去準備面試說辭,其J實真能去面試高階職位了,所欠缺的可能真只是資歷而已。


在這個過程中,看書或看資料有用嗎?有用!比如在熟悉資深技能,排查問題時,真要去了解些api,以及微服務元件的執行和開發方法,但大家體會下,這和單純看書真不一樣。


1. 必系統看, 更不是脫離實際看,而是結合開發需求和問題看。 看的時候也不是全面看,而是針對具體的異 常點或者是功能點去看。


2.編 程能力其實不僅僅是開發技術,更不僅僅是使用API的能力,而是使用元件解決實際問題的能力,以及專案測試和部署方面的能力,這些其實在書上還真未必系統講述。


比如要說解決Dubbo超時時間,一定是零散地去查資料,也就是說程式設計師要提升時,不僅要會看,而且要去整理。



3.甚至可以這樣說,一些資深的技能其實不是記錄在書裡,而且網上相關描述也很少。具體原因是,畢竟計算機圖書更需要關注初學者,一些資深技能講了就賣不動了,而且具體解決分散式元件等問題的描述,網上也未必有人肯系統寫。

所以一方面,程式設計師靠看書只能提升到高階開發的層面; 另一方面,如果還要繼續提升,只能靠前面提到的實踐外帶著解決問題了。

寫了那麼多,做個總結吧。

•  程式設計師除了靠看書,更應當在實際專案中提升。

•  一些資深程式設計師,還真未必靠系統看書提升,而是靠解決實際問題外加收集整理資料提升。

•  說句實在話,提升的目的是為了漲薪,所以不管是靠看書還是靠專案積累提升,提升後應當去儘早變現,否則還真就是學了白學了。




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016482/viewspace-2911217/,如需轉載,請註明出處,否則將追究法律責任。

相關文章