最近有不少還在讀書的同學來問我大學期間到底該學什麼,學了Java,看了JS, HTML,CSS, 嘗試了一下SSH以後似乎就迷茫了, 這其中還有不少是計算機系的同學。
毫無疑問,為了畢業後找個好工作,在大學期間應該學一些應用層的技能,掌握一門應用廣泛的語言及其框架。最好做過實際的項目,有過實習的經驗, 這些都是履歷中能看得到的加分項,是脫穎而出的重要砝碼。
但是這些東西都是一顆大樹的枝葉和花朵, 在大學期間更應該學習的是看不見的根,也就是基礎知識, 對於科班出身的人更是如此。
原因很簡單,基礎知識雖然可以在工作以後再補,但是再也找不到這麼多大塊的時間,這麼安靜的環境,讓你心無旁騖的鑽研了。
你不用考慮著第二天怎麼去應付客戶的臉色,也不用去想著怎麼去給領導解釋昨晚的嚴重Bug不是我們的問題, 你只需要單純的學習就好,看到有這麼多同學把美好的時光都花在打遊戲上,實在是令我扼腕嘆息,要是把這些時間給我就好了!
我現在只能利用一些碎片時間補一下基礎的知識,如果時光倒流,讓我再坐到圖書館中去靜靜地看書該多好!
同學甲說: 基礎,又是基礎,老劉你說了多少遍了!我耳朵都聽出繭來了!
抱歉,基礎就是這麼很重要,我還是要像祥林嫂一樣繼續囉嗦。
我認為大學期間應該搞定的基礎知識應該包括(不限於)這些:
2 C語言大學期間不要忙著去學Java , Python等高階語言, 你應該先去搞定C語言(不是C 啊),因為這門語言太貼近機器了, 能幫助你理解計算機的運作原理,不信你看看《深入理解電腦系統》, 通篇都是C語言,它怎麼不用Java,Python去描述啊?因為他們太高級了,太抽象了,描述不了底層。
學會C語言,才能為其他基礎知識打下基礎,因為大部分基礎軟體、系統軟體都是C語言寫的,你看不懂C程式那怎麼行?
不要像我當年一樣,看到別人已經能做網頁了,自己還在命令列的小黑窗口中折騰,頭腦一熱就把C語言給扔了,後來又花了很多時間來彌補。
要記住你學會了C這門貼近硬體的,簡單又複雜的語言以後,再去學別的語言,幾乎不費吹灰之力, 他們都太簡單了!
3 理解電腦的組成原理如果你是科班的,老老實實地把《電腦組成原理》和《數位電路》這兩門課學了,把那些實驗內容(如門電路,半加器,全加器,觸發器等)兢兢業業做好。
你應該定個目標: 自己折騰一個簡單的CPU,簡單的就是進行數值運算,複雜一點兒的可以實現指令, 如果覺得教材實在枯燥,可以結合《編碼》或者《穿越計算機的迷霧》 來學習, 如果我實在喜歡玩遊戲,可以到《我的世界》遊戲中去製造CPU啊,已經有大牛這麼做了。
4 理解操作系系統原理作業系統太重要了, 對作業系統的理解決定了你以後工作中能達到的深度,這裡邊藏著太多極為重要的概念, 例如進程,線程的概念,鎖、調度,IO模型,虛擬儲存等等, 他們會在你以後做高效能,高並發系統這一塊兒起到重要作用。
即使你先學會了Java , SSH/SSM, 隨著你能力的提升,最後你還是得走入這些基礎知識的世界。為什麼不在大學期間把他們都搞定呢?
有人可能覺得OS太枯燥了,實在是看不下去,其實OS是一門動手實踐課, 你可以去看看早期Linux 內核的源碼(要求C語言啊),書籍文章多如牛毛; 也可以自己動手自製簡單的作業系統,視訊書籍也不少,就看你願不願意把玩遊戲的時間花在上面了。
舉個例子:哈工大的VOID同學就在本科期間從零開始做了一個類似於Linux 0.11的操作系統出來,他拿到了阿里的Special Offer , 目前在阿里就職。他錄製的《從零開始寫作業系統》影片可以在B站看到: https://www.bilibili.com/video/av12169693/
同學乙要問了: “人家是大牛,還有一個好學校,我一個三本的渣渣怎麼可能做得出來? 你這不是給我設置了一個不可能完成的任務嗎?”
確實是這樣,天才永遠只有少數,不可能每個人都成為天才,也不可能每個人都做出天才的成果。
但是我們也要在天才鋪好的道路上堅持往前走走, 也許有一天就會發現,哦,我已經超越了這麼多人了啊!
要堅持使用Linux而不是Windows,立志在後端做開發的更是要如此, 別像我大學時安裝個雙系統,結果整天寵幸Windows , 從來不翻Linux的牌子。
5 網絡, 資料庫, 編譯原理把這三者合在一起, 是我個人覺得他們的重要性沒有前面的高。
對於網絡,需要理解網絡分層模型,可靠性傳輸原理,TCP/IP協議,Socket編程,和作業系統結合起來可以考慮寫一個Web伺服器。
資料庫的話先理解SQL、關聯式模型、事務、索引, 要深入學習的話可以看看查詢是怎麼實現的,事務是怎麼實現的, 如果確實感興趣一定要看看sqlite的源碼。
學編譯最好的方式就是自製一個程式語言了, 搞出來以後會對程式語言有個極為透徹的理解。
6 資料結構與演算法這個重要性就不用再強調了,常常看碼農翻身的可能都要煩了,可以看看之前的文章《學習資料結構有什麼用? 》
學習的過程中除了看書、理解各種演算法和資料結構外,更重要的就是做題、做題、做題!
同學丙說: 「老劉,你說的不都是電腦的專業課嗎?」
是的,就是電腦的專業課,一般來說,工作個幾年以後你才會體會到他們的珍貴,更會痛惜大學時為什麼不好好學,就像我現在這樣。
不要侷限於學校發的教材,現在網路上的影片資源異常豐富,世界級大學的課程我們也可以看到,千萬不要浪費。
同學丁說:老劉你別瞎BB了,你讓我學Java,做項目,現在又讓我造CPU,寫操作系統,資料庫,伺服器...... 我都沒時間和女朋友約會了。
恭喜你,已經有女朋友了,超越了大部分同學了,在大學談一場戀愛,享受一下青春也是非常重要的事情。
但是我想說的是,你不可能把所有的都學會,你能做的就是集中火力突擊一個方向,那就是你最感興趣的方向。只有那些經得住寂寞,耐得住誘惑的才最有可能成功,如果再和自己的興趣結合起來,那簡直肯定成功。
總而言之,電腦的基礎知識讓你和別人區分開來,讓你有著比別人更快的加速度。
但是老劉瞎BB這麼多估計也沒太大用處,因為你不行動我也沒有辦法。
以上是大學學習計劃之計算機的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Libreoffice脫穎而出,是一個健壯的開源辦公室套件,適用於Linux,Windows和Mac平台。它擁有一系列用於處理Word文檔,電子表格,演示,圖紙,計算和Mathematica的高級功能

在AWK命令系列的較早部分中,我們的重點主要是從文件中讀取輸入。但是,如果您需要從stdin中讀取輸入怎麼辦?在Awk系列的第7部分中,我們將探索幾個示例,您可以在其中使用O的OF O的輸出。

Clifm是一個獨特而令人難以置信的迅速命令行文件管理器,在類似殼的界面的基礎上設計。這意味著用戶可以使用他們已經熟悉的命令與他們的文件系統互動。

如果您不想執行Linux Mint 22 Wilma的新安裝,則可以選擇從以前的版本中升級。在本指南中,我們將詳細介紹從Linux Mint 21.3升級的過程(21.x系列的最新次要版本

要在Linux命令行上壓縮CSS和JavaScript(JS)文件,您可以使用兩個有效的工具:用於javaScript的uglifyjs和for css.compression涉及從源代碼中刪除不必要的字符,例如SpaceS等源代碼

Luks代表Linux Unified鍵設置,是Linux內核使用的強大磁盤加密方法。它是使用CryptSetup軟件包實現的。使用對稱的Encryp,CryptSetup命令行工具實時加密卷磁盤

版本控制是當代軟件開發,促進團隊和個人以保證監視,管理和協作的個人的重要工具。無論您是開發基本腳本還是全面應用程序,Mai


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具