怎樣學習一門編程語言
程序員互動之家
2015-06-08 10:07
選擇一門語言 確定你感興趣的領(lǐng)域 你可以開始學習任何編程語言(盡管其中一些被描述地比其他的更加“易學”),你得去問自己自己想用通過學習這門語言完成什么樣的工作。這將會幫助你確定你應(yīng)該追求的編程方式并且提供一個良好的開始。 如果你想進入Web開發(fā)行業(yè),那你將會有一堆語言需要去學習,這和開發(fā)計算機程序相反。移動App的開發(fā)需要比PC等的開發(fā)更多的技巧。所有的這些決定將會影響著你的發(fā)展方向。 考慮從一個“易學”的語言開始 無論你做了什么樣的決定,你可能只會希望從一門高水準又易學的語言開始。這些語言對于初學者非常有用,因為它們教授基本的概念和適用于幾乎任何語言的思維過程。 在這種語言中最流行的兩種是Python和Ruby。它們都是使用著易讀的句法的面向?qū)ο蟮腤eb應(yīng)用開發(fā)語言。 “面向?qū)ο蟆币驗橹@個語言是圍繞著“對象”、數(shù)據(jù)收集和操作的概念來打造的。這一概念被用在許多先進的編程語言上,比如C++、Java、Objective-C和PHP。 通讀大量語言的基本教程 如果你還不確定你應(yīng)該開始學習哪一門語言,那么就去閱讀一些不同語言的基本教程吧。如果一門語言比別的更有意思,那就多去看看是不是真的那樣。在網(wǎng)上對于所有的編程語言有無數(shù)個基本教程。 Python——一個非常適合初學者的語言 ,而且當你掌握它的時候它會變得更加強大。被用來開發(fā)了許多Web應(yīng)用、甚至一些游戲。 Java——被無數(shù)個項目所使用,從游戲到Web應(yīng)用再到ATM軟件。 HTML——對于任何Web開發(fā)者必不可少的起航點。在從事其他一系列Web開發(fā)之前掌握好HTML非常重要。 C——最古老的語言之一,它已經(jīng)是非常強大的工具,也是一些更現(xiàn)代的語言的祖先,比如C++,C#和Objective-C。 從簡單的開始學起 學習語言的核心概念 雖然這一步中適合的部分將取決于你所選擇的語言,但所有編程語言都有對建立有用的程序至關(guān)重要的基本概念。盡快的學習和掌握這些概念,將會使你更容易地解決問題和創(chuàng)建強大而有效的代碼。下面只是一些在不同語言中的核心概念: 變量——一個變量就是一個去存儲和應(yīng)用以改變代碼片的方式。變量可以被操作,并且經(jīng)常被定義成“整數(shù)”、“字符”,還有其他的確定可以存儲的數(shù)據(jù)類型。進行編碼時,變量通常具有讓它們對于我們有種某種含義的名稱。這樣一來我們就容易理解該變量如何與其余的代碼進行交互了。 條件語句——條件語句是基于條件是否為真的一種行為。對于一個條件語句最常見的形式是“如果-那么”。如果這個條件為真,那么就有一件事發(fā)生,如果條件為假,那么就會發(fā)生另一件事情。 函數(shù)或子例程——這個概念的實際名稱可能取決于不同的語言。它也可能被叫做“過程”、“方法”或是“可返回單元”。它本質(zhì)上是一個大程序中的一個小程序。一個函數(shù)可以被別的程序“調(diào)用”多次,運行程序員去有效的創(chuàng)建復(fù)雜的程序。 數(shù)據(jù)輸入——這是在幾乎所有語言中都使用的一個寬泛的概念。它涉及到處理用戶的輸入以及存儲這些數(shù)據(jù)。這些數(shù)據(jù)怎樣收集則取決于程序的類型以及對于用戶的可用的輸入方式。它和關(guān)于顯示在屏幕上還是打印在文件上的輸出有著精密聯(lián)系。 安裝一些有必要的軟件 許多的編程語言都要求有被程序員設(shè)計來講代碼轉(zhuǎn)換成機器能理解的語言的編譯器。其他一些語言,比如Python,使用可以立即轉(zhuǎn)換成程序而不需要編譯。 一些語言有自己的往往包含著代碼編輯器、調(diào)試器和/或者翻譯以及調(diào)試的IDEs(集成開發(fā)環(huán)境)。這些程序員在同一個地方去執(zhí)行任何必要的功能。IDEs可能還包含著包含對象層次結(jié)構(gòu)和目錄的可視化界面。 在網(wǎng)上有許多的代碼編輯器可以用。這些程序都提供不同方式的語法高亮和提供其他開發(fā)人員友好的工具。(譯者推薦用Emacs) 創(chuàng)建你的第一個程序 每次只專注于一個概念 幾乎學習任何語言時被教的第一個程序就是“Hello World”。這是一個僅僅在屏幕上顯示“Hello,World”的簡單程序。這個程序教會初學者一些簡單的語法來創(chuàng)建一個可以運作的基本程序,以及如何處理顯示輸出。通過改變文本,你還可以學習到這些基本數(shù)據(jù)是怎樣被程序處理的。 通過在線示例的片段來學習 在網(wǎng)上幾乎每個編程語言都有數(shù)以千記得在線代碼示例。用這些例子來學習不同部分如何與語言協(xié)同工作,以及各個部分之前的差別。用這些在不斷示例中取得的碎片來創(chuàng)建你自己的程序。 檢查語法 語法就是一門語言被寫得讓編譯器或解釋權(quán)能夠理解的方法。每種語言都有自己獨特的語法,雖然有些元素可能在不同的語言中共享。學習語法對于學習怎樣編程是非常重要的。在現(xiàn)實中,它只是更高級的概念賴以建立的基礎(chǔ)。 試驗性的更改 對你的示例程序做些修改,然后測試結(jié)果。通過試驗?zāi)憧梢詫W到什么有用、什么沒用,這比多閱讀一本書或指南在任何時候都要快得多。不要害怕破壞了你的程序,學習去修復(fù)錯誤是任何開發(fā)過程中最重要的一步,并且新的事物永遠不可能在第一次就正確運行。 開始練習調(diào)試 當你在編程時,你總會碰到bug。它們存在程序中,并且可能隨時隨地的出現(xiàn)在程序中的任何一個地方。漏洞可能會破壞程序,或者只是讓程序不能編譯/運行。捕捉和修復(fù)這些錯誤在軟件開發(fā)周期中這是一個主要的過程,所以要早早地習慣于這么做。 當你快要修改程序時,你可能會碰到它們不能運作的情況。想辦法弄清楚,并且采取不同的方式來解決,這將會成為你作為一個程序員最寶貴的技能之一。 給所有代碼添加注釋 幾乎所有編程語言都有一個允許你包含未被解釋器或編譯器處理的文本的“注釋”功能。也就允許了你可以留下短小但清晰的關(guān)于這段代碼是用來做什么的人類語言的解釋。這將不僅僅幫助你記住你的代碼在這個大型程序是做什么的,在協(xié)作環(huán)境中因為它允許其他人也能夠明白你的代碼是做什么的,所以也是非常重要的做法。 不斷練習 每天都要敲代碼 花大量的時間對于掌握一門語言是最重要的。即便是像Python這樣的簡單語言,它可能也要畫上一兩天去了解它的基本語法,花大量的時間才能真正精通。想任何其他的技巧一樣,練習是變得更加嫻熟的關(guān)鍵。盡量每天都要花一些時間去敲代碼,即便是在工作之后和晚餐之前的一小時。 給你的程序設(shè)定目標 通過設(shè)定能夠?qū)崿F(xiàn)但又有挑戰(zhàn)性的目標,你將能夠開始解決問題并拿解決方案。嘗試著去設(shè)想去一個基本的應(yīng)用程序,比如一個計算器,然后想辦法去做出來。使用你一直學習的語法和概念,然后將它們應(yīng)用到實際中。 和別人交流并且閱讀他人的程序 有很多編程社區(qū)致力于特定的語言或?qū)W科。找到并參與到這些社區(qū)會為你的學習創(chuàng)造奇跡。你將會獲得能夠幫助你的學習過程的各式各樣的示例代碼和工具。通過閱讀他人的程序代碼不僅可以激勵你,還可以幫助你回憶那些還沒有掌握的概念。 為你所選擇的編程語言找到論壇或在線社區(qū)。確保自己是真正參與進去而不是不斷地問問題。這些社區(qū)往往看著做協(xié)作和討論的地方,而不僅僅是簡單的提問-回答問題。請隨時尋求幫助,但要準備好你的程序以及嘗試用不同的途徑。 一旦你已經(jīng)有了一些經(jīng)驗,可以參加一些編程的活動。這些活動是個人或團隊爭分奪秒的開發(fā)功能的程序,通常會圍繞一個特定的主題。這些事情都很好玩并且是一個認識其他程序員的很好的方式。 挑戰(zhàn)自己并保持樂趣 去嘗試著做一些你現(xiàn)在還不知道怎么做的事情。研究該怎樣完成這個任務(wù)的方式,并且不斷的將它們添加到你的程序中。一定要盡量避免勉強能運行的程序,你應(yīng)該讓各個方面都很完美。 分享你的知識 參加一些培訓課程 許多的大學、社區(qū)學院、社區(qū)中心都提供了你可以參加的編程課程和工作室,而無需在學校注冊。這里對于新手程序員是很有裨益的,因為你可以從其他有經(jīng)驗的程序員那里得到幫助,或者你也可以通過網(wǎng)絡(luò)和其他地方的程序員一起交流。 買或者借一本書 有成千上萬種你所能想象出的所有語言的教學書籍。雖然你的知識不應(yīng)該全然來自一本書,但它們會給你提供許多的參考,而且往往內(nèi)涵了大量友好的示例。 學習數(shù)學和邏輯 大多編程都涉及了基本的算術(shù)運算,但可能你想要學習更先進的概念。如果你想寫出復(fù)雜的模擬或者算法級別程序,這將是非常重要的。對于大多數(shù)日常編程而言,你并不需要太多先進的數(shù)學知識。但學習邏輯,尤其是計算機邏輯,將能幫助你理解處理更先進程序的復(fù)雜問題的最好方式。 永遠不要停止編程 有一個流行的理論,成為一名專家至少需要10000小時的練習。雖然這個理論還處于辯論中,但它內(nèi)含的原則永遠是正確的:精通需要時間和奉獻精神。不要指望一夜之間你就能學會一切,但如果你保持專注,并且不斷的學習,很快你就會成為你的領(lǐng)域里的專家。 學習另一種編程語言 雖然你可以僅僅精通一門語言,但許多的程序員通過學習多種語言來提高在其領(lǐng)域內(nèi)成功的機會。它們的第二或者第三個語言往往和第一個語言相輔相成,這就能幫助他們?nèi)懗龈訌?fù)雜和有趣的程序。一旦你掌握了你的第一個語言,你就有時間來學習第二個語言。 你可能會發(fā)現(xiàn)第二個語言會學的比第一個更快。那是因為許多的核心概念對于多種語言都是相通的,尤其是如果這兩個語言本身就是密切相關(guān)的。 應(yīng)用你的技能 參加一個四年的課程 雖然這并非絕對需要,但在學院或大學的四年學習可以讓你見識到各種不同的語言,你可以在網(wǎng)絡(luò)上和專業(yè)人士或者其他學生交流。這種方法不一定適合所有人,并且很多成功的程序員都沒有在一個耗時4年的機構(gòu)學習。 創(chuàng)建自己的代碼庫 當你在創(chuàng)建程序并且不斷擴充你的知識時,確保你所有最好的程序都保存自己的代碼庫中。你可以把這個展示給招牌和面試官看你所做的工作。確保這包含了你所有時間的工作,并且確保你可以用這些程序給給另一家公司做任何工作。 做一些外包兼職工作 對于程序員來說有非常大的自由職業(yè)市場,尤其是移動App開發(fā)。帶上幾個小的外包兼職去感受一番商業(yè)編程是如何運作的。通常境況下你可以用外包兼職的工作來幫助你建立代碼庫,并且這將有益于新的作品。 開發(fā)你自己的免費程序或商業(yè)軟件 你不必為一家工作來換取金錢。如果你有能力,完全可以獨立開發(fā)軟件并且讓其免費,通過你自己的網(wǎng)站或者其他的市場。準備好提供為你的商業(yè)軟件做技術(shù)支持,因為你的客戶希望它們能完好的工作。 免費軟件是一種發(fā)布小程序和應(yīng)用程序的流行方式。開發(fā)者不會收到任何款項,但會幫助你建立知名度以及讓自己在社區(qū)中有一定聲望。 文章來自CSDN:NoMasp(柯于旺)的博客 大家如果對編程感興趣,想了解更多的編程知識,解決編程問題,我們這里有java高手,C++/C高手,windows/Linux高手,android/ios高手,請大家關(guān)注我的微信公眾號:程序員互動聯(lián)盟或者coder_online |
|