堅持了半年,值了!
大家好,我是周末還在繼續(xù)肝的二哥呀!
雖然十多年過去了,但回想起大一時候的光景,仍然歷歷在目。
由于計算機專業(yè)是學校新開的專業(yè),所以老師們也沒有多少教學經驗,于是我們第一學期就直接開搞 Java 這門編程語言了,教材用的是大名鼎鼎的《Java 編程思想》和不那么大名鼎鼎的《Java 開發(fā)寶典》。
由于沒有一丁點編程基礎,所以我上課的時候完全聽不懂,看書就像是看天書一般,心里慌得一逼,但也沒什么好的辦法。
和我類似情況的同學還有不少,能在下半學期轉到其他專業(yè)的都轉了;不能轉的,就和我一樣瞎胡混著。
現(xiàn)在想想,真有點小慶幸,要是當時我學習成績再好點,轉了專業(yè),Java 界從此就少了一個布道師,哈哈哈。
關注二哥的小伙伴當中,不知道有沒有類似的經歷哈,由于玩游戲耽誤課程,最后自暴自棄,甚至畢業(yè)的時候畢業(yè)證都沒能順利拿到,有的請在評論區(qū)自爆下。
作為“僥幸”走出來的“過來人”,借這個機會,給大家提 5 點個人建議吧,能撈一個是一個。
01、大學同樣需要自律
上高中的時候,老師天天給我們這樣灌輸:“同學們,好好學呀,等你們上了大學就可以徹底放松了,那時候再也沒有人管你們,想怎么浪隨你們的便,現(xiàn)在必須得拼一拼?!?/p>
實際情況呢,如果大學真的徹底放縱了,之前多少年的努力都可能化為烏有。
之前就有幾個小伙伴給我傾訴心聲,說自己大學沒有好好學,畢業(yè)后找不到工作,又害怕進培訓班被坑,后悔的要命。
確實呀,大學同樣需要自律。我們班就有這么三四個同學,比如說我提到的石磊同學,他上大學的時候就有自己的規(guī)劃,所以編程功底一直都很好。
還有一個叫海洋的同學,現(xiàn)在在蘇州,已經做到技術總監(jiān)的位置。大學的時候,他經常把自己鎖在機房,獨自學習編程,還真的學得有模有樣。
我呢,經常是拿著筆記本電腦打單機游戲,水平菜得摳腳,日子過得一塌糊涂。
這里叮囑大家一句哈,大學千萬不要貪圖享樂,每個學期都應該給自己提前規(guī)劃好,比如說要刷撒幣算法題,要學習數(shù)據結構,要吃透 Java。
要像一塊海洋一樣,瘋狂地吸收知識,也只有這樣,才能在畢業(yè)的時候找到滿意的工作。
可以少參加一些社群,多泡泡圖書館,多讀一些計算機經典書籍,比如說《代碼整潔之道》、《浪潮之巔》等等,還有各種黑皮書。

02、只要開始就不怕晚
我是大二下半學期才開始意識到危機的,因為當時匯編和計算機網絡都掛科了。再這么下去,拿畢業(yè)證都成問題,這簡直對我打擊太大了。本來想著混一混,沒想到差點混不下去~
于是就下定決心,一定要補一下,不然沒辦法給父母交差。
當時也沒有很好的學習路線,網上的資源也沒有現(xiàn)在這么豐富(可以說是極度匱乏),從網絡上找了一份李興華老師的講課視頻——用電驢下載的。李興華老師是講 Java 的,講課特別激情,很帶勁。
剛剛去搜了一下,竟然還能搜得到李老師講課的視頻課!關鍵是,智能ABC輸入法還在!

一開始,還是挺難的,因為基礎太差,很多聽不懂。沒辦法,一遍聽不懂,就再聽一遍,前前后后一套視頻看了有四五遍吧。
當然了,編程是看不會的,也聽不會的,只能練,我不僅照抄李老師的代碼,自己還把谷歌拼音輸入法給卸載了,切換成了智能 ABC。我現(xiàn)在打字仍然習慣只敲一個字或者兩個字,不習慣長拼。
給大家一點看視頻的小建議哈。先整體上過一遍老師在講什么,然后遇到敲代碼的時候一定要暫停,先自己去理解,理解不了就去背,然后腦子里有點東西的時候就下手去敲??さ臅r候,就重復之前的動作,直到代碼的完整邏輯全部都吸收到了腦子里,自己能在沒有任何幫助的情況下把代碼完整敲下來,這時候才能繼續(xù)。
我大概花了兩個月的時間,才把李興華的這份視頻教程刷完,算是有了點編程基礎,后面就嘗試自己主動去修修改改,看是不是還能跑的通——有很多時候跑不通,一度懷疑自己是否適合編程,太慘了。
但終究我沒有放棄,吭哧吭哧地學,按照自己的節(jié)奏,一直持續(xù)到大三的時候。
功夫不負有心人,也許是努力得到了老天的眷顧,我還是拿到了一家外企的實習 offer。
03、認清現(xiàn)實很重要
我在實習的時候,有主動去看 C++ 方面的書,就是那本《C++ Primer》,第四版的,現(xiàn)在那本書以及習題冊還在家里擺著,算是陪伴了快十年的時間了吧。
沒有丟掉它,因為有前輩給我說,以后有機會,還是要學習一下 C++ 的,這門編程語言實在是太經典了。前輩的話,讓我對 C++ 充滿了敬畏。
但時間過去了這么多年,仍然沒有機會和時間去學習 C++,因為一入 Java 深似海??!

前幾天我畫了一張思維導圖,重新梳理了 Java 后端工程師的學習路線圖(參照自我的偶像程序羊),發(fā)現(xiàn) Java 這個海是真的大呀~
之前有小伙伴問我,學 Java 太難了,要不要轉前端,我還專門寫過文章討論過:死亡命題
有一說一,經過這么多年的發(fā)展,其實前端要學習的東西也不少!
我們一定要認清現(xiàn)實,學編程并非一朝一夕的事情。不能說 Java 難就轉前端,前端難就轉測試,到最后可能什么都沒學好。
大二下半學期認真補了一把 Java 后,雖然時間短,很多東西只學到了皮毛,比如說并發(fā)編程、Java 虛擬機,但經過這半年的刻苦努力,確實入門了。
有了這個基礎,實習的時候雖然做的都是比較簡單的任務,但基本上能獨立完成任務了,完不成的時候也能厚著臉皮向前輩們請教了。
能獨立完成任務后,整個人的精氣神就完全不一樣了,學習的欲望和動力就有了,整個人經常能進入一種沉浸的狀態(tài),瘋狂地吸收,人也越來越自信,之前的那種頹喪的感覺終于一掃而光了。
你看,只要不放棄自己,就還是有機會翻身的。
雖然我們學習的是計算機科學與技術,要學習計算機組成原理、操作系統(tǒng)、數(shù)據結構與算法,但大多數(shù)情況下,我們還是應該先把編程語言給學好了,只有這件事做好了,你才能在學習編程的這條道路上走得更遠,因為編程語言學得好,就可以上手做練手項目,這些可以讓你看到自己實打實的進步。
所以大家在大一的時候盡量就確認好自己要學習哪一門編程語言,盡量不要來回切換,雖然編程思想是相通的,但語法上的切換仍然是需要花費時間和精力的。
我的建議是,大一上半學期盡量選擇 C 語言來打基礎,有了 C 語言作為基礎,大一下半學期就可以無縫切換到 Java 語言上來。

如果真的很有天賦,在學完 C 語言后可以嘗試實現(xiàn)一個自己的編程語言,可以參照下面這個項目路線,一個 1000 行左右代碼的簡單 Lisp:
https://www.shiyanlou.com/courses/670
當然了,如果遇到困難,比如說 C 語言的指針實在是吃不透,也沒關系的,完全可以直接跳過,開搞 Java。
Java 語言的好處就不用我多吹了,我只說一點,Java 后端開發(fā)崗的薪資是真的挺香的,另外就是工作崗位是真的挺多的。
卷并快樂著~
選擇 Java,就意味著工作崗位就穩(wěn)了,這是最實際的考慮。
插個小廣告,零基礎學習 Java 的話,首推二哥連載的《教妹學Java》專欄:
https://github.com/itwanger/jmx-java
通俗易懂,風趣幽默,已更新到第 49 篇,喜歡這個專欄的可以幫二哥多多宣傳一下,GitHub 上雖然只有 99 個 star,但二哥有信心把它推到 100 個 star,嘿嘿嘿。
(強烈暗示了哈)
04、學編程沒有捷徑
學習從來無捷徑,循序漸進登高峰。
很長一段時間內,我都是一名偏應用型的選手,就是公司給我安排的任務,我就是能解決(哈哈,主要靠搜索引擎),但是要我講理論知識,真的是抓瞎。
一般來說,學編程的人分兩種。
一種從理論基礎開始;一種從應用實戰(zhàn)開始。
大學科班一般走的是第一種,培訓班出身或者自學的,一般走的是第二種。
這兩種學習方式我認為都沒有問題,沒有孰輕孰重。我雖然是科班,但老師們并沒有多少教學經驗,所以我基本上靠的是自學。
每個人的潛力不同,所以學習的方法也不應該完全一樣。但只要是奔著一個目的(把編程學好)去的,都沒有捷徑,必須得身經百戰(zhàn),才能成為一名合格的工程師。
唯一我認為可以投機取巧的一點就是,趁早搞清楚自己要去哪一家公司,要應聘哪一個崗位。
去招聘網站上,去公司主頁上,去校園信息網上,找到崗位職責和技能清單。比如京東上的 Java 高級工程師。

有個好朋友武哥,最近剛去了京東,團隊很缺人,大家有需要內推的,可以私聊二哥。

大學階段,盡量不要把精力放到新技術和新框架上,不要說 RabbitMQ 很火,就去學 RabbitMQ,不要說 Kafka 很火,就去學 Kafka,而是要有的放矢。
你想要去的崗位要求什么,就去學什么,那些新技術和新框架,完全可以放到工作以后,有需要的時候再去學,把有限的時間投放到最能表現(xiàn)出你個人價值的地方。另外,學習新技術和新框架,不只是要學會怎么用,還應該鉆一鉆源碼,透徹地理解一下原理。
05、良心話
學習,一定要選一門好的教程,無論是一本書,還是一個視頻,還是在線的網課。如果不知道怎么選,就聽二哥的,保準靠譜。
選對了,就可以少走很多彎路。
有一說一,如果我大一的時候就看的是李興華老師的視頻課程,而不是跟著學校老師走,也許我就不會在大一的時候對編程失去了興趣。
我的學習建議是,大一上半學期從 C 語言開始,大一下半學期從 Java 語言開始,而不是一上來就把重心放到操作系統(tǒng)、計算機網絡、計算機組成原理這些課上,因為如果興趣沒有培養(yǎng)起來的話,可能就直接被勸退了。
計算機專業(yè)的課,并沒有想象中那么簡單。
我們需要先培養(yǎng)興趣,比如說學了 C 語言,學了 Java 語言,做個小游戲,做個計算器,做個聊天室、做個在線商城、做個圖書管理系統(tǒng);等有了一定的編程基礎后,大二的時候,就可以配合數(shù)據結構與算法、計算機組成原理這些基礎課開始學,把自己打造成一名“六邊形”戰(zhàn)士。
從大一開始,就按照招聘要求上的來,等到校招的時候,基本上你就超過了 95% 以上的同學了。
要記住:不付出比他人更努力的代價,是不可能脫穎而出的。我這些年付出的努力,大家應該也能感受到,目前 CSDN 總榜的積分已經來到了第九位,周榜也是經常在前十,并且一度霸占榜一。
這只是我個人取得的一點點微不足道的成績,我覺得更有意義的是,我輸出的內容,的的確確幫助到了很多小伙伴(哪怕是只有一點點),也讓我的生命里充滿了光和熱!

順勢而為,跟著學習欲望走,不要輕易中斷,一旦你進入沉浸式的學習狀態(tài)中,就可以在很短的時間內取得令人刮目相看的成績。
大一,需要開個好頭,后面就輕松了~
PS:7 月份竟然忘記開贊賞了,8 月第一天就順帶開一下這個月的贊賞吧(注意已經加粗加大,強烈暗示),打賞的額度不限,一元也是真愛。
偷偷地說一句,這個贊賞是后面送書(今年至少有100本了)的重要考量標準,哈哈哈,當然了,主要是鼓勵一下二哥,讓二哥感受到大家的愛。
