Raspberry Pi & Python 開発ブログ ☆彡

Raspberry PiとPythonの基本的な使い方をわかりやすく解説。初心者、入門者必見!!

初心者から脱出するための道しるべ

beginner

ブログ管理者のP. Hです!

このシリーズではプログラミング初心者の方に向けて記事を書いていこうと思います。

タイトルに道しるべと書きましたが、まず私が初心者の時に感じていたのは、 以下のふたつでした。

  • 何をどのような順番で勉強すれば最短でプログラミングが身につくのか
  • 今勉強している内容はどのくらい重要な内容で、どのくらい理解を深めなければならないか

プログラミングは勉強しようと思えば、際限がなく時間がいくらあっても足りません。 その中で何を選択して勉強すればよいのか、これは初心者にはわかりません。 また、このことを教えてくれる良書も今までに出会ったことがありません。

まず、このふたつについて本記事で概要を説明し、さらに別の記事で細かく具体的な内容を説明して行こうと思います。

初心者から中級者になるまでの流れ

本を読む、基本構文を覚える

ほとんどの人はまず初めに本やWebを見て、プログラミングの基本構文を覚えると思います。 If文やprint文等です。そして、自分で環境を用意し、プログラムを実行します。"Hello World"等ですね。

少し難しい構文が出てきて本やWebを読むのが嫌になったりしますが、 構文を丸暗記することはそれほど重要ではありません。こういうことができる構文があるんだ、 ということを知っている程度で十分です。実際に使うときに構文をネット調べればいいだけです。

本やWebだけでは、プログラミングはできるようにならない

本の内容だけでプログラミングをマスターことは難しいでしょう。 料理に例えるなら、それぞれの具材を切ったりすることはできるが(構文は覚えたが)、 それら使って煮たり焼いたりすることはできず、料理は作れない状態(プログラミングは作成できない)です。

ここからが中級者になれるか、脱落してしまうかの分かれ道です。

  • 煮たり焼いたりするために、オブジェクト指向(=クラスを使えるようになる)を理解する。
  • 自分でプログラミングの動作を確認できるように、デバック環境を整える。

オブジェクト指向を理解できるか。

実際、プログラミングで難しいのは煮たり焼いたりする部分です。 この煮たり焼いたりする部分はプログラミングで言うとオブジェクト指向になり、 どのくらいオブジェクト指向を根本的に理解しているかということが大切になります。 (この部分は別記事で詳しく解説しています)

このオブジェクト指向を理解できず、多くの人が脱落してしまうのもまた事実です。 ではなぜ、オブジェクト指向を理解できないのでしょうか。原因は主に以下のふたつだと思います。

  • なぜこの技術が必要なのか、記載されていない。
  • 本の例題等では規模が小さくオブジェクト指向の必要性を感じられない

オブジェクト指向の機能は、継承やカプセル化等が本には書かれていますが、 なぜこの機能が必要か書かれている本はほとんどありません。なぜ必要なのかと言えば、

最重要

  • 煩雑になってしまうコードをきれいに整理し、管理するために必要な技術だからです。

プログラミングでは規模が大きくなると、コードが煩雑になり、整理や管理が難しくなります。 この問題を解消する技術がオブジェクト指向なのです。

本に書ける小規模な例題では、そもそもコードが煩雑にならないので、 オブジェクト指向を使ってコードがきれいに書けるようになった、という実感がわかず必要性を感じられないのです。 オブジェクト指向はある程度規模が大きいプログラムの時に役に立つということを頭の片隅において、 本を読み進めていくと良いでしょう。

デバック環境を整える

プログラミングは本やWebだけで勉強していても、習得はできません。勉強⇒実践⇒勉強⇒実践の繰り返しです。 実践する時に、とても重要になるのがデバック環境です。デバック時に大切なことは以下のふたつです。

  • 変数の値が自分が考えているものと一致しているか。
  • プログラミングの流れ(実行される順番)が正しいかどうか。

自分の考えている動きと、実際の動きが同じなのか確認しながらひとつずつ進めることで 理解が深まります。また、プログラミングの流れと実行結果を確認しながら、 コーディングを進めて行くことが、正しいコードを作成することの近道になります。

プログラミングが出来る人の説明はとてもわかりにくい

これは完全に個人的な意見ですが、プログラミングの習得を難しくしている要因のひとつを ここで言いたいと思います。

プログラミングを勉強中、疑問に思ったことを誰かに質問したくなります。 ただ、電気やソフトウェアのエンジニアは私の感覚ではかなりクセの強い人が多いです。 何かを質問すると、専門用語ばかりで理解できなかったり、わざとわかりにくく 説明しているのではないかと思うくらい説明がわかりにくことが多いです(特に初心者の時は)。

エンジニアはそもそもコミュニケーション能力が低い人達が多いので、質問するのであれば、 どの人に聞くか、ということを良く考えた方がいいでしょう。私は、こういう人たちを見返してやる、 という気持ちがモチベーションとなり、猛勉強しました。 実際にプログラミングが自分できるようになると、自然とそういう気持ちも消えていきました。。

非常に多くの知識が必要と感じるが、実際は...

プログラミングができるようになるまで、膨大な時間が必要だと感じるかもしれませんが、 実際はそうでもありません。まとめると、

  • どういう構文があるかを把握しておく、使う時にネットで構文を調べる
  • オブジェクト指向を理解する
  • コーディング規約を知る

構文を把握し、オブジェクト指向が理解できれば、あとはコーディング規約に従ってコードを書くだけです。 コーディング規約はコードを見やすくするためのルールなので覚えるしかありません(プログラムで一発変換してくれるものもあります)。
やはり、もっとも重要なのは、オブジェクト指向の基本を根本的に理解しているかどうかです。 これができるようになると、自分で自在にプログラミングができるようになります。

これから初心者の方に理解を深めて欲しい内容を記載していますので、ご期待ください。 本等に記載されている内容ではなく、実際現場でプログラミングしている人の使える技術を 記事にしていきたいと思います。その時に、専門用語でわかりにくく説明するのではなく、 誰にでもわかるように解説したいと思っています。