終于,夢(mèng)想實(shí)現(xiàn)了!
本文的作者是我很敬佩的一位好朋友,他 985 碩士畢業(yè),去年秋招也拿到了很多大廠的 offer 。由于對(duì)學(xué)術(shù)研究的向往,他放棄了大廠高薪,選擇了某研究所的工作。遠(yuǎn)離了 996 ,能夠有更多時(shí)間做自己喜歡的事情。他后續(xù)的想法是工作兩年之后繼續(xù)讀博,然后,爭(zhēng)取能夠當(dāng)一個(gè)大學(xué)老師。祝好運(yùn)!很不錯(cuò)的選擇!
寫(xiě)在前面
我是 2021 年畢業(yè)的研究生。本科是在一所雙非大學(xué)讀的,專(zhuān)業(yè)是軟件工程,本科時(shí)學(xué)過(guò)一些 Java 開(kāi)發(fā)。因?yàn)閷W(xué)歷一般,又對(duì)科研存在幻想,我選擇了考研,拼了老命總算是考上了一所中游 985,去年秋招拿到了很多大廠的 offer 。

本來(lái)想寫(xiě)一篇文章給大家分享一下數(shù)據(jù)結(jié)構(gòu)應(yīng)該怎么學(xué)。但,正當(dāng)我按步就班的回憶自己本科是怎么學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的時(shí)候,腦海中突然看到了剛上大學(xué)的自己。
不過(guò),回想我在剛上本科時(shí),因?yàn)楦呖挤謹(jǐn)?shù)不高只上了一個(gè)很一般的學(xué)校,也對(duì)自己的專(zhuān)業(yè)不感興趣。但慶幸的是,大學(xué)四年,我慢慢的對(duì)編程產(chǎn)生了興趣,學(xué)會(huì)了如何學(xué)習(xí)并走入了編程的大門(mén)。今天我就給大家講述一下我讀本科的經(jīng)歷,也希望給現(xiàn)在同樣處境的朋友一點(diǎn)幫助。

迷茫期
2014 年 9 月,我趁著我們省高校軟件工程專(zhuān)業(yè)大幅擴(kuò)招,以一個(gè)不高的分?jǐn)?shù)上了一個(gè)還算湊合的文科型雙非院校。
其實(shí),我對(duì)編程本身沒(méi)有一點(diǎn)興趣,甚至當(dāng)時(shí)家里的電腦我都不怎么動(dòng),選擇軟件工程專(zhuān)業(yè)完全是因?yàn)槟悄暾械娜藬?shù)多,所以分低。
來(lái)了學(xué)校以后,身邊的同學(xué)都不怎么愛(ài)學(xué)習(xí),基本上就是成天窩在宿舍打游戲。學(xué)校的老師也因?yàn)槲覀兡悄贶浖こ檀蠓鶖U(kuò)招,學(xué)生管不過(guò)來(lái),讓我們處在一個(gè)完全放羊的狀態(tài)。當(dāng)時(shí)我們都有種共同的感覺(jué):“不想坐在教室上課,但是我們并不知道我們?cè)摳墒裁础薄?/p>
不過(guò),我還算上進(jìn),想著天天在宿舍待著挺無(wú)聊的,就報(bào)了很多社團(tuán),有學(xué)生會(huì)、廣播站、籃球隊(duì)、田徑隊(duì)等等。整個(gè)大一算是很充實(shí),就是大一上學(xué)期高數(shù)掛了,下學(xué)期 C++ 掛了(那年我們高數(shù)大物基本上掛人能掛一半,不是因?yàn)轭}難,實(shí)在是當(dāng)時(shí)的我們太菜了)。
由于大一參加活動(dòng)認(rèn)識(shí)了好多人,就很湊巧的認(rèn)識(shí)了一位直系的學(xué)長(zhǎng),也是這個(gè)學(xué)長(zhǎng)帶我走進(jìn)了編程的大門(mén)。這位學(xué)長(zhǎng)現(xiàn)在在字節(jié),年薪七八十萬(wàn)了,后文稱他為字節(jié)大哥。
說(shuō)來(lái)也是因?yàn)槲覀兪且粋€(gè)文科氣息很濃的學(xué)校,學(xué)院的領(lǐng)導(dǎo)基本都是搞行政出身,所以我們學(xué)校很少能見(jiàn)到技術(shù)型的活動(dòng),院領(lǐng)導(dǎo)倒是對(duì)一些足球賽、籃球賽、啦啦操比賽很上心。由于我之前沒(méi)見(jiàn)過(guò)有人編程做出軟件,當(dāng)時(shí)在剛認(rèn)識(shí)字節(jié)大哥時(shí),看著他做出的軟件,我簡(jiǎn)直驚為天人。當(dāng)他給我展示他的代碼時(shí),我直接化身為程序員鼓勵(lì)師,吹爆了他的代碼。于是字節(jié)大哥豪氣的一拍大腿把我收為了小弟,要帶我學(xué)編程。但后續(xù)幾個(gè)月由于忙著參加各種文體活動(dòng)一直也沒(méi)聯(lián)系字節(jié)大哥。
對(duì)編程產(chǎn)生興趣
故事從我大一下學(xué)期 C++ 掛了開(kāi)始講起,因?yàn)殚_(kāi)了學(xué)需要補(bǔ)考,我就問(wèn)當(dāng)時(shí)還不算熟的字節(jié)大哥,我應(yīng)該怎么學(xué) C++。我現(xiàn)在還記得當(dāng)時(shí)他略帶深沉的摸了摸下巴說(shuō),我建議你看看 C++ 編程圣經(jīng) 《C++ Primer》。好吧,我現(xiàn)在還在記仇。當(dāng)年我意氣風(fēng)發(fā)的在淘寶上買(mǎi)了這本書(shū),然后翻了兩頁(yè)就打消了我學(xué)習(xí)編程的想法。好在補(bǔ)考前拿著課本突擊幾天,又找老師畫(huà)了重點(diǎn)后,算是把補(bǔ)考過(guò)了。

因?yàn)楦杏X(jué)編程真的學(xué)不明白,大二上學(xué)期其實(shí)在編程上也沒(méi)學(xué)什么東西,也就沒(méi)多聯(lián)系字節(jié)大哥,不過(guò)還算努力的我在大二上學(xué)期第一次考四級(jí)就把四級(jí)過(guò)了(后續(xù)也過(guò)了六級(jí),英語(yǔ)學(xué)好對(duì)程序員的發(fā)展是很有幫助的)。
大二那年快放寒假時(shí),我又重新燃起了想學(xué)編程的想法,我再一次找到了字節(jié)大哥,在他又準(zhǔn)備給我推薦 Java 編程圣經(jīng) 《Thinking in Java》 的時(shí)候,我趕忙攔住他,問(wèn)他有沒(méi)啥是我很容易學(xué)會(huì)的?讓我先能上手做出一些東西。這次他教了我 HTML,并且我終于通過(guò)他的演示看懂了怎么寫(xiě) HTML。趁著寒假,我自學(xué)了 HTML、學(xué)了 CSS、學(xué)了 JavaScript。終于通過(guò)自己敲代碼,在前端顯示出一個(gè)自己設(shè)計(jì)的網(wǎng)頁(yè)。自從我覺(jué)得能通過(guò)自己編程能做出一些東西后,我對(duì)學(xué)習(xí)編程的興趣變得越發(fā)強(qiáng)烈了。
初入編程大門(mén)
大二下學(xué)期開(kāi)學(xué)后,一天中午在食堂門(mén)口看到宣傳海報(bào),我們學(xué)院要舉辦軟件大賽。那一次不知道從哪里來(lái)的自信,除了前端三劍客什么也不會(huì)的我就游說(shuō)同學(xué),拉起了一個(gè)小分隊(duì)要參加一個(gè)月后的軟件大賽。由于同學(xué)的基礎(chǔ)比我還差,我只能先教會(huì)他們用前端三劍客,讓他們?nèi)プ銮岸隧?yè)面。然后,我根據(jù)字節(jié)大哥的建議去自學(xué) PHP(PHP 是世界上最好的語(yǔ)言,不服評(píng)論區(qū)來(lái)辯)、自學(xué)數(shù)據(jù)庫(kù)。
那一個(gè)月對(duì)我來(lái)說(shuō)有點(diǎn)煎熬,經(jīng)常拿著電腦盯著一個(gè) Bug 盯一上午,然后才能把程序的一小部分執(zhí)行通,改 Bug 的過(guò)程十分痛苦,有好幾次就想著要放棄,但是想著當(dāng)初是我拉著幾個(gè)同學(xué)要來(lái)參加比賽的,我如果放棄了是真的對(duì)不起他們,就咬著牙硬撐下來(lái)。也終于在軟件大賽開(kāi)始之前通過(guò)努力(我字節(jié)大哥也幫我改了幾次 Bug)把一個(gè)網(wǎng)站做了出來(lái)。
靠著一點(diǎn)創(chuàng)意,我們通過(guò)了初賽進(jìn)入了決賽,也最終得到了那次軟件大賽的三等獎(jiǎng)(進(jìn)了決賽的就有三等獎(jiǎng))。
雖然這次比賽的含金量沒(méi)有多大,但是對(duì)于我來(lái)說(shuō)卻意義重大。通過(guò)這次比賽,我學(xué)會(huì)了如何去學(xué)習(xí)編程,也建立起對(duì)自己的自信,知道自己可以通過(guò)編程去解決一些問(wèn)題。
經(jīng)過(guò)這次比賽以后,我算是打開(kāi)了編程的大門(mén)。我知道了自己該學(xué)什么,我也有了我自己學(xué)編程的方法,我不在學(xué)某某技術(shù)時(shí)先拿著一本“xxx 圣經(jīng)”硬啃。在學(xué)習(xí)一種技術(shù)的時(shí)候,我都先學(xué)會(huì)上手,然后再去補(bǔ)充比較復(fù)雜的理論,這讓我學(xué)技術(shù)學(xué)的很快。慢慢的,大一大二沒(méi)學(xué)好的 C 語(yǔ)言、C++、Java、數(shù)據(jù)結(jié)構(gòu)、網(wǎng)絡(luò)都補(bǔ)了起來(lái)。
大三,因?yàn)閷W(xué)校安排搬宿舍,我正好換到了我們班一個(gè)十分愛(ài)學(xué)習(xí)的宿舍,當(dāng)別的宿舍都在沒(méi)日沒(méi)夜的網(wǎng)吧打游戲時(shí),我們宿舍一起跑到了沒(méi)什么人的圖書(shū)館去學(xué)習(xí)。后來(lái)我們這個(gè)宿舍也大部分通過(guò)考研和保研上了不錯(cuò)的學(xué)校。
其實(shí),我最初的想法是要去工作,但是在大三的時(shí)候去聽(tīng)了一場(chǎng)中國(guó)計(jì)算機(jī)大會(huì)的報(bào)告,看著很多高大上的技術(shù),讓我對(duì)讀研產(chǎn)生了幻想。其實(shí)還有一個(gè)想法就是想彌補(bǔ)下沒(méi)在好的學(xué)校讀過(guò)書(shū)的遺憾。考研就是另一個(gè)故事了,感覺(jué)是一個(gè)比較勵(lì)志的故事~~好在我在本科的時(shí)候?qū)W會(huì)了怎樣學(xué)習(xí),編程也有了還不錯(cuò)的基礎(chǔ)。
我從大三下學(xué)期的 6 月開(kāi)始準(zhǔn)備考研,在經(jīng)歷一段折磨后,終于擠進(jìn)了復(fù)試(實(shí)行差額復(fù)試,我初試的分?jǐn)?shù)就在差額里面)。也得益于我編程基礎(chǔ)還不錯(cuò),所以在面試過(guò)程中對(duì)于一些編程基礎(chǔ)問(wèn)題我都答得比較完善,實(shí)現(xiàn)了逆襲。在面試完忐忑的離開(kāi)面試房間時(shí),聽(tīng)到了一位老師和另一位老師說(shuō),這個(gè)學(xué)生還不錯(cuò)。我知道,我上岸了。

后來(lái)
后來(lái),上了研以后的故事比較順利,在一個(gè)更高的平臺(tái)上認(rèn)識(shí)了更多優(yōu)秀的人。也有很好的博士師兄帶著我學(xué)習(xí)很多知識(shí)。雖然研究生的生活也有一些波瀾,但總體上比較順利。經(jīng)過(guò)校招也拿到了很多不錯(cuò)的 offer,有比如像騰訊、美團(tuán)京東這些互聯(lián)網(wǎng)大廠,也有一些不錯(cuò)的研究所。回頭去看所有走過(guò)的路,雖然會(huì)有遺憾,但也收獲了不少。
建議
下面我想給剛上本科的并且和我有類(lèi)似經(jīng)歷的朋友一些建議。每個(gè)人情況可能有些不同,大家擇善而從。
1、多和上進(jìn)的人在一起。遠(yuǎn)離一些見(jiàn)到你學(xué)習(xí)還會(huì)挖苦你的人。
大學(xué)生活中,其實(shí)身邊的人對(duì)自己影響會(huì)很大。我特別感謝我在上大學(xué)時(shí)身邊有幾個(gè)很有想法,也很上進(jìn)的人,這幾個(gè)人對(duì)我的影響很大,讓我知道了我應(yīng)該朝什么方向努力。另外和這些比較上進(jìn)的人一起參加一些比賽,合作一些項(xiàng)目也是對(duì)自己很受益的。
2、合理分配學(xué)習(xí)時(shí)間。
感覺(jué)一部分同學(xué)對(duì)大學(xué)的努力存在誤區(qū),努力不是要兩耳不聞窗外事一心只讀圣賢書(shū)。大家要懂得給自己放假,該去運(yùn)動(dòng)就去運(yùn)動(dòng),該和同學(xué)出去玩就出去玩。其實(shí)玩也是為了更好的去學(xué)習(xí),大家需要的是在學(xué)習(xí)的時(shí)候集中注意力高效率的學(xué)習(xí)。在考研最辛苦的時(shí)候,我也一直保持著學(xué)習(xí)五天,純玩兩天的節(jié)奏。
3、學(xué)編程的時(shí)候大家盡量先上手再去補(bǔ)理論。
比如對(duì)于初學(xué)編程的朋友。可以先嘗試用 HTML 做一個(gè)基礎(chǔ)網(wǎng)頁(yè)。學(xué)會(huì)怎么使用 HTML 以后,再用 CSS 給網(wǎng)頁(yè)做個(gè)樣式,然后再用 JavaScript 做一些效果。前端一些最基礎(chǔ)的操作學(xué)會(huì)以后,可以慢慢再學(xué)一門(mén)后端的語(yǔ)言,給網(wǎng)頁(yè)開(kāi)發(fā)出后臺(tái),然后再給網(wǎng)站連接數(shù)據(jù)庫(kù)。最后再學(xué)習(xí)一些數(shù)據(jù)結(jié)構(gòu)的知識(shí)、軟件工程的知識(shí)、設(shè)計(jì)模式的知識(shí)等等把自己做的網(wǎng)站做的更好。通過(guò)一步步的來(lái),先讓自己對(duì)編程有個(gè)初步的了解,再去深挖。要學(xué)會(huì)給自己的學(xué)習(xí)降低難度,上來(lái)就抱著《C++ Primer》、《Thinking in Java》就啃,特別容易打擊自己學(xué)編程的信心(甚至有人直接抱著算法導(dǎo)論啃)。
4、學(xué)會(huì)利用資源。
因?yàn)楦鞣N學(xué)校的教育資源不同,大家并不能把獲得知識(shí)的希望全部寄托給大學(xué)課堂。一些編程類(lèi)的書(shū)籍和公眾號(hào)文章,還有一些編程課程(大家可以在 b 站搜)。都能對(duì)編程的學(xué)習(xí)起到一定的疏通作用。我在學(xué)編程時(shí)一般都是這個(gè)節(jié)奏,比如要學(xué)習(xí) MySQL 數(shù)據(jù)庫(kù),我就先在 b 站上找一些編程課或者在公眾號(hào)上找一篇不錯(cuò)的文章,然后跟著教程先把環(huán)境搭起來(lái),再跟著教程把幾個(gè)增刪改查的基本操作敲一遍看一下效果。然后再去學(xué)習(xí)一些相對(duì)高級(jí)的操作,比如排序、group by、表連接之類(lèi)的。在對(duì) MySQL 基本上手以后,看一些書(shū)去了解理論性的知識(shí),對(duì)于看書(shū)不懂的問(wèn)題,再去找一些公眾號(hào)文章或者編程的課程去學(xué)習(xí)。我感覺(jué)這樣的學(xué)習(xí)更適合大部分學(xué)生,這樣學(xué)習(xí)效率也會(huì)高很多。
5、收集信息很重要。
高中時(shí)期,大家都有一個(gè)明確的目標(biāo),就是高考,高考相關(guān)的信息已經(jīng)被各個(gè)學(xué)校老師研究的十分透徹,高三學(xué)生需要比的就是誰(shuí)更努力,誰(shuí)學(xué)習(xí)更高效。而大學(xué)不一樣,大學(xué)有很多條路,你要做的是選擇好自己走的路,并且要多了解一些信息,明白自己的路應(yīng)該怎么走。比如你要本科畢業(yè)去互聯(lián)網(wǎng)公司就業(yè),你就應(yīng)該提前了解自己需要具備什么樣的能力才能進(jìn)這些公司就業(yè),提前準(zhǔn)備一些相應(yīng)的項(xiàng)目,提前聯(lián)系去一些互聯(lián)網(wǎng)公司實(shí)習(xí)。如果你想考計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的研究生,你就應(yīng)該去了解哪些學(xué)校這方面專(zhuān)業(yè)好而且招生人數(shù)多,并且去了解考研應(yīng)該準(zhǔn)備哪些東西,然后相應(yīng)的去參加一些證明自己能力的比賽或者做一些項(xiàng)目。
6、對(duì)自己有自信很重要。
大家要一步步的培養(yǎng)起對(duì)自己的自信。這種自信不是那種迷之自信~而是要通過(guò)一些活動(dòng),一些比賽去建立對(duì)自己學(xué)習(xí)能力,對(duì)自己的能力的自信。要相信遇到再難的問(wèn)題,自己也可以把問(wèn)題一步步拆解開(kāi)去完成。這對(duì)于日后的學(xué)習(xí)是最重要的。
推薦?? :1049天,100K!簡(jiǎn)單復(fù)盤(pán)!
推薦?? :年薪 40W Java 開(kāi)發(fā)是什么水平?
推薦?? :Github掘金計(jì)劃:Github上的一些優(yōu)質(zhì)項(xiàng)目搜羅
