聊聊我的 Java 自學(xué)之路
閱讀文本大概需要 5 分鐘。
最近經(jīng)常在知乎收到類似『沒基礎(chǔ),java 如何自學(xué)』、『怎么才能掌握編程』等等問題,再加上發(fā)現(xiàn)高中同學(xué)也在自學(xué)。有感而發(fā),講講我的自學(xué)之路。
大一、大二
高考沒正常發(fā)揮,考入一所二流的學(xué)校,當(dāng)時(shí)分?jǐn)?shù)也只高出錄取分?jǐn)?shù)線一兩分,只能選擇機(jī)械專業(yè),當(dāng)時(shí)分?jǐn)?shù)如果高個(gè)兩三分,或許可以上計(jì)算機(jī)專業(yè),或許現(xiàn)在基礎(chǔ)知識水平可能不一樣,可是誰說的準(zhǔn)那?
說回正題,大學(xué)前兩年,跟大多數(shù)同學(xué)一樣,基本在混,該打游戲打游戲,該逃課的逃課。但是期末的時(shí)候會去臨時(shí)努力一把,最后也能取個(gè)好成績。這里說一點(diǎn),后來才發(fā)現(xiàn)有些同學(xué)原來期末的時(shí)候也不去準(zhǔn)備一把,沒辦法這樣也就只能掛科了。所以這里想說個(gè)觀點(diǎn),其實(shí)你只要稍微努力一點(diǎn),其實(shí)就已經(jīng)超過了很多人。
說說我們專業(yè),跟計(jì)算機(jī)有關(guān)聯(lián)可能就是『機(jī)』了吧。所幸,大一的時(shí)候還有一門 C 語言必修課。那時(shí)候其實(shí)對于編程存在懵懂的興趣,曾想過學(xué)完 C 語言,然后成為一個(gè)黑客。可是學(xué)的時(shí)候才發(fā)現(xiàn),才發(fā)現(xiàn)這門課是如此枯燥,而且你根本不知道學(xué)完你能干什么。書本只有練習(xí)題,老師也只是照本宣科。于是那時(shí)候也失去對這門課的興趣。
大三
大三那年對于我人生是有意義的一年。
那個(gè)學(xué)期,窮的沒辦法,出去兼職,賺到人生第一筆工資。并且用這部分錢,報(bào)考駕校。也是這筆錢,讓我意識到原來賺錢是如此不容易。
大三那年,因?yàn)槊媾R畢業(yè)的壓力,不得不去思考將來從事什么。靜下心來思考分析未來到底應(yīng)該干什么。我想過從事本專業(yè)的工作,但是本專業(yè)無非就去工廠工作或者在研究院從事制圖工作,我根本沒興趣。真的,我那時(shí)候真的十分厭惡 CAD 制圖。
這里真的感謝我女朋友,是她給我提了個(gè)思路,讓我去嘗試學(xué)習(xí)下 Java。哈哈,感謝某度,搜索 Java 的時(shí)候彈出滿屏廣告,一點(diǎn)進(jìn)去就看了 XXX 在某培訓(xùn)班畢業(yè),成功進(jìn)入大公司,拿到很高工資。的確,這個(gè)真的很有吸引力。于是踏上自學(xué)之路。還記得是大三寒假的時(shí)候,在家敲下第一行代碼。
? ?public static void main(String[] args) {
? ? ? ?System.out.println("Hello world");
? ?}
說說那時(shí)候怎么自學(xué)的。我在某自學(xué)網(wǎng)站上找到 Java 基礎(chǔ)的視頻課程,真的很老的課程,錄制于 2012 年。給你們看看當(dāng)時(shí)的課程目錄。


接下去每天的生活基本上就很枯燥,除了上課,就是學(xué)習(xí),偶爾還出去兼職一下。那時(shí)候基本就在學(xué)校圖書館學(xué)習(xí),沒事就往我們學(xué)校四樓去借 Java 相關(guān)的書籍。那時(shí)候也不知道那些 Java 書籍比較經(jīng)典,所以就根據(jù)標(biāo)題挑書,于是就挑了『Java 入門到精通』,『21天帶你學(xué)會 Java』這類書。當(dāng)時(shí)看到這類書就覺得標(biāo)題十分吸引人,那時(shí)候就覺得看完這些書就能速成 Java。但是現(xiàn)在回想,這些書真的十分坑爹,基本上就是網(wǎng)上資源抄抄改改,誤人子弟。各位讀者如果想買書的話,千萬別買這類書籍。
時(shí)間來到大三那個(gè)暑假,基本上學(xué)完了 Java 基礎(chǔ),最后還跟著視頻教程完成一個(gè)貪吃蛇的小游戲,那時(shí)候真的感覺很有成就感。
學(xué)完 Java 基礎(chǔ),接下去就面臨著學(xué)那個(gè)方向的問題。那時(shí)候其實(shí)也沒多考慮,就直接選擇 Web 后臺開發(fā)這個(gè)方向。在淘寶上買了一套某培訓(xùn)班的培訓(xùn)課程后,就跟著其進(jìn)度學(xué)習(xí)。這個(gè)階段,已經(jīng)感覺到不像 Java 基礎(chǔ)那時(shí)候簡單了。學(xué)的東西不僅難,而且多,基本上各個(gè)方面都需要學(xué)會。還記得這個(gè)課程,剛開始先教 Html、CSS、JavaScript,后來就開始教 SQL 語法,最后開始 Java 的 Servlet 等。那時(shí)候基本上每天白天仔細(xì)看課程視頻,然后晚上一行行去輸入練習(xí),盡量保證當(dāng)天把課程都練習(xí)一遍,不拖到明天。但是有時(shí)候就是學(xué)完這個(gè),又忘了上面或者說就是想不到這種解決辦法。這時(shí)候我就會再看下之前課程,看下到底哪個(gè)點(diǎn)卡住,然后思考下為什么沒想到。
實(shí)習(xí)
大概在 11 月的時(shí)候,基本把課程學(xué)完了。學(xué)校里又沒有什么課程了,呆著學(xué)校又沒什么事,也就想著出看看能不能知道實(shí)習(xí)。
那時(shí)候由于剛自學(xué)完,對于自己的技能根本沒有信心,也不知道企業(yè)開發(fā)到底需要掌握什么技能。這就導(dǎo)致了那時(shí)候我心想只要找到實(shí)習(xí)工作就好,能開給我一些工資,然后能讓進(jìn)入學(xué)習(xí)就好了。
兜兜轉(zhuǎn)轉(zhuǎn),不斷在 58 趕集上找工作,找了一圈最終找到了一家公司招聘 Java 開發(fā)。面試官問了幾個(gè)簡單 Java 的基礎(chǔ)問題后,然后就發(fā) offer 了。
進(jìn)入公司之后,我才發(fā)現(xiàn)這個(gè)跟自己想象的完全不一樣。全公司后臺開發(fā)就我一個(gè)人,而面試我的面試官,不在這個(gè)公司,在另一個(gè)市的另一家公司,在這公司掛牌一個(gè)開發(fā)經(jīng)理職位。
那時(shí)候也不知道需求,就扔給我一套表結(jié)構(gòu)設(shè)計(jì)以及一套他們以前開發(fā)好的后臺代碼,就讓我模仿這個(gè)改改就好了。還記得那套框架由 easyui,struts2,mybatis,mysql 構(gòu)成。每天的工作就是照著這塊改,不會的就找搜索引擎。旁邊的同事,基本上都是其他崗位,沒有一個(gè)可以請教問題的。那時(shí)候也沒有什么需求文檔,基本都是某某經(jīng)理拍拍腦袋想出來。在那個(gè)公司呆了兩三個(gè)月,基本上沒有什么收獲,就向公司辭了職。
那個(gè)時(shí)候已經(jīng)到了三月份,還有三個(gè)月就畢業(yè)了。那時(shí)候也很慌張,自己學(xué)校招聘會也去逛了下,但是根本沒有看到 Java 相關(guān)的工作。偶然間在網(wǎng)上看到恒生,網(wǎng)易的春招的機(jī)會,抱著試試的想法,就選擇報(bào)名。報(bào)名之后,了解到其筆試內(nèi)容,發(fā)現(xiàn)很多內(nèi)容自己很多根本沒學(xué)過,比如操作系統(tǒng),linux 知識。可是沒辦法啊,只能瘋狂在牛客網(wǎng)刷題,瘋狂補(bǔ)充這些知識。最后,兩家公司筆試還是都掛了。。。。
等網(wǎng)易筆試完,已經(jīng)到了四月。本地工作崗位,也已經(jīng)基本找了遍,不是不要實(shí)習(xí)生,就是基本工資太低,低到什么程度那,有家公司實(shí)習(xí)每月就給 800 工資。
后來曾有個(gè)大公司來學(xué)校宣講,聽到最后意外得知他們還招聘 Java 開發(fā),馬上報(bào)名參加。接下來的筆試與面試都是跑到那個(gè)公司所在城市,最后拿到了這家公司的 offer。不過最后沒有選擇去,一是因?yàn)槠洚厴I(yè)之后開的工資真的太低,才 3500,二是因?yàn)樗麄児舅诘胤綄?shí)在太偏僻了。
本地沒辦法找到工作之后,不得不去杭州找找機(jī)會。在拉勾了搜了一圈工作機(jī)會,終于找到幾家公司還在招收實(shí)習(xí)生,廣投簡歷,收到幾家公司的面試機(jī)會。那一天去面試的時(shí)候,正好也是網(wǎng)易春招面試,看到一個(gè)個(gè)坐著網(wǎng)易大巴去面試,真的十分羨慕。那一天,面了兩家公司,最后一家公司發(fā)了實(shí)習(xí) offer。說說那時(shí)候?qū)嵙?xí)工資吧,一天 160,那時(shí)候真覺得好高,真覺得應(yīng)該早點(diǎn)來杭州。
進(jìn)入公司之后,分配了個(gè)師兄帶我。這個(gè)師兄雖然話很少,但是在他身上學(xué)習(xí)到了很多,第一次感覺到那種技術(shù)開發(fā)的氛圍。在公司實(shí)習(xí)大概一個(gè)多月,基本上用到也是之前學(xué)習(xí)到東西,可以說復(fù)習(xí)鞏固以前學(xué)的知識。5 月份就回學(xué)校報(bào)到,然后畢業(yè)答辯,順利就畢業(yè)。后來在這家公司也順利入職,真正進(jìn)入開發(fā)這一行。
總結(jié)與想法
看到這里想必你們也看完我的自學(xué)之路,下面也談?wù)勎疫@一路的想法。
看到很多朋友問,我現(xiàn)在學(xué)編程來的及嗎?我想說的是,你什么時(shí)候?qū)W編程都來的及,但是你自己需要評估你自己到底能不能靜下心來花下時(shí)間來學(xué)習(xí)。
學(xué)習(xí)編程需要什么基礎(chǔ)?學(xué)習(xí)編程最好是理工科,但是你如果不是,也沒關(guān)系,只要你能堅(jiān)持下來,也能學(xué)好。我認(rèn)識好幾位同事,也是文科專業(yè)轉(zhuǎn)行過來,有一些大牛,甚至高中沒畢業(yè)。但是你如果對這個(gè)沒興趣,最好盡早放棄。興趣是很好的導(dǎo)師。
學(xué)習(xí)編程,需不需要去去培訓(xùn)班?如果你自己沒有自制力,或者想快點(diǎn)出師,可以選擇培訓(xùn)班。因?yàn)樵谂嘤?xùn)班,你會感受到這種學(xué)習(xí)的范圍,培訓(xùn)班最后也會叫你一些面試技巧什么的。但是建議你報(bào)班之前,之前嘗試先把 Java 基礎(chǔ)學(xué)完。如果 Java 基礎(chǔ)都學(xué)不下去,那你最后報(bào)班學(xué)習(xí)效果也不好。但是不要片面看了培訓(xùn)班的廣告,或者被一些銷售以畢業(yè)后高薪洗腦后,就糊里糊涂就報(bào)班了。自己千萬要考慮好?,再去選擇報(bào)班。
現(xiàn)在我應(yīng)該學(xué)習(xí) Java 后臺,安卓,Python ?其實(shí)到底該學(xué)習(xí)那個(gè)真的不好給建議。但是我可以教你們一個(gè)方法,從事情的價(jià)值出發(fā),列一分優(yōu)缺清單。把安卓,Java后臺開發(fā),Python 這幾個(gè)優(yōu)缺點(diǎn)列一個(gè)表格,然后 -10 到 10 打一個(gè)分?jǐn)?shù),最后把每一列相加,得出一個(gè)最終分,選擇那個(gè)分?jǐn)?shù)最高的。
學(xué)完結(jié)束之后,找工作一定要去一線城市,北上廣深杭。為什么這些城市那?因?yàn)檫@些大城市,機(jī)會多,薪資也較高。雖然相對而言,生活壓力也大一點(diǎn)。但是相信我,在一線城市你生活工作幾年,你的視野格局會提高很多。但是如果你前幾天在一些二線城市,然后由于薪資水平,再想去一線城市,這樣就難很多。
對那些還在校正在自學(xué)同學(xué)們講講,你們在校如果時(shí)間很好多,一定不要只學(xué) Java 相關(guān)知識,算法數(shù)據(jù)結(jié)構(gòu)等也不能丟,這個(gè)真的很重要。
如果你現(xiàn)在已經(jīng)自學(xué)好,正在要找工作。請充滿信心,不要妄自菲薄。一次兩次失敗并不代表什么,總結(jié)前幾次的失敗,這也能更好認(rèn)識自己。
—?【 THE END 】— 本公眾號全部博文已整理成一個(gè)目錄,請?jiān)诠娞柪锘貜?fù)「m」獲取! 3T技術(shù)資源大放送!包括但不限于:Java、C/C++,Linux,Python,大數(shù)據(jù),人工智能等等。在公眾號內(nèi)回復(fù)「1024」,即可免費(fèi)獲取!!
