クリップログ

ライフハック、インターネット、音楽、マネープランなど幅広く発信していきます。

プログラミング

インターネットサービス

書籍でプログラミングを学ぶのが超難しい理由

投稿日:2019年5月20日 更新日:


どうもこんにちは。たくです。


プログラミングを学習し始めてしばらく経ってきたので自分で大事だなと思うことを時々、まとめていきたいと思います。自分自身の備忘録も兼ねています。


プログラミングに慣れている人であれば本当に基本的なことばかりなのですが初めての方は意外な場所で躓いてしまう可能性があります。大事だなぁと感じだことを書きます。

プログラミングを理解するにはコンピュータの視点をもつこと

書籍でプログラミングを勉強し始める人が躓きやすそうだなと思う根源的なテーマです。僕はプログラミングの本を結構買って見てきましたが多少理解できるようになってきた今だからこそわかったことがあります。


それは・・・


プログラミングの本は、理解のしやすさよりも
”本としての体裁を第一として作成されている”
ということです。


プログラミングの本のページ構成は大体以下の通りです。

  1. 環境構築(使うソフトの紹介や、初期設定)
  2. 基本構文(変数や演算子の説明、条件文、繰り返し構文などの説明)
  3. 簡単なアプリケーション作成
  4. それなりに本格的なアプリケーション作成
  5. おまけのtipsと索引

こんな感じでしょうか・・・?(②と③が同時進行のものも多いです。)


では初心者の人が勉強で躓く可能性の高い箇所はどこかというと
圧倒的に④番だと思います。


なぜちょっと手の込んだアプリケーションに進むと挫折してしまうのか?


結論から言ってしまいますと複数のファイルにまたがる場合の読解の順序がわからなくなってくるからです。(というか書籍の表現上難しい)


ちょっとアプリケーションが大きくなってくるとオブジェクト指向の”クラス”という概念が出てきます。


このクラスは”部品”と考えてもらってよいのですがこの部品がプログラムコードの至る所に散りばめられています。クラスの中にはたくさんの”関数”が入っています。


複数に渡るファイルを理解する時はコンピューターが理解する通りに読んでいく必要があります。


つまりこの散りばめられた”クラス”や”関数”を探してファイル間を何度も何度も往復しているのです。


はっきりいって相当あっちこっちに飛びます。この読み込み方が書籍学習ではなかなか理解しにくいのです。


書籍学習をしていた人がプログラミング学校に行くと意外と簡単に理解することができる理由はこのプログラムの読み方を手取り足取り教えてもらえます。


書籍だと全部の”クラス”や”関数”にいちいち
”〇〇ページ○○行に戻って!”とは書けませんので・・・。(;^ω^)


コンピューターの読み方を理解できないと自分からプログラムコードを書くことは難しいと思います。


プログラミングを学習する大前提として書籍で勉強する場合は本当に何度も何度も何度も何度もページを前後するという事前意識をもっておくほうが良いです


少し具体的な例を出します。
言語pythonにDjangoというWEBフレームワークがあります。


フレームワークは必要な機能が予め用意されている効率化のツールですDjangoを使えばブログサービス程度のものであれば簡単に構築できます。


Djangoの中に

①データの形式を表すファイル 
②フォームの形式を表すファイル
③表示の際に実行されるファイル 
④URL遷移を表すファイル 
⑤HTMLなどの表示ファイル

などのWEBアプリケーションを構成する複数のファイルがあります。


これをコンピュータの視点で見るとまず利用者のブラウザにURLが入りますので④を読み込みます。そしてURLに紐づけされた③を読み込み、⑤を表示させます。


もしデータベースのアクセスやフォームの表示が必要なら①、②の読み込みが必要です。また利用者が違うページに行くとURLから再度④を読み込みます。この流れを何度も繰り返します。


このプログラミングの流れを書籍で表現するのは難しいのです。


書籍は巻初からの一方通行メディアという弱みだと思います。本によってはいきなり③の説明から入って一番最後に⑤の説明だったりします。


この流れを理解しないまま書籍のサンプルコードを最初から読んでいったら途中から分からなくなってしまいます。


また複数にまたがるファイルでなくとも数百行以上に亘るながーいコードもプログラムの始点は最後のほうにあるかもしれません。
(コンピュータが読解するのは上からですが)


ということで、常にコンピュータがどう読んでいくかを意識しながら勉強していくと一つ壁を乗り越えられるかもしれません!


あと当然ですが書籍学習の場合はほとんどが完成形のコードが表示されています。しかし実際にプログラムを作る場合はゼロから始めるのが基本です。


なので根本的に書籍学習と本来必要な理解はベクトルが正反対なのです。こんなところも書籍学習によるプログラミング習得が難しい理由の一つなんじゃないかなぁと思います。


記事が気に入ってくれたらポチっと応援してくれると有難いです(*´ω`)

-インターネットサービス
-

Copyright© クリップログ , 2019 All Rights Reserved Powered by AFFINGER5.