摘要:天入門三門編程語言,有可能嘛,尤其是對沒有基礎(chǔ)的同學(xué)來說對于想學(xué)好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實(shí)并不是我們最應(yīng)該的關(guān)心的,至少不是作為一個初學(xué)者首先關(guān)心的。
7天入門三門編程語言,有可能嘛,尤其是對沒有基礎(chǔ)的同學(xué)來說?對于想學(xué)好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實(shí)并不是我們最應(yīng)該的關(guān)心的,至少不是作為一個初學(xué)者首先關(guān)心的。
網(wǎng)絡(luò)上,網(wǎng)友們爭論的哪個語言是最好的語言在我看來是這個世界上最無聊的爭論。語言只是最基礎(chǔ)的工具,是為我們服務(wù),為業(yè)務(wù)服務(wù)的。如果你會編程,從A語言切換到B語言不會有太大的gap。以后我要寫的一系列文章,總結(jié)了如何快速入門一門新語言。核心思想是重視編程特性,而不是具體的語言。先把編程實(shí)現(xiàn)的特性拿出來,再看看某種語言是怎么做到的。
先說編程特性,任意一門編程語言都會具有以下特性:
變量和數(shù)據(jù)類型,賦值和輸出
算術(shù)運(yùn)算
選擇結(jié)構(gòu)
循環(huán)結(jié)構(gòu)
函數(shù)定義,函數(shù)調(diào)用
變量作用域
棧,程序運(yùn)行的基石
面向?qū)ο?/p>
指針/引用
異常處理
語言提供的公用包
如果你不同意,請給我留言!如果是零基礎(chǔ)的同學(xué),請把以上幾個關(guān)鍵字背下來。
后面我們要講的三門語言是Java,Python,JavaScript。Java是廣泛使用的后端語言,Python是廣泛使用的腳本語言,當(dāng)膠水,做數(shù)據(jù)處理,做后端都可以。JavaScript是前端語言。這三門語言都是適合初學(xué)者入門,也是工業(yè)界廣泛使用的,如果同時學(xué)這三門語言不難,以后學(xué)習(xí)其他語言肯定不會再有門檻。
在開始講語言入門之前,我再舉一個例子說明我們?yōu)槭裁匆日莆站幊烫匦?。如果你要DIY一臺電腦,你肯定要買CPU,內(nèi)存,主板,硬盤,機(jī)箱,顯示器,鼠標(biāo)鍵盤外設(shè)。這是一臺電腦的基本組成,這個基本組成可以類比成我所說的編程特性。好了,當(dāng)我們了解這些基本特性之后,我可能會有一些選擇,比如CPU買Intel的還是AMD的,對應(yīng)的主板也會有不同的選擇。Intel還是AMD就可以類比成我要用Java還是Python。
所以呀,初學(xué)者千萬不要糾結(jié)學(xué)哪門語言,糾結(jié)來糾結(jié)去,時間都浪費(fèi)了什么都沒掌握。掌握了編程特性之后,隨著思考和實(shí)踐的深入,學(xué)什么語言用什么語言是信手拈來的事。
我見過一些已經(jīng)有工作經(jīng)驗(yàn)的工程師,用Java寫排序引擎,代碼一團(tuán)亂,自己罵Java這不好那不好,宣稱用Go寫肯定性能就好如何如何。我相信他不能用Java的基本特性做好一個工程,換一種語言也是于事無補(bǔ)的。能否寫出好代碼在于人,在于設(shè)計(jì),在于實(shí)踐,不在于語言。
真正有經(jīng)驗(yàn)的程序員會如何學(xué)一門新語言呢,他肯定不是去看磚頭厚的書籍學(xué)幾個月再出山。往往是碰到一個需要解決的問題,然后花幾分鐘了解一下這門語言的特性,參考例子代碼修改搗鼓,接著開始修改代碼,實(shí)現(xiàn)新需求。整個過程中,他是利用編程特性解決自己的問題,而不是特意去學(xué)習(xí)一門語言。
說了半天,還沒講怎么準(zhǔn)備編程環(huán)境工具之類的。對于Java,網(wǎng)絡(luò)上很多安裝教程,just Google it,IDE我推薦使用Intellij idea。對于Python,安裝教程同樣很多,IDE推薦PyCharm,以上都是安裝社區(qū)版即可。對于JavaScript,不需要安裝什么環(huán)境,我們直接用瀏覽器執(zhí)行。IDE推薦使用Sublime。
現(xiàn)在我們開始說編程特性第一條“變量和數(shù)據(jù)類型,賦值和輸出”。從廣為流傳的Hello World說起,
Java版本
用Intellij Idea建立一個新的Java工程
在src目錄建一個FirstLesson.java 文件
/** * 變量和數(shù)據(jù)類型,賦值和輸出 */ public class FirstLesson { public static void main(String[] args) { /** * variable就是一個變量 * 任何一門語言都會有變量的概念 * 計(jì)算機(jī)會在內(nèi)存留出一個區(qū)域存儲變量的值, * 然后使用變量名對變量進(jìn)行訪問,讀取變量的值,或者修改變量的值 */ String variable = "Hello World"; /** * 輸出variable,為什么是System.out,而不是其他方式 * System里封裝了很多基本的操作系統(tǒng)接口 */ System.out.println(variable); } }變量
String variable = "Hello World";
包含三個知識點(diǎn),(1)新建變量variable;(2)variable是字符串類型;(3)給變量variable賦值。
下圖講解了變量在計(jì)算機(jī)里是什么意思
k是變量的名稱,3是變量的值,還有一個變量的地址,即內(nèi)存的地址。變量名稱以及值的概念一定要記住,內(nèi)存地址可以暫時不理解。
注意代碼里我對這兩行代碼的說明。
變量基本類型說到變量,就得說清楚變量都有什么類型。如果我把所有的變量類型都羅列出來,恐怕太多了不好記。下面只列出常用的
字節(jié)型(byte,字節(jié)型是一種 8 位有正負(fù)的二進(jìn)制整數(shù)
最小值是 -128
最大值是 127
短整數(shù)(short)
最小值是 -32768
最大值是 32767
整數(shù)型(int)
最小值是 - 2,147,483,648
最大值是 2,147,483,647
長整型(long)
長整型是一種 64 位有正負(fù)的二進(jìn)制整數(shù)
最小值是 -9,223,372,036,854,775,808(-2^63)
最大值是 9,223,372,036,854,775,807 (2^63 -1)
浮點(diǎn)型(float)
浮點(diǎn)型數(shù)據(jù)是一種單精度的 32 位 IEEE 754 標(biāo)準(zhǔn)下的浮點(diǎn)數(shù)據(jù)。
雙精度型(double)
雙精度型數(shù)據(jù)是一種雙精度的 64 位 IEEE 754 標(biāo)準(zhǔn)下的浮點(diǎn)數(shù)據(jù)。
布爾型(boolean)
布爾型數(shù)據(jù)代表一個信息比特。
它只有兩個可能的值:真(true)和假(false)
賦值前面提到了,你在代碼里寫一個變量,計(jì)算機(jī)會在內(nèi)存給他留出一個空間存儲他的值。但是你得給他賦值啊,不然計(jì)算機(jī)怎么知道這個變量該存什么值。
在Java里面,賦值操作符就是=。直觀理解,就是把等號右邊的值,賦予左邊的變量。
輸出我們和計(jì)算機(jī)的交互過程就是一個輸入和輸出的鍵盤,我們操作鼠標(biāo),操作鍵盤即是輸入。顯示屏幕,音箱的輸出就是計(jì)算機(jī)的輸出。
System.out.println(variable);
就是一種最簡單的輸出,Java調(diào)用系統(tǒng)函數(shù),告訴操作系統(tǒng)打印變量variable。這個輸出看起來不那么fancy,沒關(guān)系,你只要理解好他就是最簡單的輸出即可。
總結(jié)任意編程語言都有變量
變量由變量名稱和值構(gòu)成
變量可以是字符串,整數(shù),布爾值,浮點(diǎn)數(shù)等
賦值是一個等號,把等號右邊的值賦予左邊的變量
System.out.println就是一個最簡單的輸出
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67425.html
摘要:天入門三門編程語言,有可能嘛,尤其是對沒有基礎(chǔ)的同學(xué)來說對于想學(xué)好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實(shí)并不是我們最應(yīng)該的關(guān)心的,至少不是作為一個初學(xué)者首先關(guān)心的。 7天入門三門編程語言,有可能嘛,尤其是對沒有基礎(chǔ)的同學(xué)來說?對于想學(xué)好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實(shí)并不是我們最應(yīng)該的關(guān)心的,至少不是作為一個初學(xué)者首先關(guān)心的。 網(wǎng)絡(luò)上,網(wǎng)友們爭...
摘要:天入門三門編程語言,有可能嘛,尤其是對沒有基礎(chǔ)的同學(xué)來說對于想學(xué)好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實(shí)并不是我們最應(yīng)該的關(guān)心的,至少不是作為一個初學(xué)者首先關(guān)心的。 7天入門三門編程語言,有可能嘛,尤其是對沒有基礎(chǔ)的同學(xué)來說?對于想學(xué)好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實(shí)并不是我們最應(yīng)該的關(guān)心的,至少不是作為一個初學(xué)者首先關(guān)心的。 網(wǎng)絡(luò)上,網(wǎng)友們爭...
摘要:現(xiàn)在我們開始說編程特性第一條變量和數(shù)據(jù)類型,賦值和輸出。從廣為流傳的說起,用建立一個新的工程在目錄建一個文件變量和數(shù)據(jù)類型,賦值和輸出在中,方法是應(yīng)用程序的入口方法。變量包含三個知識點(diǎn),新建變量是字符串類型給變量賦值。 用9天入門三門編程語言,有可能嘛,尤其是對沒有基礎(chǔ)的同學(xué)來說?對于想學(xué)好的編程的人來說,無論從哪一門語言開始入手,語言的本身其實(shí)并不是我們最應(yīng)該的關(guān)心的,至少不是作為一...
摘要:網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知識點(diǎn)羅列為主或是資料的匯總,數(shù)據(jù)量讓新人望而卻步。天了解一個前端框架。也可以關(guān)注微信公眾號曉舟報(bào)告,發(fā)送獲取資料,就能收到下載密碼,網(wǎng)盤地址在最下方,獲取教程和案例的資料。 前言 好的學(xué)習(xí)方法可以事半功倍,好的學(xué)習(xí)路徑可以指明前進(jìn)方向。這篇文章不僅要寫學(xué)習(xí)路徑,還要寫學(xué)習(xí)方法,還要發(fā)資料,干貨滿滿,準(zhǔn)備接招。 網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知...
摘要:也可以補(bǔ)充好之前在這個最小物聯(lián)網(wǎng)系統(tǒng)缺失的那些東西,給那些正在開始試圖去解決編程問題的人。在線查看一步步搭建物聯(lián)網(wǎng)系統(tǒng)圖靈電子書版一步步搭建物聯(lián)網(wǎng)系統(tǒng) 某一天,正走在回學(xué)校的路上的我突然想到:未來將會是一個科技的時代——雖然現(xiàn)在也是——只是在未來,科技將會無處不在。如果我們依舊對周圍這些無處不在的代碼一無所知的話,或許我們會成為黑客帝國之中被控制的普通人。于是開始想著,有一天人們會像學(xué)...
閱讀 2645·2021-10-12 10:12
閱讀 789·2019-08-29 17:25
閱讀 2792·2019-08-29 17:24
閱讀 3226·2019-08-29 17:19
閱讀 1806·2019-08-29 15:39
閱讀 3053·2019-08-26 16:50
閱讀 1997·2019-08-26 12:17
閱讀 2703·2019-08-26 12:16