如何自學計算機?
個人感悟,記錄并分享:
一開始進入大學,地基結構決定上層建筑,基礎知識決定發展上限。一開始必須學好基礎知識:
英語(常用語,專業術語),
數學(概率,統計,微積分等等)
數據結構和算法
.....
基礎知識完全覺得一個程序員的天花板!而且需要持續學習,不斷復習的。比如做機器學習,數據挖掘類的,數學重要程度不言而喻,英語更是必備技能...
具體的教材啥的就不推薦了,上好高數課,過了4,6級,多寫算法...然后是專業基礎,計算機不是幾個APP,做幾個網頁,做幾個游戲就能概括的,專業基礎應該多涉獵,CS主要是:
硬件類,比如數字電路,EDA,存儲器等等,這個一般高校都有涉及。
軟件類:編程語言,軟件開發,軟件測試等等,(人生苦短,我選python)
網絡及系統類:計算機網絡,操作系統等等
計算類:密碼學,算法設計分析等等,(包括火熱的AI,機器學習)
如果直接投入上面各種計算機專業領域是扯談的,每一類都是大學問,大多數人也沒有去了解多少,更多的是直接學app怎么做,網頁怎么寫....但是我認為,只看到學計算機學科之后就是碼農搬磚的話,自嘲還好,但認真了就是思想局限,毫無發展...而一開始我們需要多去涉獵各個領域的基礎知識,不需要深入,但了解了之后會更加清楚自己的興趣所在和特長,明確自己的定位。
小小推薦一些基礎書籍和教程:《算法導論》,《深入理解計算機系統》,《計算機程序的構造和解釋》,K&R的《 C程序設計語言》,《編碼:隱匿在計算機軟硬件背后的語言》 等等,都是經典計算機著作,可以或者說需要深讀。再然后,就是找準定位,術業有專攻,看看自己對那個領域更加感興趣。看看各個領域自己需要學什么。怎么找?很簡單,直接去各大招聘網站找自己領域出來對應的職位,那里是怎么要求的,就是我們需要怎么學的。比如隨便網上找的數據挖掘工程師:
或者去
@牛客網等網站看看那邊的面試經驗,筆試題目,類別,就知道要學什么了。再或者,去CSDN等博客網站找找各種職業的技能樹。
最后,方法論說幾個,學會記筆記,寫博文,至今認為這是沉淀自己最有效的方式; copy,很多人唾棄拷貝,但我覺得我們也要學會copy,雖然只會拷貝是不可取的,但很多時候,學會拷貝不會錯,不重復造輪子,學會節省時間,也是一種站在前人的肩膀上看世界的道理。去那里copy,怎么copy,怎么讓自己不重復敲千篇一律的代碼,也是一種技能~~調侃一波: