對於計算機相關專業咱們在迷茫什麼

計算機相關專業初識--對於計算機相關專業咱們在迷茫什麼

前言

因爲種種緣由,迫使我寫下這篇博客,我相信,初入計算機相關專業的萌新確定很迷茫,我該學什麼,我該如何去學,我該如何學好等等問題纏繞心頭。有不少學弟學妹問我該如何去學計算機相關專業,做爲過來人,我決定將個人所知所得寫下來,讓初入計算機相關專業的萌新的學習之路走得更順暢一些。html

1、什麼是計算機

對於剛學習計算機相關專業的萌新來講,瞭解一下計算機的工做原理是十分必要的,可是在這裏咱們不過多闡述,讓你們簡單瞭解一下就好。前端

讓咱們先來看一下對於計算機名詞的解釋:java

計算機(computer)俗稱電腦,是現代一種用於高速計算的電子計算機器,能夠進行數值計算,又能夠進行邏輯計算,還具備存儲記憶功能。是可以按照程序運行,自動、高速處理海量數據的現代化智能電子設備。node

劃重點:python

  • 咱們注意到,計算機就是一種用於進行數值計算的現代化智能電子設備。須要理解的是爲何是進行數值計算,在這裏,你會疑惑,爲何是數值計算呢,我輸入的明明不是數字呀?這個問題很容易解釋清楚,由於計算機只是一種電子設備,它不具備人類獨立思考和不斷學習的能力,它的全部功能都是事先設定好的,因此當計算機面對輸入字符的時候,會將它統一按照ASCII(計算機編碼系統)規則轉換爲數值「0」和「1」(二進制數值),因此,在計算機裏,數據存儲都是用「0」和「1」(即二進制數值)來實現。android

  • 還有一點值得注意,按照程序運行,那麼問題來了,程序是什麼?程序就是一組計算機能識別和執行的指令, 它以某些程序設計語言編寫,運行於某種目標結構體系上 。舉個例子,程序就像是用英語(程序設計語言,例如c,c++)寫的文章,要讓一個懂的英語的人(編譯器,如C的編譯器gcc,這裏要注意編譯器和IDE的區別,一般IDE包含編譯器)同時也會閱讀這篇文章的人(結構體系)來閱讀、理解、標記這篇文章。c++

有學妹問過我,問什麼簡單的代碼,能實現豐富的效果。其實這取決於編譯器的強大能力。下面來簡單介紹一下,編輯器,編譯器,IDE(集成開發環境)的區別。git

  • 編輯器:編輯器就是用來編輯的軟件,好比windows自帶的記事本就是一個編輯器, 記事本沒有語法高亮,不顯示行號,當一段可執行代碼寫完後沒法經過內置環境執行,必須手動輸入命令執行編譯等等一些弊端,因此不多有程序員會用記事本去寫代碼 , 寫代碼比較好用的編輯器軟件有vscode,vim,sublime,notepad++,emacs,atom等等 ,雖然編輯器原始功能不足,可是開發人員爲了使編輯器更加友好,因此有不少內置插件可供使用,徹底能夠手動打造一個IDE。
  • 編譯器:簡單來講,編譯器就是將「一種語言(通常爲高級語言,如c,c++,java,python等,計算機不可直接識別和執行)」翻譯爲「另外一種語言(通常爲低級語言,低級語言即機器語言,機器語言是用二進制代碼表示的計算機能直接識別和執行的一種機器指令的集合)」的程序。舉個例子,用Dev-C++寫好一段可執行"hello,world!"C語言代碼以後,咱們要讓它在屏幕打印出來咱們想要它輸出的"hello,world!",就須要經過gcc編譯器執行編譯後才能顯示。其餘語言同理。
  • IDE:集成開發環境,用於程序開發環境的應用程序,通常包含代碼編輯器編譯器調試器圖像用戶界面等工具。集成了代碼編寫程序分析程序編譯程序調試等功能。如 jetbrains 的用於Java開發的 IntelliJ IDEA 、用於JavaScript開發的WebStorm、用於Python開發Pycharm,微軟的 Visual Studio系列 ,IBM的Eclipse。

2、咱們該學什麼

不少初入計算機相關專業的萌新,老是很迷茫,不知道本身該學什麼,一般是他們知道如何去學好學校開設的每一門課程,就是不知道本身該向哪些方向學習,這些方向指的是專業技能和就業方向,諸如web開發、Android/IOS開發、數據分析、人工智能、網絡安全、遊戲開發、軟件測試等等。有這種疑惑很正常,迷茫也是正常的,但咱們總要讓本身瞭解本身所需,而後腳踏實地,一步一步去充實本身的能力。而我想作的也很簡單,就是幫助你們解除內心的疑惑。那麼,咱們開始進入正題。程序員

1. 咱們該如何選擇適合本身的方向

對於這個問題,實際上是很難回答清楚的,由於每一個人的興趣都不相同,因此就很難去站在本身的角度去回答疑問者的問題。可是,原理都是想通的,我相信個人經驗會幫助到大家。github

  • 一般,學校每學期都會開設一門或多門語言(程序設計語言,下文同),那麼,喜歡一門語言,首先要愛上它的語言風格,諸如Java的嚴謹,Python的自由,總有一款適合你;其次,在學習語言的過程當中,必定要了解它能幹什麼,市場環境如何,工做崗位多少等綜合因素,再決定要不要去深刻這門語言,而且主攻本身感興趣的那個方向。

  • 對於學校沒有開設,可是本身又想學習的語言而言,該如何去選擇。首先,學校開設的語言基本是市場比較流行的語言,也符合市場需求,因此,徹底能夠在學校開設的語言中去選擇本身想要了解並學習的語言。此外,咱們能夠藉助 TIOBE https://www.tiobe.com/tiobe-index/ ( TIOBE 編程社區指數是編程語言流行度的指標,該榜單每個月更新一次,指數基於全球技術工程師、課程和第三方供應商的數量。包括流行的搜索引擎,如谷歌、必應、雅虎、維基百科、亞馬遜、YouTube 和百度都用於指數計算。 )去了解語言的流行程度,流行程度決定市場需求,以此來參考本身想要了解並學習的語言,在此附上2019年11月語言排名。

2. 主流編程語言主要應用場景

  • Java

    1. 企業級應用開發: 大到全國聯網的系統,小到中小企業的應用解決方案,Java都佔有極爲重要的地位 。
    2. web後端開發: JSP+Servlet+JavaBean 是一種比較流行的開發模式。
    3. 移動領域:手機遊戲。
    4. Android App開發: android 開發只用到了JAVA的語法和JAVA SE的一小部分API。
  • C

    C語言是一門基礎語言,是其餘一些語言的基礎,例如MATLAB,Object-C,Lua等.同時也是學習來比較難的語言,達到精通的程度沒有3-10年左右很難,C語言沒有比較完善的開發框架,是面向過程的一門語言,講究算法跟邏輯。

    1. 科研
    2. 服務器: 網絡核心設備,如路由器、交換機、防火牆。
    3. 操做系統:類unix系統(Linux/freebsd)
    4. 嵌入式開發: 在一個特定的硬件環境上開發與構建特定的可編程軟件系統的綜合技術。
    5. 自動化控制
  • Python

    1. 圖形處理
    2. 數學處理
    3. 文本處理
    4. 數據庫編程
    5. 網絡編程
    6. 多媒體應用
    7. pymo引擎: 運行於Symbian S60V3,Symbian S60V5,Symbian 3,Android,Windows,Linux,Mac Os,Maemo,MeeGo系統上的AVG遊戲引擎。
    8. 黑客編程
    9. 網絡安全
  • C++

    1. 遊戲開發
    2. 科學計算
    3. 網絡軟件
    4. 操做系統
    5. 設備驅動程序
    6. 移動設備
    7. 嵌入式開發
    8. 科研
    9. 編譯器
  • C#

    1. web後端開發
    2. 桌面軟件開發
    3. 人工智能
    4. 遊戲開發
  • JavaScript

惟一能用於先後端開發的語言

  1. web前端開發
  2. node web後端開發
  3. 操做系統
  4. 後臺
  5. 桌面軟件開發
  6. 混合App
  7. 小程序
  8. 一切能用js實現的,最終必將用js實現
  • PHP

    1. web後端開發
    2. 桌面軟件開發
    3. 命令行腳本
  • SQL

    1. 操做數據庫
  • Swift

    1. 蘋果生態系統應用開發
  • Ruby

    1. web開發
  • R

    數據科學闖天下,左手Python右手R

    1. 機器學習
    2. 數據分析
    3. 科學計算
  • Go

    1. web後端開發
    2. 高性能服務器應用

3. 主流編程語言學習路徑(將持續更新,僅供參考)

  • JavaScript

4. 主流編程語言入門學習書籍推薦

語言 書籍
C 《嗨翻C語言》
C++ 《C++權威教程》
Java 《Java輕鬆學》
Python 《Python編程從入門到實戰》
JavaScript 《JavaScript入門經典》
PHP 《PHP編程實戰》
SQL 《SQL基礎教程》
Swift 《Swift編程權威指南》
Ruby 《Ruby從入門到精通》
R 《R語言實戰》
Go 《Go語言聖經》

5. 編程學習網站推薦

網站 網址
菜鳥教程 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

3、總結

通篇寫完,感受本身也從新學到了不少,學習就是一個反覆複習的過程,每次學習都能帶給本身不同的收穫。但願以上內容能夠給初入計算機相關專業的萌新帶來一些幫助,後面我會不斷更新和優化本文,請你們持續關注。

相關文章
相關標籤/搜索