*

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

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

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

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

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

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

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

ところが最近、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

まとめ

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

ただ大切なのは

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

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

関連記事

「初級」〜「中級」のPHPエンジニアのスキルについてまとめてみる(DB編)

本日はデータベース系の必要な技術について。 ウェブエンジニアといっても技術領域が非常に広いので

記事を読む

データを扱ってみよう その2(配列)

こんばんは松本です。 少しずつ暖かくなってきましたね。暖かいのはいいんですが、オフィスでブログ

記事を読む

繰り返しを学ぼう (for,foreach)

こんばんわ。松本です。 ゴールデンウィークもそろそろおわりですね。といいつつ、私はどこにも言っ

記事を読む

未経験者がWEB系企業の就活で注意すべき5つのポイント

昨日、あまり寝てないせいか、今日も寝れない松本です(爆) 生活リズムはやはり大切ですね。睡眠時

記事を読む

CMSの大まかな構成

前回に引き続き、CMSの大まかな構成について話したいと思います。 HTMLサイトとの違い CMS

記事を読む

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

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

記事を読む

PHPで掲示板を作ろう! 掲示板の作成方法 まとめ

さて4回にわけて、掲示板のプログラムを学習してきました。 見た目は超シンプルで実際に動かしてみ

記事を読む

エディタを使いこなそう

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

記事を読む

作業が遅くてイライラしている方必見!作業スピードを改善するネタ・ツールなど

エンジニアとして仕事をしていますと、「ある機能を実装する最適な方法(設計やプログラムの組み方全般)を

記事を読む

PHPはなぜ簡単といわれるのか?

最近ではブラック企業と同じような意味合いでブラックバイトなんて言葉があるらしいですね。 ただ定

記事を読む

Comment

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

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

    • matsumoto より:

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

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

Message

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

転職エージェントについて

さて、エンジニアとして転職を考えている人であれば転職エージェントを使っ

エンジニアが転職して年収を上げる方法を考えてみました。

えー前回の記事でも書きましたが、2020年2月現在転職活動中です。

2020年のご挨拶

今更ですが、明けましておめでとうございます。 2019年も2本し

自社開発>客先常駐である本当の理由

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

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

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

→もっと見る

  • follow us in feedly
PAGE TOP ↑