どーも普通科高校からIT系専門学校へ進学し、その後10年ほどプログラマを経験したりぷれさんです。今回は私がIT系専門学校に進学したときのことをお話してみます。
また、私が経験してきた「プログラマ社会の現実」についても少し触れてみます。
IT系の進学を考えている学生さん、プログラマ転職を考えている社会人の方々の参考になればと思います。
専門学校でパソコンのことは浅く広く分かった
実はわたし普通科高校出身です。パソコンのことなんて一ミリも知らない田舎者でした。
高校二年のときにプログラマになることを考えてIT系専門学校へ進学しました。大学とも迷ったんですが、進路担当の先生といくつかの大学や専門学校を調べてみて、取れる資格や勉強する内容がほとんど同じだったことから専門学校に決めました。お金の問題で早く働きたかったからということもあります。
結果、2年でハード的にもソフト的にもパソコンの基礎はだいたい分かったつもりになれました(笑)まぁ実際会社で働き始めてからは全然だったなと痛感したわけですが。
ブラインドタッチは3ヶ月位で出来るようになりましたね(笑)
その他、技術的な話は後述します。
専門学校ではオタク仲間が死ぬほど増えた
高校までは共学の普通科高校だったんでオタク趣味は隠してました。まぁ話しても普通に空気壊すだけなので話す機会がなかっただけかもしれません。
IT系専門学校に進学した後も最初は隠してましたが、まわりにアニメやゲームの話ができる人が多すぎたこともあっていつの間にかオタク趣味開放してました。
ほんとに9割以上がアニメやゲームの話できる人だったから衝撃。陽キャ属性のイケメン達ですらそうでした。
バイクや車、旅行、ボーリングやダーツなどスポーツ系、異性関連、その他諸々、普通の趣味の人もたくさんいたけど、そういった人達ですらみんなゲームやアニメ趣味を持ってた。持ってなくても批判するような人はいませんでした。
だいたいのIT系専門学校では全員にノートPCが配布されます。それ使って休憩中に普通にアニメ見てる人もたくさんいました。良アニメがあったら皆で共有してたし、私も教室でアニメ見たりラノベ読んだりしてました。
PSPとか持ち寄ってモンハンしてるグループもいたし、オンラインゲーム仲間とかも出来てました。家に10人とか集まってゲーム大会したりってのもありました。
オタク趣味に関して馬鹿にする・されるとかの関係が一切なく、めっちゃ和気あいあいとした2年間でした。中学高校時代も普通に友人関係はあったけど、その頃と比べてもずっと良い2年間だったな…。
もしかしたら私の言ったIT系専門学校がたまたまそうだったのかもしれないけど、オタク趣味持っててIT系の仕事に興味のある人や学生さんは進学先の一つとして考慮しても全然いいと思います。空気感は最高でした。
専門学校でも資格は取れる
どんな資格や技術習得を目指しているのかはさすがに学校ごとに異なりますが、だいたいの専門学校は「就職時に役立つ」基礎的な資格習得を目指していると思います。「就職した後」ではなく「就職するとき」なので注意。
だいたいは基礎系の国家資格(基本情報技術者とかITパスポート)がメインなんじゃないかな。とりあえずこれがあれば新卒からのIT系企業就職は出来ます。
特に基本情報技術者はIT系資格の登竜門というか、新卒が最低限持っているべきボーダーラインとして扱ってる企業も多いです。この資格があるから仕事ができるというわけじゃなく、「これを取るくらいにはちゃんと勉強してきた」という意味で評価されます。実際私も専門学生時代にこれ取りました。
プログラミング系の学習・資格習得となるとほとんどの大学・専門学校がJava、C/C++、Web系(Html/css/Javascript等)を勉強すると思います。Web系ならPHPとかC#/VB.netとかもあるのかな。Pythonあたりも最近はあるかも?まぁでも大体の学校は前者でしょう。
プログラミング系の資格習得の大体は基礎レベルで程度の低い資格ばっかなのであんまり実践的ではなく意味はありません。が、就活には役立つと思うので取っておいて損はありませんね。ちゃんと努力できる・勉強できることの証明が学生時代の資格習得にはあります。
ちなみにデータベース系やネットワーク系などの専門高度資格を取っているとほぼ就職で困ることはないと思います。
大学だろうが専門だろうが業務能力はほぼ身につかない
私はプログラマ時代、運よく大手から零細中小までたくさんの企業で働く機会に恵まれました。その際、案件の打ち上げや飲み会の席、仕事の休憩中などに各社の仕事や新入社員の話などを聞く機会にも恵まれました。
実際に見聞きしてきた現実、私自身の経験から言えること。日本のとあるプログラマの見た現実。
IT系において、大学・専門学校の新卒で最初から仕事ができるレベルの人間なんて9割9分いません。当然私も含めて。
もちろん例外はいて、稀に入社直後から案件にぶち込まれても普通にこなしちゃうような凄い人もいます。でも本当に9割9分は仕事にならない。実際、入社直後から仕事ができる新人なんてどの会社でも私は見たことがなかったです。大手だろうが中小だろうが新人さんは何も分からない人ばかりでした。
学生時代にどれだけ資格を取っていようと、どれだけパソコンについて詳しかろうと、どれだけプログラムの勉強をしていようと普通はついていけません。※これは学生さんへの批判ではないです
すごく簡単な例を上げると、学校でWeb系の勉強をしてきたというと、Html/cssを触れる等になりますね。でも仕事では基礎的なコーディングよりもライブラリやスクリプトだらけです。動作確認のためにビルドしてサーバにデプロイして~などコーディングの外のところも含まれてきます。Web系のインフラやサイドの違いまで学んできてる学生さんってほぼいないのが現実でしょう。
gitやsvnなんかのバージョン管理を触ってない人も多いでしょうし、プロジェクト管理ツールやチケット管理ツール等の業務ノウハウ系は会社で始めて触るのが普通だと思います。cui/gui問わずlinuxツール系なんてそうそう学校では触らないのでは。そもそも環境を作るための各種インストールから困る人も多いはず。
学生さんや独学の方が勉強してきたことと、仕事で必要になる技術やノウハウには少なくないギャップがあって、そこを埋める勉強や経験詰めに最初の数ヶ月や数年を費やすのがほとんどなんですね。
就職先では研修内容を気にしてみて
上記の理由から、IT系の新卒は研修がかなり重要だったりします。
学校で勉強した基礎部分から、実際にその会社やプロジェクトチームが業務で使う業務ノウハウの部分まで研修でカバーする。私の会社でも前年度の反省や最近の案件内容を考慮して毎年研修内容はアップデートしてました。大手とかもそうらしいです。
だからなるべく就職先を決める際には研修の有無とその期間や内容を確認しておいた方がいいと思います。採用事項などに研修内容まで書いていることは少ないと思うので、面接の際に研修内容を確認しておくと良いでしょう。研修を基礎のコーディングだけで済ませるところはだいたい実際の業務に入ってから苦労します。
ちなみにIT系新卒さんに関する実際の話ですが、社員数の少ない中小企業だろうと、社員数も多く上場している大企業さんであろうと、入社後2年以内に半数以上の新人さんが退職してました。年度によっては数十名の新人さんが半年で半分以上辞めるなんて年もありました。仕事についていけない、IT系が向いてなかった、残業がキツイなど理由は様々。意外と人間関係で辞めたっていうのをあまり聞かないのでやっぱりIT系の仕事は最初が苦しいのです。
また、「どれだけモノを作れるか」という結果につながる能力よりも「私達の環境で、私達の要求するコーディング規約に則ってプログラムを書けるか」という結果より内容重視、協調性重視の会社もあります。こういったことからデキるプログラマはフリーになった方がストレスフリーに働けるとも思います。
そもそもプログラミングの勉強って。
そもそも「プログラミング」ってめちゃくちゃに幅が広いもの。
プログラミング言語の種類は多いし、言語ごとにフレームワークも多々あるし、ライブラリやスクリプトは信じられないほど増えてくるし、データベースやSQLもたくさん勉強しなくちゃだし、動けばいいじゃなくて品質向上を目指さなくちゃだし、開発環境も案件ごとにごっそり変わったりします。Web系か組み込み系かでも当然変わります。
言語や開発環境が変われば前の案件で使った知識が全く活きないことも多いし、ITの成長速度は早いので言語やフレームワーク、ミドルウェアなどのバージョンアップが毎月のようにあって新しい作法がどんどん増えていきます。
頑張って実装したロジックが「このライブラリ使ったら一発なのに」みたいなケースも多々あって、かと思えばこのライブラリはライセンスやバージョンが合わないから今回は使えないよってこともあります。Web系となればサーバ周りの知識も当然必要になるし最近はAWSなどクラウドを扱う知識も望まれるようになってきました。
常に勉強し続けられる人じゃないと続かない世界ってのはどんな職種でもそうかもしれないけど、ITの世界は特別そのレベルが高いです。
なので。
IT系で「事前に勉強しまくってすべてをモノにしよう、何でもできるようになろう」なんてのはまず無理なんです。絶対に無理。どんな天才でもこれだけは無理。IT系の勉強では暗記や記憶じゃなく検索したり調査して答えにたどり着く力の方が重要です。そしてなるべくチームで作業量を分担して任せていくって形になるんですね。
そういうわけで自分のやりたいこと、勉強する分野というのはなるべく絞った方がいいです。できるだけサービスでもソフトでも何かモノを作る事を考えて、一つ一つ調べながら作っていくと身になると思います。
プログラミング言語はJava、フレームワークはSpring、データベースはMySQLなど特定の開発環境に絞って勉強していく、それを活かせる会社や案件を選んで仕事を探していく、っていう方向に進むのが長くプログラマとしてやっていく秘訣だと思います(Javaは最近もう落ち目かも?Web系ならサーバサイドかフロントサイドかにもよりますが、スクリプト系を勉強したほうが仕事や就職先は多いと思います)。
私は中小企業づとめで色んな企業に出向して働いていたこともあって、案件ごとにすべての開発環境が変わるタイプのプログラマでした。言語はたぶん10年間で5種類以上はやったはず。案件の度に一から勉強し直すことばかりでした。だから出来上がった成果物は微妙なものもたくさんありましたがそれが普通だということも後になって分かりました。
最初にJavaを勉強して業務でもある程度経験がついたあと、他の言語の案件にも入れられるようになってなんとかやってこれた。一つの言語ができるようになると他の言語もできるようになるっていうのは間違いじゃない。言語よりフレームワークの勉強のほうがキツイ。Web系から組み込み系とかはさすがに違いが有りすぎて苦しかったので仕事振られても断った方がいい。楽しかったけど。
最後に。IT業界は人が足りない?の真実
最後に。
「IT業界は人が足りない」というのは本当で、でもちょっとだけ認識齟齬があります。
プログラマの世界では、30〜50代の経験豊富なおじさん達がろくにプログラム書けなかったりします。派遣で雇われたプログラマさんの多くはだいたい仕事ができません。フリーのプログラマは単価だけ高くて全然仕事出来ないってことも当たり前にあります。新人さんは上記の通り様々な理由ですぐ辞める人も多いです。
環境が案件ごとに変わる、そのせいで良いプログラマだけど今回は全然ダメだった、という人もめちゃくちゃいます。
そういうわけで「IT業界は人が足りてないわけじゃなく、足りてはいるけど仕事ができる人・案件にマッチする人は少ない」っていうのが現実だったりするんですね。大企業のプロジェクトでも、人が足りなくて下請け、下請けでも人が足りないから派遣やフリー雇う、って形で以外に正社員プログラマなんてそうそういません。
企業としては、出来るプログラマがいればスカウトして正社員として雇いたいと考えているところも多くあります。※実際私も3社くらい誘っていただいたことがあります
という感じで今回は以上です。。
最近のベンチャー企業勤めの方や、西村博之さんとかホリエモンさんとかイーロン・マスクさん達のような一部の天才達に言わせれば無能なのかもしれませんが(笑)、これが私が見てきた日本の一般IT社会の現実の一つかなと思ってます。
以上、専門学校の話とその後のプログラマのお話でした。