色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何由淺入深的學習編程語言?學習一門編程語言的大致框架

C語言編程基礎(chǔ) ? 來源:未知 ? 作者:易水寒 ? 2018-05-19 11:07 ? 次閱讀

前言

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

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

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

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

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

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

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

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

學習編程語言的步驟

如何由淺入深的學習一門編程語言?學習一門編程語言的大致框架

基本語法

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

控制臺輸出,如 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ù)類型,這種叫弱類型定義語言。

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

邏輯控制語句

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

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

運算符

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

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

注釋(沒啥好說的)

函數(shù)

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

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

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

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

常用類

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

語言特性

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

編程模式

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

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

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

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

語言自身特性

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

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

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

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

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

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

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

容錯處理

程序總難免會有 bug。

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

異常

斷言

日志

調(diào)試

單元測試

輸入輸出和文件處理

這塊知識比較繁雜。建議提綱挈領(lǐng)的學習一下,理解基本概念,比如輸入輸出流、管道等等。至于 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)用的序列化方式,選擇性了解即可。

進階特性

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

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

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

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

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

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

庫和框架

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

小結(jié)

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2974

    瀏覽量

    104980
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1950

    瀏覽量

    34905
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4823

    瀏覽量

    68901
  • 運算符
    +關(guān)注

    關(guān)注

    0

    文章

    172

    瀏覽量

    11097

原文標題:如何零基礎(chǔ)學習一門編程語言?

文章出處:【微信號:xx-cyy,微信公眾號:C語言編程基礎(chǔ)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何選擇你的第一門編程語言

    Bob Cringleg 在制作《書呆子的勝利》時曾和喬布斯有過段完整的訪談,喬布斯建議每個人都應(yīng)該去學習或者了解一門編程語言,輕松的完成
    發(fā)表于 07-14 14:35

    哪個編程語言最流行?

    是 PHP、Swift 或 Python 中選個,這要看你的工作種類了。當你在這三個梯隊中都學會一門后,你就可以根據(jù)你的情況學習更多的語言框架
    發(fā)表于 12-31 10:51

    Python編程語言可以應(yīng)用在哪些方面?

    ,從而理解其原理并實現(xiàn)自定義爬蟲框架。4. 云計算開發(fā)Python是從事云計算工作需要掌握的一門編程語言,目前很火的云計算框架OpenSta
    發(fā)表于 02-05 17:50

    學習機器視覺要學習一門語言

    馬上要進行機械視覺的學習。想問下大佬們關(guān)于機械視覺,我要學習一門語言?c 還是Python 還是Java或者說是嵌入式。選哪
    發(fā)表于 04-15 15:30

    最適合小白入行IT的幾種編程語言

    如果你想學習編程,雖然選擇第一門編程語言與你想用它來做什么最終達到什么目的有很大的關(guān)系,但是事實上某些
    發(fā)表于 04-30 17:30

    最適合小白入行IT的幾種編程語言

    如果你想學習編程,雖然選擇第一門編程語言與你想用它來做什么最終達到什么目的有很大的關(guān)系,但是事實上某些
    發(fā)表于 07-02 09:57

    如何從零學習一門編程語言,并由此拿到高薪

    ?無他,唯手熟爾。誰不知道熟能生巧的道理?我覺得有必要談?wù)劦氖牵喝绾?b class='flag-5'>由淺入深學習一門編程語言學習
    發(fā)表于 07-06 17:36

    最適合小白入行IT的幾種編程語言

    如果你想學習編程,雖然選擇第一門編程語言與你想用它來做什么最終達到什么目的有很大的關(guān)系,但是事實上某些
    發(fā)表于 07-09 10:28

    如何從零學習一門編程語言

    ?無他,唯手熟爾。誰不知道熟能生巧的道理?我覺得有必要談?wù)劦氖牵喝绾?b class='flag-5'>由淺入深學習一門編程語言學習
    發(fā)表于 07-09 11:09

    最適合小白入行IT的幾種編程語言

    `如果你想學習編程,雖然選擇第一門編程語言與你想用它來做什么最終達到什么目的有很大的關(guān)系,但是事實上某些
    發(fā)表于 07-13 15:11

    嵌入式c語言編程(由淺入深)

    本內(nèi)容詳細介紹了嵌入式c語言編程的各項知識,包括嵌入式c語言編程,嵌入式C語言開發(fā)、嵌入式C語言
    發(fā)表于 11-02 14:37 ?0次下載
    嵌入式c<b class='flag-5'>語言</b><b class='flag-5'>編程</b>(<b class='flag-5'>由淺入深</b>)

    C語言作為高級編程語言中的一門“低級”語言為什么要學習

    看開源代碼是程序員進階的個很好途徑,而很多開源的軟件,都是用C語言實現(xiàn)的。Linux/Unix系統(tǒng)都是用C語言實現(xiàn)的。如果你想了解計算機更基礎(chǔ)的技術(shù),比如操作系統(tǒng)、多進程/多線程、進程通信、網(wǎng)絡(luò)
    的頭像 發(fā)表于 03-23 16:04 ?8185次閱讀

    如何學編程語言?好菜鳥學習編程語言的步驟

    每種編程語言必然有其優(yōu)點和缺點,這也決定了它有適合的應(yīng)用場景和不適合的應(yīng)用場景。現(xiàn)代軟件行業(yè),想一門編程語言包打天下是不現(xiàn)實的。這中現(xiàn)狀也造
    發(fā)表于 04-27 11:08 ?8800次閱讀

    編程語言千千萬 當名架構(gòu)師僅需要精通一門而已

    編程語言很多,可走架構(gòu)師之路,學習哪種編程語言比較好呢,怎么樣來學習這些
    的頭像 發(fā)表于 07-18 09:42 ?2391次閱讀

    基于Rust開發(fā)的編程語言

    Move 是一門由 Rust 語言開發(fā)的一門面向資產(chǎn)的編程語言,最早由 Facebook (現(xiàn) Meta )投入大量的人力物力開發(fā),用于 L
    的頭像 發(fā)表于 11-17 12:30 ?706次閱讀
    主站蜘蛛池模板: 果冻传媒在线观看资源七夕 | 欧美fxxx| 麻豆高潮AV久久久久久久 | 男人桶女人j的视频在线观看 | 欧美亚洲日韩国产在线在线 | 99久久久久精品国产免费麻豆 | 婷婷开心激情综合五月天 | 亚洲AV永久无码精品老司机蜜桃 | 国产亚洲精品线视频在线 | 福利啪啪吧 | 日韩欧美一区二区中文字幕 | 91麻豆精品一二三区在线 | 亚洲另类中文字幕 | 毛片内射久久久一区 | 黄片长版看嘛 | 亚洲人交性视频 | 好大太快了快插穿子宫了 | 國產日韓亞洲精品AV | 十九禁啊啪射视频在线观看 | 男女啪啪抽搐呻吟高潮动态图 | 伊人久久大香线蕉综合99 | 樱花之恋动漫免费观看 | 精品久久久久中文字幕加勒比东京热 | 黄色网址在线看 | 欧美内射AAAAAAXXXXX| 欧美四虎精品二区免费 | 欧式午夜理伦三级在线观看 | 亚洲日韩在线天堂一 | 十分钟免费看完整视频 | 国产精品自在在线午夜精品 | 国产日韩成人内射视频 | 囯产精品久久久久免费蜜桃 | 国产毛片女人18水多 | 日本视频中文字幕一区二区 | 亚洲xxxx动漫| 婷婷射精AV这里只有精品 | 果冻传媒免费观看 | 97人人看碰人免费公开视频 | RUNAWAY韩国动漫免费官网版 | 国产骚妇BB网| 国产亚洲精品字幕在线观看 |