*

プログラミング学習法「写経」について

本日は本ブログのメインテーマであるプログラミング学習について考えてみたいと思います。

今までプログラミングを覚えたい方には基本的な構文を覚えた後は、アプリ作成をすべしといっておりました。

基本的にはこの考えは変わらないのですが、参考書を片手にコードを写す=「写経」という学習方法も有効でないかと最近感じており、今日はこれについて書きます。

写経の重要性を感じた経緯

元々写経という学習法はしっておりましたし、以前の人材紹介会社でも生徒にすすめておりました。

ただ私自身は自分があまりやっていなかったこともあり、効果には懐疑的でした。基本的にはプログラミングはすべてアプリを作りながら覚えてきたので。

ところが最近、CSSがやばいと思い始め、なんとかしないとまずいなーと思ったんですね。表示はされてはいますけど、保守性などを意識した書き方には自信がありませんでした。

正しいコードかけているのかなあと。

この場合も、アプリ作成同様、CSSを覚えたかったらWebサイトを作るのが一番良いんですけど、作りたいもののネタがない、という壁にぶち当たります。(後述しますが、これがアプリ作成学習のデメリットになります。)

仕方なく、参考書を片手に理解しながら正しいCSSを自分の手でかいているのですが、これが思った以上に効果を感じてます。

そこで今回はこの写経という学習方法について考えてみようと思っております。

コピペのデメリット

写経の前にコピペについて書いておきます。当たり前なんですけど、写経とコピペは違います。

コピペは時間がなくてとりあえず動かしたい、という場合にはいいと思いますが(そしてそういうことは現場では非常に多いです・・・)、プログラミングの上達という点から考えるとあまり得るものはないでしょう。

他人のコードをしっかり読むにはやはり「自分の手で書く」という行為が必須だと思っております。

そして写経は「書く」ことも「読む」こともできる学習だと思っております。

写経学習のメリット

写経の具体的なメリットを挙げてみます。

正しいコードの型を覚えることができる

コードを写すことの意図ですが、まずはお手本となる型を学ぶことができるという点です。武道なんかでもまずは先生をお手本にしながら型を覚えさせると思いますが、それと同じです。

プログラミングを学習し始めのころは何が正しいのかわかりませんから、いいコードに触れることはとても大切で、この点で私は一番最初の先生には感謝しております。

アプリ作成は非常に良い学習法だと思いますが、完全な独学の場合、変な癖が身についてしまう危険性があります。

といいつつも、その良さがわかるのはかなり後になってからなのですが・・・

そしてコードを読む行為はとても大事なのですが、目を通しただけでは身につかないことが多いです。 ただ目を通すよりも書いたほうが身につくということはほとんどの方が同意されると思います。

やはり実際に書いて、動かすことが必要でしょう。

また後程書きますが、この操作はいらないのでは?と思ったらあえて外してやってみるなど、そういう試行錯誤も含めるとさらに効果があがるかと思います。

ネタを考える必要がない

私は今でもアプリ作成が最強の学習法だとおもっています。ただ、この方法の大きな欠点として作りたいものを考えるのがそもそも大変、ということがあげられます(汗)

出会った生徒全員に「アプリ作成」の学習法をすすめはするんですが、みなさん「作りたいものがない」ってことが多いんですよね・・・。

あるいはどれぐらいのスキルが必要なのかがイメージできないことが多いので、とんでもなくレベルのかけ離れたものを作りたがったり・・そんな場合はとりあえず掲示板を作れ、といっていました。

写経の場合ですとアプリ作成に比べ、自分でゼロから考える必要がありません。自分が学びたいコードをうつせばいいので、こういった面で学習が楽になるでしょう。

写経を一段レベルアップするために

理解しながら写すだけでもそれなりに効果はあると思いますが、私はいきなり写す前に自分で一旦ソースを考えてみます。

まず参考書のサイトをみて、自分ならどう組むのかを考えます。

ある程度自分で組んだ後でソースをみて、

  • どこが違うのか
  • なぜそのソースを書いているのか

を照らし合わせそのあとで写していきます。学校の問題でもそうですが、最も力がつくのは先生の説明を聞いている時や教科書を読んでいるときではなく、「自分で考えているとき」だと思いこの方法を採用しています。

アプリ作成がなぜ効果的なのかといえば常時「考えている」からでしょう。

基本的にずっと脳がフル回転している状態なので「ただ理解する」から「使いこなせる」というレベルにステップアップできるのだと思います。

私の写経もこれの応用で、いわばソースをお手本とし、問題集のように使っています。

注意点

全ての学習法にはメリットもデメリットもありますので、プログラミングの写経が唯一無二で最善の学習方法である、なんてことはいわないです。この点はアプリ作成に関しても同じですが。

メリットとデメリットを踏まえ、どうやったら自分が吸収できるかを考えるのが一番大事でしょう。

個人的に気を付けたほうが良いなと思う点を書いておきます。常識的なことなのでプログラミングの学習を全くしたことがない方でもうなずいていただけるかと思います。

スポーツや音楽、その他の習い事も共通する部分があるかと思います。

正しい見本を選ぶ

当たり前なんですけど、間違ったものをお手本にしないようにしましょう。スポーツでも間違った型を見て覚えたら、変な癖がついてしまいます。

プログラミングも全く同じで特に学習し始めの段階では何が正しいのか、間違っているのかがわからないので、適切でないお手本を選ぶことは大きなリスクになります。

できればどこのだれが書いた変わらないものよりはオープンソースや書籍など、ある程度は品質が保証されているものを選びましょう。

初心者のうちにオープンソースをお手本にするのはおそらく厳しいので、書籍が良いでしょう。あるいはソースにこだわりのある先輩などにソースをもらうのもいいでしょう。

理解できるものを選ぶ

プログラミングの力は基本的には書いた量&読んだ量だと思いますが、量をたくさんやっても身につかないケースがあり得ます。適性がないとか頭が悪いから、といった思考に陥りがちですが、一番ありえるのは「全く理解できないレベル」のものを学習している場合です。

これ学校の勉強でも全く同じでして、全く理解できないものをいくら学習してもできるようにはなりません。

プログラミングは系統立てて学習する必要があるので、基本的なお問い合わせフォームの作り方もわからないのにいきなりハイレベルなことをやっても無駄になることが多いでしょう。

まずは自分の手が動くもの、わかるものを選ぶようにしましょう。また写経もアプリ作成よりは負担が少ないかと思いますが、やはりわからないところを聞ける環境は大切でしょう。

参考リンク

写経学習のメリットについてかいてあるリンクの紹介です。

こちらのリンクの記事のほうが私より説得力があるかと思います(笑)

西尾泰和のはてなダイアリー
「プログラミング学習手段としての写経について」
http://d.hatena.ne.jp/nishiohirokazu/20130326/1364301488

WirelessWire News
「誰もが知ってるけど敢えて言わない確実に身につくプログラミング学習法」
https://wirelesswire.jp/2016/04/52633/

サイボウズ式
「プログラミング言語は「黙って写経」──カーネルハッカー・小崎資広(4)」
http://cybozushiki.cybozu.co.jp/articles/m000319.html

まとめ

プログラミングにもいろいろな学習法あり、写経も有力な選択肢かと思います。

ただ大切なのは

  • その学習法はどういったスキルを身につけるために行うべきか?
  • メリットとデメリットは何か?

などを考えることだと思います。

関連記事

お問い合わせフォームを作ろう! その3(PHP)

それでは前回のコードを例に少しずつ内容について説明をしていきます。 値を取得するには まず一番最

記事を読む

Java/PHP/Perl/Ruby/Python 主要Web系言語徹底比較

本日はWeb系で使われているプログラミング言語の比較をしてみようと思います。 Web系で使われ

記事を読む

ゼロからWEBプログラミング(PHP)をマスターするのに何時間かかる?

おはようございます。松本です。 さて、本日のテーマはタイトルのとおりです。以前受講生の方に「ゼ

記事を読む

CMSとは?

先週オフィスにきた新規の受講生の方に「CMSを使いたいので、使い方を教えていただきたいのですが・・・

記事を読む

エディタを使いこなそう

PHPでプログラミングを始めるためにはXAMPPのインストールともう一つエディタというソフトをそろえ

記事を読む

開発を便利にする道具たち

PHPだけではありませんが、プログラミングには開発スピードをアップさせるための便利な道具があります。

記事を読む

XAMPPインストール

さて、XAMPPの初歩的な説明とエディタについて説明をしたところで実際にXAMPPをインストールして

記事を読む

「初心者が勉強するのに良いプログラミング言語は何ですか?」を真面目に考えてみる

プログラミングをそもそもやったことがない方であれば、タイトルのように「どのプログラミング言語をやった

記事を読む

バグをゼロに近づけるテスト手法とは?

私は去年のはじめまではPHP、去年の春~年末はJavaScript、今年からはJavaを触っています

記事を読む

PHPで掲示板を作ろう!(データベース編) その4 SQL編

今回はMySQLで掲示板を作ろうの続きです。前回のMySQLの講義が11/18日ですね。 2か

記事を読む

Comment

  1. Googleのペナルティ2回食らった人 より:

    あ、写経学習法は実際に身につきますよ。
    実際僕コピペが不可能な状況で学習したので、どうしても写経になりましたが、実際に身につきます。もっともっと広めていただければもっと効率的な勉強法も発案できると思います。

    • matsumoto より:

      コメントありがとうございます。

      私も以前は懐疑的でしたが今は積極的に行なっておりますね。
      いい勉強法だと思います。

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

無料PHPスクール
自社開発>客先常駐である本当の理由

このブログでも何回か取り上げていますが、ITエンジニアの働き方としては

エンジニアにとって必要なコミュニケーション能力とは

気がついたらもう3月下旬になっていますね・・ 年末年始忙しかった

エンジニアを採用する上で大事なこと

本日はエンジニアの採用について書きたいと思います。最近少し採用に絡んだ

エンジニアが給料を上げる方法を真面目に考えて見ました。

本日はエンジニアと給料の話題について触れて行こうと思います。 エ

エンジニアの「スキル」とはなんぞや

給与が低いことに悩んでるエンジニアへのアドバイスをツイートで見たところ

→もっと見る

  • follow us in feedly
PAGE TOP ↑