很多學(xué)生問我,初學(xué)者沒有接觸過計(jì)算機(jī)編程方面的學(xué)生,應(yīng)該先學(xué)C語(yǔ)言呢還是學(xué)Java呢
首先,C語(yǔ)言和Java語(yǔ)言都是目前應(yīng)用*為廣泛的編程語(yǔ)言,要想決定從那個(gè)語(yǔ)言開始學(xué)起,需要考慮三方面因素,其一是語(yǔ)言自身的學(xué)習(xí)難度;其二是語(yǔ)言的應(yīng)用場(chǎng)景;其三是自身的知識(shí)結(jié)構(gòu)。
從學(xué)習(xí)難度上來(lái)看,C語(yǔ)言與Java編程語(yǔ)言都屬于相對(duì)較難的編程語(yǔ)言,二者之間從學(xué)習(xí)難度和學(xué)習(xí)內(nèi)容上綜合對(duì)比,C語(yǔ)言更適合初學(xué)者,因?yàn)镴ava語(yǔ)言屬于純粹的面向?qū)ο笳Z(yǔ)言,所以語(yǔ)言自身的抽象程度比較高,這對(duì)于初學(xué)者來(lái)說會(huì)更難理解一些。另外,由于Java語(yǔ)言自身設(shè)計(jì)結(jié)構(gòu)的特點(diǎn),學(xué)習(xí)Java編程通常需要學(xué)習(xí)一系列框架的使用,學(xué)習(xí)的內(nèi)容也會(huì)比較多。
從應(yīng)用場(chǎng)景上來(lái)看,Java語(yǔ)言屬于為數(shù)不多的全場(chǎng)景開發(fā)語(yǔ)言之一,在Web開發(fā)、平臺(tái)開發(fā)、Android開發(fā)和大數(shù)據(jù)開發(fā)領(lǐng)域均有廣泛的應(yīng)用。C語(yǔ)言目前主要的應(yīng)用領(lǐng)域集中在操作系統(tǒng)開發(fā)、容器開發(fā)和嵌入式開發(fā)領(lǐng)域,由于C語(yǔ)言的執(zhí)行效率比較高,所以C語(yǔ)言在物聯(lián)網(wǎng)領(lǐng)域具有比較普遍的應(yīng)用。從應(yīng)用場(chǎng)景的廣泛性上來(lái)看,Java語(yǔ)言具有一定的優(yōu)勢(shì),這也會(huì)對(duì)就業(yè)有一定的促進(jìn)作用。
從知識(shí)結(jié)構(gòu)的要求來(lái)看,學(xué)習(xí)C語(yǔ)言和Java語(yǔ)言本身對(duì)于基礎(chǔ)的要求都不高,但是如果從事系統(tǒng)級(jí)開發(fā),則需要具備操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)方面的基礎(chǔ)。從實(shí)驗(yàn)環(huán)境的搭建來(lái)看,C語(yǔ)言與Java語(yǔ)言也都比較方便。
*后,對(duì)于初學(xué)者來(lái)說,如果有明確的就業(yè)訴求,那么可以直接學(xué)習(xí)Java語(yǔ)言,而如果想獲得更為全面的知識(shí)結(jié)構(gòu),建議從C語(yǔ)言開始學(xué)起。