91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

C語(yǔ)言編程學(xué)習(xí)基地 ? 來源:博客園 ? 作者:鍋叔 ? 2022-04-28 11:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

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

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

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

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

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

php語(yǔ)言:echo"hello world!";

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

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

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

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

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

如果 變量A大于 變量B

屏幕顯示變量A

否則

屏幕顯示變量B

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

二、IDE與編譯原理

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

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

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

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

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

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

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

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

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

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

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

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

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

三、廣義的編程語(yǔ)言

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

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

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

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

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

命令式

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

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

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

SELECTmax(num)FROMtable

標(biāo)記語(yǔ)言

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

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

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

總結(jié)

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

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

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

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

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

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

    關(guān)注

    0

    文章

    365

    瀏覽量

    49056
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1964

    瀏覽量

    39558
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90024

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    手把手教你學(xué)51單片機(jī)-C語(yǔ)言

    更多信息),手把手地帶領(lǐng)大家來學(xué)習(xí)單片機(jī)技術(shù),給單片機(jī)初學(xué)者帶來福音,讓大家一步一個(gè)腳印的掌握單片機(jī)技術(shù)。 《手把手教你學(xué)51單片機(jī)-C語(yǔ)言版》(第3版)這本書除了講解簡(jiǎn)單的實(shí)驗(yàn)和編程語(yǔ)法、由淺入深
    發(fā)表于 03-05 11:47

    如何調(diào)試和編程CW32F030C8T7?支持哪些調(diào)試工具和編程語(yǔ)言?

    了解如何調(diào)試和編程CW32F030C8T7是開發(fā)過程中的重要環(huán)節(jié)。它支持哪些調(diào)試工具(如JTAG、串口調(diào)試等)和編程語(yǔ)言(如C、C++等)?如何設(shè)置和使用這些工具來加速開發(fā)過程?
    發(fā)表于 12-05 06:48

    為什么單片機(jī)還在用C語(yǔ)言編程

    最適合單片機(jī)開發(fā)的編程語(yǔ)言實(shí)在太過晦澀難懂,學(xué)習(xí)起來非常的不方便,并且每一種單片機(jī)的匯編指令有很大區(qū)別,所以想把一個(gè)程序從這種單片機(jī)移植到另一種單片機(jī)簡(jiǎn)直是癡心妄想,重新寫一遍程序還來得輕松,時(shí)間還快
    發(fā)表于 11-28 07:37

    C語(yǔ)言編程技巧

    設(shè)計(jì),分層開發(fā)代碼,便于理解和維護(hù)。 ?8、避免使用GOTO語(yǔ)句?:盡管GOTO語(yǔ)句在某些情況下仍然有用,但現(xiàn)代編程更傾向于使用函數(shù)和循環(huán)控制結(jié)構(gòu),以提高代碼的可讀性和維護(hù)性。 ?9、利用C語(yǔ)言的靈活性
    發(fā)表于 11-27 06:46

    2025年最佳的嵌入式編程語(yǔ)言有哪些呢?

    嵌入式系統(tǒng)是現(xiàn)代科技不可或缺的一部分。它們存在于家用電器、汽車、住宅、醫(yī)院、商店等各個(gè)領(lǐng)域。它們與我們的社會(huì)緊密相連。選擇合適的語(yǔ)言來構(gòu)建嵌入式系統(tǒng)對(duì)于成功至關(guān)重要。那么,2025年最佳的嵌入式編程
    的頭像 發(fā)表于 11-14 10:27 ?1410次閱讀
    2025年最佳的嵌入式<b class='flag-5'>編程</b><b class='flag-5'>語(yǔ)言</b>有哪些呢?

    一文了解Mojo編程語(yǔ)言

    Mojo 是一種由 Modular AI 公司開發(fā)的編程語(yǔ)言,旨在將 Python 的易用性與 C 語(yǔ)言的高性能相結(jié)合,特別適合人工智能(AI)、高性能計(jì)算(HPC)和系統(tǒng)級(jí)編程場(chǎng)景。
    發(fā)表于 11-07 05:59

    開發(fā)單片機(jī)需要學(xué)習(xí)什么?軟件編程的 4 個(gè)關(guān)鍵層次

    ? ? ? ? ? ? ? ? ? ? 開發(fā)單片機(jī)需要學(xué)習(xí)什么?軟件編程的 4 個(gè)關(guān)鍵層次 單片機(jī)的 “智能” 全靠軟件實(shí)現(xiàn),編程技能需從基礎(chǔ)語(yǔ)法逐步進(jìn)階到復(fù)雜邏輯,每個(gè)層次對(duì)應(yīng)不同的開發(fā)需求
    的頭像 發(fā)表于 08-25 11:32 ?845次閱讀

    在學(xué)習(xí)D13的芯片配置,為什么我vscode,一堆爆紅,看著好煩,有沒有解決辦法

    在學(xué)習(xí)D13的芯片配置,為什么我vscode,一堆爆紅,看著好煩,有沒有解決辦法
    發(fā)表于 08-22 20:02

    梯形圖語(yǔ)言補(bǔ)充編程說明書

    電子發(fā)燒友網(wǎng)站提供《梯形圖語(yǔ)言補(bǔ)充編程說明書.pdf》資料免費(fèi)下載
    發(fā)表于 07-09 14:14 ?3次下載

    C語(yǔ)言精彩編程百例-364頁(yè)

    和低級(jí)語(yǔ)言的優(yōu)點(diǎn),因此,在工程計(jì)算及應(yīng)用程序開發(fā)中得到了廣泛的應(yīng)用。 眾所周知,學(xué)習(xí)新的程序設(shè)計(jì)語(yǔ)言的最佳途徑是編寫程序,而本書正是通過了對(duì)100個(gè)典型實(shí)例的分析和講解,來幫助讀者掌握這門語(yǔ)言
    發(fā)表于 06-13 17:28

    零基礎(chǔ)學(xué)習(xí)LuatOS編程:快速上手開發(fā)實(shí)戰(zhàn)教程!

    無(wú)論你是剛接觸物聯(lián)網(wǎng)編程的新手,還是希望拓展技能的技術(shù)愛好者,本教程將為零基礎(chǔ)的讀者提供一條清晰的LuatOS學(xué)習(xí)路徑。從安裝開發(fā)工具到編寫第一個(gè)程序,我們將通過實(shí)例講解核心概念,助你快速實(shí)現(xiàn)從理論
    的頭像 發(fā)表于 06-13 17:27 ?618次閱讀
    零基礎(chǔ)<b class='flag-5'>學(xué)習(xí)</b>LuatOS<b class='flag-5'>編程</b>:快速上手開發(fā)實(shí)戰(zhàn)教程!

    單片機(jī)c語(yǔ)言編程實(shí)例大全

    單片機(jī)c語(yǔ)言編程實(shí)例大全_18
    發(fā)表于 04-30 16:11 ?7次下載

    迅為RK3568開發(fā)板helloworld 驅(qū)動(dòng)實(shí)驗(yàn)-驅(qū)動(dòng)編寫

    在學(xué)習(xí) C 語(yǔ)言或者其他語(yǔ)言的時(shí)候,我們通常是打印一句“helloworld”來開啟編程世界的大門。學(xué)習(xí)驅(qū)動(dòng)程序
    發(fā)表于 04-01 15:20

    如何在 樹莓派 上編寫和運(yùn)行 C 語(yǔ)言程序?

    在本教程中,我將討論C編程語(yǔ)言是什么,C編程的用途,以及如何在RaspberryPi上編寫和運(yùn)行C程序。本文的目的是為您介紹在RaspberryPi上進(jìn)行C編程的基礎(chǔ)知識(shí)。如果您想深入
    的頭像 發(fā)表于 03-25 09:28 ?1155次閱讀
    如何在 樹莓派 上編寫和運(yùn)行 C <b class='flag-5'>語(yǔ)言</b>程序?

    為什么學(xué)了C語(yǔ)言,卻寫不出像樣的項(xiàng)目?

    在學(xué)習(xí)編程的路上,C語(yǔ)言幾乎是每個(gè)程序員的“必修課”。不管你是打算從事嵌入式開發(fā)、系統(tǒng)編程,還是想要深入理解操作系統(tǒng)的底層原理,C語(yǔ)言都是一
    的頭像 發(fā)表于 03-14 17:37 ?917次閱讀
    為什么學(xué)了C<b class='flag-5'>語(yǔ)言</b>,卻寫不出像樣的項(xiàng)目?
    <track id="ykmzu"><kbd id="ykmzu"></kbd></track>

      <span id="ykmzu"></span>
          <strike id="ykmzu"><input id="ykmzu"></input></strike>