<legend id="ysk3n"><sup id="ysk3n"></sup></legend>
<delect id="ysk3n"><meter id="ysk3n"><dl id="ysk3n"></dl></meter></delect>
    <ul id="ysk3n"><meter id="ysk3n"></meter></ul>
  1. 藍(lán)鷗旗下品牌:鷗課學(xué)院
    全國咨詢電話:13152008057
    您的位置: 首頁 > 最新資訊 > 如何零基礎(chǔ)學(xué)習(xí)一門編程語言?

    如何零基礎(chǔ)學(xué)習(xí)一門編程語言?

    2018-09-19 藍(lán)鷗
    3759人 瀏覽:

      很多人喜歡爭論什么什么編程語言好,我認(rèn)為這個話題如果不限定應(yīng)用范圍,就毫無意義。

      每種編程語言必然有其優(yōu)點和缺點,這也決定了它有適合的應(yīng)用場景和不適合的應(yīng)用場景?,F(xiàn)代軟件行業(yè),想一門編程語言包打天下是不現(xiàn)實的。這中現(xiàn)狀也造成了一種現(xiàn)象,一個程序員往往要掌握多種編程語言。

      學(xué)習(xí)任何一門編程語言,都會面臨的第一個問題都是:如何學(xué)習(xí)這門語言?

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

      有必要談?wù)劦氖牵喝绾斡蓽\入深的學(xué)習(xí)一門編程語言?學(xué)習(xí)所有編程語言有沒有一個相對統(tǒng)一的學(xué)習(xí)方法?

      曾幾何時,當(dāng)我還是一名小菜鳥時,總是嘆服那些大神掌握多門編程語言。后來,在多年編程工作和學(xué)習(xí)中,我陸陸續(xù)續(xù)也接觸過不少編程語言:C、C++、Java、C#、Javascript、shell 等等。

      每次學(xué)習(xí)一門新的編程語言,掌握程度或深或淺,但是學(xué)習(xí)的曲線卻大抵相似。

      下面,我按照個人的學(xué)習(xí)經(jīng)驗總結(jié)一下,學(xué)習(xí)編程語言的基本步驟。

      學(xué)習(xí)編程語言的步驟

      基本語法

      首先當(dāng)然是了解語言的最基本語法。

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

      普通程序員的第一行代碼一般都是輸出 “Hello World” 吧。

      基本數(shù)據(jù)類型

      不同編程語言的基本數(shù)據(jù)類型不同?;緮?shù)據(jù)類型是的申請內(nèi)存空間變得方便、規(guī)范化。

      變量

      不同編程語言的聲明變量方式有很大不同。有的如 Java 、C++ 需要明確指定變量數(shù)據(jù)類型,這種叫強類型定義語言。有的語言(主要是腳本語言),如 Javascript、Shell 等,不需要明確指定數(shù)據(jù)類型,這種叫弱類型定義語言。

      還需要注意的一點是變量的作用域范圍和生命周期。不同語言變量的作用域范圍和生命周期不一定一樣,這個需要在代碼中細(xì)細(xì)體會,有時會為此埋雷。

      邏輯控制語句

      編程語言都會有邏輯控制語句,哪怕是匯編語言。

      掌握條件語句、循環(huán)語句、中斷循環(huán)語句(break、continue)、選擇語句。一般區(qū)別僅僅在于關(guān)鍵字、語法格式略有不同。

      運算符

      掌握基本運算符,如算術(shù)運算符、關(guān)系運算符、邏輯運算符、賦值運算符等。

      有些語言還提供位運算符、特殊運算符,視情節(jié)掌握。

      注釋(沒啥好說的)

      函數(shù)

      編程語言基本都有函數(shù)。注意語法格式:是否支持出參;支持哪些數(shù)據(jù)作為入?yún)?,有些語言允許將函數(shù)作為參數(shù)傳入另一個參數(shù)(即回調(diào));返回值;如何退出函數(shù)(如 Java、C++的 return,)。

      數(shù)組、枚舉、集合

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

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

      常用類

      比較常用的類(當(dāng)然有些語言中不叫類,叫對象或者其他什么,這個不重要,領(lǐng)會精神)請了解其 API 用法,如:字符串、日期、數(shù)學(xué)計算等等。

      語言特性

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

      編程模式

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

      面向?qū)ο缶幊蹋饕欠庋b、繼承、多態(tài);函數(shù)式編程,主要是應(yīng)用 Lambda;過程式編程,可以理解為實現(xiàn)需求功能的特定步驟。

      每種編程模式都有一定的道理,我從不認(rèn)為只有面向?qū)ο缶幊滩攀峭醯馈?/p>

      Java 是面向?qū)ο笳Z言,從 Java8 開始也支持函數(shù)編程(引入 Lambda 表達(dá)式);C++ 可以算是半面向?qū)ο螅朊嫦蜻^程式語言。

      語言自身特性

      每個語言自身都有一些重要特性需要了解。例如,學(xué)習(xí) C、C++,你必須了解內(nèi)存的申請和釋放,了解指針、引用。

      而學(xué)習(xí) Java,你需要了解 JVM,垃圾回收機制。學(xué)習(xí) Javascript,你需要了解 DOM 操作等。

      代碼組織、模塊加載、庫管理

      一個程序一般都有很多個源代碼文件。這就會引入這些問題:如何將代碼文件組織起來?如何根據(jù)業(yè)務(wù)需要,選擇將部分模塊啟動時進(jìn)行加載,部分模塊使用懶加載(或者熱加載)?

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

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

      如 Java 可以用 maven、gradle 管理項目依賴、組織代碼結(jié)構(gòu);Javascript (包括 Nodejs、jquery、react 等等庫)可以用 npm、yarn 管理依賴,用 webpack 等工具管理模塊加載。

      容錯處理

      程序總難免會有 bug。

      所以為了代碼健壯性也好,為了方便定位問題也好,代碼中需要有容錯處理。常見的手段有:

      異常

      斷言

      日志

      調(diào)試

      單元測試

      輸入輸出和文件處理

      這塊知識比較繁雜。建議提綱挈領(lǐng)的學(xué)習(xí)一下,理解基本概念,比如輸入輸出流、管道等等。至于 API,用到的時候再查一下即可。

      回調(diào)機制

      每種語言實現(xiàn)回調(diào)的方式有所不同,如 .Net 的 delegate (大量被用于 WinForm 程序);Javascript 中函數(shù)天然支持回調(diào):Javascript 函數(shù)允許傳入另一個函數(shù)作為入?yún)?,然后在方法中調(diào)用它。其它語言的回調(diào)方式不一一列舉。

      序列化和反序列化

      首先需要了解的是,序列化和反序列化的作用是為了在不同平臺之間傳輸對象。

      其次,要知道序列化存在多種方式,不同編程語言可能有多種方案。根據(jù)應(yīng)用的序列化方式,選擇性了解即可。

      進(jìn)階特性

      以下學(xué)習(xí)內(nèi)容屬于進(jìn)階性內(nèi)容??梢愿鶕?jù)開發(fā)需要去學(xué)習(xí)、掌握。需要注意的是,學(xué)習(xí)這些特性的態(tài)度應(yīng)該是不學(xué)則已,學(xué)則死磕。因為半懂半不懂,特別容易引入問題。

      對于半桶水的同學(xué),我想說:放過自己,也放過別人,活著不好嗎?

      并發(fā)編程:好處多多,十分重要,但是并發(fā)代碼容易出錯,且出錯難以定位。要學(xué)習(xí)還是要花很大力氣的,需要了解大量知識,如:進(jìn)程、線程、同步、異步、讀寫鎖等等。

      反射:讓你可以動態(tài)編程(慎用)。

      泛型:集合(或者叫容器)的基石。精通泛型,能大大提高你的代碼效率。

      元數(shù)據(jù):描述數(shù)據(jù)的數(shù)據(jù)。Java 中叫做注解。

      庫和框架

      學(xué)習(xí)一門編程語言,難免需要用到圍繞它構(gòu)建的技術(shù)生態(tài)圈——庫和框架。這方面知識范圍太龐大,根據(jù)實際應(yīng)用領(lǐng)域去學(xué)習(xí)吧。比如搞 JavaWeb,你多多少少肯定要用到 Spring、Mybatis、Hibernate、Shiro等大量開發(fā)框架;如果做 Javascript 前端,你可能會用到 React、Vue、Angular 、jQuery 等庫或框架。

      小結(jié)

      總結(jié)以上,編程語言學(xué)習(xí)的道路是任重而道遠(yuǎn)的,未來是光明的。

      最后一句話與君共勉:路漫漫兮其修遠(yuǎn),吾將上下而求索。

    1. 廣告1
    2. 廣告2
    3. 廣告3
    4. 廣告4
    欧美性按摩推油在线观看,国产高清视频a在线观看,91色在色在线播放,动漫精品V欧美精品V日韩精品 无码无套少妇毛多69XXX 国产一区二区三区精品porn

    <legend id="ysk3n"><sup id="ysk3n"></sup></legend>
    <delect id="ysk3n"><meter id="ysk3n"><dl id="ysk3n"></dl></meter></delect>
      <ul id="ysk3n"><meter id="ysk3n"></meter></ul>