教你快速學(xué)習(xí)一門編程語言:學(xué)習(xí)新語言10條建議,讓你快速上手
很多同學(xué)想學(xué)好計算機編程,但是自己辛辛苦苦努力了半學(xué)期發(fā)現(xiàn),自己的去年上學(xué)期學(xué)習(xí)的編程方面的知識跟沒學(xué)一樣,全部都忘得一干二凈。那么,如果想要重新學(xué)會他,亦或者想要學(xué)好一門新的編程語言,有什么能夠快速上手的辦法呢?
對于高級程序員來說,學(xué)會新的編程語言有C/C++的基礎(chǔ)的話,學(xué)好新語言兩個星期左右就能得心應(yīng)手,沒錯,他們的編程經(jīng)驗豐富,編程水平比較高,而我們很多新手就不能這樣。當(dāng)然本篇文章也是針對新手來寫的。
首先,編程水平的概念有點大,我們這里約定編程水平是指代碼正確性,代碼的邏輯性以及代碼可讀性三個方面。
- 提高代碼的正確性。
- 提高代碼的邏輯性
- 提高代碼的可讀性
所謂代碼的正確性是指程序在運行過程中,代碼層面運行正常。也就是我們常說的代碼健壯(代碼健壯其實還包含業(yè)務(wù)層面)。
學(xué)習(xí)新編程語言的10個建議(方法):
1、關(guān)于編程手冊
通常,代碼正確性反映工程師對一門語言的掌握程度,是一個日積月累的過程。
遇到問題,首先看手冊;通過搜索、瀏覽專業(yè)網(wǎng)站或者請教同事解決問題后,要看手冊進行驗證。
2、關(guān)于經(jīng)典書籍
每一門語言都會有好多不錯的書籍,我們稱為經(jīng)典書籍。通過各種方法,找到一種或幾種不錯的書籍,認(rèn)真閱讀,不為完成任務(wù)的而閱讀,細(xì)細(xì)品味地閱讀,求精讀而不求多讀。
3、關(guān)于網(wǎng)絡(luò)上的技術(shù)文章
網(wǎng)絡(luò)上的技術(shù)性文章也是需要閱讀的,但它不能代替書籍。
4、閱讀語言的官方文檔。如果希望在使用之前吸收大量信息,從閱讀語言的參考資料中可能會受益。不用擔(dān)心它們會對你催眠,參考文獻通常是用于查找使用,而不是用來記憶。
5、使用互聯(lián)網(wǎng)搜索。搜索網(wǎng)絡(luò)是一個很好的方式,可提供有關(guān)特定錯誤和一般最佳做法的信息。還可以在網(wǎng)絡(luò)中搜索有關(guān)解決語言中特定問題的最佳做法的博文。評估搜索結(jié)果中顯示的博客帖子的質(zhì)量和決定認(rèn)真采用他們的建議時,請查看作者的公共代碼組合以及發(fā)布日期。
6、與社區(qū)接觸。雖然博客和新聞文章具有大量有用的信息,但是你嘗試編寫的特定代碼片段總會有些微妙之處。不要害怕在郵件列表中發(fā)帖,或加入 IRC 和 Slack 頻道以尋求幫助。
要提出有幫助的回復(fù)的問題,請確保在正確的地方提問。許多語言都有 “初學(xué)者” 郵件列表或聊天頻道,專門針對可能會頻繁詢問的問題而建立。。
7、編寫玩具程序。一次練習(xí)一個新的概念,很少有任務(wù)可打敗只使用某個概念的玩具程序。你可以將重點放在盡可能讓你的代碼清潔和慣用性上。
8、了解你的問題和技術(shù)棧的特點
我們新學(xué)一門技術(shù),往往是為了解決用現(xiàn)有技術(shù)棧不太容易解決的問題。因此,很有必要了解你面臨的問題,看看解決問題的關(guān)鍵在哪里,可能的路徑由多少。
9、列出待學(xué)習(xí)的技術(shù)點
熟悉了待解決的問題,選擇了一個技術(shù)棧后,就要靜下心來,進一步深入了解技術(shù)棧,看看究竟這條路上有多少技術(shù)點是必須要學(xué)的,把它們列出來,一定要列出來,這樣才可以一個一個來學(xué),不至于學(xué)著學(xué)著忘了這個漏了那個。
10、尋找合適的學(xué)習(xí)資料
互聯(lián)網(wǎng)時代,知識盈余,信息過量,你想學(xué)什么東西,Google或百度一下,有關(guān)聯(lián)的主題成千上萬,沒關(guān)聯(lián)的主題萬兒八千,總之信息浩如煙海,而我們卻如落水的螞蟻,實在有點浩淼水面終生難渡之感。
學(xué)過C,學(xué)過C++,學(xué)過Windows編程,學(xué)過MFC,學(xué)過Python,學(xué)過Qt,學(xué)過JavaScript,學(xué)過Java,學(xué)過Android,學(xué)過SQL,學(xué)過Node.js,學(xué)過Objective C……
總結(jié):
起初,你毫無頭緒,不知道該做什么,就像我說的,沒關(guān)系——只要繼續(xù)努力即可。
另外,不要忘了去看看其他人是如何解決這些讓你疲于應(yīng)對的問題的。嘗試著去理解為什么他們要用這樣的方式去解決特定的問題。
這是我用于學(xué)習(xí)如何解決這類問題的最佳途徑之一。
我會看看topcoder上頂級程序員的解決方案,從中我學(xué)到了很多東西。
一旦你可以用你所學(xué)的編程語言解決這些類型的編程問題,那么你不僅相當(dāng)接近于掌握語言,而且通過編碼面試將會成為一件輕而易舉的事情,因為其他的候選人碰到問題只能汗流浹背,自愧不如。
對于新手,可能你暫時并不能做到舉一反三,所以你只能慢慢積累,希望你以后也能成為一名優(yōu)秀的程序員!