作者:小傅哥
部落格:https://bugstack.cn
沉澱、分享、成長,讓自己和他人都能有所收穫!
一、前言
標題想吸引你進來參考下我的學習方式,或許能給你帶來一些經驗。當然不乏一些培訓中也有超級優秀的開發人員。
講道理
,程式設計師上學這段時光相對每個人都是公平的。同樣是拿到了一本 譚浩強
的《Java 2 實用教程》,也同樣有一臺膝上型電腦,和一個宿舍一張床。
說說我自己,剛上大一程式設計方面的課程是C語言
,先不說能不能執行出來 HelloWorld
,就連安裝個 VC++ 6.0
,都折騰好幾天。可能也是神奇,因為萌新小白學習東西能遇到各種各樣的問題。 最後安裝好了軟體的電腦真的不敢亂弄,怕它壞。C語言
學了一個學期後開始了 Java
課程,大家都說 Java
簡單,巴拉巴拉 有很多函式、開發工具好用、記憶體自己回收等等。但確實,工具還是蠻好安裝的,除了配置環境變數要去網上抄一下,還是可以寫出一個 Hi Java
的。從此便開始了 Java
學習的旅途。
從你摸起電腦的那一刻,每個人學習程式設計都會遇到很多問題,包括;
- 完全不知道是啥,不知道從哪開始,老師講過也不會。
- 多次碰壁執行不出結果,帶不來成就感。沒有遊戲和隔壁系的妹子好。
- 學完就忘,背了也記不住,覺得自己也沒有專案,不能鍛鍊。
- 能交流的人少,身邊也是打遊戲的多,大學校園花花綠綠,有錢沒錢,我也想玩玩。
除了這些問題
,可能比這些多的還有很多問題。我也同樣遇到過,初學時我也去加一些QQ群,但是很多都是比較水,能討論技術的不多。也看過一些技術論壇,確實還是有引導性的幫助的。也跟一些師哥師姐交流,大學學哪些知識才能找到工作。好在,慢慢摸索出一條學習路線。同時為了可以與同好
共同學習,就自己建了技術QQ群(東軟帝國
),認識了一群好友,在我大學期間時常給我解決bug;大帝
、糖糖
、蘇二毛
、螞蟻
、ZERO
、小凱
、Ticmy
、大寶
、萌貨
等眾多好友。他們現在也分佈在BAT等一線網際網路的中,也有做到總監級別的大佬。
給自己打打氣,有時候真的需要給自己點激勵,畢竟這條路走起來不是那麼容易。我的方式是上學期間時常會寫一些自己認為算是詩句的詩,來提升自己的鬥志。
紅塵世界幾個王,我自不服迎頭上。
日敲程式碼兩百行,衝進世界五百強。
如果你在網上搜這幾句話,還是可以搜的到的!
學習程式設計的過程很大一個問題是寫的少,總有一部分人覺得只要看了視訊,背了程式碼,這東西就能會。但往往真的不是這樣,只要這東西不是你親手敲了幾十遍,你就永遠也記不住。因為這個過程是在鍛鍊你的邏輯思維和肌肉記憶,為啥說是肌肉記憶呢?就像你打字聊天,輸入一個拼音nihao
,你會現在會想到它是從哪個手指敲出去的嗎?根本就不會了,肌肉記憶早已形成,你只需要把你要的內容想到就能立刻通過鍵盤呈現出來。同樣寫程式碼也是也有的,public static void main
,如果這一句程式碼你要反覆看著鍵盤去敲,那麼就是你寫的程式碼量還是太少。
願努力拼搏的你都能承載一份美好!
二、初學程式設計用過的書
嗯!是用過的書,不是看過的書。
初學程式設計的人往往並不需要太多的書,因為一本書所涵蓋的知識基本已經很全面了,難的是要一字一句的把裡面的內容都搞定。如果只是看還是很容易的,但是要想按照裡面說的都實現執行出結果,那對收穫來說就不不一樣了。當然,如果你已經深入的學習了,領悟性有很好。可以在繼續擴充套件其他書籍的學習,包括一些深入的原理、原始碼的分析、技能的擴充等等。
1. 譚浩強的這本書看了好久
一遍遍翻,一遍遍看,一遍遍執行裡面的程式碼。這本書真的給我帶來很大的幫助,時至今日它也一直在我的身邊。
2. SSH 幾百頁的書翻爛了
學習完基礎程式設計後,就需要去擴充Spring相關技能,去開發真正的專案。類似這樣的書還是比較多的,書中也包括了一些專案可以跟著學習。
3. 除了書還有視訊可以看
似乎每個程式設計師都看過 馬士兵
的視訊,主要是他的聲音和講課方式很吸引人,不沉悶又能學的乾貨。至少他的視訊我是看了5-6遍,也跟著寫了5-6遍。
三、同樣的專案做了N遍
在學習程式設計的過程中,我搞過很多的專案,當然這些專案的需求很多都是我臆想出來的。通過我需要鍛鍊什麼樣的知識點,之後去想著大概一個什麼樣的專案可以涵蓋的去練習。
但!學到 Socket
後,大家應該都做過區域網聊天,而我比較能折騰做了N次。直到最後這次不僅自己得到鍛鍊,還可以幫助被人成長。
1. 上學期間第一個仿QQ聊天
登入
好友
聊天
- 這個期間是學校聘請了外部的老師來教我們做專案,為了儘可能做的好一點,當時就研究著仿照QQ做一款通訊。現在看還是比較醜的,但是當時也是比較牛的了。
2. 培訓期間區域網聊天
登入
聊天
控制檯
- 清楚的記得這是當時搞了一週寫完的,畢竟還是比較熟練了。
- 甚至我在考慮把好友與聊天視窗合併,貌似現在大部分聊天軟體也都是這麼幹的了!嗯!優秀!
3. 學Netty5.0寫區域網聊天
登入
聊天
- 這一階段開始開始學習了
netty5.0
,嘗試使用netty+protobuf,開發區域網聊天。目前網上也是能搜到這個工程。 - 原始碼還有一份;https://github.com/fuzhengwei/itstack-demo-nettychat
4. 學WebSocket仿微信聊天
聊天
- 15開始學習
netty5.0
,但是後來由於5.0
版本問題,netty官網下掉5.0。於是去年19年,我又開始編寫nett4.0
案例。為此也寫了一次WebSocket
通訊。 - 原始碼:https://github.com/fuzhengwei/itstack-demo-netty
5. 出專欄仿桌面版微信
登入
聊天
好友
- 這個專案是20年過年期間發起的,使用JavaFx、Netty4.x、SpringBoot、Mysql等技術棧和偏向於DDD領域驅動設計方式,搭建的仿桌面版微信聊天工程實現通訊核心功能。
- 原始碼:https://github.com/fuzhengwei/NaiveChat
6. 除了這些還搞過很多
只要是能學習程式設計的內容,我似乎一直在折騰。誰學習期間也沒有一個專案,但是可以自己去想出來一個專案,之後通過這樣的專案鍛鍊自己的知識,儘可能讓學到的內容得以實踐。下面在列舉一些;
1. 分數計算機
2. 學生成績管理系統
3. 考試題庫系統
4. 圖書館系統
5. 彩禮管理系統
6. 線上考試系統
好在當年留了一些圖片
雖然這些系統在現在看有點點醜,甚至算不上專案,但對於編碼從初識到了解的一個學習過程是需要的。總歸,是要做一些實際的目標性內容,引導自己不斷地強化知識。把一些未知的知識儘可能通過問題訴求學習到。
四、沉澱、分享,交個朋友
從19年開始,我想著生活裡要新增一點自己能長期堅持的事情,不要把時間都浪費掉。於是,選擇了我最擅長的方向,做原創技術輸出。這樣既能讓自己有所沉澱,也能把知識傳播給他人帶來成長。
-
2019年7月,搭建個人部落格;https://bugstack.cn - 沉澱、分享、成長,讓自己和他人都能有所收穫
-
2019年8月,找回公眾號
bugstack蟲洞棧
,定期推送個人原創技術文章 -
2019年9月,CSDN 申請部落格專家通過
-
2019年10月,微信公眾號終於又了1k的讀者
-
2019年11月,完成三個專欄內容編寫;
《用Java實現JVM》
、《Netty4.x專欄學習》
、《基於JavaAgent全鏈路監控》
、《DDD領域驅動設計實踐》
-
2019年12月,開發微信公眾號與部落格打通引流粉絲
-
2020年,還在進行中!釋出了
GitChat專欄
、深入編寫了位元組碼程式設計
、持續做原創技術輸出
,加強個人技術棧學習
,吸納架構設計精髓
等等。 -
整理了一整套
CodeGuide 程式設計師編碼指南
- https://github.com/fuzhengwei/CodeGuide/wiki本程式碼庫是作者小傅哥多年從事一線網際網路 Java 開發的學習歷程技術彙總,旨在為大家提供一個清晰詳細的學習教程,側重點更傾向編寫Java核心內容。如果本倉庫能為您提供幫助,請給予支援(關注、點贊、分享)!
做這些事情,更多是我的愛好
和愛折騰的性格
在支撐我。也希望將我的程式設計學習經驗和技術沉澱多多分享。
其實大家可支配的時間都差不多,只不過開始寫技術文章後,不吃雞、不王者、不去電影、夜裡0點前不睡覺也有2點的時候、週末放假不出去浪(今年也出不去)。那麼你還是可以做一些有意義的事。當然,如果你說這樣不是生活,但每個人愛好不同。
收入,寫文章是會有收入的,公眾號裡日常4毛,也有1塊多的時候,但幾分也有。好在,我現在也不在乎這個,主要是要做一件可以堅持的有意義的事。
如果說能給你一些意見,我也建議你可以折騰折騰,程式設計師的世界裡折騰一下還是可以全方位的學到很多東西的。做的久了會提升全棧的研發技能(後端、前端、部署、運維等等),而且還會獲得;業務、運營、產品定位等等方面的提升。
五、收個尾
- 以上呢,是我學習和不斷折騰的一個方式。算不上優秀,但至少這樣的學習可以保證你畢業時候找一份不錯的工作,也能為你將來做好後路的根基。雖然每個人都有自己的路,但如果到了年紀還是要多把時間放到有價值的事上。
- 持續學習的過程遇到了很多夥伴,各有優秀。雖然他們不會把錢給我們們?,但是這些夥伴的寶貴經驗都是會無償告訴你的。
包括你學的技術遇到問題
、包括你寫文章需要看哪些書籍
、包括你對各個領域的認知
等等。 - 做人,做事,我喜歡親和友善,廣結同好。自從寫公眾號文章,有很多小夥伴加了我的微信,也和很多人成為了好朋友,他們日常幫我點贊、分享文章,深深感謝!