吴忠躺衫网络科技有限公司

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

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

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

學(xué)習(xí)編程語言是在學(xué)什么

C語言編程學(xué)習(xí)基地 ? 來源:博客園 ? 作者:鍋叔 ? 2022-04-28 11:18 ? 次閱讀

“想入門編程,應(yīng)該學(xué)那種語言?” 這類問題在五湖四海,世界各地,應(yīng)當(dāng)都是比較常見的。給出的回答呢。

有的會直接告訴你去學(xué)Python

有的呢會給一些比喻,說編程語言就像畫家手里的筆,有毛筆,鋼筆……;

有的會給出一個技術(shù)棧的圖表,告訴你如果你要做XXX,那就學(xué)XXX,如果做XXX就學(xué)XXXX;

感覺呢這些建議,也都不錯,但是通常都比較簡略,結(jié)果明確,但緣由一般不會展開太多解釋。純新手可能似懂非懂,將信將疑。

自上而下,由整體到具體的理解一個事物,效率往往比從具體到整體要高,更容易明白自己所處的位置, 更容易入門。

可惜,對于程序員在開發(fā)領(lǐng)域歸納總結(jié),融匯貫通來說, 可能是十幾,二十年后的事情了。所以在分析編程語言優(yōu)劣,或者選一個語言寫具體的Hello World之前, 我們最好對“編程語言”有一個更整體全面的了解。

一、學(xué)習(xí)編程語言是在學(xué)什么

百度百科——編程語言(programming language)可以簡單的理解為一種計算機和人都能識別的語言。一種計算機語言讓程序員能夠準(zhǔn)確地定義計算機所需要使用的數(shù)據(jù),并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動。

維基百科——編程語言是一種規(guī)則, 這種規(guī)則,可以把文字, 或者圖形元素(可視化編程語言)轉(zhuǎn)化為機器碼。編程語言是一種計算機語言,用于在計算機上實現(xiàn)各種算法

百度的定義顯然說了啥但好像又啥都沒說。-_-|| 。維基百科的則準(zhǔn)確了很多。編程其實就是把你寫的一段文字(代碼)按照特定的規(guī)則,

轉(zhuǎn)換成機器碼(機器能夠運行的指令),用于在計算機上實現(xiàn)算法(如顯示2個輸入數(shù)字中最大的)。你要學(xué)習(xí)的其實就是這種規(guī)則,比如當(dāng)我需要在屏幕上顯示

Hellow World時。按照不同語言的規(guī)則,我需要這樣寫出這樣的文字。

c語言:printf(" hello world!");

php語言:echo"hello world!";

java語言:System.out.println("Hello World!");

看上去有些差別,但又有些相似。實際上目前主流的高級語言如Java ,C#,javascript,Python他們的基礎(chǔ)語法規(guī)則是非常近似的。無論先學(xué)哪個入門,后面的切換成本,基本是幾小時搞定。當(dāng)你學(xué)會一門語言,除了學(xué)會了具體關(guān)鍵字,語法之外,更主要的是你會沉淀下來一種對編程語言模式的理解。當(dāng)你理解了一種語言中的 變量,函數(shù),控制結(jié)構(gòu)(順序,分支,循環(huán)),遷移其他語言時,你會發(fā)現(xiàn)在其他語言中,這些概念也是存在且完全適用的。

偽代碼是一種脫離具體語言的,體現(xiàn)編程思維的描述方式, 相同層次的語言,編程思維是共通的。如顯示2個輸入數(shù)字中最大的問題的編程思路。

變量A等于輸入的第一個數(shù)字

變量B等于收入的第二個數(shù)字

如果 變量A大于 變量B

屏幕顯示變量A

否則

屏幕顯示變量B

上面的算法思想, 在各種語言中都是可以實現(xiàn)的。僅僅變量定義的方式,判斷分支的書寫方式略有差別。所以,對于入門來說,學(xué)習(xí)一門編程語言,通常都狹義的指編程語言本身(基本不涉及第三方類庫框架等), 你所學(xué)到的語法細節(jié)切換成本是很低的,各個語言差不太多,而真正沉淀的是你在編寫過程中逐漸熟悉領(lǐng)會的,編程思路。即組合使用,變量,函數(shù),控制結(jié)構(gòu)(如果/那么/循環(huán))等要素,解決具體的算法問題的能力。

二、IDE與編譯原理

在糾結(jié)良久終于選定了學(xué)哪一門語言之后,可能開始接觸到的第一個東西是IDE,例如學(xué)Python可能是用PyCharm,我之前學(xué)Basic用的是Visual Basic。IDE的含義是“集成開發(fā)環(huán)境”, 名字雖然很準(zhǔn)確,但當(dāng)時還是小白的我其實是非常困惑的,壓根搞不清楚IDE與編程語言之間的關(guān)系。也搞不清楚,寫完代碼后在IDE中一點那個綠色的小三角(運行)過程中到底發(fā)生了什么。IDE可以方便程序的開發(fā),但是對于新手會影響他對編程語言的理解認識,很難理解IDE的確實含義,“集成開發(fā)環(huán)境”到底集成了什么。

5832c6de-bef0-11ec-9e50-dac502259ad0.png

——上面是Python的 Hello World。IDE為PyCharm

IDE大概集成這樣幾種東西。

1.文本編輯器是一個用于編寫文本的工具,像上圖寫print Hello World 的地方。編程其實就是在編寫一段文字,保存成一個文件。常見的簡單文本編輯器比如windows中的記事本,也是一個文本編輯器。理論上記事本完全可以用來編程,但IDE中的文本編輯器會提供很多額外功能,如文本著色,智能提示(敲pr會自動提示 print),這些快捷功能是語言相關(guān)的。當(dāng)然也會提供文本編輯器的常見功能, 保存,查找,替換等。

2.編譯器連接器 對于非腳本語言(最終生成獨立的可執(zhí)行程序)如C,編寫好的程序文件是無法被運行的。例如在windows中,系統(tǒng)層次,典型的可執(zhí)行文件擴展名為EXE,這是一種特定的文件格式PE文件格式。編譯器與連接器的作用是,將編寫好的程序文件最終轉(zhuǎn)化為EXE文件。編譯器針對不同的CPU將程序文件,編譯為對應(yīng)的CPU指令。鏈接器是平臺相關(guān)的,將編譯后的中間文件組裝成約定格式,如 Windows ExE。

3.解釋器對于腳本語言,解釋器能夠直接執(zhí)行,文編編輯器編寫完成的程序文件。如點擊上圖的運行。實際是運行了python ./a.py其中的 python 可以理解為解釋器。

4.調(diào)試器為你提供了一個可視化的調(diào)試器,你可以直接點擊按鈕,進行調(diào)試操作,而不是在黑洞洞的命令行上敲命令。

5849f7e6-bef0-11ec-9e50-dac502259ad0.png

——gdb 調(diào)試界面

5.其他工具插件通常會具有集成其他插件的能力,如集成版本管理。可以直接把你的代碼上傳云端,進行版本控制。或者統(tǒng)計分析,寫了多少代碼,是否編寫規(guī)范等。

通過以上對IDE 的介紹可以看出, 編程語言是一種規(guī)則,準(zhǔn)確的說是一種規(guī)范。舉例來說其中可能存在一條,

當(dāng)你寫了一行printf(hello),之后就在屏幕上顯示hello。所以規(guī)則是穩(wěn)定不變的。而你過程中要到的工具,IDE的各個組成部分都是可以替換的。只要編譯器符合語言的標(biāo)準(zhǔn)規(guī)范即可,因此會有多種編譯器存在,其性能特點可能會有一些差異。

三、廣義的編程語言

想入行的同學(xué)經(jīng)常會說,我想學(xué)Java 該怎么學(xué), 我想學(xué)Python該怎么學(xué)。這其實通常來說不太準(zhǔn)確。狹義來說,你只需要花幾天,老手可能是幾小時幾十分鐘,去看下這個語言的語法規(guī)則,如何定義變量,如何寫判斷,循環(huán),如何調(diào)用方法。然后做一些算法問題練習(xí),比如對10個數(shù)字排排序。寫個猜數(shù)字的游戲,基本就算學(xué)會了。但這可能跟你的期望不一致,你說的學(xué)Java 可能是覺得你學(xué)會了Java 就可以寫出一個像WOW那樣的游戲 :-),或者像QQ那樣的聊天工具,或者像淘寶那樣的網(wǎng)站,而學(xué)會了語言之后你仍然會覺得無從下手,只會在命令行控制臺中做點簡單的輸入輸出。那么這中間的gap究竟在哪里呢?是因為:

5861d154-bef0-11ec-9e50-dac502259ad0.png

——圖片來源于知乎回答“互聯(lián)網(wǎng)”技術(shù)棧

就是說,要規(guī)范專業(yè)的做一個能支持一定訪問量的互聯(lián)網(wǎng)站點(如淘寶),會涉及上面大部分的技術(shù)內(nèi)容。這遠超“編程語言”定義的范圍。其中很大一部分是語言無關(guān)的,例如運維,工具,中間件中的分支內(nèi)容。其中后端中的語言分支之下是語言相關(guān)的,而前端中如果不考慮移動端Android Ios, 對于Web來說其實只有HTML,CSS,Javascript三種語言,angularjs以及VUE,屬于屬于Javasciprt語言中的不同框架,但差異較大。

綜合以上涉及的語言類型主要分為以下幾類

命令式

關(guān)注步驟細節(jié), 如查詢一堆數(shù)字中最大的一個, 需要寫循環(huán)、判斷、 定義變量進行比較,最終得到結(jié)果。計算機的算法過程完全由你定義。通常學(xué)習(xí)的Java javascrfipt PHP C都可以理解為這一類語言。

結(jié)構(gòu)化查詢——聲明式

多用于結(jié)構(gòu)化數(shù)據(jù)庫查詢(“數(shù)據(jù)庫”是為了解決程序存儲,查詢數(shù)據(jù)問題,想象一個圖書管理程序),SQL語言。取得最大數(shù)字如下, 你并不需要關(guān)心它的具體算法。

SELECTmax(num)FROMtable

標(biāo)記語言

HTML,XML,CSS等屬于標(biāo)記語言,用于定義布局,沒有邏輯。嚴格來說不屬于編程語言。如HTML標(biāo)記語言規(guī)定

表示一個表格 ,其中的表示表格的一行,編寫人按照HTML的標(biāo)準(zhǔn)編寫,瀏覽器按照HTML的標(biāo)準(zhǔn)處理渲染, 最終就會在屏幕上顯示一個表格。

回到寫一個淘寶上,淘寶需要有web頁面,所以你要學(xué)習(xí)HTMLCSS,JS,需要有數(shù)據(jù)庫存儲商品, 所以需要學(xué)習(xí)數(shù)據(jù)庫工具如MYSQL,并能夠編程使用他,能夠增刪改查數(shù)據(jù)。需要有后臺服務(wù)器,用于給頁面提供動態(tài)內(nèi)容, 動態(tài)的生成HTML,所以需要學(xué)習(xí)Web服務(wù)器如何編寫,可以選擇的語言有很多, 如果選擇了一種如Java, 也不需要從頭造輪子, 那就要接著學(xué)習(xí)Java 的Web框架,如Spring。如果你選擇用PHP語言寫Web服務(wù)器, 那就無法使用Java 的Spring框架了。對應(yīng)的PHP也會有自己的Web框架。所以特定語言第三方框架的學(xué)習(xí)成本才是切換語言的最主要成本。

總結(jié)

如果你是想入門學(xué)一門語言,那具體學(xué)哪種其實真的不算是個重大抉擇,主要是為了建立編程思想。

如果你是想進行特定領(lǐng)域的開發(fā), 那你一定要首先搞清楚技術(shù)棧, 在該領(lǐng)域中使用的主流語言,工具。然后針對性的學(xué)習(xí)。如果你志向于開發(fā)游戲客戶端,那學(xué)習(xí)互聯(lián)網(wǎng)的技術(shù)棧,就是南轅北轍了。

先到這里, 希望對初入門的同學(xué)能有所幫助!

原文標(biāo)題:想入門編程,應(yīng)該學(xué)那種語言?

文章出處:【微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    0

    文章

    341

    瀏覽量

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

    關(guān)注

    10

    文章

    1950

    瀏覽量

    34988
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85040

原文標(biāo)題:想入門編程,應(yīng)該學(xué)那種語言?

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    gitee 支持的編程語言有哪些

    Gitee(碼云)是一個基于 Git 的代碼托管和研發(fā)協(xié)作平臺,類似于 GitHub 和 GitLab。它支持多種編程語言,允許開發(fā)者托管和管理代碼,進行版本控制,以及協(xié)作開發(fā)。以下是一些
    的頭像 發(fā)表于 01-06 09:50 ?134次閱讀

    Triton編譯器支持的編程語言

    編寫和優(yōu)化深度學(xué)習(xí)代碼。Python是一種廣泛使用的高級編程語言,具有簡潔易讀、易于上手、庫豐富等特點,非常適合用于深度學(xué)習(xí)應(yīng)用的開發(fā)。 二、領(lǐng)域特定
    的頭像 發(fā)表于 12-24 17:33 ?461次閱讀

    如何選擇適合自己的編程語言

    。 1. 確定目標(biāo)和興趣 在選擇編程語言之前,首先要明確自己的目標(biāo)和興趣。這包括你想要開發(fā)什么類型的項目,以及你對哪些技術(shù)領(lǐng)域感興趣。例如,如果你對網(wǎng)頁開發(fā)感興趣,那么學(xué)習(xí)HTML、CSS和JavaScript可能是一個不錯的選
    的頭像 發(fā)表于 11-15 09:37 ?595次閱讀

    編程語言的誤區(qū)與常見問題

    : 選擇編程語言時,應(yīng)考慮項目需求、個人興趣以及語言的適用性。例如,如果你對Web開發(fā)感興趣,那么學(xué)習(xí)JavaScript可能是一個好選擇。 認識到?jīng)]有一種
    的頭像 發(fā)表于 11-15 09:35 ?378次閱讀

    NPU支持的編程語言有哪些

    NPU(Neural Processing Unit)是一種專門為深度學(xué)習(xí)和人工智能應(yīng)用設(shè)計的處理器。NPU支持的編程語言通常與它所集成的平臺或框架緊密相關(guān)。以下是一些常見的編程
    的頭像 發(fā)表于 11-15 09:21 ?946次閱讀

    在學(xué)習(xí)go語言的過程踩過的坑

    作為一個5年的phper,這兩年公司和個人都在順應(yīng)技術(shù)趨勢,新項目慢慢從php轉(zhuǎn)向了go語言,從2021年到現(xiàn)在,筆者手上也先后開發(fā)了兩個go項目。在學(xué)習(xí)go語言的過程中也學(xué)習(xí)并總結(jié)了
    的頭像 發(fā)表于 11-11 09:22 ?204次閱讀

    MCU編程語言和開發(fā)環(huán)境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統(tǒng)的核心,廣泛應(yīng)用于各種電子產(chǎn)品中。隨著技術(shù)的發(fā)展,MCU編程語言和開發(fā)環(huán)境也在不斷進步,以適應(yīng)不同的應(yīng)用需求。 1.
    的頭像 發(fā)表于 11-01 11:51 ?1077次閱讀

    Orin芯片的編程語言支持

    語言支持 Orin芯片支持多種編程語言,以滿足不同開發(fā)者的需求。其中,C/C++和Python是兩種廣泛應(yīng)用的編程語言。C/C++以其高效和
    的頭像 發(fā)表于 10-27 16:45 ?414次閱讀

    plc編程語言編程相關(guān)技巧有哪些

    PLC(可編程邏輯控制器)編程語言及相關(guān)編程技巧是工業(yè)自動化領(lǐng)域中不可或缺的知識。 一、PLC編程語言
    的頭像 發(fā)表于 10-21 16:56 ?440次閱讀

    倉頡語言書籍申請

    這兩個語言一些性能優(yōu)缺點之后,我發(fā)現(xiàn)倉頡語言是未來的趨勢,倉頡語言的高效編程、輕松并發(fā)、全場景應(yīng)用開發(fā)的特點我特別感興趣。 作為華為自主研發(fā)的語言
    發(fā)表于 08-06 08:37

    按照這樣學(xué)習(xí)C語言,成為卷王不是夢!

    在計算機編程領(lǐng)域,C語言被譽為一種強大而靈活的編程語言,掌握好C語言不僅可以讓你輕松駕馭各種編程
    的頭像 發(fā)表于 07-06 08:04 ?361次閱讀
    按照這樣<b class='flag-5'>學(xué)習(xí)</b>C<b class='flag-5'>語言</b>,成為卷王不是夢!

    PLC的編程方式及編程語言

    在工業(yè)自動化領(lǐng)域,PLC(Programmable Logic Controller,可編程邏輯控制器)因其強大的控制功能和靈活的編程方式而得到了廣泛應(yīng)用。PLC的編程方式和編程
    的頭像 發(fā)表于 06-27 14:08 ?934次閱讀

    abb工業(yè)機器人的編程語言是什么

    ABB工業(yè)機器人的編程語言主要是RAPID(Robot Application Programming Interface for Development),它是一種高級編程語言,專門
    的頭像 發(fā)表于 06-16 16:49 ?2810次閱讀

    PLC編程語言和C語言的區(qū)別

    在工業(yè)自動化和計算機編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語言和C語言各自扮演著重要的角色。盡管兩者都是
    的頭像 發(fā)表于 06-14 17:11 ?3238次閱讀

    PLC常用編程語言有哪些

    在工業(yè)自動化領(lǐng)域,PLC(Programmable Logic Controller,可編程邏輯控制器)作為一種核心控制設(shè)備,其編程語言的選擇對于控制系統(tǒng)的設(shè)計、開發(fā)和維護具有重要影響。PLC的
    的頭像 發(fā)表于 06-14 16:58 ?1751次閱讀
    黄金城百家乐游戏| 百家乐在线娱乐平台| 莫斯科百家乐官网的玩法技巧和规则| 百家乐官网投注庄闲法| 新河县| 同乐城备用网址| 香港六合彩彩图| 456棋牌官网| 大发888赌城| 大发888缺casino组件| 百家乐园qq群| 沙龙百家乐娱乐网| 百家乐有好的投注法吗| 打百家乐如何赢分| 游戏百家乐押发| 做生意用的 风水上最好的尺寸有| 涂山百家乐官网的玩法技巧和规则 | 澳门百家乐官网技巧皇冠网| 太阳城假日酒店| 百家乐bp| 百家乐园| 15人百家乐桌| 免费百家乐计划工具| 百家乐游戏什么时间容易出| 女优百家乐的玩法技巧和规则| 百家乐棋牌游| 康莱德百家乐的玩法技巧和规则 | 百家乐官网赌场凯时娱乐| 百家乐官网牌路分析仪| 百家乐官网赌场详解| 上市百家乐官网评论| 百家乐官网入庄闲概率| 哪里有百家乐官网游戏下载| 跨国际百家乐官网的玩法技巧和规则 | 大发888娱乐城怎么样| 百家乐电子发牌盒| 新锦江百家乐娱乐场开户注册| 91百家乐的玩法技巧和规则| 金牌百家乐的玩法技巧和规则| 百家乐又称什么| 大发888 代充|
  • <fieldset id="wakes"><menu id="wakes"></menu></fieldset>
      <fieldset id="wakes"><menu id="wakes"></menu></fieldset>
        <fieldset id="wakes"><menu id="wakes"></menu></fieldset>