如果精通一門編程語(yǔ)言,再去學(xué)習(xí)其他編程語(yǔ)言是不是很容易?
網(wǎng)友解答: 從開始入行做編程前前后后經(jīng)歷了差不多有5種左右的主流的編程語(yǔ)言,留下最深印象的還是第一門編程語(yǔ)言,后面編程語(yǔ)言基本上按照套路走了,遠(yuǎn)沒有第一次學(xué)習(xí)編程的拿著興趣勁,第一次安裝
從開始入行做編程前前后后經(jīng)歷了差不多有5種左右的主流的編程語(yǔ)言,留下最深印象的還是第一門編程語(yǔ)言,后面編程語(yǔ)言基本上按照套路走了,遠(yuǎn)沒有第一次學(xué)習(xí)編程的拿著興趣勁,第一次安裝完linux系統(tǒng)在上面寫完第一行hello world,當(dāng)天興奮的都沒睡好覺,好像擁有了全世界,后來(lái)慢慢在linux上面寫一些簡(jiǎn)單的C語(yǔ)言程序,學(xué)到函數(shù)的時(shí)候覺得能看懂C語(yǔ)言所有代碼了,于是借著興奮勁頭去圖書館弄了一本linux內(nèi)核源碼解析,帶著興趣勁真還咬牙搞了100多頁(yè),后來(lái)實(shí)在看出下去了,才知道人外有人天外有天,學(xué)會(huì)了基本的語(yǔ)法距離真的高手還差的遠(yuǎn)。
后來(lái)隨著學(xué)習(xí)C語(yǔ)言的深入,特別是學(xué)習(xí)到指針,然后切入到鏈表的學(xué)習(xí)更是一頭霧水,中間還賭氣放棄了一周的時(shí)間,后來(lái)覺得這么做實(shí)在對(duì)不起自己又開始拿起來(lái)死磕了,徹底的明白還是在網(wǎng)上找到了西電林銳博士的C/C++算是系統(tǒng)掌握了,后邊再遇到指針基本上都是一路趟過(guò),倒不是這本書有多神效,可能在某個(gè)階段看到其中一個(gè)細(xì)節(jié)點(diǎn)就把之前缺失的東西給補(bǔ)全了,當(dāng)然要能達(dá)成這種效果,需要堅(jiān)持不懈的努力。
技術(shù)部有個(gè)同事,在公司呆了也有幾年的時(shí)間了,崗位也換了幾個(gè)了,最后下定決心想玩技術(shù),開始半年的時(shí)間幾乎什么都不開竅,有多少次機(jī)會(huì)想換掉,后來(lái)還是心軟再給次機(jī)會(huì),有一天在搞代碼的時(shí)候突然做了很多讓人很意外的事情,好像明白了很多東西,現(xiàn)在慢慢也能獨(dú)立做一些功能模塊了,再次驗(yàn)證一個(gè)道理一個(gè)人即使看著很笨只要持之以恒的做一件事,早晚會(huì)有開竅的一天。其實(shí)這個(gè)和學(xué)習(xí)第一門編程語(yǔ)言是一樣的道理,只要堅(jiān)持下來(lái)學(xué)會(huì)了后邊切換到別的編程語(yǔ)言是水到渠成的事情。
說(shuō)到精通編程語(yǔ)言這是一件極其難做到的事情,基本上編程語(yǔ)言能達(dá)到熟練做項(xiàng)目的程度就夠了,而且再去切入到第二種編程語(yǔ)言的時(shí)候即使很難也會(huì)覺得比第一次開始學(xué)習(xí)要簡(jiǎn)單許多,接觸到的第二種編程語(yǔ)言是C++,當(dāng)然C++的語(yǔ)法學(xué)習(xí)是在學(xué)校中完成的,在企業(yè)真正開始做C++項(xiàng)目上來(lái)就傻眼了,這些泛型編程類的東西在學(xué)校壓根就沒接觸過(guò),只好老老實(shí)實(shí)的把基礎(chǔ)再次拿出來(lái)研究去看,即使這樣學(xué)起來(lái)也比之前要快很多,畢竟已經(jīng)有C語(yǔ)言做鋪墊了,差異在語(yǔ)法細(xì)節(jié)以及面向?qū)ο缶幊趟枷肷希^(guò)渡期只用了很短時(shí)間,就跟上大部隊(duì)了。
用第三種編程語(yǔ)言做項(xiàng)目,用的是Java語(yǔ)言,有了C++做鋪墊學(xué)起來(lái)基本上沒有多少障礙,基本上不到一個(gè)月的時(shí)間就能跟著做項(xiàng)目了,當(dāng)然一種編程語(yǔ)言不是能隨隨便便就能搞透徹,這都需要時(shí)間的磨練,只不過(guò)入門相對(duì)容易點(diǎn)罷了,因?yàn)槿魏我环N編程都有其內(nèi)在的東西。編程學(xué)到一定程度,編程語(yǔ)言就是工具般的存在,核心東西就是編程思想和算法設(shè)計(jì)思想。但懂了一種編程語(yǔ)言之后學(xué)別的會(huì)快很多這是事實(shí)。
希望能夠幫到你。
網(wǎng)友解答:首先菜農(nóng)在這里說(shuō)明會(huì)近20種編程語(yǔ)言(據(jù)說(shuō)目前發(fā)布的有600多種編程語(yǔ)言),但它們都跑不過(guò)C語(yǔ)言的影子,其他語(yǔ)言只要對(duì)比和C語(yǔ)言的不同即可,若再學(xué)一種語(yǔ)言,只要再對(duì)比所學(xué)過(guò)語(yǔ)言之間的不同或細(xì)微變化即可。
如各種需要都會(huì)遵守最基本的語(yǔ)句:
if,if else,while,do while,for,switch case…………
雖然不提倡goto語(yǔ)句,但在匯編語(yǔ)言里jmp指令會(huì)不處不在。
實(shí)際上任何語(yǔ)言必須滿足匯編語(yǔ)言的需要,即編譯后的匯編必須正確運(yùn)行。
故一切相對(duì)于匯編的高級(jí)語(yǔ)言,差距和書寫習(xí)慣不會(huì)太大。
下圖是很久以前,在PIC單片機(jī)上,由于當(dāng)時(shí)很難找到一個(gè)C語(yǔ)言編譯器,就自己動(dòng)手用“宏匯編”編寫了“類C”的宏語(yǔ)言(如下圖所示)。它也包含了全部的基本語(yǔ)句(if,if else,while,do while,for,switch case…………) ,并且之間可以任意嵌套無(wú)窮級(jí)。
像菜農(nóng)自己也曾做過(guò)“編程語(yǔ)言”(還用x86的宏匯編做過(guò)“HCC”語(yǔ)言),學(xué)多少語(yǔ)言都不是問(wèn)題,因?yàn)閷W(xué)習(xí)新語(yǔ)言,只是找新語(yǔ)言與其他語(yǔ)言的不同即可。
菜農(nóng)認(rèn)為目前所有的編程語(yǔ)言的switch case語(yǔ)句都不太完美。
因?yàn)樵谇度胧筋I(lǐng)域,一個(gè)switch case可能就是一個(gè)完整的運(yùn)行過(guò)程,那么要經(jīng)歷初始化過(guò)程(如InitCase),所有滿足case條件的應(yīng)該有一個(gè)歸口(如ExecCase,可以不需要此歸口),而不像現(xiàn)在大家都完成后到一個(gè)歸口。
菜農(nóng)認(rèn)為:
不管你會(huì)多少種編程語(yǔ)言,也不管你精通哪個(gè)編程語(yǔ)言。
只要你不會(huì)或不知道匯編語(yǔ)言,就是一種缺憾!
因?yàn)槟悴恢栏呒?jí)語(yǔ)言編譯后(匯編語(yǔ)言)是如何具體運(yùn)行的,基本語(yǔ)句是如何執(zhí)行的。
當(dāng)然你也不必會(huì)或知道匯編語(yǔ)言,也敢自稱編程高手!只要你敢保證沒人拍磚!
如果你“精通”(網(wǎng)絡(luò)名言:說(shuō)“精通”的人一定是菜鳥)了一種編程語(yǔ)言,其他編程語(yǔ)言的入門門檻肯定會(huì)降低許多。