談?wù)劊喝绾斡蓽\入深的學(xué)習(xí)一門(mén)編程語(yǔ)言? |
學(xué)習(xí)任何一門(mén)編程語(yǔ)言,都會(huì)面臨的**個(gè)問(wèn)題都是:如何學(xué)習(xí)這門(mén)語(yǔ)言?
千鋒武漢小編不想說(shuō)什么多看、多學(xué)、多寫(xiě)、多練之類(lèi)的廢話。世上事有難易乎?無(wú)他,唯手熟爾。誰(shuí)不知道熟能生巧的道理?
有必要談?wù)劦氖牵喝绾斡蓽\入深的學(xué)習(xí)一門(mén)編程語(yǔ)言?學(xué)習(xí)所有編程語(yǔ)言有沒(méi)有一個(gè)相對(duì)統(tǒng)一的學(xué)習(xí)方法?
為此,我特意請(qǐng)教了一位資深程序員大咖,希望能給正準(zhǔn)備入門(mén)編程的同學(xué)一些參考。
這位程序員接觸過(guò)不少編程語(yǔ)言:Java、Python、Javascript、C、C++、Shell等等。每次學(xué)習(xí)一門(mén)新的編程語(yǔ)言,掌握程度或深或淺,但是學(xué)習(xí)的曲線卻大抵相似。
下面,是他按照個(gè)人的學(xué)習(xí)經(jīng)驗(yàn)總結(jié)一下,學(xué)習(xí)編程語(yǔ)言的基本步驟。
一、學(xué)習(xí)編程語(yǔ)言的步驟
二、基本語(yǔ)法
首先當(dāng)然是了解語(yǔ)言的最基本語(yǔ)法。
控制臺(tái)輸出,如C的printf,Java的System.out.println等。
普通程序員的**行代碼一般都是輸出 “Hello World” 吧。
三、基本數(shù)據(jù)類(lèi)型
不同編程語(yǔ)言的基本數(shù)據(jù)類(lèi)型不同。基本數(shù)據(jù)類(lèi)型是的申請(qǐng)內(nèi)存空間變得方便、規(guī)范化。
四、變量
不同編程語(yǔ)言的聲明變量方式有很大不同。有的如Java 、C++需要明確指定變量數(shù)據(jù)類(lèi)型,這種叫強(qiáng)類(lèi)型定義語(yǔ)言。有的語(yǔ)言(主要是腳本語(yǔ)言),如Javascript、Shell等,不需要明確指定數(shù)據(jù)類(lèi)型,這種叫若類(lèi)型定義語(yǔ)言。
還需要注意的一點(diǎn)是變量的作用域范圍和生命周期。不同語(yǔ)言變量的作用域范圍和生命周期不一定一樣,這個(gè)需要在代碼中細(xì)細(xì)體會(huì),有時(shí)會(huì)為此埋雷。
五、邏輯控制語(yǔ)句
編程語(yǔ)言都會(huì)有邏輯控制語(yǔ)句,哪怕是匯編語(yǔ)言。
掌握條件語(yǔ)句、循環(huán)語(yǔ)句、中斷循環(huán)語(yǔ)句(break、continue)、選擇語(yǔ)句。一般區(qū)別僅僅在于關(guān)鍵字、語(yǔ)法格式略有不同。
六、運(yùn)算符
掌握基本運(yùn)算符,如算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符等。
有些語(yǔ)言還提供位運(yùn)算符、特殊運(yùn)算符,視情節(jié)掌握。
注釋?zhuān)](méi)啥好說(shuō)的)
七、函數(shù)
編程語(yǔ)言基本都有函數(shù)。注意語(yǔ)法格式:是否支持出參;支持哪些數(shù)據(jù)作為入?yún)ⅲ行┱Z(yǔ)言允許將函數(shù)作為參數(shù)傳入另一個(gè)參數(shù)(即回調(diào));返回值;如何退出函數(shù)(如Java、C++的return)。
八、數(shù)組、枚舉、集合
枚舉只有部分編程語(yǔ)言有,如 Java、C++、C#。
但是數(shù)組和集合(有些語(yǔ)言叫容器)一般編程語(yǔ)言都有,只是有的編程語(yǔ)言提供的集合比較豐富。使用方法基本類(lèi)似。
九、常用類(lèi)
比較常用的類(lèi)(當(dāng)然有些語(yǔ)言中不叫類(lèi),叫對(duì)象或者其他什么,這個(gè)不重要,領(lǐng)會(huì)精神)請(qǐng)了解其API用法,如:字符串、日期、數(shù)學(xué)計(jì)算等等。
十、語(yǔ)言特性
語(yǔ)言特性這個(gè)特字反映的就是各個(gè)編程語(yǔ)言自身的"獨(dú)特個(gè)性",這涉及的點(diǎn)比較多,簡(jiǎn)單列舉一些。
十一、編程模式
比較流行的編程模式大概有:
面向?qū)ο缶幊,主要是封裝、繼承、多態(tài);函數(shù)式編程,主要是應(yīng)用Lambda;過(guò)程式編程,可以理解為實(shí)現(xiàn)需求功能的特定步驟。
每種編程模式都有一定的道理,我從不認(rèn)為只有面向?qū)ο缶幊滩攀峭醯馈?br />
Java是面向?qū)ο笳Z(yǔ)言,從Java8開(kāi)始也支持函數(shù)編程(引入Lambda表達(dá)式);C++可以算是半面向?qū)ο,半面向過(guò)程式語(yǔ)言。
十二、語(yǔ)言自身特性
每個(gè)語(yǔ)言自身都有一些重要特性需要了解。例如,學(xué)習(xí)C、C++,你必須了解內(nèi)存的申請(qǐng)和釋放,了解指針、引用。而學(xué)習(xí)Java,你需要了解JVM,垃圾回收機(jī)制。學(xué)習(xí)Javascript,你需要了解DOM操作等。
十三、代碼組織、模塊加載、庫(kù)管理
一個(gè)程序一般都有很多個(gè)源代碼文件。這就會(huì)引入這些問(wèn)題:如何將代碼文件組織起來(lái)?如何根據(jù)業(yè)務(wù)需要,選擇將部分模塊啟動(dòng)時(shí)進(jìn)行加載,部分模塊使用懶加載(或者熱加載)?
最基本的引用文件就不提了,如C、C++的#include,Java的import等。
針對(duì)代碼組織、模塊加載、庫(kù)管理這些問(wèn)題,不同語(yǔ)言會(huì)有不同的解決方案。
如Java可以用maven、gradle管理項(xiàng)目依賴(lài)、組織代碼結(jié)構(gòu);Javascript (包括 Nodejs、jquery、react等等庫(kù))可以用npm、yarn管理依賴(lài),用webpack等工具管理模塊加載。
十四、容錯(cuò)處理
程序總難免會(huì)有bug。
所以為了代碼健壯性也好,為了方便定位問(wèn)題也好,代碼中需要有容錯(cuò)處理。常見(jiàn)的手段有:
異常
斷言
日志
調(diào)試
單元測(cè)試
十五、輸入輸出和文件處理
這塊知識(shí)比較繁雜。建議提綱挈領(lǐng)的學(xué)習(xí)一下,理解基本概念,比如輸入輸出流、管道等等。至于API,用到的時(shí)候再查一下即可。
十六、回調(diào)機(jī)制
每種語(yǔ)言實(shí)現(xiàn)回調(diào)的方式有所不同,如.Net的delegate (大量被用于WinForm程序);Javascript中函數(shù)天然支持回調(diào):Javascript函數(shù)允許傳入另一個(gè)函數(shù)作為入?yún),然后在方法中調(diào)用它。其它語(yǔ)言的回調(diào)方式不一一列舉。
十七、序列化和反序列化
首先需要了解的是,序列化和反序列化的作用是為了在不同平臺(tái)之間傳輸對(duì)象。
其次,要知道序列化存在多種方式,不同編程語(yǔ)言可能有多種方案。根據(jù)應(yīng)用的序列化方式,選擇性了解即可。
十八、進(jìn)階特性
以下學(xué)習(xí)內(nèi)容屬于進(jìn)階性?xún)?nèi)容?梢愿鶕(jù)開(kāi)發(fā)需要去學(xué)習(xí)、掌握。需要注意的是,學(xué)習(xí)這些特性的態(tài)度應(yīng)該是不學(xué)則已,學(xué)則死磕。因?yàn)榘攵氩欢,特別容易引入問(wèn)題。
對(duì)于半桶水的同學(xué),我想說(shuō):放過(guò)自己,也放過(guò)別人,活著不好嗎?
并發(fā)編程:好處多多,十分重要,但是并發(fā)代碼容易出錯(cuò),且出錯(cuò)難以定位。要學(xué)習(xí)還是要花很大力氣的,需要了解大量知識(shí),如:進(jìn)程、線程、同步、異步、讀寫(xiě)鎖等等。
反射:讓你可以動(dòng)態(tài)編程(慎用)。
泛型:集合(或者叫容器)的基石。精通泛型,能大大提高你的代碼效率。
元數(shù)據(jù):描述數(shù)據(jù)的數(shù)據(jù)。Java 中叫做注解。
十九、庫(kù)和框架
學(xué)習(xí)一門(mén)編程語(yǔ)言,難免需要用到圍繞它構(gòu)建的技術(shù)生態(tài)圈——庫(kù)和框架。這方面知識(shí)范圍太龐大,根據(jù)實(shí)際應(yīng)用領(lǐng)域去學(xué)習(xí)吧。比如搞JavaWeb,你多多少少肯定要用到 Spring、Mybatis、Hibernate、Shiro等大量開(kāi)發(fā)框架;如果做Javascript前端,你可能會(huì)用到React、Vue、Angular 、jQuery等庫(kù)或框架。
總結(jié)以上,編程語(yǔ)言學(xué)習(xí)的道路是任重而道遠(yuǎn)的,未來(lái)是光明的。
**一句話與君共勉:路漫漫兮其修遠(yuǎn),吾將上下而求索。
千鋒12大IT學(xué)科免費(fèi)試聽(tīng)課火熱報(bào)名中,全程大咖親授,做IT/互聯(lián)網(wǎng)行業(yè)更具實(shí)戰(zhàn)型、全能型的技術(shù)人才,拿高薪!可以關(guān)注“武漢千鋒”公眾號(hào),先預(yù)約千鋒免費(fèi)IT熱門(mén)試聽(tīng)課,親身感受教學(xué)效果,評(píng)價(jià)講師的教學(xué)水平,了解學(xué)員的學(xué)習(xí)情況和就業(yè)情況!
千鋒教育的課程涵蓋HTML5大前端、JavaEE+分布式開(kāi)發(fā)、Python全棧+人工智能、全鏈路UI/UE設(shè)計(jì)、云計(jì)算、全棧軟件測(cè)試、大數(shù)據(jù)+人工智能、智能物聯(lián)網(wǎng)+嵌入式、Unity游戲開(kāi)發(fā)、Go語(yǔ)言開(kāi)發(fā)、網(wǎng)絡(luò)安全、互聯(lián)網(wǎng)營(yíng)銷(xiāo)等IT熱門(mén)技術(shù)方向。
人生在做重要選擇時(shí),一定慎重,但是一旦你做出了選擇,那么就要一往無(wú)前,相信千鋒,給自己一個(gè)機(jī)會(huì),請(qǐng)相信千鋒是你騰飛的起點(diǎn)!
資訊來(lái)源:北京千鋒互聯(lián)科技有限公司武漢分公司
|
友情提示:
信息由用戶(hù)自行發(fā)布,如果發(fā)現(xiàn)錯(cuò)誤或不符合法規(guī)或造成侵權(quán),請(qǐng)及時(shí)通知本站更正或刪除,具體聯(lián)系方式見(jiàn)頁(yè)面底部聯(lián)系我們,謝謝。 |
當(dāng)前頁(yè)在本站[名站在線]7天內(nèi)點(diǎn)擊次數(shù)(點(diǎn)擊次數(shù)為零的日期不顯示): |
信息評(píng)估: |
(還沒(méi)有網(wǎng)友對(duì)該信息作出評(píng)估,你想為該信息提供第一個(gè)評(píng)估嗎?) |
惠州幼升小輔導(dǎo)班找邦德教育惠州幼升小輔導(dǎo)班找邦德教育由邦德華納教育整理發(fā)布。
現(xiàn)在的家長(zhǎng)越來(lái)越重視早教,不少孩子在2歲的時(shí)候就開(kāi)始接受早教啟蒙,但孩子真正學(xué)習(xí)能力的形成是在幼兒園至小學(xué)的階段,如果能抓住這個(gè)階段,對(duì)孩子日后的學(xué)習(xí)能起到極大地幫助。
啟蒙課程是邦德華納教育的一大特色,該課程適合小學(xué)一二年級(jí)孩子入讀,旨在幫助孩子更好銜接小學(xué),開(kāi)發(fā)孩子大腦潛能,同時(shí)幫助孩子奠定優(yōu)良的學(xué)習(xí)品質(zhì),目前開(kāi)設(shè)有直映拼音、直映認(rèn)字、看圖寫(xiě)話...4 WEH 10 D2X/6AG24Z4QAG24現(xiàn)貨4WEH10D2X/6AG24Z4QAG24
聯(lián)系人鄭金華電話15306977484微信同號(hào)/0591-83855060
QQ2851617304
福建鴻飛達(dá)自動(dòng)化科技有限公司是一家專(zhuān)業(yè)從事分銷(xiāo)進(jìn)口歐美知名品牌工業(yè)傳感器、機(jī)器人備件、編碼器、伺服驅(qū)動(dòng)、流量計(jì)、變送器、分析儀、等進(jìn)出口貿(mào)易型企業(yè)。
我司主要涉及數(shù)控機(jī)械、冶金、石油天然氣、石油化工、化工、造紙印刷、紡織印染、機(jī)械、電子制造、汽車(chē)制造、包裝、印刷、機(jī)械、煙草、塑膠機(jī)械、電力、水利、水處理/環(huán)保、市政...R900383840現(xiàn)貨R900383840
聯(lián)系人鄭金華電話15306977484微信同號(hào)/0591-83855060
QQ2851617304
福建鴻飛達(dá)自動(dòng)化科技有限公司是一家專(zhuān)業(yè)從事分銷(xiāo)進(jìn)口歐美知名品牌工業(yè)傳感器、機(jī)器人備件、編碼器、伺服驅(qū)動(dòng)、流量計(jì)、變送器、分析儀、等進(jìn)出口貿(mào)易型企業(yè)。
我司主要涉及數(shù)控機(jī)械、冶金、石油天然氣、石油化工、化工、造紙印刷、紡織印染、機(jī)械、電子制造、汽車(chē)制造、包裝、印刷、機(jī)械、煙草、塑膠機(jī)械、電力、水利、水處理/環(huán)保、市政工程、鍋爐、...4 WEH 10 D2X/6AG48NETZ5L現(xiàn)貨4WEH10D2X/6AG48NETZ5L
聯(lián)系人鄭金華電話15306977484微信同號(hào)/0591-83855060
QQ2851617304
福建鴻飛達(dá)自動(dòng)化科技有限公司是一家專(zhuān)業(yè)從事分銷(xiāo)進(jìn)口歐美知名品牌工業(yè)傳感器、機(jī)器人備件、編碼器、伺服驅(qū)動(dòng)、流量計(jì)、變送器、分析儀、等進(jìn)出口貿(mào)易型企業(yè)。
我司主要涉及數(shù)控機(jī)械、冶金、石油天然氣、石油化工、化工、造紙印刷、紡織印染、機(jī)械、電子制造、汽車(chē)制造、包裝、印刷、機(jī)械、煙草、塑膠機(jī)械、電力、水利、水處理/環(huán)保、市政工...R900362099現(xiàn)貨R900362099
聯(lián)系人鄭金華電話15306977484微信同號(hào)/0591-83855060
QQ2851617304
福建鴻飛達(dá)自動(dòng)化科技有限公司是一家專(zhuān)業(yè)從事分銷(xiāo)進(jìn)口歐美知名品牌工業(yè)傳感器、機(jī)器人備件、編碼器、伺服驅(qū)動(dòng)、流量計(jì)、變送器、分析儀、等進(jìn)出口貿(mào)易型企業(yè)。
我司主要涉及數(shù)控機(jī)械、冶金、石油天然氣、石油化工、化工、造紙印刷、紡織印染、機(jī)械、電子制造、汽車(chē)制造、包裝、印刷、機(jī)械、煙草、塑膠機(jī)械、電力、水利、水處理/環(huán)保、市政工程、鍋爐、...
|
|
|
|
|