大學學習編程的一點小建議

雖然十多年過去了,但回想起大一時候的光景,仍然歷歷在目。

由於計算機專業是學校新開的專業,所以老師們也沒有多少教學經驗,於是我們第一學期就直接開搞 Java 這門編程語言了,教材用的是大名鼎鼎的《Java 編程思想》和《Java 開發寶典》。

由於沒有一丁點編程基礎,所以上課的時候完全聽不懂,看書就像是看天書一般,心裏很慌,但也沒什麼好辦法。

和我類似情況的同學還有不少,能在下半學期轉到其他專業的都轉了;不能轉的,就和我一樣瞎胡混着。

現在想想,這有點小慶幸呀,要是當時我學習成績再好點,轉了專業,說不定真的後悔一輩子,哈哈哈。

不知道大家有沒有類似的經歷哈,包括玩遊戲耽誤課程,最後自暴自棄,甚至有些小夥伴畢業的時候畢業證都沒能順利拿到,特別耽誤事。

作爲“僥倖”走出來的“過來人”,給大家提幾點個人建議吧。

01、大學同樣需要自律

上高中的時候,老師天天給我們灌輸這樣一種理念:“同學們,好好學呀,等你們上了大學就可以徹底放鬆了,那時候再也沒有人管你們,想怎麼浪隨你們的便。”

實際情況呢,如果大學真的徹底放縱了,之前多少年的努力都可能化爲烏有。

之前就有幾個小夥伴給我傾訴心聲,說自己大學沒有好好學,畢業後找不到工作,又害怕進培訓班被坑,後悔的要命。

確實呀,大學同樣需要自律。我們班就有這麼三四個同學,比如說我提到的石磊同學,他上大學的時候就有自己的規劃,所以編程功底一直都很好。

還有一個叫海洋的同學,現在在蘇州,已經做到技術總監的位置。大學的時候,他經常把自己鎖在機房,獨自學習編程。

我呢,經常是拿着筆記本電腦打單機遊戲,日子過得一塌糊塗。

這裏叮囑大家一句哈,大學千萬不要貪圖享樂,每個學期都應該給自己提前規劃好,比如說要刷撒幣算法題,要學習數據結構,要喫透 CSAPP。

要像一塊海綿一樣,瘋狂地吸收知識,也只有這樣,才能找到滿意的工作

可以少參加一些社羣,多泡泡圖書館,多讀一些計算機經典書籍,比如說《代碼整潔之道》、《浪潮之巔》等等,還有各種黑皮書。

02、只要開始就不怕晚

我是大二下半學期纔開始意識到危機的,因爲當時彙編和計算機網絡都掛科了。再這麼下去,拿畢業證都成問題,這簡直對我打擊太大了。

於是就下定決心,一定要彌補一下。

當時也沒有很好的學習路線,網上的資源也沒有現在這麼豐富,手頭上有的一份視頻資料就是李興華老師的講課視頻。講 Java 的,很激情。

我去,剛剛去搜了一下,竟然還能搜得到李老師講課的視頻!關鍵是,智能ABC輸入法還在!

一開始,還是挺難的,因爲基礎太差,很多聽不懂。沒辦法,我只好一遍聽不懂,就再聽一遍,前前後後一套視頻看了有三遍吧。

當然了,編程是看不會的,也聽不會的,只能練,我不僅照抄李老師的代碼,自己還把谷歌拼音輸入法給卸載了,切換成了智能 ABC。以至於我現在打字仍然是最多隻敲兩個字,除非是成語。

我是先看李老師在講義上的代碼,然後暫停,自己去理解,理解不了就去背,然後腦子裏有點東西的時候就下手去敲。卡殼的時候,就重複之前的動作,直到代碼的完整邏輯全部都吸收到了腦子裏。

兩個月時間過去後,就有了點編程基礎,然後就嘗試自己主動去修修改改,看是不是還能跑的通。

等到大三的時候,也許是努力得到了老天的眷顧,就拿到了一家外企的實習offer。

03、認清現實很重要

我在實習的時候,有主動去看 C++ 的書,就是那本《C++ Primer》,第四版的,現在那本書以及習題冊還在家裏擺着,算是陪伴了快十年的時間了吧。

沒有丟掉它,因爲前輩有給我說,以後有機會,還是要學習一下 C++ 的,這門編程語言實在是太經典了。前輩的話,讓我對 C++ 充滿敬畏。

但時間過去了這麼多年,仍然沒有機會和時間去學習 C++,因爲一入 Java 深似海啊!

前幾天我畫了一張思維導圖,重新梳理了 Java 後端工程師的學習路線圖(參照自我的偶像程序羊),發現 Java 這個海是真的大呀~

之前有小夥伴問我,學 Java 太難了,要不要轉前端?

有一說一,經過這麼多年的發展,其實前端要學習的東西也不少!

我們一定要認清現實,學編程並非一朝一夕的事情。不能說 Java 難就轉前端,前端難就轉測試,到最後可能什麼都沒學好。

大二下半學期認真補了一把 Java 後,雖然時間短,很多東西只學到了皮毛,比如說併發編程、Java 虛擬機,但經過這半年的刻苦努力,確實入門了。

有了這個基礎,實習的時候雖然做的都是比較簡單的任務,但基本上能獨立完成任務了。

能獨立完成任務後,整個人的精氣神就完全不一樣了,學習的慾望和動力就有了,整個人經常能進入一種沉浸的狀態,瘋狂地吸收,人也越來越自信,之前的那種頹喪的感覺終於一掃而光了。

雖然我們學習的是計算機科學與技術,要學習計算機組成原理、操作系統、數據結構與算法,但大多數情況下,我們還是應該把編程語言給學好了,只有這件事做好了,你才能在學習編程的這條道路上走得更遠。

所以大家在大一的時候儘量就確認好自己要學習哪一門編程語言,儘量不要來回切換,雖然編程思想是相通的,但語法上的切換仍然是需要花費時間和精力的。

我的建議是,大一上半學期儘量選擇 C 語言來打基礎,有了 C 語言作爲基礎,大一下半學期就可以無縫切換到 Java 語言上來。

如果真的很有天賦,在學完 C 語言後可以嘗試實現一個自己的編程語言,可以參照下面這個項目路線,一個 1000 行左右代碼的簡單 Lisp:

https://www.shiyanlou.com/courses/670

當然了,如果遇到困難,比如說 C 語言的指針實在是喫不透,也沒關係的,完全可以直接跳過,開搞 Java。

Java 語言的好處就不用我多吹了,我只說一點,Java 後端開發崗的薪資是真的挺香的,另外就是工作崗位是真的挺多的。

卷並快樂着~

選擇 Java,就意味着工作崗位就穩了,這是最實際的考慮。

零基礎學習 Java 的話,首推二哥連載的《教妹學Java》專欄,風趣幽默,通俗易懂:

https://github.com/itwanger/jmx-java

通俗易懂,風趣幽默,已更新到第 51 篇,喜歡這個專欄的可以幫二哥多多宣傳一下,GitHub 上雖然只有 99 個 star,但二哥有信心把它推到 1000 個 star,嘿嘿嘿。

(強烈暗示了哈)

04、學編程沒有捷徑

學習從來無捷徑,循序漸進登高峯。

很長一段時間內,我都是一名偏應用型的選手,就是公司給我安排的任務,我就是能解決(哈哈,主要靠搜索引擎),但是要我講理論知識,真的是抓瞎。

一般來說,學編程的人分兩種。

一種從理論基礎開始;一種從應用實戰開始。

大學科班一般走的是第一種,培訓班出身或者自學的,一般走的是第二種。

這兩種學習方式我認爲都沒有問題,沒有孰輕孰重。

因爲每個人的潛力不同,只要是奔着一個目的(把編程學好)去的,都沒有捷徑,必須得身經百戰,才能成爲一名合格的工程師。

唯一我認爲可以投機取巧的一點就是,趁早搞清楚自己要去哪一家公司,要應聘哪一個崗位。

去招聘網站上,去公司主頁上,去校園信息網上,找到崗位職責和技能清單。比如京東上的 Java 高級工程師。

大學階段,儘量不要把精力放到新技術和新框架上,不要說 RabbitMQ 很火,就去學 RabbitMQ,不要說 Kafka 很火,就去學 Kafka,而是要有的放矢。

你想要去的崗位要求什麼,就去學什麼,那些新技術和新框架,完全可以放到工作以後,有需要的時候再去學,把有限的時間投放到最能表現出你個人價值的地方。

05、最後的建議

學習,一定要選一門好的教程,無論是一本書,還是一個視頻,還是在線的網課。如果不知道怎麼選,就聽二哥的,保準靠譜。

選對了,就可以少走很多彎路。

有一說一,如果我大一的時候就看的是李興華老師的視頻課程,而不是跟着學校老師走,也許我就不會在大一的時候對編程失去了興趣。

我的學習建議是,大一上半學期從 C 語言開始,大一下半學期從 Java 語言開始,而不是一上來就把重心放到操作系統、計算機網絡、計算機組成原理這些課上,因爲如果興趣沒有培養起來的話,可能就直接被勸退了。

計算機專業的課,並沒有想象中那麼簡單。

我們需要先培養興趣,比如說學了 C 語言,學了 Java 語言,做個小遊戲,做個計算器,做個聊天室、做個在線商城、做個圖書管理系統;等有了一定的編程基礎後,大二的時候,就可以配合數據結構與算法、計算機組成原理這些基礎課開始學,把自己打造成一名“六邊形”戰士。

從大一開始,就按照招聘要求上的來,等到校招的時候,基本上你就超過了 95% 以上的同學了。

不付出比他人更努力的代價,是不可能脫穎而出的。

順勢而爲,跟着學習慾望走,不要輕易中斷,一旦你進入沉浸式的學習狀態中,就可以在很短的時間內取得令人刮目相看的成績。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章