隨著人工智慧和大資料時代的到來,計算機專業被推到了風口浪尖上。那麼什麼是計算機專業呢?
計算機專業是指計算機硬體與軟體相結合、面向系統、更偏向應用的寬口徑專業。通過基礎教學與專業訓練,培養基礎知識紮實、知識面寬、工程實踐能力強,具有開拓創新意識,在電腦科學與技術領域從事科學研究、教育、開發和應用的高階人才。
如果您選擇的專業是計算機專業,那麼恭喜您,您所選擇的計算機專業很有前景。未來一段時間,社會對計算機相關產業的人才需求一直呈上升趨勢,這是一個朝陽行業。
但有的學生在就讀計算機專業時,想著只要跟著學校的安排走,考幾個證書拿到畢業證書就算完事了,這樣子讀完三年後,怎麼可能成為一個有前途的人呢?證書和文憑從來都不是決定一個人命運的關鍵因素,真正決定一個人命運的,是這個人所掌握的知識和技術以及由此構建起來的知識體系。
我個人認為,目前無論是技校還是大學,對計算機知識的教學稍顯落後,有些與社會需求脫節,為了讓您有更強的競爭力,建議您在學好學校專業課程的同時,充分利用課餘時間,構建自己完整的知識體系和技術棧。
每個學校所開設的專業課程都有所不同,這方面我就不再贅述。我重點談一談,我們應該構建怎樣的知識體系和技術棧。
現在計算機相關產業所用到的技術非常龐雜,比如做網站、做手機App、搞資料分析等等,用到的技術各不相同。我這裡就整理兩條技術棧供您參考:
HTML5+CSS+JS\\PHP\\Node.js\\Vue.js等(Web\\App方向)現在開發手機APP和微信小程式是非常流行的工作,要想以後成為一個手機APP工程師,就必須掌握上面的一套知識體系。可以先從做網頁或者網站入手。
HTML5+CSS+JS : 網頁設計的基礎語言 。如果把網站比作一個人,HTML5相當於人的骨骼,CSS相當於人的肉體,而JS相當於人體的動作。在這裡提到一點,很多人會把H5和HTML5混為一談,實際上HTML5 和 H5 根本不是一個層面的東西:HTML5是一種編輯語言,而H5既不是 HTML5、也不是微信網頁。從某種意義上來說,它是這些東西的母級,H5所指的就是移動網頁本身,它能夠包含所有這些分支!
PHP : PHP是建立動態互動性站點的強有力伺服器指令碼語言。可以說PHP 是一門奇葩的語言:它既不快,語法又不漂亮。還沒有遵守良好的軟體開發實踐。但很多人還是使用它開發了很多軟體。 那麼問題就很明顯了,為什麼今天還在使用 PHP ?
門檻低,簡單易學擁有強大的面向物件包管理,可以方便地引用優質且維護良好的庫,具有很高的易用性。開源,且擁有足夠大的社群,具備動態語言的特性Node.js :Node.js既不是一個框架,也不是一門語言,簡單來說就是一個應用程式設計平臺。那我們為什麼要學習它呢?
原因之一是效率,在一個web應用中,你的主要響應時間成本通常是執行所有資料庫查詢所需的時間總和。使用node的話,你可以同時執行所有查詢。這樣的話就可以把響應時間減少成執行最慢查詢所需的時間。另外一個原因是JavaScript,你可以使用node在前端和後端之間共享程式碼。JavaScript也正在成為真正的通用語言。最後一個原因是原始速度。V8一直在致力於推動這個星球上速度最快的動態語言直譯器的發展。我想不出現在還有什麼語言能像JavaScript那樣被迅速的推進。除此之外,Node的I/O非常輕量級,使你可以儘可能充分地利用系統的I/O容量。
Vue.js : 一套構建使用者介面的漸進式框架。什麼是漸進式呢? vue的核心功能就是一個檢視模板引擎,包含宣告式渲染以及元件系統。在核心部件的基礎上新增客戶端路由、大規模狀態管理來構建一個完整的框架,下圖就是vue包含的所有部件。這些功能是相互獨立的,可以在核心部件基礎上選擇任意你所需要的部件。這也就是‘漸進式’的概念。在學習Vue.js之前,必須熟練掌握HTML5、CSS、JS.
GO語言、Python語言、Java語言等(桌面\\App\\Web方向)這三個程式語言都可以用來開發桌面App,功能強大。而且對於高效能分散式系統領域而言,Go 語言無疑比大多數其它語言有著更高的開發效率。它提供了海量並行的支援,這對於遊戲服務端的開發而言是再好不過了。
GO語言:是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態強型別、編譯型語言。語法和C語言相近。Go語言保證了既能到達靜態編譯語言的安全和效能,又達到了動態語言開發速度和易維護性,有人形容Go語言:Go = C + Python , 說明Go語言既有C靜態語言程式的執行速度,又能達到Python動態語言的快速開發。
GO語言的特性:
自動垃圾回收:C/C++最頭疼的就是指標問題,一不小心就野指標了或者又越界了。在Go語言裡再也不用擔心,也不用考慮delete或者free,系統自動會回收。函式可返回多個值:這個很神奇,大多數語言只能返回一個值,Go語言可以返回多個值。這個功能使得開發者再不用絞盡腦汁的想到底怎麼返回值的設計,也不用為了傳值專門定義一個結構體。併發程式設計:Go語言天然併發,只需要關鍵字“go”就可以讓函式併發執行,使得併發程式設計變得更為簡單,這也是Go語言最大的優勢。Python語言:Python 是一種跨平臺的、開源的、免費的、解釋型的高階程式語言。它具有豐富和強大的庫,能夠把用其他語言製作的各種模組很輕鬆的聯結在一起。Python的應用領域很廣泛,在Web程式設計、圖形處理、黑客程式設計、大資料處理、網路爬蟲和科學計算等領域都能找到Python的身影
Java語言:Java 是由Sun Microsystems公司於1995年5月推出的高階程式設計語言。Java可運行於多個平臺,如Windows, Mac OS,及其他多種UNIX版本的系統。
提供了對記憶體的自動管理,程式設計師無需在程式中進行分配、釋放記憶體,那些可怕的記憶體分配錯誤不會再打擾你了;去除了C++語言容易出錯的“指標”,用其它方法來進行彌補;避免了賦值語句(如a=3)與邏輯運算語句(如a==3)的混淆;取消了多重繼承這一複雜的設施。java語言的語法和C語言以及C++語言很接近,使得大多數程式設計師很容易學習和使用java。跨平臺性:通過java語言編寫的應用程式在不同的系統平臺上都可以執行。但僅僅掌握這兩條技術棧是不夠的,任何程式語言都離不開資料庫(資料庫:就是資料的倉庫,它是長期儲存在計算機內,有組織的、可共享的資料的集合),只掌握程式語言而不掌握資料庫會使你在成為計算機大佬的道路上寸步難行,所以我們必須要將兩者結合在一起學習:
PostgreSQL\\MySQL\\SQLite等PostgreSQL:PostgreSQL是一個功能強大的開源物件關係型資料庫系統,他使用和擴充套件了SQL語言,並結合了許多安全儲存和擴充套件最複雜資料工作負載的功能。PostgresSQL憑藉其經過驗證的架構,可靠性,資料完整性,強大的功能集,可擴充套件性以及軟體背後的開源社群的奉獻精神贏得了良好的聲譽,以始終如一地提供高效能和創新的解決方案。
MySQL:MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,屬於 Oracle 旗下產品。MySQL 是最流行的關係型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關係資料庫管理系統) 應用軟體之一。
MySQL是一種關係資料庫管理系統,關係資料庫將資料儲存在不同的表中,而不是將所有資料放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
ySQL所使用的 SQL 語言是用於訪問資料庫的最常用標準化語言。MySQL 軟體採用了雙授權政策,分為社群版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。
SQLite:SQLite “只是”一個庫,它不是傳統意義上的伺服器。因此,在某些場合下,它確實不合適。但是,在相當多的其他場合,它卻是最合適的選擇。SQLite 號稱是部署和使用最廣泛的資料庫引擎。我認為這很有可能,因為 SQLite 沒有版權的限制。無論何時,只要開發者想使用 SQL 在檔案中儲存結構化的資料,SQLite 應是首選方案。
只要按照我上面所描述的方法來學習,構建完整的知識體系和技術棧,那麼你就會變成一個在電腦科學與技術領域從事科學研究、開發和應用的高階人才!