未経験プログラマー物語【第二章 研修編⑦】何に使うかイメージがわかない

研修も1カ月半が過ぎいよいよ折り返し地点。javaの勉強も基礎的なものを学んだ。

そんな時、堂木さんと飲みに行くことになった。

堂木「最近研修はどうさ?」

半灰「うーん変数とか分岐(if)とかループ(繰り返し)を勉強して使えるようになってきたとは思うけど、じゃあ仕事でプログラミングをしてと言われた時にどうやって使うかイメージがよくできていなくて…。」

堂木「まぁ確かに。ループの処理を書いても1から10までコンソールに表示するだけで実際にどう使うのかいまいちよくわからないよね。自分も最初はそうだったなぁ…。」

解説


javaを学びましょうとなった時に最初の段階でif(分岐)、for(繰り返し)など基本的な文法が登場します。if文だと例えば入力値が1だったらこういう処理、2だったらこういう処理という判断をするものです。

私も初めてプログラミングを学んだ時にこれがどうやって実際のシステムに組み込まれて動くのかイメージができませんでした。自分で作ったプログラムをeclipseから実行し、コンソールに1と入力すると”1が入力されました”という文字がコンソールに表示される….。で?という感じでした。

ただ今はイメージできなくてもいずれできてくるはずなので今はあまり深く考え過ぎず、文法を学ぶことに集中してほしいと思います。実際に開発に関わってみるとわかるからです。

そんなこと言っても気になって勉強が進まない…という方のためにひとつ分岐の例を考えてみました。

例えばホームページを作るとして、googleのトップページのように日にちによってアイコンデザインを変えたいとします。例えば5/5になったらこどもの日のデザインにするような感じです。この時の日付の判定にif文が使われます。

この場合に判定される「日付」は当然入力値ではなく時間がたてば訪れます。日付は大抵システム内で現在日時を保持しているのでここは深く考えず今日が何年何月何日か把握しているとします。

そしたらその「現在日付」を変数に入れ、その日が5/5かどうかif文で判定するという感じです。

じゃあ5/5だったらどこからそのデザインを持ってくるの?という疑問もあると思いますが、例えばデータベースに保持しておくとか、画像としてどこかのフォルダに配置しておいて、そのパスを指定して持ってくるとか色々考えられます。

プログラムというものはかなり自由が利くため、実現方法がたくさんあるのが普通です。それが逆に具体例のイメージがわかない一因かもしれないですね。


半灰「わかりました。とりあえず今はイメージが付いていないですが、まずは目の前の課題をしっかり自分のものにすることに集中しますね。」

堂木「それがいいかもね。確かにどう使うかイメージをつけるのも大切だけど、そこでつまずいていて先に進めないくらいならとりあえず進んでみるのも手だと思うよ。プログラミングは難しいからこの先色々つまづくと思うけど、その都度止まっていては学習が進まなくなってしまう。それよりはとりあえず進むことで後になってわかることもあるからね。」

半灰「そうですね!じゃあガンガン進んで堂木さんを抜きますよ!」

堂木(もちろん全く理解しないでどんどん進むのも怖いけどね…)

つづく

スポンサーリンク

未経験プログラマー物語【第二章 研修編⑥】javaを学ぶ

いよいよ本格的な研修が始まる。そう、javaを学ぶのだ。HTMLとかCSSでウェブページをいじり、簡単なjavascriptを使って動きをつけたりしていたけれどようやくといった感じだ。

まずはメモ帳に以下の文を書く。

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello,World!");
    }
}

この課題はコピペではなく自分で入力してファイルを作らなければいけないので一文字一文字しっかりと見て入力する。ただ入力したつもりでも;が抜けていたり、かっこが全角になっていたり、大文字でかかなければいけないところを小文字で書いたりして苦労する。

そしてそれを『HelloWorld.java』というファイル名で保存する。これは実行するとHelloWorldという文字が表示されるプログラムらしい。とりあえず動かしてみようということで言われるがまま作業をする。

ファイルができたら『コンパイル』というものをするらしい。コンパイルとはざっくり言うとパソコンが認識できる言葉に翻訳する作業のようだ。さっきのHelloWorld.javaというファイルをコンパイルするとHelloWorld.classというファイルに変換される。これを実行することでようやくHello,World!という文字が表示されるようだ。

「なんだかいきなり難しくなったなぁ…。」

解説


いきなりそれらしくなってきましたね。実はこの物語では内容を省略している部分もあるので、色々疑問があったと思います。

特にコンパイルをするところですが『どうやってコンパイルするの?』『実行ってどうやるの?』という疑問があるかと思います。また、javaのファイルを作りましたが書かれている意味は?なんでコンパイルするとclassファイルになったの?というところが説明不足です。

これらの話をすると物語が進まなくなってしまうので詳しくは解説しません。調べてみると詳しい解説がたくさん出てくるので確認してみてください。

ただそれだとちょっと優しくないので少し説明をします。

今回の研修でコンパイルをするには『コマンドプロンプト』を使っています。よくプログラマーが扱っているイメージのある黒い画面ですね。そこで


javac HelloWorld.java

とコマンドを打つとコンパイルされます。同じ場所にHelloWorld.classというファイルが作成されたはずです。そしたら次に


java HelloWorld

と打ちます。あれ?HelloWorld.classじゃないの?と思った方は鋭いです。実行するときはクラス名を指定する決まりです。クラス名とはHelloWorld.classの中に書かれていた

public class HelloWorld

のHelloWorldの部分のことです。とりあえずjava クラス名と打ち込むことでプログラムが実行され、コマンドプロンプト上にHello,World!と表示されます。

詳しくはこちらなどを見ると理解が深まるかと思います。


「おぉ!」

思わず声が出てしまった。コマンドプロンプトにHello,World!の文字が表示されたのだ。

「あぁこれは面白いな…。めっちゃうれしい…。」

未経験でこの業界に入ったハジメにとっては初めて実行したプログラムだった。

これでようやくプログラマーになった気がした。

 

つづく

スポンサーリンク

未経験プログラマー物語【第二章 研修編⑤】hogeって何?

研修中ということでわからないことがあったらその都度調べることになる。色々なサイトをみていくうちにある疑問がわいた。

「このよくみるhogeってなんだ?」

hoge.txt、String hoge = “ほげほげ”、hogeサービス…。やけにhogeってつくの多く感じる。このhogeって何か重要なものなのだろうか?

考えてもよくわからないので先輩に聞いてみることにした。

「先輩、調べものをしているときによく出てくるhogeってなんですか?」

「あぁそれは適当な名前をつけるときに慣習的につけるものだよ。〇〇サービスとかなになにメソッドとか、例題として上げるコードにも名前が必要だからね。」

「じゃあ特にhogeに意味はないんですか?」

「そうだね、特に意味はないよ。しいていえば意味がないという意味かな?」

「はぁそういうものなんですね。なんか考えて損しました。」

解説


IT業界には今回の『hoge』のように慣習として使われているものが多くあります。代表的なものとしては『Hello World』でしょうか。

新しく環境を作って動作確認する時に『Hello World』と表示することできちんと動いていることを確かめます。別にstartでもtestでもいいのですが慣習としてHello Worldと出すことが多いです。私も初めてHello Worldを知った時はずいぶん洒落ているなと感心したものです。Hello Worldするといえばイコール環境構築して動作確認出来たというニュアンスで使われることもあるので覚えておきましょう。


つづく

スポンサーリンク

未経験プログラマー物語【第二章 研修編④】IT用語がわからない

研修を進めていくうちにわからない用語がたくさんあることに気が付いた。例えば「eclipseをいれて開発する」と指示されたとする。eclipseってなんだろうと調べてみるとどうやら統合開発環境らしいというのがわかる。じゃあ統合開発環境ってなんだろうとまた調べてみると

従来、コンパイラ、テキストエディタ、デバッガなどがばらばらで利用していたものをひとつの対話型操作環境(多くはGUI)から利用できるようにしたもの。最近のIDEには、GUIアプリケーション開発のための迅速なプロトタイピング (RAD) が可能なものが多い。統合開発環境を使うことによって、巨大かつ複雑なソフトウェアでも、作成者に負担をかけることなく開発することが可能になる。

と書いてある(上記はwikipediaより引用)。コンパイラ?テキストエディタ?デバッガ?この一文の中だけでも知らない単語がいつくもある。これをいちいち調べていたら時間がいくらあっても足りない…。

とりあえずeclipseをパソコンにインストールしなければ始まらないので、じゃあインストールをしようとするとパソコンに合わせて64bit版と32bit版があることがわかる。となると今度は自分のパソコンがどっちなのか調べなければならずいっこうに進まない

「調べることばかりだ…。」

ハジメはこんなことでやっていけるのか不安でした。

解説


IT系の学校を卒業していない人が初めにぶつかる問題としてIT用語がわからないというのがあると思います。プログラマーは専門職なので普通の学校の授業ではやらないところまで深い知識が必要になります。

ハジメのようにわからない単語を調べたらその先にまた知らない単語があって結局よくわからないという経験は私にもよくありました。

ただ言えることは、いづれ全てが繋がる時がくるということです。私も2年くらい経過したあたりで知識が繋がったと思える時期がきました。そうなると何か調べても効率がよくなり、理解が深まります。

大切なのは諦めずにわからないことは極力調べて知識を蓄えていくことでしょう。


なんとかeclipseをインストールできたハジメ。気が付いたら1日経っていました。

「はぁ環境を作るだけで1日か…。でもなんとかできてよかった。気を取り直して進めていこう。」

つづく

 

スポンサーリンク

未経験プログラマー物語【第二章 研修編③】先輩に顔を売る

ハジメが入社した常駐システム(株)の社員は常駐先の現場を元に5つの部署に分かれている。社員同士が連携を高める目的で月に1度、各部署で懇親会が開かれる決まりになっていた。そして新入社員は各部署の懇親会へ参加しなければならない。現場に入ってからスムーズにコミュニケーションがとれるようにした配慮だ。ちなみに新入社員は会費無料だ。

また、サークルも盛んでサッカーやバスケなど月に1度市内の体育館で活動をしていた。

「実際にエンジニアとして働いている人と話すことができるチャンスだ。現場に入ったら迷惑かけるだろうからちょっとでも仲良くなっておかなくちゃ…。」

解説


パソコンばかりかたかたしているイメージのプログラマーですが、仕様の確認や不明点の質問など意外とコミニュケーションが大切です。ハジメは未経験のため、現場で先輩に質問をする回数が多いことは目に見えています。そこで苦労しないためになるべく会社のイベントに顔を出し、知り合いを増やしておく作戦のようですね。

自分の経験でも懇親会やサークル活動など、社員が互いにコミニュケーションをとれるような仕組みを作るこ会社は多いように感じます。もちろんこういうことが苦手な人もいると思いますが、迷惑がかかることがわかっている未経験入社の人は頑張って知り合いを増やすほうが後々自分の助けになると思います。

筆者も新人当時、先輩たちに『何を重点的に勉強したらいいか?』と聞きまわっていました。そうしたら『データベース』という答えが多かったことを覚えています。データベースはどんなシステムでもだいたい存在するのでまずはデータベースの勉強をするとずっと役立つというものでした。なるほどなと感心したものです。

こういった話を聞けるのもいい機会だと思います。


懇親会後…

「自分から積極的に話にいったおかげで色々な人と知り合いになれてよかったな。話をしてみるとみんないい人みたいでよかった。」

つづく

スポンサーリンク