プログラマーがシステム開発を進める上で1番できなければならないこと。
逆にこの能力が高ければ、プログラマーとしてシステム開発を問題なく進めることができる力。
それは「問題解決能力」になります。
プログラミングやシステムの幅広い深い知識などについても、もちろん必要にはなってきますが、それよりもプログラマーには問題解決をする力の方が重要です。
プログラミングの知識だけでは、プログラマーとしては業務を遂行することができないのです。
今回はその問題解決能力についてお話をしていきます。
プログラマーの作業時間は問題解決が大半を占める
プログラマーの1日の業務を考えてみましょう。
プログラマーは、プログラミングをする時間(キーボードからコードを記載している時間)が長時間を占めているようなイメージがあります。
実際には、プログラミングを行っている時間よりも、プログラミングやシステム上の課題について解決を試みようと思考したり、調査している時間の方が圧倒的に多いのです。
- プログラムを作る前に、それを実現するためにはどのようなコードを記述しなければならないかを調査したり。
- プログラムにてエラーが発生した際には、何が原因なのか、またどのようにしたらエラーが修正できるのかを確認したり。
繰り返しですが、このようなシステム的な課題に対して、プログラマー自身の力で調査を行い、原因を突き止めて、解決方針をたてるということが、実際には作業の大部分になっています。
プログラミングというのは、ほぼ決まった内容をそのままコードとしてPCに対して記述するだけとなり、時間を多く要することはないのです。
修正や改修作業などであれば、実際のコードとしては1,2行書き換えて終わり。ということも良くあります。
ただ、どこの1,2行を、どのような内容に書き換えることで修正できるか。という前段の調査や検証作業の方に時間がかかるという具合です。
プログラマーの業務時間の大半は、プログラミングではなくて問題解決のための作業。
プログラミング学習において問題解決力を鍛える方法
プログラマーは問題解決に対して大きな作業量を費やすことがわかったかと思います。
そのため、この問題解決についての能力が、プログラマーにとってはとても重要になります。
では、この問題解決についての力をどのようにつけていけば良いのでしょうか。
プログラミング学習をしている際、プログラミングの知識をインターネットや書籍、またはプログラミングスクールなどから学んでいるかと思います。
そのため、プログラミングの知識に関しては問題はなく学習でき力もついてくるでしょう。
ここで1つ質問です。
プログラミング学習の際に、わからない事がでてきた場合、どのように解決しますか?
インターネットで調べる「ググる」という解決方法を使う。これがほぼ正解になります。
もしかしたら、プログラミングスクールに通っている方などは、スクールの先生に質問するかもしれません。
実はそれを多様することはあまり良くないです。
なぜならば、すぐに答えを得られてしまい、自分で解決する力を伸ばすことができないからです。
従って、自分で調べる(主には「ググる」)というかたちにて、答えを導く訓練をしましょう。
プログラミングスクールに限らず、プログラミング学習全般においても、常に答えがある学習をすることは、問題解決の意味合いでは良くありません。
(もちろんプログラミングの知識は深まるため、それは問題がないのですが。)
実際のプログラマーは、答えのないことを常に調べならがらそれをプログラミングとして実現する作業を行っている為です。
したがって、プログラミング学習の際においても、プログラミング学習の答えから少しアレンジしたり、ステップアップした内容にて、プログラミングを行い自分で調べて進めてみることが、問題解決力も同時に鍛えることができるでしょう。
上記の通り、問題解決する際にはググりながら答えを見つけていくこと、これは実際のプログラマーでも同じやり方です。
こちらの内容については、以下の記事にまとめてありますので参考までにご確認ください。
プログラミング学習の際は答えのある内容より、答えの無い内容にて学習を行うことが望ましい。
まとめ
今回はプログラマーにとって、とても大切な力である問題解決力についてお話をしてきました。
内容は以下でしたね。
プログラマーのお仕事は、かっこよくカタカタとキーボードでプログラミングをしているというわけではなく、本来はわからない問題に対して、悩みながら、ググりながら、毎日泥臭く作業を行っています。
こちらについては以下の記事にて詳しく記載していますので参考までに。
このことをプログラミング学習をする際にしっかりと理解して、その事を意識した学習に取り組むことがとても大切です。
この力をしっかりと身につけておくのと、身につけておかないのでは、プログラマーになった後に大きな差になるでしょう。
プログラミングやシステムの知識よりも重要な能力となりますので、プログラミング学習を行ってプログラマーを目指している方は意識しておいてください。
以上です。
コメント