如何學習一門新的編程語言?

如何學習一門新的編程語言?作者: 陽志平發布時間: 2012-02-09 17:42閱讀: 2299 次原文鏈接 全屏閱讀  [收藏]

  答案是:在學習區刻意練習,每天500行。什麼是學習區,就是那種,你剛剛夠得著,但是還是需要付出一點努力的。

  1. 如何尋找學習區  1.1 經典教程

  一般某門新語言的圖書,在豆瓣排名比較靠前,口碑都很不錯的,挑一本帶課後練習的就行了,放棄那種雖然寫的很好,但是不帶練習題目的,那種書作為備選就可以了。Ruby社區,我常常推薦日本Ruby學會會長寫的這本:《Ruby Programming》課後習題。

  1.2 笨方法系列

  Ruby與Python雙修的怪才Zed Shaw,推出了笨方法學習編程的系列教程。裡面已經有了RubyPythonC系列。Zed Shaw開源了相應的方法論、資料,你也可以將它改為自己要學的版本,比如Java、Arduino等。

  網址:http://learncodethehardway.org/

  Ruby中文版

  Python中文版

  1.3 社區英雄設計的練習題目

  任何一個社區,都有一些英雄人物,樂意傳承自身的知識體系,因此,設計了大量的練習題目。比如,Ruby社區的以下材料都很適合初學者。

  http://rubykoans.com/

  http://kidsruby.com/

  http://rubymonk.com/

  1.4 人氣較旺的程序員問答社區

  個人比較推薦:http://stackoverflow.com/(編者註:國內程序員問答社區可以去博問)

  可以去這裡回答別人的問題,如果時間有限、可以先下載stackoverflow的top問題電子書。

  別急著看最佳答案,自己嘗試寫下答案。然後再與最佳答案對照。

  2. 在學習區刻意練習的輔助工具

  初學編程,最應該記住的是在學習區刻意大量練習,千萬少看書,要多練習。當年我從管理諮詢行業繼承的陋習,先看大量資料,才進入某個領域,並不適合學習編程。

  刻意練習時,有以下重要的工具。

  2.1 TextMate的Bundle

  Windows下的朋友暫時缺少,通過bundle可以快速掌握一門語言的核心語法,並自由擴充自身的知識庫。

  2.2 cheatsheets

  cheatsheets類似於考試時的小抄,將某個需要學習的東西精華整理在一頁或幾頁紙上。

  http://cheat-sheets.org/,找到裡面的Ruby cheatsheets或者你自己所用到語言的小抄,有多個版本,找一個最適合自己的版本 ,然後下載並列印出來。一張紙囊括核心內容。

  cheatsheets,還有很多在這裡:http://refcardz.dzone.com/

  2.3 FlashCard

  FlashCard是一種學習方法,先將題目呈現,然後心中默想答案,再翻看答案。

  將與學習相關的FlashCards下載在手機或者列印出來,然後等車等無聊時間,予以默想。

  比如:http://www.yoyobrain.com/cardboxes/103

  以及一個特別針對Ruby on Rails的app

  網上有大量的關於Flash Card的社區。可以特意去搜索自己所學習的語言的。

  3. 如何提升行動力:人類行動心理學的有效Hack

  人為什麼會拖延、人為什麼行動力很差。近些年心理學已經取得了突破性研究成果。普通人思考目標的時候,使用的是目標意圖, 是:

我要做什麼....

  但是,有位天才心理學家Peter Gollwitzer發現目標意圖這樣的思考範式,反而很難達成目標,於是,他對自己的實驗對象,使用了一種替代範式。強迫實驗對象,使用一種稱之為:執行意圖的思考範式來思考。結果令人驚訝,人們更容易克服拖延症、達成目標。

  什麼是執行意圖?就是使用if...then...的思考範式。比如, 不要再說,我要學Ruby。 而是說,如果我要學習Ruby,那麼,今天晚上就裝上環境。

  當你關於行動與目標,長年累月這麼思考,最終建立自動化機制,那麼行動力慢慢就變強大了。如果...那麼...成為生命中的一部分。我要...這種句式,就從自己的語言體系中死掉了。

  4. 編程始終是個人行為

  剛開始,不要:

  • 忙於去社交
  • 泡各種論壇、發無聊帖子
  • 下載各種盜版電子書(自己花錢買來的你才會格外心疼)
  • 爭議哪種語言更好
  •   每個人的世界都是如此不同,不爭議,用它做點作品,或者是送給自己的女朋友,或者是賺點外快。慢慢地,就成長了:)


    推薦閱讀:

    會八國語言的人到底是什麼樣的?
    各種語言難易度比較
    有一部分愛,需要活在語言上
    關於如何幫助孩子語言發展的清單
    和「學霸貓」和「張瀟雨」老師學到的

    TAG:編程語言 | 編程 | 學習 | 語言 |