見出し画像

どうしてプログラムを書けないのか

こんにちは。私は初学者を対象に、Java や C# を教える仕事をしています。
この時期は新入社員研修を任されることが多いのですが、教えるのはなかなかしんどくて、精魂すべて使い果たします。
でも教わる方が、もっとしんどいと思います。
なにしろプログラミングをマスターすることが会社から期待されているし、研修期間は限られているし、できない理由がわからないと焦ると思います。
私は学校の課題が完成しなくて目の前が真っ暗の気持ち、まだ覚えてます。
だからそういう人の助けになるような、取り組み方のヒントようなものを、私なりにまとめてみたいと思います。

プログラミングができるって、何ができること?

長年プログラミングを教えていて思うのは、「プログラミングができる」は複数の要素の組み合わせだということ。
プログラミングの基礎をマスターするには才能とか理系/文系とかあんまり関係なくて、プログラミングに必要なことができていれば、順調に身につけることができます。
プログラムが書けないという方は、下記のうちどれかが不足してないか、考えてみてください。

プログラムを書くのに必要な3つの要素:

  1. ロジックを考えることができる

  2. プログラミング言語による命令文が書ける

  3. プログラミング環境(ソフト)を使うことができる


1.ロジックを考えることができる

ロジックというのは、処理の流れや手順のことです。
目的の結果を得るために必要な処理をすべて洗い出して、処理を適切な順に並べる力です。
プログラムを書けるかどうかは7~8割がた、ロジックを考える力がどれくらいあるかで決まると思います。
そして私の見るところ、「何をすればいいかわかっているけど、書き方がわからない」という人の多くは、本当はロジックがわかってないです。

実習問題を読んだときに、
「この実習問題はループを使います。カウンタ変数を0で初期化して10未満の間10回実行します。ループの中では、変数aの値が80以上か判断して、80以上なら変数bに数値を合計します」
これくらい詳細に処理の内容と順番がイメージできるのが、「何をすればいいかわかっている」状態で、つまりロジックを考える力がある状態。
「ループを使うと思う」くらいしか浮かばない人は、エディタを起動しても何を書いたらいいかわからず、手が止まってしまうのではないでしょうか。
そういう場合は、ロジックを考える練習をたくさんするといいです。

2.プログラミング言語による命令文が書ける

Java や C# でどう書くか、という文法の話です。
「この実習問題はループを使います。カウンタ変数を0で初期化して10未満の間10回実行します。ループの中では、変数aの値が80以上か判断して、80以上なら変数bに数値を合計します」
くらい詳細にロジックが浮かんでいれば、Java のループは for文だな、for文はどう書くんだったかな~と構文や書式を確認して、真似して書けます。

よくある勘違いで「文法を暗記していないから書けない」というのがあるのですが、プログラミングは暗記じゃないです。
むしろ期間が限られた研修なんかで、短期間に大量の情報を暗記しようとすると、間違って覚えたり、覚えたことを忘れたりします。
「テキストを見ないでコードを書けるようになる」なんて目標、立てない方がいいですよ。
プログラミングに必要なのは暗記じゃなくて、確認するのを面倒くさがらないこと。
まぁ内心「ちっ、面倒くさいな」と思うわけですが、そう思いながらもテキスト見たりネット検索して何度も文法を確認ながらコードを書いていると、そのうち自然に何も見ないでコードを書けるようになります。
そうなるまでは、何度も何度も構文や書式を調べましょう。

3.プログラミング環境(ソフト)を使うことができる

プログラムを書いて実行するには、大きく2つの方法があります。
・エディタとコンパイラを使ってプログラム作成~実行をする
・Eclipse や Visual Studio のような統合開発環境と呼ばれるソフトを使う
どちらにしても、プログラム作成~実行に必要なソフトの使い方や操作手順を知る必要があります。
操作に慣れるまでは、操作手順を紙に書いて、すぐに見られるところに貼っておくといいかもしれません。

また開発ソフトを使うなら、デバッガの使い方を早めにマスターするといいです。
デバッガというのは、プログラムの不具合を調べて修正箇所を特定するのを助けてくれるツールです。
使い方をマスターすれば修正作業が楽になって、ワケも分からずあちこちいじり倒すより、早くプログラムを完成させることができます。
「なんかデバッガって難しくて」と敬遠しないで、積極的に使うことをおすすめします。

まとめ

ここまで「プログラムを書ける」を、私なりに分解して説明してきました。
システム開発をするときは、システムを分解して作るという方法がとられます。
1つのシステムを機能ごとに分解して、分解した機能を更に細かい機能に分解していって、もう分解できないところまで分解しきってからプログラムコードを書き、書いたコードを組み合わせていくと、システムが完成するのです。
プログラミングもそれと同じで、プログラムが書けないことを1つの問題として考えず、プログラミングに必要な要素に分けて、それぞれができているかどうか確認すると、対処方法が見えてきます。

今回はプログラミングに必要なことを3つに分けてみました。

  1. ロジックを考えることができる

  2. プログラミング言語による命令文が書ける

  3. プログラミング環境(ソフト)を使うことができる

それぞれの項目は、もっと細かく分けることができます。
次回は「1.ロジックを考えることができる」を分解しようと思います。

ここまで読んでくださって、ありがとうございました。

いいなと思ったら応援しよう!