写経で身につけるプログラミングの基本2011年11月02日シェアPocketツイートnoteで書くFacebookで、ある学生さんがプログラミングの勉強をしたいということで、良い自習の方法はないか?という相談をしていました。初心者が「自習」でプログラミングを学ぶことは、どうすれば効率的なのかを、改めて考えて回答しました。私のおすすめ学習法は「写経」という方法です。プログラマの間では今となっては割とポピュラーな学習法ですが、初心者にとってもすごく効果的だと思うので紹介しておきます。写経しながら少しずつ変えていくどのプログラミング言語を選ぶ?写経の次の段階に進むプログラミングは知識だけでは駄目まず、プログラミングをしたことのある人ならわかると思いますが、プログラミングは知識だけを身につければ出来るようになるものではありません。学校教育における歴史や地理のように猛勉強で覚えれば出来るようになる訳ではないです。学ぶプログラミング言語の文法や基本的なAPIについては覚えているにこしたことはありませんが、それらを覚えることはそこまで重要ではありません。プログラミングは、自転車や自動車に乗るといったような身体性の技術に近いと思っています。動かしてみて、試してみて初めて身に付く感覚です。通勤の電車の中で一生懸命、プログラミングの本を読んだとしても、さほど効果は薄いでしょう。そんなプログラミングを身につける効率のいい方法は、自分自身でプログラムを書くことですが、そうは言っても初心者にとっていきなりプログラムを作ることは難しいです。プログラミングの難しさには、「何を作るか」と「どうやって作るか」の2つの問題が隠されているからです。その辺りについてはプログラマと漫画家〜「何を作る」のか考えたいプログラマと「どう作る」を追求するプログラマで書きました。プログラミング初心者はまず「どうやって作るか」を身につけるべきです。そのために出来ることは、チュートリアルのように実際にプログラムを作っていく内容の本を買って、そこに書いてあることを、自分自身の手で打ち込んでみることです。プログラマの間では、それを「写経」と呼んでいます。写経しながら少しずつ変えていく写経の大事なポイントは、自分の手でソースコードを打ってみて、実行してみるということです。することで、プログラムが動く感動も味わえますし、もし動かなければどこが悪ければ動かないのかを知るきっかけになるからです。World"を表示することから始めたはずです。そのプログラムの表示する文字列の部分を変更していくことで、どこを変えれば、どこの振る舞いが変わるのか、を学ぶことができたはずです。同じように写経をしながら、ソースコードの一部を変えながら、動きがどう変わっていくかを試していくと、より良いでしょう。プログラミングの良いところは、どんな失敗をしても、そこで損失するコストがゼロに近いことです。どのプログラミング言語を選ぶ?最初はソースコードの全ての意味がわからないことがあっても、何度も写経していくことで、そこに書かれたソースコードの意味を理解していき、最終的に見本を見なくても同じソースコードを書けるようになることが最初の目標です。プログラミング言語は好きなもの、好みや今後の就職先などを考慮して選べば良いと思います。私に聞かれれば、Rubyをオススメします。Rubyの良いところは表現力が豊かなので、初心者は初心者なりの書き方、上級者は上級者なりの書き方が出来るところです。沢山のライブラリを覚えれば良い訳ではなく、慣れてくれば慣れてくるほど自分自身で上達した感じを持てることがいい点だと思っています。いえ、プログラミング言語は宗教論争にも喩えられるほど好みの問題でもあるので、必ずしもどれがベストということは言えません。写経を続けていきながら、並行して、自分で作りたいプログラムを作っていくと、理解がより進みます。オリジナルのプログラムを作っていくのにあたり、わからないところや、参考にしたいソースコードを必要とする場面が出てきますが、その際に自分で写経したプログラムがサンプルになります。プログラミングの初級者のうちは、自分のストックとして沢山のサンプルコードを持っておいた方が良いでしょう。自分で作りだすと、作りかたで難しいところが出てきます。いうときの為にTips本もあると良いです。*1」という本がオススメです。Amazonのリンク最新版に変えました写経の次の段階に進む自分でプログラムが書けるようになってきたら、その先本当にレベルアップをしたいのであれば、自習だけで続けるのは難しいかもしれません。ソースコードの書き方に正解はありません。正しい書き方というのはないのですが、熟練者であれば、保守性の高いソースコードや、可読性の高いソースコードなどの観点からは優劣を付けることはできます。初心者のうちは、その優れた書き方を知る術はありませんが、自分で作ったソースコードを、熟練者からコードレビューをしてもらうことで「良いお作法」を身につけることはできます。身近にコードレビューをしてくれる熟練者がいない場合は、勉強会などに参加して、題材に自分のソースコードを出してみるのも良いかもしれません。のされてトラウマになるかもしれませんが・・・この学習法は、いわゆる「守・破・離」の「守」を実践する方法です。お手本の通りに打ち込んでみる。それもお手本を見るだけでなく、自ら実践してお手本通りに出来るようになる。そこから、少しずつソースコードを変えていき、自分の理解を深めていく、というやり方です。ホウレンソウに代わる「雑談+相談」チームビルディングを成功させるのは、ホウレンソウではなくザッソウ(雑談+相談)なのです。日本初のザッソウ解説本です。「納品のない受託開発」に取り組む"株式会社ソニックガーデン"の代表を務める倉貫義人のブログです。倉貫自身の言葉で、人材育成からマネジメントまで、ソニックガーデンの経営哲学とノウハウについて、日々の学びから記事にしています。「管理ゼロ経営」で注目の社長に聞いてみた』2019-09-17お知らせをもっとみるSonicGarden株式会社ソニックガーデンは、倉貫義人が代表を務める会社です。「納品のない受託開発」という新しい受託開発も行っています。詳しくは、こちらをご覧ください。