1. 程式人生 > >程式語言零基礎,該如何入手

程式語言零基礎,該如何入手

  很多人喜歡爭論什麼什麼程式語言好,我認為這個話題如果不限定應用範圍,就毫無意義。

  每種程式語言必然有其優點和缺點,這也決定了它有適合的應用場景和不適合的應用場景。現代軟體行業,想一門程式語言包打天下是不現實的。這中現狀也造成了一種現象,一個程式設計師往往要掌握多種程式語言。

  學習任何一門程式語言,都會面臨的第一個問題都是:如何學習這門語言?

  今天我們不聊什麼多看、多學、多寫、多練之類的。世上事有難易乎?無他,唯手熟爾。

  有必要談談的是:

  如何由淺入深的學習一門程式語言?

  學習所有程式語言有沒有一個相對統一的學習方法?

  曾幾何時,當我還是一名小菜鳥時,總是歎服那些大神掌握多門程式語言。後來,在多年程式設計工作和學習中,我陸陸續續也接觸過不少程式語言:C、C++、Java、C#、Javascript、shell 等等。

  每次學習一門新的程式語言,掌握程度或深或淺,但是學習的曲線卻大抵相似。

  下面,我按照個人的學習經驗總結一下,學習程式語言的基本步驟。

  學習程式語言的步驟

 

  基本語法

  首先當然是瞭解語言的最基本語法。

  控制檯輸出,如 C 的 printf,Java 的 System.out.println 等。

  普通程式設計師的第一行程式碼一般都是輸出 “Hello World” 吧。

  基本資料型別

  不同程式語言的基本資料型別不同。基本資料型別是的申請記憶體空間變得方便、規範化。

  變數

  不同程式語言的宣告變數方式有很大不同。有的如 Java 、C++ 需要明確指定變數資料型別,這種叫強型別定義語言。有的語言(主要是指令碼語言),如 Javascript、Shell 等,不需要明確指定資料型別,這種叫弱型別定義語言。

  還需要注意的一點是變數的作用域範圍和生命週期。不同語言變數的作用域範圍和生命週期不一定一樣,這個需要在程式碼中細細體會,有時會為此埋雷。

  邏輯控制語句

  程式語言都會有邏輯控制語句,哪怕是組合語言。

  掌握條件語句、迴圈語句、中斷迴圈語句(break、continue)、選擇語句。一般區別僅僅在於關鍵字、語法格式略有不同。

  運算子

  掌握基本運算子,如算術運算子、關係運算符、邏輯運算子、賦值運算子等。

  有些語言還提供位運算子、特殊運算子,視情節掌握。

  函式

  程式語言基本都有函式。注意語法格式:是否支援出參;支援哪些資料作為入參,有些語言允許將函式作為引數傳入另一個引數(即回撥);返回值;如何退出函式(如 Java、C++的 return,)。

  陣列、列舉、集合

  列舉只有部分程式語言有,如 Java、C++、C#。

  但是陣列和集合(有些語言叫容器)一般程式語言都有,只是有的程式語言提供的集合比較豐富。使用方法基本類似。

  常用類

  比較常用的類(當然有些語言中不叫類,叫物件或者其他什麼,這個不重要,領會精神)請了解其 API 用法,如:字串、日期、數學計算等等。

  語言特性

  語言特性這個特字反映的就是各個程式語言自身的"獨特個性",這涉及的點比較多,簡單列舉一些。

  程式設計模式

  比較流行的程式設計模式大概有:

  面向物件程式設計,主要是封裝、繼承、多型;函數語言程式設計,主要是應用 Lambda;程序式程式設計,可以理解為實現需求功能的特定步驟。

  每種程式設計模式都有一定的道理,我從不認為只有面向物件程式設計才是王道。

  Java 是面嚮物件語言,從 Java8 開始也支援函式程式設計(引入 Lambda 表示式);C++ 可以算是半面向物件,半面向過程式語言。

  語言自身特性

  每個語言自身都有一些重要特性需要了解。例如,學習 C、C++,你必須瞭解記憶體的申請和釋放,瞭解指標、引用。

  而學習 Java,你需要了解 JVM,垃圾回收機制。學習 Javascript,你需要了解 DOM 操作等。

  程式碼組織、模組載入、庫管理

  一個程式一般都有很多個原始碼檔案。這就會引入這些問題:如何將程式碼檔案組織起來?如何根據業務需要,選擇將部分模組啟動時進行載入,部分模組使用懶載入(或者熱載入)?

  最基本的引用檔案就不提了,如C、C++的#include,Java 的 import 等。

  針對程式碼組織、模組載入、庫管理這些問題,不同語言會有不同的解決方案。

  如 Java 可以用 maven、gradle 管理專案依賴、組織程式碼結構;Javascript (包括 Nodejs、jquery、react 等等庫)可以用 npm、yarn 管理依賴,用 webpack 等工具管理模組載入。

  大連男科醫院哪家好 http://mobile.lnbohaink.com

  大連男科醫院哪家好 http://mobile.0411nk.cn