因爲種種緣由,迫使我寫下這篇博客,我相信,初入計算機相關專業的萌新確定很迷茫,我該學什麼,我該如何去學,我該如何學好等等問題纏繞心頭。有不少學弟學妹問我該如何去學計算機相關專業,做爲過來人,我決定將個人所知所得寫下來,讓初入計算機相關專業的萌新的學習之路走得更順暢一些。html
對於剛學習計算機相關專業的萌新來講,瞭解一下計算機的工做原理是十分必要的,可是在這裏咱們不過多闡述,讓你們簡單瞭解一下就好。前端
讓咱們先來看一下對於計算機名詞的解釋:java
計算機(computer)俗稱電腦,是現代一種用於高速計算的電子計算機器,能夠進行數值計算,又能夠進行邏輯計算,還具備存儲記憶功能。是可以按照程序運行,自動、高速處理海量數據的現代化智能電子設備。node
劃重點:python
咱們注意到,計算機就是一種用於進行數值計算的現代化智能電子設備。須要理解的是爲何是進行數值計算,在這裏,你會疑惑,爲何是數值計算呢,我輸入的明明不是數字呀?這個問題很容易解釋清楚,由於計算機只是一種電子設備,它不具備人類獨立思考和不斷學習的能力,它的全部功能都是事先設定好的,因此當計算機面對輸入字符的時候,會將它統一按照ASCII(計算機編碼系統)規則轉換爲數值「0」和「1」(二進制數值),因此,在計算機裏,數據存儲都是用「0」和「1」(即二進制數值)來實現。android
還有一點值得注意,按照程序運行,那麼問題來了,程序是什麼?程序就是一組計算機能識別和執行的指令, 它以某些程序設計語言編寫,運行於某種目標結構體系上 。舉個例子,程序就像是用英語(程序設計語言,例如c,c++)寫的文章,要讓一個懂的英語的人(編譯器,如C的編譯器gcc,這裏要注意編譯器和IDE的區別,一般IDE包含編譯器)同時也會閱讀這篇文章的人(結構體系)來閱讀、理解、標記這篇文章。c++
有學妹問過我,問什麼簡單的代碼,能實現豐富的效果。其實這取決於編譯器的強大能力。下面來簡單介紹一下,編輯器,編譯器,IDE(集成開發環境)的區別。git
vscode,vim,sublime,notepad++,emacs,atom
等等 ,雖然編輯器原始功能不足,可是開發人員爲了使編輯器更加友好,因此有不少內置插件可供使用,徹底能夠手動打造一個IDE。"hello,world!"
C語言代碼以後,咱們要讓它在屏幕打印出來咱們想要它輸出的"hello,world!"
,就須要經過gcc編譯器執行編譯後才能顯示。其餘語言同理。不少初入計算機相關專業的萌新,老是很迷茫,不知道本身該學什麼,一般是他們知道如何去學好學校開設的每一門課程,就是不知道本身該向哪些方向學習,這些方向指的是專業技能和就業方向,諸如web開發、Android/IOS開發、數據分析、人工智能、網絡安全、遊戲開發、軟件測試等等。有這種疑惑很正常,迷茫也是正常的,但咱們總要讓本身瞭解本身所需,而後腳踏實地,一步一步去充實本身的能力。而我想作的也很簡單,就是幫助你們解除內心的疑惑。那麼,咱們開始進入正題。程序員
對於這個問題,實際上是很難回答清楚的,由於每一個人的興趣都不相同,因此就很難去站在本身的角度去回答疑問者的問題。可是,原理都是想通的,我相信個人經驗會幫助到大家。github
一般,學校每學期都會開設一門或多門語言(程序設計語言,下文同),那麼,喜歡一門語言,首先要愛上它的語言風格,諸如Java的嚴謹,Python的自由,總有一款適合你;其次,在學習語言的過程當中,必定要了解它能幹什麼,市場環境如何,工做崗位多少等綜合因素,再決定要不要去深刻這門語言,而且主攻本身感興趣的那個方向。
對於學校沒有開設,可是本身又想學習的語言而言,該如何去選擇。首先,學校開設的語言基本是市場比較流行的語言,也符合市場需求,因此,徹底能夠在學校開設的語言中去選擇本身想要了解並學習的語言。此外,咱們能夠藉助 TIOBE https://www.tiobe.com/tiobe-index/ ( TIOBE 編程社區指數是編程語言流行度的指標,該榜單每個月更新一次,指數基於全球技術工程師、課程和第三方供應商的數量。包括流行的搜索引擎,如谷歌、必應、雅虎、維基百科、亞馬遜、YouTube 和百度都用於指數計算。 )去了解語言的流行程度,流行程度決定市場需求,以此來參考本身想要了解並學習的語言,在此附上2019年11月語言排名。
Java
C
C語言是一門基礎語言,是其餘一些語言的基礎,例如MATLAB,Object-C,Lua等.同時也是學習來比較難的語言,達到精通的程度沒有3-10年左右很難,C語言沒有比較完善的開發框架,是面向過程的一門語言,講究算法跟邏輯。
Python
C++
C#
JavaScript
惟一能用於先後端開發的語言
PHP
SQL
Swift
Ruby
R
數據科學闖天下,左手Python右手R
Go
語言 | 書籍 |
---|---|
C | 《嗨翻C語言》 |
C++ | 《C++權威教程》 |
Java | 《Java輕鬆學》 |
Python | 《Python編程從入門到實戰》 |
JavaScript | 《JavaScript入門經典》 |
PHP | 《PHP編程實戰》 |
SQL | 《SQL基礎教程》 |
Swift | 《Swift編程權威指南》 |
Ruby | 《Ruby從入門到精通》 |
R | 《R語言實戰》 |
Go | 《Go語言聖經》 |
網站 | 網址 |
---|---|
菜鳥教程 | https://www.runoob.com/ |
W3School | https://www.w3school.com.cn/index.html |
實驗樓 | https://www.shiyanlou.com/ |
猿學 | https://www.yuanxue365.com/ |
慕課網 | https://www.imooc.com/ |
SegmentFault | https://segmentfault.com/ |
博客園 | https://www.cnblogs.com/ |
GitHub | https://github.com/ |
掘金 | https://juejin.im/timeline |
學習數據科學 | https://www.dataquest.io/ |
易百教程 | https://www.yiibai.com/ |
看雲 | https://www.kancloud.cn/explore |
通篇寫完,感受本身也從新學到了不少,學習就是一個反覆複習的過程,每次學習都能帶給本身不同的收穫。但願以上內容能夠給初入計算機相關專業的萌新帶來一些幫助,後面我會不斷更新和優化本文,請你們持續關注。