未経験プログラマー物語【第二章 研修編⑧】何に使うかイメージがわかない
研修も1カ月半が過ぎいよいよ折り返し地点。javaの勉強も基礎的なものを学んだ。
そんな時、堂木さんと飲みに行くことになった。
堂木「最近研修はどうさ?」
半灰「うーん変数とか分岐(if)とかループ(繰り返し)を勉強して使えるようになってきたとは思うけど、じゃあ仕事でプログラミングをしてと言われた時にどうやって使うかイメージがよくできていなくて…。」
堂木「まぁ確かに。ループの処理を書いても1から10までコンソールに表示するだけで実際にどう使うのかいまいちよくわからないよね。自分も最初はそうだったなぁ…。」
解説
javaを学びましょうとなった時に最初の段階でif(分岐)、for(繰り返し)など基本的な文法が登場します。if文だと例えば入力値が1だったらこういう処理、2だったらこういう処理という判断をするものです。
私も初めてプログラミングを学んだ時にこれがどうやって実際のシステムに組み込まれて動くのかイメージができませんでした。自分で作ったプログラムをeclipseから実行し、コンソールに1と入力すると”1が入力されました”という文字がコンソールに表示される….。で?という感じでした。
ただ今はイメージできなくてもいずれできてくるはずなので今はあまり深く考え過ぎず、文法を学ぶことに集中してほしいと思います。実際に開発に関わってみるとわかるからです。
そんなこと言っても気になって勉強が進まない…という方のためにひとつ分岐の例を考えてみました。
例えばホームページを作るとして、googleのトップページのように日にちによってアイコンデザインを変えたいとします。例えば5/5になったらこどもの日のデザインにするような感じです。この時の日付の判定にif文が使われます。
この場合に判定される「日付」は当然入力値ではなく時間がたてば訪れます。日付は大抵システム内で現在日時を保持しているのでここは深く考えず今日が何年何月何日か把握しているとします。
そしたらその「現在日付」を変数に入れ、その日が5/5かどうかif文で判定するという感じです。
じゃあ5/5だったらどこからそのデザインを持ってくるの?という疑問もあると思いますが、例えばデータベースに保持しておくとか、画像としてどこかのフォルダに配置しておいて、そのパスを指定して持ってくるとか色々考えられます。
プログラムというものはかなり自由が利くため、実現方法がたくさんあるのが普通です。それが逆に具体例のイメージがわかない一因かもしれないですね。
半灰「わかりました。とりあえず今はイメージが付いていないですが、まずは目の前の課題をしっかり自分のものにすることに集中しますね。」
堂木「それがいいかもね。確かにどう使うかイメージをつけるのも大切だけど、そこでつまずいていて先に進めないくらいならとりあえず進んでみるのも手だと思うよ。プログラミングは難しいからこの先色々つまづくと思うけど、その都度止まっていては学習が進まなくなってしまう。それよりはとりあえず進むことで後になってわかることもあるからね。」
半灰「そうですね!じゃあガンガン進んで堂木さんを抜きますよ!」
堂木(もちろん全く理解しないでどんどん進むのも怖いけどね…)