ユーニックス総合研究所

  • home
  • archives
  • programming-nouryoku-kitaeru

プログラミングの能力を鍛えるには?問題解決能力、設計力、美意識を鍛える方法

プログラミングの能力を鍛える方法

プログラミングの能力を鍛えるには

  • 問題解決能力はエラーやバグで鍛えよう
  • 設計力は既存のパターンを勉強しよう
  • 美意識は変数名などを意識しよう

の3つが大事です。
エラーやバグは課題だと思って取り組み、設計は既存のパターンを勉強します。
そして美意識は変数名などを意識して磨きましょう。

この記事では具体的にプログラミングの能力を磨く方法を解説していきます。

関連記事

魔法の壺、プログラミングのライブラリ(Library)とは
頭悪い人にプログラミングは可能か?可能です
開発を3倍速にするプログラミングの考え方4つ
英語できないけどプログラミングはしたい。そんな人はこの方法がおすすめです
意味のないプログラミングの特徴3つ

プログラミングの能力は鍛えた方が良い?

その前にプログラミングの能力は鍛えたほうがいいのでしょうか?
プログラミングのメディア「PS-One」が小学生の保護者を対象に355名からアンケートを取っています。

それによると「ITスキル・プログラミング能力の高さが進学や就職に有利だと思う?」という問いには以下の回答が得られました。

  • とても思う 40.0%
  • まあ思う 49.6%

つまり子供を持っている保護者のほとんどはプログラミングの能力があった方が良いと思っているわけですね。
その割合は全体の90%におよびます。

つまり今の時代の流れから言ってプログラミングの能力を鍛えることは自然な流れであると言えます。
時代が求めているわけなので鍛えたほうがお得かもしれません。

プログラミングの能力とは何か?

それでプログラミングの能力とは何なのでしょうか?
これは諸説ありますがここでは↓の3つに絞りたいと思います。

  • 問題解決能力
  • 設計力
  • 美意識

問題解決能力、設計力、そして美意識がプログラミングの能力です。
これら3つの能力を鍛えればプログラミングのスキルを伸ばすことができる、と思われます。
じっさいこの3つはプログラミングをやっていると頻繁に必要になるものです。

問題解決能力

問題解決能力とは課題などの問題を解決する能力です。
プログラミングでは多くの問題を扱います。

問題を解決するためにコードを書き、そしてまた新たな問題を生み出すわけです。
問題解決能力はプログラミングの本質的なものです。

大阪電気通信大学の渡辺 寛二氏などは「問題解決能力の育成をめざした授業における学生の能力育成に関する自己評価」という論文で問題解決能力を↓のように定義しています。

問題解決能力は、高等教育機関を卒業した者が実社会に出て、仕事をする際に必要とされる基盤能力のひとつである
... 仕事上起こる問題や問題事態を想定し、問題を発見し、問題が起こった背景を明確にし、問題を定式化し、その解決案を複数個考え出す

これをプログラミングに当てはめるとつまりプログラミングで起こる問題を想定し、それを発見して、その背景を分析し定式化、そして解決案を複数個考える、ということになります。

設計力

設計力はつまりソフトウェアの設計力です。
プログラミングでコードを書きソフトウェアを作る。
その背景にはソフトウェアの設計が必要不可欠です。

株式会社ソニックガーデンの創業者である倉貫 義人氏は設計について↓のように述べています。

知識だけを詰め込んだだけでは、できるようになるものではありません。実践を繰り返していく中で、少しずつ上達していきます。良いコードを書くという意識をもって、コードを書き続けることは欠かせません。

つまり知識だけではなく実践を通して設計力を身に付けていく。
これが大事と言うことです。
知識だけでなく実践を通し設計を実際に行って力を付ける。これです。

美意識

プログラミングには美意識が必要です。
美意識があるかないかでその人が生成するコードの質も違ってきます。

美意識がない人は汚くて醜いコードを書き、美意識がある人は美しいコードを書きます。
保守性や品質という点において有利なのは美しいコードです。

プログラミングの能力を磨くということは美意識を磨くということです。
常に美しくあれ、ということです。

美の巨人であるココ・シャネルは次のように言っています。

失敗しなくちゃ、成功はしないわよ

これはプログラミングでも同じです。
失敗を恐れていては成功や成長はありません。

プログラミングの能力の鍛え方

プログラミングの能力を鍛えるにはどうしたらいいでしょうか?
これは先ほど定義した3つ、つまり「問題解決能力」「設計力」「美意識」を鍛えることに他なりません。

具体的にこれら3つの鍛え方を紹介します。

問題解決能力はエラーやバグで鍛えよう

問題解決能力を鍛える方法とても身近にあります。
それはプログラミングで発生したエラーやバグを解決するということです。

プログラミングではエラーやバグが頻発します。
そしてそれらは自分で解決しなければいけません。

エラーやバグの解決は辛く苦しいものです。
しかしそれらに費やした時間は経験となりあなたの血と肉になるでしょう。

設計力は既存のパターンを勉強しよう

設計力を磨くには既存のパターンを勉強するのが一番です。
そしてそれを実際に使って実践します。

たとえばGUIアプリケーションの設計では「MVT」というパターンが有名です。
これはアーキテクチャーやデザインパターンと呼ばれています。

またCUIアプリケーションの場合はコマンドの設計も必要です。

美意識は変数名などを意識しよう

美意識を鍛えるにはまず変数名から意識するようにしましょう。
変数名はわかりやすく簡潔で、慣例のある名前を使います。

たとえば「ファイル名」を表す変数なら

  • fname
  • filename

などが一般的です。
「fname」は「file name」の略で、慣例としてよく使われます。
こういった命名の慣例を学び、美意識を鍛えましょう。

問題解決能力をエラー、バグで鍛える

問題解決能力をエラー、バグで鍛えるという方法をもう少し詳しく見ていきます。
一般的な初心者はエラーやバグが出たらげんなりするのが普通です。

またか……」とか「もういやだ……」などとつぶやく。
あなたも経験ありませんか? 私はあります。

株式会社SAMURAIのプログラミング学習者へのアンケートによると、挫折の原因に「エラーが解決できなかった」が多数を占めています。

挫折や行き詰まりを感じた理由は何ですか?(複数回答可)

  • 不明点を聞ける環境になかった
  • エラーが解決できなかった 36.3%
  • モチベーションが続かなかった 33.3%
  • 学習のゴールがわからなかった 31.7%
  • 環境構築でつまづいてしまった 28.7%
  • 教材がわかりづらかった 24.2%
  • 学習時間が思うように取れなかった 19.6%
  • その他 8.8%

↑のようにエラーが解決できなかったことで挫折したという人が36.3%もいます。
つまりエラーと言うのは挫折しやすいということです。

エラーやバグが出たら課題だと思おう

エラーやバグが出たら課題だと思うようにしてください。
そのエラーは神様があなたに与えた課題です。

なぜ神様は課題をあなたに与えたのか?
それはあなたを成長させるためです。

その課題に取り組めばたとえ解決できなかったとしてもあなたは成長することができます。
それは経験になり血となり肉となってあなたの身体と精神を形作るのです。

仏教の開祖、ブッダは次のような名言を残しています。

健康であるかどうかは、自分の「心」が決めている

つまりそのエラーについてあなたの心が苦しくなるのは、あなたがエラーを「」だと決めているからです。
エラーを「成長するための課題」と捉えて心身の健康を取り戻してください。

エラーの解決の方法

エラー解決の方法はシンプルです。
それはエラーメッセージの分析し、調査し、そして質問サイトで質問することです。

  • エラーメッセージの分析
  • エラーメッセージを調査
  • 質問サイトで聞く

エラーメッセージの分析

ソースコードを実行してエラーになった場合、画面にエラーメッセージが出力されます。
これは英語で書かれていることが多いです。

たとえば

  • 'a' is not defined

というエラーメッセージは次のような意味になります。

  • 'a' は定義されていません

つまりaという変数か関数が作られていない、見つからない、ということになります。

エラーメッセージにはなぜエラーが起こったのかが書かれています。
↑のケースでは名前にまつわるエラーになるということですね。

エラーメッセージを調査

エラーメッセージの分析が終わったら次にそのエラーメッセージを調査します。
調査は検索エンジンやSNSを利用します。
私のおすすめはGoogleで検索することです。

Googleの検索フォームにエラーメッセージをコピー&ペーストして検索ボタンを押してみてください。
するとそのエラーメッセージに関するページが一覧で表示されます。

あとはそれらのページを1つずつ見ていって、エラーメッセージについて調査していきます。
ページに答えそのものが書いてあるときもありますし、見当はずれの時もあります。

複数のページを参照して多角的に調査してください。

質問サイトで聞く

調査してもわからない! となったら質問サイトの出番です。
私のおすすめの質問サイトはStackOverflowです。

エラーメッセージとエラーが発生した状況、そして再現性のあるコードを書いて質問してください。
初心者か方の質問は解決できる人がたくさんいるので、少し待てば回答を貰える場合もあります。

おわりに

今回はプログラミングの能力を鍛える方法を解説しました。
プログラミングの能力を鍛えて人生を豊かにしましょう。
あなたのプログラミングが上手くいくことを願っています。

🦝 < 能力向上!

🐭 < プログラミング・マッチョ!