更新時(shí)間:2021-10-27 16:35:32 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1693次
許多人開(kāi)始學(xué)習(xí)編碼的一種方法是選擇一種流行的編程語(yǔ)言,然后在沒(méi)有方向的情況下先入為主。這可以采取在線編碼課程、教程項(xiàng)目或隨機(jī)購(gòu)買特定主題的書籍的形式。我們先從理論開(kāi)始學(xué)起吧:
現(xiàn)代編程語(yǔ)言的美妙之處之一是,它們使我們能夠創(chuàng)建精美的應(yīng)用程序,而無(wú)需擔(dān)心幕后硬件的細(xì)節(jié)(在大多數(shù)情況下)。
這被稱為抽象——能夠使用更高級(jí)別的工具(在這種情況下是編程語(yǔ)言)來(lái)簡(jiǎn)化和縮小我們的理解和技能所需的范圍。
然而,這并不意味著了解代碼正在執(zhí)行的金屬的基礎(chǔ)知識(shí)是沒(méi)有用的。至少,了解一些花絮將幫助您了解有關(guān)高CPU和內(nèi)存使用率的工作場(chǎng)所對(duì)話。
因此,這里是讓您入門的最低限度的計(jì)算機(jī)體系結(jié)構(gòu)基礎(chǔ)知識(shí):
您的計(jì)算機(jī)最重要的部分位于微芯片(也稱為集成電路)上。
微芯片依靠稱為晶體管的電子元件來(lái)運(yùn)行。晶體管是微小的電氣開(kāi)關(guān),可在任何給定時(shí)間關(guān)閉(0)或打開(kāi)(1)。單個(gè)微芯片可以包含數(shù)百萬(wàn)或數(shù)十億個(gè)嵌入其上的微型晶體管。
大多數(shù)現(xiàn)代計(jì)算機(jī)都有一個(gè)稱為中央處理單元(CPU)的微芯片。你可以把它想象成計(jì)算機(jī)的大腦。它處理計(jì)算機(jī)執(zhí)行的大部分?jǐn)?shù)字運(yùn)算和邏輯任務(wù)。
每個(gè)CPU都有稱為指令集的東西,它是CPU理解的二進(jìn)制(零和一)命令的集合。幸運(yùn)的是,作為軟件開(kāi)發(fā)人員,我們真的不需要擔(dān)心這些!這就是抽象的力量。
如果CPU是大腦的邏輯中心,那么擁有內(nèi)存以及臨時(shí)或長(zhǎng)期存儲(chǔ)信息是很有用的。
計(jì)算機(jī)將隨機(jī)存取存儲(chǔ)器(RAM)作為“工作存儲(chǔ)器”(或短期存儲(chǔ)器)來(lái)存儲(chǔ)正在運(yùn)行的程序正在使用的信息。
RAM由一組內(nèi)存地址組成,可用于存儲(chǔ)數(shù)據(jù)位。在像C這樣的舊語(yǔ)言中,程序員確實(shí)可以使用稱為指針的功能直接使用內(nèi)存地址,但這在更現(xiàn)代的語(yǔ)言中很少見(jiàn)。
最后,我們將介紹一個(gè)您肯定熟悉的組件——硬盤驅(qū)動(dòng)器。在我們對(duì)大腦的類比中,這代表長(zhǎng)期記憶。硬盤驅(qū)動(dòng)器是一種內(nèi)部或外部設(shè)備,用于存儲(chǔ)即使在計(jì)算機(jī)關(guān)閉后仍應(yīng)保留的數(shù)據(jù)。
在繼續(xù)討論有關(guān)編程語(yǔ)言的更多細(xì)節(jié)之前,讓我們花一點(diǎn)時(shí)間談?wù)剶?shù)據(jù)。但究竟什么是我們所說(shuō)的話的意思是數(shù)據(jù)?
在高層次上,我們會(huì)想到諸如文本文檔、圖像、視頻、電子郵件、文件和文件夾之類的東西。這些都是我們每天在計(jì)算機(jī)上創(chuàng)建和保存的高級(jí)數(shù)據(jù)結(jié)構(gòu)。
但在引擎蓋下,計(jì)算機(jī)芯片(如CPU或RAM芯片)不知道“圖像”或“視頻”是什么。
從芯片的角度來(lái)看,所有這些結(jié)構(gòu)都存儲(chǔ)為一長(zhǎng)串1和0。這些1和0稱為位。
位通常一次存儲(chǔ)在一組八個(gè)中,稱為字節(jié)。一個(gè)字節(jié)只是一個(gè)由八位組成的序列,例如00000001、01100110、或00001111。以這種方式表示信息稱為二進(jìn)制表示。
在上一節(jié)中,我們提到大多數(shù)計(jì)算機(jī)都依賴于CPU,而CPU可以理解一組特定的1和0形式的指令。
因此,理論上我們可以編寫代碼,通過(guò)以CPU理解的形式將一長(zhǎng)串1和0串在一起來(lái)告訴CPU做什么。像這樣以二進(jìn)制形式編寫的指令稱為機(jī)器代碼。
聽(tīng)起來(lái)很可怕,不是嗎?嗯,可能是,但我不知道,因?yàn)槲抑饕褂酶呒?jí)的編程語(yǔ)言,如JavaScript、Python和Java。
一個(gè)更高層次的編程語(yǔ)言提供了一組人類可讀的關(guān)鍵字,語(yǔ)句和語(yǔ)法規(guī)則,是人們學(xué)習(xí),調(diào)試更簡(jiǎn)單的,和工作有。
編程語(yǔ)言提供了一種彌合人類大腦理解世界的方式與計(jì)算機(jī)大腦(CPU)理解世界的方式之間的差距的方法。
最終,我們編寫的代碼需要被翻譯成CPU能夠理解的二進(jìn)制指令(機(jī)器代碼)。
根據(jù)您選擇的語(yǔ)言,我們說(shuō)您的代碼被編譯或解釋為能夠由您的CPU執(zhí)行的機(jī)器代碼。大多數(shù)編程語(yǔ)言都包含一個(gè)稱為編譯器或解釋器的程序,用于執(zhí)行此翻譯步驟。
舉幾個(gè)例子——JavaScript和Python是解釋型語(yǔ)言,而Java是編譯型語(yǔ)言。一種語(yǔ)言是編譯型還是解釋型(或兩者的某種組合)對(duì)開(kāi)發(fā)人員的便利性、錯(cuò)誤處理、性能和其他方面都有影響,但我們不會(huì)在這里深入討論這些細(xì)節(jié)。
無(wú)論您渴望進(jìn)行何種類型的編程,您都會(huì)遇到有助于了解計(jì)算機(jī)如何相互交互的情況。這通常發(fā)生在Internet上。
互聯(lián)網(wǎng)只不過(guò)是全球聯(lián)網(wǎng)計(jì)算機(jī)的集合。換句話說(shuō),它是一個(gè)全球網(wǎng)絡(luò)。網(wǎng)絡(luò)中的每臺(tái)計(jì)算機(jī)都同意一組規(guī)則,使它們能夠相互通信。對(duì)于計(jì)算機(jī)來(lái)說(shuō),“說(shuō)話”意味著傳輸數(shù)據(jù)。
正如我們?cè)谏弦还?jié)中討論的,所有類型的數(shù)據(jù)——網(wǎng)頁(yè)、圖像、視頻、電子郵件等——都可以表示為1和0。
因此,您可以將Internet視為一組非常大的計(jì)算機(jī),它們可以以保留數(shù)據(jù)含義的方式相互傳輸1和0。互聯(lián)網(wǎng)只不過(guò)是一種數(shù)字對(duì)話媒介。
如果Internet只是一個(gè)大型對(duì)話場(chǎng)所,那么讓我們定義對(duì)話參與者。
首先,打個(gè)比方:大多數(shù)人類對(duì)話至少需要兩個(gè)參與者。在大多數(shù)情況下,一個(gè)人發(fā)起對(duì)話,另一個(gè)人回應(yīng),假設(shè)他們都在場(chǎng)并且有空。
在Internet上,發(fā)起對(duì)話的計(jì)算機(jī)稱為客戶端。響應(yīng)或應(yīng)答的計(jì)算機(jī)稱為服務(wù)器。
例如,假設(shè)您打開(kāi)網(wǎng)絡(luò)瀏覽器并轉(zhuǎn)到“www.google.com”。在這種情況下,您的Web瀏覽器是客戶端。通過(guò)擴(kuò)展,您還可以將您正在使用的計(jì)算機(jī)視為客戶端。
從更抽象的意義上講,您是客戶,因?yàn)槟前l(fā)起對(duì)話的人。通過(guò)在搜索欄中輸入“www.google.com”并單擊ENTER,您的瀏覽器將請(qǐng)求與Google的其中一臺(tái)計(jì)算機(jī)開(kāi)始對(duì)話。
Google的計(jì)算機(jī)稱為服務(wù)器。它通過(guò)發(fā)送在您的瀏覽器中顯示Google網(wǎng)頁(yè)所需的數(shù)據(jù)來(lái)進(jìn)行響應(yīng)。瞧!Google的網(wǎng)頁(yè)出現(xiàn)在您的眼前。所有Internet數(shù)據(jù)傳輸都利用這種客戶端/服務(wù)器關(guān)系。
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"怎么樣學(xué)編程,我們先來(lái)簡(jiǎn)單的入個(gè)門",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)