對(duì)于零基礎(chǔ)的自學(xué)編程的人,我只想說,你什么都不需要準(zhǔn)備,只要你懂電腦,會(huì)打字,會(huì)復(fù)制粘貼,那么自學(xué)編程一點(diǎn)都不難。 不過,話是這樣說,但是要想提高學(xué)習(xí)效率,讓前方的道路直一點(diǎn),做一些學(xué)習(xí)前的準(zhǔn)備,也是必要的。 我先來解決一下想要自學(xué)編程的人士的普遍疑問:英語和數(shù)學(xué)這兩個(gè)坎,然后再來講講需要具備哪些基礎(chǔ)知識(shí)。 英語和數(shù)學(xué)
不少初學(xué)者會(huì)這樣問,我學(xué)編程,要不要英語和數(shù)學(xué)。我給出的回答是,既要,也不要。 不要的是,編程雖然絕大部分用的都是英語,但每門計(jì)算機(jī)語言,涉及的詞匯量都是有限的,寫出來的代碼,跟日常的英語口語對(duì)話,是有天差地別的。 所以,你大可以邊學(xué)某門編程語言,邊學(xué)一些能用得到的基本詞匯就可以了,看到一個(gè)記一個(gè),沒有問題。只是相對(duì)于會(huì)英語的人,你學(xué)的會(huì)比較慢些。 事實(shí)上,很多程序員,并不懂英語…… 但會(huì)英語,也有優(yōu)勢,那就是有些技術(shù)文檔,都是英文的,如果你想第一時(shí)間看,會(huì)英語就有優(yōu)勢,不過現(xiàn)在翻譯軟件也比較準(zhǔn)確了,不會(huì)英語,用軟件翻譯下,也能勉強(qiáng)看看。 最正確的學(xué)習(xí)路線是:學(xué)編程時(shí),邊學(xué)習(xí)用得到的英文,主要掌握編程知識(shí),而不是英語。掌握編程知識(shí)后,再補(bǔ)充一些英語知識(shí)。
同樣,學(xué)編程同樣不太需要數(shù)學(xué),但還是那個(gè)道理:需要,也不需要。 做開發(fā)、做運(yùn)維或者其他崗位,幾乎不需要懂?dāng)?shù)學(xué)...... 但如果你想做數(shù)據(jù)挖掘,或者和數(shù)據(jù)牽扯較多的,那么還是一定的數(shù)學(xué)基礎(chǔ)的。 需要具備的知識(shí)
我覺得,你應(yīng)該詳細(xì)的了解這門語言的應(yīng)用場景和其他周邊知識(shí)。 打個(gè)比方,如果你要學(xué)習(xí)Python,至少你得了解一下Python需不需要會(huì)數(shù)學(xué)英語。此外,最好還要去了解Python能干什么? Python怎么學(xué)習(xí)? 相比其他語言的優(yōu)勢? …… 等等等等,要了解個(gè)門語言,可以關(guān)注W3Cschool這個(gè)網(wǎng)站多做一些了解,當(dāng)然悟空問答里也有很多優(yōu)秀的相關(guān)內(nèi)容。
盲目的學(xué)習(xí),很致命,學(xué)習(xí)最忌諱的就是這里學(xué)一點(diǎn),那里學(xué)一點(diǎn),了解學(xué)習(xí)方法,制定學(xué)習(xí)計(jì)劃,非常重要。下面的問題,你可以試著了解一下。 我從什么地方開始學(xué)? 多久能掌握? 學(xué)到什么程度,就算掌握了這門語言? 學(xué)完后,我該做怎樣的拓展學(xué)習(xí)? ……
學(xué)習(xí)編程語言,除了考驗(yàn)學(xué)習(xí)能力和毅力外,邏輯思維也非常重要。特別是邏輯很差的學(xué)員,一定要優(yōu)先去提升自己的邏輯思維。 推薦一些書籍由于計(jì)算機(jī)語言眾多,這里只講一些主流語言的入門書籍推薦,小眾、過時(shí)的語言,就不說了,如果大家有興趣,可以網(wǎng)上找找就好。
Java可以用來做web開發(fā)、Android開發(fā)和客戶端開發(fā)。 推薦書籍:《Java核心技術(shù)》 Java屬于入門簡單,但上手很難的語言,但對(duì)于初學(xué)編程的學(xué)者來說,入門還是難,這本書非常淺顯易懂,每個(gè)知識(shí)點(diǎn)都說得非常詳細(xì),細(xì)節(jié)也很到位。 對(duì)于初學(xué)者而言,買卷1基礎(chǔ)知識(shí)就可以了,等待技術(shù)成熟,再看卷2的高級(jí)特性。
C++可以用來做游戲開發(fā)、虛擬現(xiàn)實(shí)技術(shù)、數(shù)字圖像處理、網(wǎng)絡(luò)軟件、科學(xué)計(jì)算、操作系統(tǒng)等待。 推薦書籍:《C++ Primer Plus》 這本書共17章、10個(gè)附錄,從C語言基礎(chǔ)知識(shí)開始介紹,然后在此基礎(chǔ)上詳細(xì)闡述C++新增的特性,因此不要求讀者有較多C語言方面的背景知識(shí)。另外,當(dāng)你入門了C++后,有一本書必看,那就是Bruce Eckel編寫的《C++編程思想》。 C++不推薦沒有任何編程基礎(chǔ)的學(xué)員去學(xué),難度不小,你可能學(xué)了一點(diǎn),就從入門到放棄了。
這個(gè)語言和C++差不多,不推薦初學(xué)者去學(xué),C大部分情況是用來做底層開發(fā)的,什么是底層開發(fā)?可以比作是一棟房子的第一層,雖然很重要,但很多時(shí)候,第一層已經(jīng)有人幫你蓋好了。 感興趣可以看看C語言之父和他人一起出版的《C程序設(shè)計(jì)語言》。
Python的運(yùn)用范圍也非常廣,可以用來網(wǎng)站開發(fā)、運(yùn)維、分析數(shù)據(jù)、開發(fā)游戲、自動(dòng)化測試、爬蟲(大概的意思是抓取其他網(wǎng)站的東西)等等。 目前Python應(yīng)用最有前景的是人工智能(AI)。 推薦書籍:《“笨辦法”學(xué)Python》
最后,我總在說,興趣是最好的老師,在自學(xué)編程時(shí),也一樣。 多多“炫耀”自己的學(xué)習(xí)成果,增加自信心,學(xué)習(xí)起來就非常簡單。正所謂,不靠毅力的學(xué)習(xí),才容易學(xué)出成果。 |
|