初學者學習程式設計的方法有哪些

  很多程式設計初學者都會問:該學習什麼程式語言,怎麼學習?由於小編知道如何掌握“所有”的程式語言,總是感覺這種該學“一種”什麼語言的問題比較低階。以下是小編分享給大家的學習程式設計的方法的資料,希望可以幫到你!

  學習程式設計的方法

  將其與類似的語言進行比較

  當你首次觀看有關該語言的第一個教程或閱讀程式碼時,請嘗試猜測該語言的每個部分將會做什麼,並檢查你的判斷是否正確。 如果記筆記可以幫助你整合資訊,請拿起一張紙並記下三個列表:

  看起來很熟悉的東西,並且做了預期中的事

  看起來很熟悉的東西,但做了意料之外的事

  看起來完全是新的東西

  例如,如果我用來自 Python 和 C 背景的 Rust 程式碼進行此練習,那麼在第一個列表中,我會放上用於表示範圍的花括號,***看起來像是布林型別的 非,但實際上是 Rust 中的巨集定義***則放在第二個列表,型別簽名語法***type signature syntax***放在第三個列表。

  如果你保留著初始列表的副本,一旦你更熟練,可使用它通過語言反思你的進展,並提醒自己在嘗試向其他人講授該語言時,有哪些看起來不熟悉的概念。

  閱讀語言的官方文件

  如果希望在使用之前吸收大量資訊,從閱讀語言的參考資料中可能會受益。

  不用擔心它們會對你催眠,參考文獻通常是用於查詢使用,而不是用來記憶。

  使用網際網路搜尋

  搜尋網路是一個很好的方式,可提供有關特定錯誤和一般最佳做法的資訊。當收到錯誤資訊時,應搜尋資訊中看起來是錯誤的獨一無二的部分,但不是程式碼唯一的部分。

  例如,如果錯誤提示 "Error on line 53: Invalid argument exception***錯誤在第 53 行:無效的引數異常***",以語言名稱和字串 “Invalid argument exception” 這樣的組合搜尋,以找到最佳的結果。

  記住要將錯誤資訊中的所有引用內容都包含在內。

  還可以在網路中搜索有關解決語言中特定問題的最佳做法的博文。

  評估搜尋結果中顯示的部落格帖子的質量和決定認真採用他們的建議時,請檢視作者的公共程式碼組合以及釋出日期。

  與社群接觸

  雖然部落格和新聞文章具有大量有用的資訊,但是你嘗試編寫的特定程式碼片段總會有些微妙之處。不要害怕在郵件列表中發帖,或加入 IRC 和 Slack 頻道以尋求幫助。

  要提出有幫助的回覆的問題,請確保在正確的地方提問。許多語言都有 “初學者” 郵件列表或聊天頻道,專門針對可能會頻繁詢問的問題而建立。

  當提出問題時,請務必先總結準備做什麼、已做過的東西以及發生的情況。儘量為專家提供足夠的上下文來了解問題,但不需要無關緊要的細節。

  提出問題後,請務必堅持一段時間來聽取建議或會回答你的疑問可能產生的後續問題。

  編寫“生產就緒” 的程式碼

  使用該語言編寫 “生產就緒***Production-Ready***” 的程式碼

  玩具程式是一個很好的第一步,但在更逼真的的環境中使用一門語言可幫助探索其現實使用中的優勢和挑戰。

  考慮將一個熟悉的、相對較小的、經過良好測試的程式移植到新的語言,以探索其在現實使用的應用。

  閱讀一本關於這門語言的書籍

  如果有好幾本有用的書,比較它們的評論,並考慮哪位作者的背景和自己的最相似。現在有很多電子書可以免費線上閱讀。

  在購買有關該語言的書籍之前,請先檢視書籍出版的日期以及其示例所涵蓋的語言版本。

  如果使用的是較舊的書籍,請務必使用其所使用的語言版本的示例。還要在網上調查一下,以瞭解自出版以來語言發生了怎樣的變化。

  觀看講座和課程

  如果你學習的語言在線上課堂中有講授,那麼視訊應該是公開的。除了學術講座之外,還可以考慮尋找錄製講座、會議談話和有關該語言的部落格。

  當在看電視時,談談你的新語言是一個將學習融入日常生活很好的方式。

  閱讀示例程式碼

  大多數關於程式語言的書籍都會包含程式碼片段。你也可以在部落格和 Rosetta Code 上找到示例程式碼。執行示例程式碼、修改它們,並嘗試預測修改後會發生那些情況。

  閱讀生產程式碼

  查詢有關該語言所有型別和大小的專案的一種方法是在 GitHub 上搜索它。按最受歡迎或最具影響力進行排序,你的熱門搜尋將包括最受歡迎的開源工具。

  如果想要了解開源專案的設計,可通過郵件列表或 IRC 來與社群進行互動。你甚至可能會發現一些 bug。

  尋找好的工具

  當使用新的語言時,可向其更有經驗的使用者請教,詢問他們的開發環境。你可能會發現,一個特定的文字編輯器或 IDE 對於新語言的支援比你習慣通常使用的要好。

  調查在新語言生態系統中管理依賴關係、格式化、模糊化和單元測試程式碼的選項。

  保持你的熱情

  入門新的語言很容易,但變得真正精通它通常是一個需要多年的旅程。慶祝一路上你的成功,並與追隨你腳步的學習者分享你所學到的知識,保持著學習程式設計的興趣。

  新手學習程式設計的最佳方式

  聚焦習慣而不是目標

  聚焦習慣而不是目標聽起來似乎不合常理,但是請聽我把話說完 - 這是一個有關平衡的問題。凡是和我共過事的人都知道,我有時就像傻子一樣,在一天內,引用《蝙蝠俠:俠影之謎》中 Ra's Al Ghul 的話多達 3-4 次。

  Bloc 公司的投資者們對於我在董事會上頻繁地引用《蝙蝠俠:俠影之謎》中的片段作為開始,早已經煩透了。

  R'As 告訴 Bruce:

  “***當你的胳膊快要凍僵的時候,***按摩你的胸口,你的胳膊自然會暖和起來。”

  如果你將精力放在在每星期程式設計 20-30 個小時的習慣培養上,成為一名 Web 開發者的目標很快就可以實現。如果你將目標設定為在數月內成為一名 Web 開發者,在什麼時候能可以達成目標以及距離目標還有多遠等不確定性的壓力之下,你反而可能會一無所獲。聚焦於習慣而不是目標。按摩你的胸口,你的胳膊自然會暖和起來。

  因此,你現在應該做的是:在你的日程安排上,每天花15分鐘時間用於程式設計。不要多於15分鐘,每天只要15分鐘就夠了。如果你能在一星期之內堅持做下來而不找任何藉口,請試著把時間延長到一天20分鐘。不要試圖通過每天一小時的程式設計來過度擴充套件自己的能力,程式設計就是一場 10,000 小時的馬拉松,因此我們應該將精力集中在培養習慣上。與其在一天內花費大量時間學習程式設計,不如每天花費少量時間,但是能夠天天堅持,因為這樣更有效。

  獨自學習非常痛苦

  當我在學習 Web 開發時,在我的學習過程中,擁有一位導師和加入一個社群是兩個最大的組成要素。

  ●擁有一位導師

  大學期間,我曾在一家名叫 merge.fm 的小型創業公司工作。暑假期間,我與該公司的一位聯合創始人一起工作,我在此期間學到的東西比我之前一年在大學學到的還要多。跟隨一名經驗豐富的專業人士一起工作,可以真正地加速你學習的速度,你會了解到他們如何思考問題的,同時,也會發現自己的不足之處。這就是為什麼師徒制通常成為學習一門新技藝的預設標準的一個原因吧,因為它非常有效。

  ●加入一個社群

  我加入了的兩個社群,一個是 Illini Entrepreneurship Network***我們學校的一個學生組織***,另一個是 Hacker News***一個面向黑客和創業者的大型線上社群***。

  我沒有從 Hacker News 學到任何有關物件和類的知識,但是我學到了一些別的東西。我知道了沒人喜歡 JavaScript。我知道了 Ruby 程式設計師是程式設計領域的潮人。我還知道了 Bret Taylor, Rich Hickey, and John Carmack 都是程式設計世界的領袖人物,還有就是,那些真正關心員工的軟體公司,它們公司的廚房看上去就像興奮劑實驗室。

  總之,我學會了如何說行話。當你和其他程式設計師一同工作的時候,這一點非常重要,也正因如此,才使你覺得自己就是一名程式設計師。

  專案實踐

  在學習 Web 開發的第一年,我動手實現了以下專案:

  ●一個 Digg 的克隆版***來自 Sitepoint書上的 Rails 例子,我想現在它已經過時了***

  ●一個線上購物應用程式***來自 Agile Web Development with Rails 4***

  ●一個 GeekSquad-esque 應用程式***個人專案***

  ●一個實時線上課堂應用程式***個人專案***

  ●一個外語學習應用程式***課程專案***

  我認為構建真實專案之所以非常重要的原因有很多,就我而言,最重要的一個原因是它充滿了樂趣。這恰恰是在傳統教育中嚴重缺失的,也正因如此,它才成為了諸多原因中最重要的一項。尋找如何開展專案實踐的參考資源,是一個不錯的選擇。

  要具有“小強”精神

  對於那些能堅持讀到此處的讀者們,我偷偷地增加了第四項內容。 Paul Graham 曾經對 Airbnb 的創始人說過:

  “你們這些傢伙是不會失敗的,因為你們就像打不死的’小強’一樣”

  一段時期,你可能會有放棄學習程式設計的想法。就像任何具有同樣價值的事情一樣,學習程式設計真的很難,有時你會覺得自己真的很笨。這就是為什麼第一項策略如此重要的原因 - 不要過度擔心是否已經取得進步,或者需要花費多長時間達成目標。你要做的就是每週堅持10-30個小時的程式設計。就像執著的’小強’一樣,你就不會失敗。

  多年以前我說過一句話 - “成功貴在堅持***註解:亦可譯為‘生活中80%的成功源於堅持’***”,這句話經常被其他人引用。人們常常向我提及,他們想編寫一個劇本,他們想製作一部電影,他們想撰寫一本小說。那些最終成功實現目標的人,80%的做法是先行動起來。那些最終失敗的人,他們連這一點都做不到。這正是他們不能做成一件事情的原因,他們沒有去做。一旦你去做了,如果你真地去編寫電影劇本,或者撰寫小說,實際上,你的成功之路已走過大半。這就是我可以告訴你的我人生最大的成功經驗。其它的都是失敗的教訓。

  掌握所有程式語言的關鍵學習方法

  1、重視語言特性,而不是語言

  很多人在乎自己或者別人是否“會”某種語言,對“發明”了某種語言的人倍加崇拜,為各種語言的孰優孰劣爭得面紅耳赤。這些問題對於我來說都是不存在的。雖然我寫文章批評過不少語言的缺陷,在實際工作中我卻很少跟人爭論這些。如果有其它人在我身邊爭論,我甚至會戴上耳機,都懶得聽他們說什麼 ;*** 為什麼呢?我發現歸根結底的原因,是因為我重視的是“語言特性”,而不是整個的“語言”。我能用任何語言寫出不錯的程式碼,就算再糟糕的語言也差不了多少。

  任何一種“語言”,都是各種“語言特性”的組合。打個比方吧,一個程式語言就像一臺電腦。它的牌子可能叫“聯想”,或者“IBM”,或者“Dell”,或者“蘋果”。那麼,你可以說蘋果一定比 IBM 好嗎?你不能。你得看看它裡面裝的是什麼型號的處理器,有多少個核,主頻多少,有多少 L1 cache,L2 cache……,有多少記憶體和硬碟,顯示器解析度有多大,顯示卡是什麼 GPU,網絡卡速度,等等各種“配置”。有時候你還得看各個元件之間的相容性。

  2、合理的入門語言

  所以初學者要想事半功倍,就應該從一種“合理”的,沒有明顯嚴重問題的語言出發,掌握最關鍵的語言特性,然後由此把這些概念應用到其它語言。

  3、掌握關鍵語言特性,忽略次要特性

  為了達到我之前提到的融會貫通,一通百通的效果,初學者應該專注於語言裡面最關鍵的特性,而不是被次要的特性分心。

  舉個誇張點的例子。我發現很多程式設計培訓班和野雞大學的程式設計入門課,往往一來就教學生如何使用 printf 列印“Hello World!”,進而要他們記憶 printf 的各種“格式字元”的意義,要他們實現各種複雜格式的列印輸出,甚至要求列印到文字檔案裡,然後再讀出來……

1.java程式設計學習方法有哪些

2.學習程式設計需要的時間以及方法

3.學習程式設計的時間以及方法

4.最科學的聲樂訓練方法

5.初學者自學怎麼練口琴