先學(xué)C語(yǔ)言好還是Python好呢?
你好,六年軟件開發(fā)經(jīng)驗(yàn),回答這個(gè)行業(yè)的問(wèn)題。
我的個(gè)人技能組合相當(dāng)復(fù)雜。目前C,Python,Java,PHP,HTML,CSS,Oracle都有涉及,有的精通,有的會(huì)用,都做過(guò)實(shí)際項(xiàng)目。如果說(shuō)對(duì)我?guī)椭畲蟮模€是C語(yǔ)言。從問(wèn)題的描述來(lái)看,你可能不太了解C語(yǔ)言和Python的特點(diǎn)。我從個(gè)人理解的角度說(shuō)說(shuō)為什么最好先學(xué)C語(yǔ)言的理由。
學(xué)習(xí)C語(yǔ)言可以幫助你理解代碼真正運(yùn)行的原理。很多人說(shuō)C語(yǔ)言難學(xué)。剛開始學(xué)的時(shí)候也有一種的感覺(jué),后來(lái)熟悉了,才發(fā)現(xiàn)C語(yǔ)言還是很好看的。的確,C語(yǔ)言是面向過(guò)程的語(yǔ)言,功能主要是通過(guò)積累函數(shù)來(lái)實(shí)現(xiàn)的。在面向?qū)ο笳Z(yǔ)言流行的今天,可能有人會(huì)覺(jué)得C語(yǔ)言已經(jīng)過(guò)時(shí)了。
其實(shí)通過(guò)學(xué)習(xí)C語(yǔ)言,你會(huì)知道編譯器是什么,鏈接是什么,動(dòng)態(tài)鏈接和靜態(tài)鏈接有什么區(qū)別,如何使用GCC調(diào)試,如何分配內(nèi)存,如何多線程傳輸消息等等。這些都是C語(yǔ)言的魅力所在。一旦你消化了這些知識(shí),你對(duì)編程的理解就會(huì)更上一層樓。其他語(yǔ)言,如Java和Python,對(duì)編譯鏈接知之甚少。你可能已經(jīng)學(xué)會(huì)如何使用它們很長(zhǎng)時(shí)間了,但為什么有些語(yǔ)句是低效的,而有些是高效的,但你沒(méi)有。;我不知道?相當(dāng)于學(xué)了一點(diǎn)。
像騰訊、百度、阿里巴巴,他們想要的人才都需要懂這些知識(shí)。因?yàn)樗麄冞\(yùn)行的項(xiàng)目,比如淘寶、,每天都有上億的訪問(wèn)量,如何讓服務(wù)器承受這么多的訪問(wèn)而不停機(jī),如何優(yōu)化現(xiàn)有代碼讓服務(wù)器響應(yīng)用戶更快的請(qǐng)求是他們必須考慮的,他們必須理解底層知識(shí)才能做到這一點(diǎn)。
c語(yǔ)言是學(xué)習(xí)其他語(yǔ)言最好的跳板。有很多語(yǔ)言要學(xué)。你會(huì)發(fā)現(xiàn)其實(shí)語(yǔ)言的語(yǔ)法都差不多。其中C的語(yǔ)法比較基礎(chǔ),也比較容易理解,比如數(shù)組,隊(duì)列,堆棧,數(shù)據(jù)類型等等。學(xué)完C可以無(wú)縫切換到學(xué)習(xí)面向?qū)ο蟮腃,然后Python,JAVA,Javascript等等都?xì)g迎你。你會(huì)發(fā)現(xiàn)。如果你調(diào)查一下計(jì)算機(jī)專業(yè)的課程設(shè)置,大部分學(xué)校第一學(xué)期都把C語(yǔ)言放在第一位。
Python語(yǔ)言的特點(diǎn)
Python是一種典型的面向?qū)ο蟮膭?dòng)態(tài)語(yǔ)言。它的主要優(yōu)點(diǎn)是跨平臺(tái)、豐富的支持軟件包和簡(jiǎn)單易讀的語(yǔ)言。所以近年來(lái)受到了很多初學(xué)者的追捧,不可否認(rèn)的是隨便學(xué)學(xué)就能實(shí)現(xiàn)非常強(qiáng)大的功能,但是它的實(shí)用特點(diǎn)是一把雙刃劍。使得開發(fā)者對(duì)底層機(jī)器的運(yùn)行原理知之甚少。
先學(xué)C語(yǔ)言的一個(gè)缺點(diǎn)是入門有點(diǎn)慢,剛開始有點(diǎn)痛苦。事實(shí)上,如果你是一個(gè)程序員新手,學(xué)習(xí)Python是要經(jīng)過(guò)適應(yīng)期的,因?yàn)槟阋阉季S調(diào)整到編程語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型上來(lái)。一旦度過(guò)適應(yīng)期,你會(huì)發(fā)現(xiàn)C語(yǔ)言還是很美好的,知道它的天然快樂(lè)會(huì)讓你忘記之前的痛苦。
結(jié)論綜上所述,如果只是想了解更多有趣的課外知識(shí),Python是個(gè)不錯(cuò)的選擇。如果你想深耕編程行業(yè),那么我推薦你先學(xué)習(xí)C語(yǔ)言。畢竟磨刀不誤砍柴工。
轉(zhuǎn)行學(xué)編程,適合學(xué)習(xí)什么編程語(yǔ)言?
就我個(gè)人而言,我不。;t覺(jué)得編程跟開發(fā)哪種語(yǔ)言關(guān)系不大,因?yàn)樽詈竽銜?huì)發(fā)現(xiàn),對(duì)于要實(shí)現(xiàn)的某個(gè)具體功能,其實(shí)各種開發(fā)語(yǔ)言表達(dá)的意思都差不多,區(qū)別在于語(yǔ)法,真正的本質(zhì)是解決問(wèn)題的思路,也就是說(shuō)你要想解決一個(gè)問(wèn)題,每一步都要知道怎么做,然后把你的解決思路體現(xiàn)在具體的語(yǔ)言實(shí)現(xiàn)上。
所以學(xué)習(xí)開發(fā)語(yǔ)言的選擇是一方面,重要的是培養(yǎng)自己的解題思路。至于選擇哪種開發(fā)語(yǔ)言來(lái)學(xué)習(xí),我的建議是先看看目前TIOBE編程語(yǔ)言列表和編程語(yǔ)言流行趨勢(shì),再結(jié)合自己的理解能力,看看哪種語(yǔ)言適合自己。畢竟每個(gè)人都不一樣。這里這是另一份最近開發(fā)的語(yǔ)言列表。
從榜單來(lái)看,JAVA、C、Python、C、C#、C#都在前五名,但我個(gè)人建議,如果你零基礎(chǔ),還是選擇難度稍低的入門,比如Javascript。
最后還有一句話。選擇學(xué)哪種語(yǔ)言,要看你的興趣愛好和目前的市場(chǎng)需求,然后堅(jiān)持下去。希望你能找到自己的學(xué)習(xí)方向!