當前位置: 妍妍網 > 碼農

我學電腦的四年,共勉

2024-05-14碼農

這是我之前給大家分享過的自己學編程的真實經歷,那會兒讀者並不多,現在重新再給大家分享一下,希望對更多同學有幫助。


大家好,我是程式設計師魚皮。

前幾天在某乎上看到一個問題:大學電腦系最努力的同學都是如何學習的?

看了幾個高贊回答後,真的是感同身受,也想和大家分享一下自己大學的學習經歷,算是給自己一個繼續前行的動力吧。

與君共勉!

我的大學四年

論努力,我不會輸給任何人。

認識我的朋友都知道,即使目前在鵝廠的高壓下工作,我也依然堅持利用午休和下班後的時間創作,每晚都是接近 2 點才上床休息。

朋友們總勸我,你別肝了,我說:大學的時候,可比這累多了。

下面分享一下我透過自學,最終拿到大廠 offer 的故事。

前言

我是上海一所 211 學校的本科生,網路工程專業,雖然學校不算太差,但在各種 985 面前,是沒有競爭力的,只能說學歷不拖後腿。

我從小就對電腦很感興趣(主要是喜歡打遊戲),由於高考時失利嚴重,所以在進入大學前,就給自己定下了一定要進大廠的目標,決定要好好努力,不輸其他名校的同學,我要證明自己不比他們差。

不過現在回想起來,當時確實是年少輕狂啊,也沒有想到零基礎學習電腦,竟然需要那麽漫長的努力。

還好,雖然在追求目標時走了一些彎路,但總體還算順利。

下面分享我大學四年的學習和求職經歷、方法、技巧經驗,在最後精心總結,建議大家收藏,並定期和自己的現狀來對比,按照我的經歷,每位同學都可以進大廠!

大一

其實,我的大一比較滑水,新鮮的事物太多,讓我漸漸忘了入學前的目標,忽略了學習的重要性,不過這也應該是大多數同學的真實寫照吧。剛入學時我加了很多社團,每天就是和兄弟姐妹們開心滴玩耍,完全不在意自己的成績。但幸運的是,我加入了一個給學校開發網站的工作室,老大給我布置了一些學習網站開發的任務,因此上學期也學到了一點課本之外的知識,但專業課的成績著實一般。

寒假回家跟名校的朋友交流後,我意識到自己忘記了曾經的目標,於是決定洗心革面,發奮圖強。和朋友的交流中,我意識到想要學好編程,僅透過學校的電腦課程是遠遠不夠的。於是,我買了幾本書,在大學的第一個寒假,學完了 Java 這門程式語言、資料庫理論和 MySQL 資料庫的使用。剛開始自學的確比較困難,所以整個寒假 每天早上 8 點鐘爬起來就是學習,一直學到晚上 ,那段時間幾乎是 閉門不出 ,所以感覺時間過的很快。自己對這個寒假也沒有什麽深刻的記憶了,有時 因為一個 bug 熬到半夜 的郁悶心情。

在剛開始學 Java 時,我看書上的例子是看一遍忘一遍,看了半天啥也沒學會。於是,我就跟著書本敲程式碼,把每一個例子,每一行程式碼都理解、啃頭,認真完成課後練習,並且將練習的程式碼結合自己的想法做了些修改,試著自己開發了一些小軟體,比如整人兒程式,開啟軟體後就會在螢幕上出現無數個關不掉的視窗。自己開發和設計程式的過程是非常爽的,沒有課本和作業的束縛,讓我漸漸對編程產生了興趣,也為後面持續努力自主學習埋下了種子。

在大一下學期,我首先端正態度,開始認真學習學校的電腦專業課程,希望能得到一個好的成績。除了學校教的基礎課外,我在網站開發工作室中學習了更多網站開發知識,主動承擔校園網路站建設任務,並且用學到的技術手動為自己開發了個人部落格,來記錄自己的學習過程。

隨著前端學習的逐漸深入,我開始好奇前端頁面背後的請求邏輯,於是開始自主學習 Java 後端的知識,剛開始接觸後端,感覺像是開啟了新世界的大門,我意識到, 握草,編程真的是這輩子都學不完啊,然後開始更努力地學習。

與此同時,在這學期,我抓住了兩個機會,首先是作為隊長申報了國家級大學生創新創業計畫,這個計畫的申報屬實不易,我被老師拒絕了好幾次,他每拒絕一次,我就重新提一個想法、設計一個方案,最終終於成功抓住了機會,帶領團隊開發了一個一站式校園資訊整合系統。做這個計畫的時候,正是課程最繁忙的時候,那段時間,光是做課程 oj,就讓我很頭疼了,但還好有責任心驅使我前進,每天晚上肝到 2 - 3 點,我也能夠將計畫做好。

參與創業計畫學習

第二個機會是,我加入了導師的研究生團隊一起做計畫,機會是靠自己爭取的,簡單的說就是毛遂自薦,雖然當時我只學了簡單的 Spring 後端開發,但我相信自己能夠透過爆肝,雖不奢望追上師兄們的步伐,也要不拖大家的後腿,為計畫多做貢獻。

光透過做計畫,我就賺到了幾萬塊錢,做到了經濟獨立,同時也積累了一些經驗,在專業課上取得了不錯的成績。

當時的我,天真的以為,照這個節奏努力下去,已經足夠了。

但隨著我看到了身邊更多優秀的人(比如我表哥,在清華, 大一發論文 ,他是我最優秀的榜樣),學到了更多的知識,我發現,自己還是太嫩了,那個時候的自己,根本談不上努力,只是個沈迷學習的傻子。

大二

大二這一年,除了擔任班長,我還當了學生會部長、社團部長、網站開發工作室的負責人,因此,除了專業課學習外,還有非常非常多其他的事情要處理。但是,不論其他事情要處理到多晚,我都始終堅持每天留給自己幾個小時用來自學技術,哪怕熬夜到淩晨三四點,然後第二天 8 點接著醒來上課。課上犯困的時候,我會做一些相對不用動腦的工作,比如記錄一些實驗課的報告。然後等回了寢室,躺在床上,把電腦放被子上,我便會打起精神,開始自主學習編程。

雖然此前我已經學了很多程式語言,但是,從大二開始,我堅定地選擇 Java 作為自己的主語言。

大二上學期,我幾乎每天都是在教學樓、學院樓或是圖書館度過的。為了鞏固自己的 Java 基礎,我不僅上網看了一套完整的 Java 視訊教程,還讀了【 Java 核心技術卷】這一經典書籍。為了檢驗自己的學習成果,我自主報考了國外的 Java 等級認證,特地辦了張跨境銀行卡來支付報名費,還好透過努力復習,高分透過。Java 基礎打紮實後,我開始學習主流的 Java 開發框架、微服務技術等。我的記性比較差,但還好學編程不靠死記硬背,背程式碼的肯定是比不過自己做計畫、多寫程式碼的。因此我學編程知識時有個特點,就是邊學、邊敲程式碼做計畫,每學完一個技術,我都會獨立開發一個計畫,比如團隊協作系統、CRM 管理系統、校園通訊系統、即時聊天系統等。

哦對了,那會兒,之前的網站工作室負責人畢業了,臨走時,把工作室托付給了我,當時工作室成員不多,光我自己,就獨立做了 5 個以上的網站。在老師的推薦下,我還去給其他學院的老師開發系統,而且那段時間,在上數據結構和演算法這門課,我還在研究 ACM 方面的題目,所以有時會忙到連中午吃飯的時間都沒有,直接待在其他學院的老師辦公室吃盒飯。

我會整理自己做過的計畫,慢慢地竟也積累了不少,有一些計畫改造改造,拿去完成課程大作業,或者參加比賽,都非常不錯。

我也經常在自己寫作的地方分享自己做過的計畫和經驗,歡迎大家看一下。

大二寒假,我參加了一個電腦作品競賽,有幸找到一位很優秀的學長,他做後端,我做前端,我們一起開發了一個大學二手置換平台。在這個過程中,我學到了很多團隊開發的技巧,也從學長身上學到了很多編程小姿勢。學長校招拿到了阿裏的 offer,也是給我帶來了不少的鼓勵吧。

這個寒假,除了開發作品外,我看了一些電腦網路方面的書籍,補充自己的理論知識,基本也是全天都在學習,只有晚上跟朋友出去玩玩桌遊,即使在玩時,可能抽空還會想想白天遇到的難題,痛並快樂著吧。

學院樓自習

透過不斷開發作品,我意識到自己的前端網站開發效率好像不太高,於是在大二下學期,我開始學習前端框架 Vue,比 jQuery 更加高效地開發體驗帶給我極大的學習興趣,一口氣學了一個多月,看完了 2 套 Vue 完整教學視訊,並且自己動手寫了幾個 Vue 完整計畫,同時還學到了很多打包工具,自己也實踐了他們的配置方式。

當時覺得大二暑假好像沒什麽事做,就計劃要不用技術賺點錢吧,因此我沒有選擇去做兼職,而是想找一份和自己職業目標相關的實習,於是我開始跑到大公司的官網去投遞簡歷,即使簡歷上什麽內容都沒有。結果可想而知,像阿裏巴巴這種一線大廠根本就不鳥我, 朋友們覺得真實麽?

沒辦法一次進大廠實習,那就一步一步往上爬吧。那我就在各種求職網站去海投簡歷,終於有幸在實習僧上收到了幾家公司的面試邀約,基本都是要坐幾個小時地鐵的公司,但肯定也都要去試試吧。當時自己雖然做了不少網站,但由於面試準備不充分,屢戰屢敗,結果只有一家公司肯要了我,崗位正好是 Java 後端開發。

於是那年暑假,我每天早上 6 點就要起床趕高鐵去上班,學校在郊區,我要先騎著我的小、小電動車去地鐵站,然後坐地鐵,換乘 2 次,再走老長一段路,來回四個小時的車程。後來,為了省時間,我發現了一條更精妙的路線,公司在高鐵站附近,那我幹脆就坐高鐵去!於是,每天可以節省近一個小時的時間來學習。

實習的地方夜景

當然,在車上的時間我並沒有浪費,而是利用這些零碎時間用手機刷 Java 等知識的練習題、看其他同學的面經、或者閱讀公眾號上的技術文章。我給自己定了一個每日任務,每天讀 4 篇文章,刷 30 道牛客 Java 題目,經過兩個月的時間,題目刷通了兩遍,也學到了很多技術知識。

那段時間,我白天在公司上班,晚上還要回到學校去接著跟老師做計畫或者自主學習,彌補面試時發現的自身的不足。

即使在工作中沒什麽活的時候,我也會刷演算法題,帶薪刷演算法題,絕對不讓自己閑下來,因為我怕我一放松,就會懈怠。等我走的那天,刷了估計也有幾十題了。不過有一說一,那會兒網上的演算法教程和經驗分享都不多,所以我也走了很多彎路吧。給大家整理了一些學演算法的資源,希望大家不要像我剛開始一樣,隨緣刷題,低效又無趣。

還好,整個實習真的非常愉快,雖然只有兩個月,但我真的收獲爆表。

學到了很多技術和業務知識,開拓了眼界,也明確了我今後的職業發展方向;學會了團隊溝通和協作,懂得了誠信的重要,也收獲了人脈。當然,最重要的是收獲了人生一段難忘的回憶。

當時的工位

這也是為啥我建議大家在學了一些技術後, 趁早去找一份實習 ,不用擔心自己的經驗不足,透過面試和企業工作的磨練才能讓你積累更多的經驗和技術,也能幫助你明確自己的目標。

不過遺憾的是,到最後也沒賺多少錢,飯錢自己掏,高鐵費齁貴,哈哈。

在今年,為了解決學了就忘的問題,我開始使用一種新的學習方法 —— 費曼學習法。每次學到一些知識,我會嘗試用自己的方式進行復述,並和其他同學進行分享。只有能清晰地講述所學知識,並讓他人能夠理解,才算是真正學會了。用這種方法,我不僅加深了對知識的印象,語言表達能力也得到了很大的提升,還有了更多給學院同學分享的機會,開過幾場講座,而這些都對我今後的面試非常有幫助!

讓我欣慰的是,自主學習課外技術竟也幫助我理解了一些學校的課程,因為很多理論知識之間是有關聯的吧,所以今年的成績還算不錯,拿到了國家獎學金。我用獎學金的錢,再加上之前做計畫的錢,買了配置更高的電腦和裝置,激勵自己學習。

自己賺錢買的電腦

大三

在之前的幾次面試失利中,我感覺自己的編程知識是缺斤少兩的。一方面我要學習更多且更深層的後端知識,不能僅停留於 「會用」,而是要 「活用」。因此在大三這一年,我又學了像訊息佇列、搜尋引擎等企業後端必備的技術,以及 MySQL 最佳化、虛擬機器調優、Redis 底層,並且透過閱讀源碼,自己搞了一些框架。另一方面,我意識到了數據結構和演算法的重要性,開始刷演算法題目,每天早上花 2 - 3 個小時搞幾道題,堅持了近一年,總共搞了 1000 道題吧,也順便考了一些演算法類證書。

學的技術越多,我越發現啊,學編程還真是得靠敲的!光說不練假把式,其實很多視訊教程中的小 Demo 都蠻不錯的,要註重積累,並試著將重復的程式碼進行抽象,避免重復造輪子。很多技術都是因為有實際套用需求,才被人創造,才需要你去學習,比如你要做一個支持使用者登入的 APP,你就要學習登入機制;要做即時通訊,你就要了解 RTC、Socket;效能低了,你就要去最佳化;擔心網站被黑了,你就要做安全措施;懶得寫重復程式碼,你就要學低程式碼、大前端等等。

直到現在,我依然是一名興趣驅動型 coder,會經常帶著小夥伴們一起做一些好玩輕松的計畫,提升興趣的同時學到不少編程小技巧,歡迎朋友們來看看。

正因為明白興趣和實踐的重要性,所以我大三一整年都沈迷於做計畫、找實習、參加競賽,樂此不疲。

上學期先是在實驗室跟著老師研究區塊鏈技術,不得不說,實驗室的環境更適合學習,從早上起床就來實驗室,直到晚上十點多甚至是十一點才走,感覺真是很充實!幾個月過去,終於開發出了落地套用並出版了一本教材(個人編寫占比超過 50%),也是這段時間的研究讓我浮躁的內心漸漸變得平靜。

在寒假前我向字節跳動投遞了簡歷,在一份實習經歷和堅持刷演算法題的加成下,我很順利地成功透過了面試,開始了日常實習生活,在不敲任何一節課的情況下,每周上班 3 ~ 4 天。(好奇為啥沒翹課還能一周上這麽多天班麽?後面詳細給大家分享,歡迎關註我呀!)

實習部門是個新部門,地鐵每趟要近 2 個小時。雖然使用的是自己不太擅長的 Php 和 Go,但學習起來很容易,導師和上級非常好,給我絕對的發揮空間,從入職起就參與計畫的需求評審,甚至後來是自己一個人負責了一個計畫的後端,和其他部門的同事打交道也非常多,成長非常非常非常快!而且字節跳動的待遇真的沒話說,全員 Macbook +免費三餐零食下午茶。

後來快離職了,導師和上級也沒給我安排什麽任務,除了解決下之前寫的 Bug 外,我不會閑著,有空就堅持刷演算法,LeetCode、交大 OJ、浙大 OJ、牛客、PAT、北大 OJ,我都刷了幾十道題,其中 LeetCode 刷了 600 多道!順帶一提,在來回四個小時的車程中我依然會看技術文章、背單詞、看面經、或者刷刷面試題目。不得不說,字節跳動真的是一家很好的公司,他的價值觀(字節範兒)也帶給了我很大的激勵吧,共勉。

字節範兒(當年是 5 條)

實習四個月後,我跑路了,原因是自己還在糾結到底是保研還是就業,不妨兩者都試試,到時候再選擇一個更優解。所以回到學校後,為了豐富簡歷、給上海落戶湊一些積分,我參與了一些大型競賽,像挑戰杯、互聯網+、三創賽,在所有團隊成員共同努力並讓我抱大腿的情況下,也獲得了一些獎項。

後來,某天在校溜達時,我突然收到了騰訊的電話面試邀請,總共只有兩輪面試,都是些後端問題,還好我每天都在看面試題,有備而來,所以答得還行,也就順利搞到了暑期實習的 offer。

大三這一年,我專門搞新技術的時間並不多,但是透過不斷做計畫、刷演算法、不斷發現和解決問題,我的基礎和技術能力都有了很大的進步。有了更多的知識積累,在學新技術時,我可以將一些新知識和以前的知識對照和串聯,從而理解的飛快!比如學過前端 Vue 框架後,再學習 React 框架就輕而易舉,我的技術棧也越來越豐富了。

大四

大三暑假,我開始了在騰訊的實習生活,剛開始還是挺不適應的,總是在簡單的工作上翻車,但後來多花了些時間學習,也漸漸能獨立完成工作了。後來,我在實習轉正答辯中取得了同組第一的成績,順利搞到了不錯的 offer,並成功簽約。不知道小夥伴們是否需要我出一期實習轉正的視訊呢?

整個大四,我基本都在騰訊實習,每天依然是坐地鐵往返學校和公司,在路上堅持學習。疫情期間,我就在家裏遠端實習,下班的時間除了做畢業設計、寫論文之外,我還獨立開發和上線了一個完整的小程式【面試君主】。

等畢業證搞到手,我已經在騰訊實習了近一年,後面的轉正也都非常自然。

不過轉正之後,激動的同時,身上的責任和壓力也大了許多。想了解我轉正經歷的朋友,請點贊後在評論區告訴我吧,讓我知道有人看了幾千個字後,來到了這裏~



這就是我的大學生活,一段平凡的奮鬥史。

當然,想要進大廠,只靠努力還是不夠的(但不能不努力),我認為進大廠還需要以下要點:

  1. 興趣,學自己喜歡的,這是你前進的主要動力

  2. 目標,有目標才有規劃,才能避免像我一樣走了彎路浪費了些時間

  3. 自學,只有持續自學,你才能看到更大的世界。其實作在網上好的學習資源非常多,為了幫助大家發現優質編程資源,我花了 200 個小時開發了編程導航,還整理了免費編程資源大全。

  4. 實踐,紙上得來終覺淺,對編程來說更是如此,必須要多加練習

  5. 機會,在我的故事中看似有很多的幸運,但其實每一個機會都是要自己爭取來的,你變強了,更多機會和幸運才會眷顧你。而每個機會都可能會改變你的命運。

  6. 突破,打破自己的舒適圈,這樣才能給自己多一點選擇,多一點成功的可能性。

  7. 時間,珍惜你大學的時間,這段時間的努力會在未來,給你帶來更大的價值

  8. 生活,保持健康規律的生活,不要像我一樣因為常年熬夜,記性越來越差,頭發掉的越來越快。

最後再給在校的同學們一些建議。

建議

給目標直接就業同學的建議:如果時間還多,那麽就按照自己的節奏和興趣去學習技術並實踐,心無旁騖。你要知道研究生也才多一年多的做計畫和研究時間,如果本科你把別人準備考研的一年用於學習技術,那麽技術實力完全不輸於研究生!

給考研同學的建議:提前了解目標院校考察的專業課,並在該門課初學時就多下功夫。所有的實踐課要好好學,平時有空也多上牛客等平台認識更多的朋友,了解找工作常用技術和其他同學的情況,避免考研失敗後春招完全小白。

給保研同學的建議:如果 一心決定讀研 ,擔心保不到好的學校,也可以準備下考研,順便也能復習到一些面試知識。

總之,給自己 多一個選擇,多一條後路



我的座右銘: 相信自己有能力,那麽你就真的會有!

希望這句話可以鼓舞到更多的同學吧。

因為熱愛,所以堅持!

一起加油吧!
👇🏻 點選下方閱讀原文,獲取魚皮往期編程幹貨。


往期推薦