How To Became A Hacker(翻訳:ハッカーになろう)と、 How To Learn Hacking(翻訳:ハッキングの学び方)を読んで、自分にあったプログラミング学習方法がわかった気がします。
これらの文書で学んだことをまとめたいと思います。
プログラミングは音楽の学習段階と似ている
音楽もプログラミングも、どちらも3つの学習段階があるそうです。
音楽は勉強したことないのでわかりませんが、どちらも lvl.2 が難しそうです。 また、lvl.1だけだとモチベーションが維持できません。
しかし、プログラミングの場合、インクリメンタルハッキングサイクル があります。 この学習方法は画期的です。
音楽の場合
パターンを使って作曲"] end a--->b--->c
プログラミングの場合
の学習"]<--->a2["小さなプログラム
の作成"] end subgraph b["lvl.2 デザインセンスを磨く"] b1["インクリメンタルハッキングサイクルで
多くのプログラムを理解する"] end subgraph c["lvl.3 オリジナルの開発"] b2["習得した開発の
パターンを使って
プロジェクト開発"] end a--->b--->c
インクリメンタルハッキングサイクル
私は「インクリメンタルハッキングサイクル」(IHC)をHow To Learn Hacking(翻訳:ハッキングの学び方)で初めて知りました。
インクリメンタルハッキングサイクルの目的の一つは、コードを読むモチベーションを維持できる環境下で、複雑さの規模を拡大しながら、多くのコードに没頭することです。
-- Eric Steven Raymond "How To Learn Hacking" (ハッキングの学び方) --
この学習方法は大変素晴しいと思います。簡単に手順を説明します。
IHCは、デザインセンスを磨くためのプログラミングの学習方法です。 以下の7つのステップを繰り返す。
また、IHCで選択するプロジェクトは、小さなプロジェクトから始めます。 IHCを実施・完了し、同規模のプロジェクトを2,3個完了できたら、次の規模のプロジェクトに進みます。 Mサイズを完了できるころには、デザインセンスが身についています。
興味のあるプロジェクトから始めて、モチベーションを維持しながら、段階的にレベルを上げることができます。飽きっぽい私に合った大変良い学習方法だと思います。
私の学習方針
インクリメンタルハッキングサイクルをGitHubを活用しながら
lvl. | 学習段階 | 説明 | 方針 |
---|---|---|---|
1 | 言語・ツールの学習 小さなプログラムの作成 |
プログラム言語・ツール(エディタ、デバッガ、コンパイラ等)の学習し、小さなプログラムを自分で作成します。 |
|
2 | デザインセンスを磨く | インクリメンタルハッキングサイクル(IHC)で多くのプログラムを理解する |
|
3 | オリジナルプロジェクトの開発 | これまでの学習で身に付けた開発のパターンを使い、プロジェクトのリーダーとしてオリジナルのプログラムを開発する |
|
参考
現在、動画作成も勉強中です。学んだことをHTMLだけでなく動画にもしています。
今回の記事も動画にしています。
Pythonの学習
三谷純 先生の書籍「Python ゼロからはじめるプログラミング」(ISBN:9784798169460) のスライド教材にナレーションを付けたものです。
AIZU ONLINE JUDGE (AOJ)
AOJの簡単な説明です。
インクリメンタルハッキングサイクル
実際に小さなPongゲームのプロジェクトを選んで、IHCをやっています。 (元のプロジェクト、フォークしたプロジェクト)