幼教網(wǎng)
全國(guó)站
您現(xiàn)在的位置:幼教 > 家庭教育 > 幼兒家庭教育 > 智力開發(fā) > 正文

如何學(xué)習(xí)一門編程語言 (2)

來源:菜鳥教程 2018-06-14 09:04:45

說兩句


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

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

  每種編程模式都有一定的道理,我從不認(rèn)為只有面向?qū)ο缶幊滩攀峭醯馈?br />
  Java 是面向?qū)ο笳Z言,從 Java8 開始也支持函數(shù)編程(引入 Lambda 表達(dá)式);C++ 可以算是半面向?qū)ο,半面向過程式語言。

  語言自身特性

  每個(gè)語言自身都有一些重要特性需要了解。例如,學(xué)習(xí) C、C++,你必須了解內(nèi)存的申請(qǐng)和釋放,了解指針、引用。而學(xué)習(xí) Java,你需要了解 JVM,垃圾回收機(jī)制。學(xué)習(xí) Javascript,你需要了解 DOM 操作等。

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

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

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

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

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

  容錯(cuò)處理

  程序總難免會(huì)有 bug。

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

  異常

  斷言

  日志

  調(diào)試

  單元測(cè)試

  輸入輸出和文件處理

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

  回調(diào)機(jī)制

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

  序列化和反序列化

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

  其次,要知道序列化存在多種方式,不同編程語言可能有多種方案。根據(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é)則死磕。因?yàn)榘攵氩欢,特別容易引入問題。

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

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

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

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

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

  庫和框架

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

  小結(jié)

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

  相關(guān)推薦:

小升初試題、期中期末題、小學(xué)奧數(shù)題

盡在奧數(shù)網(wǎng)公眾號(hào)

   歡迎使用手機(jī)、平板等移動(dòng)設(shè)備訪問幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點(diǎn)擊查看

  • 歡迎掃描二維碼
    關(guān)注幼教網(wǎng)微信
    gh_5735a1f9f07c

  • 歡迎掃描二維碼
    關(guān)注奧數(shù)網(wǎng)微信
    ID:aoshu_2003

熱點(diǎn)專題

  • 幼兒園教學(xué)課件:奇特的建筑
  • 幼兒教學(xué)課件:小魚的夢(mèng)
  • 河頭幼兒園“幫水寶寶搬家”

[幼兒園英語課件]幼兒園英語課件:認(rèn)識(shí)時(shí)間

[幼兒園英語課件]幼兒園英語課件:A Apple

幼升小

幼升小資訊

幼升小政策

幼升小擇校

幼升小指導(dǎo)

學(xué)區(qū)房

幼升小真題

重點(diǎn)小學(xué)

上海小學(xué)

廣州小學(xué)

深圳小學(xué)

成都小學(xué)

武漢小學(xué)

南京小學(xué)

北京一類幼兒園

海淀區(qū)幼兒園

西城區(qū)幼兒園

東城區(qū)幼兒園

朝陽區(qū)幼兒園

其他區(qū)幼兒園

幼兒園資訊

教師園地

幼兒園說課稿

幼兒園教案

教學(xué)論文

幼兒園課件

幼兒園教師心得

幼兒園評(píng)語

少兒教育

胎教

早期教育

入園必讀

潛能開發(fā)

藝術(shù)培養(yǎng)

家庭教育

兒童樂園

科普知識(shí)

圖書推薦

睡前故事

成語故事

童話故事

唐詩宋詞

孕育指南

時(shí)尚媽咪

健康寶貝

美食廚房

趣味數(shù)學(xué)

健康飲食

專家答疑

-->