大學想報計算機專業,暑假想要自學,有哪些建議?

 你們好,我是白雲。c++

有個粉絲朋友私信問我:今年剛高考完,想報計算機專業,想暑假自學,應該怎麼學?今天老白就針對這個問題好好聊聊,以前也聊過自學這塊說的也很全,但今天針對學生這個全體好好聊聊。程序員

目錄面試

 大學計算機專業學的內容是什麼?算法

1.C/C++語言編程

二、算法windows

3.數據結構 設計模式

4.操做系統數組

5.計算機網絡瀏覽器

學習前的準備都有哪些?markdown

下載和安裝

安裝系統

瞭解你的操做系統

進大廠的要求


  大學計算機專業學的內容是什麼?

主要學習如下五個方向:

1.C/C++語言

雖然你只有很小几率在工做以後用到它,但它依然無比重要。C Primer反覆看,而後一行行在電腦上敲出來。

C語言最難懂的是指針,這個暑假掌握仍是比較難的,內存是什麼,指針的本質是什麼,程序爲何會崩潰,這些問題弄懂了基本就通了。

推薦如下C+書籍:

《C++ primer》《Essential c++》 《C++編程思想》 《effective C++》《more effective C++ 》《Think in C++》《C++ primer plus》《C++ coding standard》。

二、算法

算法挺難,但不管是學習計算機專業仍是將來找工做,它都無比重要。

推薦一本高中生都能看懂的算法書:《個人第一本算法書》

3.數據結構 

數據結構的重要性相信不須要強調了,不只是工做後必備的技能,若是將來要參加研究生考試也是必考科目和拉分項。入門的話推薦《大話數據結構》,這本書詼諧有趣,在不知不覺中讓你掌握了數據結構,再推薦一本稍稍難一點的《數據結構和算法分析》。

4.操做系統

只要咱們使用計算機,就會和操做系統打交道,接受它的審覈與反饋。不少「熱門」的技術話題,背後都離不開操做系統。好比:

  • Nginx 的高併發性爲何能實現?
  • MySQL 的 I/O 性能到底怎樣提高?
  • Redis 中經典的 Reactor 設計模式由什麼技術支撐?
  • Node.js 的 I/O 模型長什麼樣?

甚至,在一個數十萬行代碼的大項目中,仍然會遇到一些基礎性的問題,好比內存爲何會泄漏,服務進程爲何會 dang 掉,文件爲何打不開等等。

5.計算機網絡

若是你要入門 HTTP,首先最好書籍就是《圖解 HTTP》了,做者真的作到完徹底全的「圖解」,書籍不厚,相信優秀的你,幾天就能夠看完了。

學習前的準備都有哪些?

下載和安裝

  1. 儘可能去官方網站下載你要的軟件。(過期的軟件如vc++6.0顯然沒辦法去官網下載了)不少搜索引擎都會將你要搜索軟件的官網標註出來。看到出來的搜索答案列表後面跟個「官網」準沒錯,後面跟個「廣告」就基本能夠跳過了。有的沒收錄官網的,就須要用經驗判斷了。
  2. 在網頁上找軟件時,注意你點的東西是否是一張圖片,並且這張圖片的角落還寫着「廣告」兩個字。若是是,這個顯然是不能下載你想要的東西的。
  3. 下載站裏面,若是遇到什麼高速下載器下載,統統無視掉,只管找普通下載的渠道。固然,如今不少下載站流行留百度網盤連接或者公衆號掃碼獲取下載連接,這二者通常都是沒啥問題的(不保證無毒),就是麻煩而已。
  4. 安裝軟件時,若是你看到是個啥下載器,建議直接關閉,從新找資源。
  5. 安裝軟件時不要一直點下一步,多注意安裝界面每一步能夠用鼠標打勾勾的東西,若是這些後面是些安裝xxx的,去掉選中,就不會安裝了。固然自啓通常也都去掉比較合適,快速啓動欄看需求。

安裝系統

搞個虛擬機軟件,試用幾十天十幾天都無所謂,反正安裝系統要不了多久。

具體怎麼找虛擬機軟件,去各類論壇、博客、知乎之類的平臺找資源就好。

後續在 windows 編程學習過程當中,也能夠用虛擬機來完成一些比較「危險」的操做。

學會裝 windows 以後,也能夠試着裝 Linux 甚至是 Mac 。

有些勸新人用 Mac 或者 Linux ,這沒什麼很差,可是大多數人用 Windows 會更合理。若是你電腦用得很熟,上 Mac 或者 Linux 那確定沒問題。

然而不少課程上老師準備的課程資料只有 win 版本的,其餘系統的可能要本身去找,並且還不必定契合課程,萌新會很痛苦的。

瞭解你的操做系統

不少時候,咱們與其說用電腦作事,不如說咱們在用操做系統作事。

事實上不少編程語言都會用到系統層面的接口,而操做系統自己的設計也是遵循許多有助於編程的原則的。

首先你要搞明白文件是個什麼東西,文件和文件夾區別是什麼,文件的後綴有什麼用?

擴展一下,好比 MP3 和 m4a 都能播放音樂, MP4 和 avi 均可以播放視頻, png 和 jpg 均可以顯示圖片……

你要明白剪貼複製之類的是什麼意思,鼠標左鍵和右鍵有什麼用,滾輪除了瀏覽網頁還能夠關閉瀏覽器標籤頁……

你要去接觸你係統上儘量多的功能,好比用 cmd 命令提示符來關機、用 Ctrl + R 來打開軟件、使用 Win10 的搜索功能來查找文件和應用……

瞭解CPU、內存、顯卡、硬盤等硬件有啥用。

不說精通,你至少要用電腦跟用紙筆同樣熟練

進大廠的要求

要想畢業就進大廠,本科拿到月薪15K以上,碩士拿到25K以上,作好如下這些很重要:

  • 選定一門主攻的基礎語言方向,好比Python、C、Java等,並真正攻克它;
  • 算法和數據結構:數組、鏈表、二叉樹、堆棧、排序算法、B+/B-樹、DP(動態規劃)等;
  • 瘋狂刷題,撒比算法題、Leetcode等等,都挺不錯,刷起來
  • 計算機網絡:HTTP、DNS、ARP、TCP、IP、ICMP、UDP等;
  • 操做系統:IO、存儲器、多線程/多進程、同步機制、處理器調度及死鎖、設備管理、通道等;
  • 計算機組成原理:馮諾依曼計算機組成、計算機層次結構、計算機性能指標等;
  • 多實踐多上機,機房要常去
  • 抓住一切能夠實習的機會,是否有實習經歷每每是大廠給不給offer的分水嶺

以上實際上是大廠面試官的考覈範圍,而且他們之間有前置知識點的相關性,簡單點說:不會基礎語言不會算法和數據結構,你確定無法刷題,也無法看懂計算機網絡和操做系統、組成原理等等。

重點強調下算法,很是重要,不管是讀研讀博深造仍是經過大廠的面試,算法都是必須的。

我是白雲,一名喜歡分享知識的程序員,感興趣的就趕忙來點擊關注我把,哪裏有不明白或有不一樣觀點的地方歡迎留言!  

相關文章
相關標籤/搜索