私が教師を辞めるまで③
転職サイトに登録をし、未経験からでもITエンジニアの募集をしているところを探した。思った以上にたくさん出てくる。しかし、それを見ながら、ネットでこんな悪い噂も載っていた。
「IT企業は、終電帰り始発出勤という過酷な労働環境のところが多い。だから離職率も高く、常に人手不足。未経験でも人を大量に採用して、そこからふるいにかけていく」
「結局は人材を使い捨てる。『未経験でもしっかり教育します』みたいなことが書かれているけれど、現実は『仕事しながら覚えろ』のスタンスでまともに教えてくれない」
それだけは避けたいので、しっかりと会社の評判を調べ、ネットで検索して「株式会社〇〇 ブラック」みたいに出てこないところを選んだ。転職会議とかいう、実際に働いていた人の話や、企業を点数化したサイトも入念にチェックした。
そんな中で、気になる企業を1つ見つけた。
「実務経験や学歴は不問です。ITに関する何かしらの知識がある方は優遇します。エンジニア未経験でも短期間で一人前のエンジニアにします。社員同士、みんな仲が良く、常に会話が飛び交っています。社長との距離も近く、定期的に食事に行ったりして意見を聞いてもらったりしています」
会社のHPも社員のことが載っていたり、Facebookには社内のイベントや飲み会の様子などがアップされていたり、とても良さげな雰囲気。
「書類選考が通ったら、1次面談をします。1次面談といっても、会社の雰囲気を知ってもらう程度の、社員と座談会です。その後で役員面接をします。応募から採用まで最短で2週間程度です」
応募から採用の流れにはこんなことが書かれていた。結構、フレンドリーな感じの企業である。ガチガチの形式張った面接ではなく、ゆるい感じの面接というところから、本当に人柄を重視しての採用なのだろう。俺の人柄は分からないが、エンジニアになりたいという思いはある。スクールにも通っていたし、小さい頃からパソコンが好きだし、高校の頃からHTMLで自分のHPをつくったから全くの未経験者ではない。このやる気をしっかりとアピールすれば、採用の見込みはある。そして3月中に決まれば、ニートになる心配もない!
もう、迷っている時間はなかった。転職を支援してくれるスクールには申し訳ないが、俺の人生なので、そんなことも言っていられない。もう、ポートフォリオは、一生完成しない。完成を待っていたら、俺はニートになってしまう。
エントリーした翌日、早速企業からメッセージが届いた。書類選考をして1週間以内に結果をお知らせする、とのことだった。
それから1週間後…
「今回、書類選考の通過致しましたので、一次面談にお越し頂きたいと思います。つきましては、ご来社可能な日時を教えてください…」
やったぜ。通過したぜ。この1週間、首を長くしてずっと待っていたが、通過したとのことで胸をなで下ろした。
そして、3日後の夜が都合がつく旨を伝え、企業から承諾の連絡が届いた。
「では、面接でお会いできることを楽しみにしております。また、今回の選考につきまして、次のプログラミング課題の提出をお願いします」
え、、、課題?
未経験でもOKといったはずなのだが。
それなのに、プログラミングの課題を出してくるのか???
メッセージの後にPDFの添付ファイルがくっついている。
書類選考を通過して喜んでいたのもつかの間、その課題の内容を見て青ざめた。
「フィボナッチ数列を出力するプログラムをつくってください。プログラミング言語はJavaを、2つ以上の繰り返し構文をつかい、複数のクラスを定義するとともに、クラスは複数のファイルに定義してください」
はい???
言っていることがほとんど分からなかった。
繰り返し構文はPythonでもRubyでも勉強していたから何のことかはなんとなく分かるが、それ以外の言葉がサッパリ分からない。
フィボナッチ数列って何???
複数のクラスを定義って何???
クラスを複数のファイルに定義するって何???
そして、何よりも驚いたのは、使用するプログラミング言語にJavaを指定してきたということ。名前は知っていたけれど、今まで一切、勉強したことがない。というよりも、意図的に遠ざけていた。何故ならば、どのプログラミング言語を学ぼうか色々と調べていた時、色んなところで「初学者はJavaに手を出してはならない」と書いてあったからだ。
「Javaは最も汎用性の高い言語で、システム開発やアプリ開発など、ほとんどの現場ではJavaが使われています。Javaを身につけておけば、エンジニアとして食いっぱぐれることはまずありません。
しかし、だからといってプログラミング初心者がうかつにJavaに手を出すと挫折します。
周りに詳しい人がおらず、独学でJavaを学ぼうとしたら絶望的です。
これからプログラミングを学ぼうとしている人、Javaは止めておきましょう。
仕事で扱わざるを得ない時とか、周りに教えてくれる人がいるとか以外では安易にJavaに手を出すべきではないです。
初めてプログラミングを触る人は、PythonかRubyにしましょう。
絶対に、Javaはダメです。
Javaはプログラミングの楽しさを知る前に確実に挫折します!!」
だから、Javaには触れないでおこうと思っていた。そもそも、初学者に最適なPythonやRubyでも分からないところが出てきて苦しんでいたくらいだ。それなのに、Javaでプログラムを勉強し、しかも3日後にはJavaでプログラムを組み立てなければならない。課題の意味もほとんど理解できていない状態から、3日間で…
どう考えても無理だ。もう、この応募を辞退しようと思った。辞退して、そんな無茶なことをしてこない優しいところを探そうと。
しかし、しかしである。
俺がこの求人に惹かれた理由の1つが
「エンジニア未経験の人でも、短期間で一人前のエンジニアにします!!」
というものだった。
そして、その後に書かれていた言葉が今回の応募の大きな要因だった。
「弊社は、その人の実力よりも少し高いレベルの仕事を任せます。できることだけをやっているだけでは、いつまでも成長はしないからです」
ここは、社員を本気で成長させようとする会社なのだと。これが「短期間で一人前のエンジニア」にするための近道なのだと。敢えて難しめのことに挑戦するからこそ、成長できる。未知なるものへ挑戦することこそがエンジニアにとっての必須スキル。
つまり、俺は試されているのだ。未知なるものへ挑戦する向上心や探究心をもっているか、と。未経験OKなのにプログラミング課題を出してくる、というのはそういうことだ。
最初から「できない」と諦めるのではなく、できるところまでやってみることにした。
これまでプログラミングをしてきて「難しい」と思ったことはあっても「止めたい」と思ったことはなかった。プログラミングの概念を理解したときの感動、バグを潰せたときの達成感は、初めてプログラミングに触れたときから変わっていない。そもそも、教職を捨てて、エンジニアという自分にとって全くの未開拓の地へ踏み込もうとしているのだから、今さら何を躊躇うことがあるだろうか。
俺は、課題を受け取った翌日、本屋でJavaの入門書を購入して、3日間でプログラムを組めるように勉強をした。
ゼロからのスタート、全く分からない状態からのスタート、やっぱりプログラミング初心者がJavaを勉強するのは…
…と思ったのだけれど、実際はそこまでではなかった。
思っていた程、壁にぶち当たって苦しむようなことはなかった。
全く違う言語を勉強していたから、ゼロから勉強し直すのかと思っていたが、そうではなかった。プログラミング言語は、コードの書き方の違いこそあれ、根本的な部分は同じだったのだ。
これは人が話す言語も同じだ。例えば、朝、誰かと出会ったら、まずは挨拶をする。それは日本人だって、アメリカ人だって、スペイン人だって、インドネシア人だって、同じであるはずだ。その言葉が日本語では「おはようございます」だし、英語なら「グッドモーニング」だし、スペイン語なら「ブエノスディアス」だし、インドネシア語なら「スラマッパギー」だし。言葉が違うだけで、全ての言語に朝の挨拶は存在する。挨拶以外にも、現在のことを話すとき、未来のことを話すとき、過去のことを話すとき…などはどの言語にも存在する。言語はコミュニケーションなのだから。多少の文化の違いはあるけれど、コミュニケーションの方法の根本は人間である限り一緒なはずだ。
プログラミング言語もコンピュータへの命令であるから、どの言語も根本は一緒。変数の宣言があって、条件分岐があって、繰り返しがあって、入出力があって…はどの言語にも共通して存在する。例えば、「ハロー、世界」という文字を表示させるプログラミングはどのプログラミング言語にもあって、それがPythonなら「print(“ハロー、世界”)」で、Rubyなら「puts ”ハロー、世界”」で、Javaなら「System.out.println(“ハロー、世界”)」という違いだ。書き方は違えども、目的は同じ。だから、1つの言語を扱えるようになれば、他の言語は容易に習得することが出来る。「Javaでは『ハロー、世界』って文字を出力するのはどうやってやるのかしらん?」みたいな感じで。
そもそも、プログラミング言語は人間がつくったものなのだから、今までと全く違う記述や考え方を生み出す訳がないではないか、と思う。違うのかな?
まだプログラミングを始めて半年ちょっとの俺だけれど、難しくてつまずきそうになったら
「プログラミング言語は人間が楽をするためにつくったもの。そんな人間がつくったものを、人間である自分が理解できないはずはない」
と言い聞かせることにしている。
そんなこんなで、Javaは思っていた程は難しくはなかったが、それでも3日間で課題のプログラムをつくるのは厳しかった。
結局、面談の当日に面談までに提出ができない旨を伝え、期日を延ばしてもらうことにした。
しかし、この3日間で敬遠していたJavaをだいぶ理解することができた。そして、応募した企業の理念が頭をぐるぐると回っていた。
「弊社は、その人の実力よりも少し高いレベルの仕事を任せます。できることだけをやっているだけでは、いつまでも成長はしないからです」
絶対に、ここに就職を決めてやりたいと思った。