日本の労働人口が少なくなっていく中で、これからますます人材不足の問題は深刻になっていきます。我々のIT業界でもエンジニア不足の声はいたるところから聞かれ、その深刻度は増していくばかりです。
そんな中でも、エンジニア(プログラマー)になりたいと思ってくれる他業界の方が結構たくさんいらっしゃることは、この業界の人間としては大変ありがたい限りです。私のところにも未経験からプログラマーになるためにはどうすれば良いかというご相談が頻繁に寄せられるようになりました。
しかしプログラミング未経験の方からすると、本当に自分がプログラマーになれるのか、どうやってプログラマーになれば良いのかといったことが、具体的にイメージすることが難しいことも多いようです。
そこで今回、これをやり抜けば必ずプログラマーになれる!と私が思うことをまとめてみました。もし今自分がプログラミング未経験だったとして、プログラマーになろうと思った場合に私なら何をやるかという観点でまとめました。
これからプログラマーを目指そうとしている方達の少しでも参考になれば幸いです。
1.とりあえずプログラミングしてみる
プログラミングに興味を持ったらとりあえずプログラミングしてみてください。この時点では書籍の購入も本格的な準備も不要です。ネットに転がっている情報を検索してそれを参考にしながら、とにかく動かしてみることが重要です。
とりあえずプログラミングをしてみることがなぜ大切かと言うと、それによってプログラミングが楽しいと思えるのか、またはプログラミングって辛い・・・と思ってしまうのかがわかるからです。
どんなことにも人には適正と言うものがあります。プログラマーにとってはプログラミングって楽しい!と思えるかどうかは一番重要だと言っても過言ではありません。
とりあえずプログラミングしてみて「おお、プログラミングって楽しいじゃん」と思えた人は先のステップに進んでください。ここでもし「うわ、プログラミングってつまんねえ」と思ってしまった場合は、無理してプログラマーになっても辛い思いをするだけですので、プログラマーになることは考え直した方が良いかもしれません。
上記のブログ記事に対する反応は真っ二つで、プログラミングは楽しいから別に勉強だとも思ってないという人達と、何でプライベートな時間使ってまでプログラミングしないといけないんだよという人達に大きく分かれました。
別に勉強したくなければしなくてもいいですが、プログラミングを好きになれない人が、プログラミングが好きでしょうがなくて時間があればプログラミングしているような人達と勝負し続けていくことは結構辛いことだと思いますよ。
では具体的にどんなプログラミング言語で試してみるのが良いかと言うと、これは何でも良いのですが、とりあえずプログラミングして動かしてみることがここでの目的ですので、あまり準備しなくてもすぐに動かせる言語が良いかと思います。
Javaとかは下手すると準備段階でつまづくこともあるので「とりあえずプログラミングしてみる」という目的の場合は別の言語の方が良いかもしれません。
Javascriptなんかは何の下準備もなくてもとりあえず動作させることができるので「とりあえずプログラミングしてみる」という目的であれば手っ取り早いと思います。少しソフトのインストールとかまで頑張れる人はPHPあたりでも良いかもしれません。
※私のTwitterのフォロワーさんが教えてくれたpaiza.ioというサービスは良いかもしれません。
とりあえず動かしみる時にhttps://t.co/ajqpqEbhJ6使うとよいと思う。
ある程度の言語網羅されてるし何より環境作る手間がないから。プログラマーになりたいと思った人がやるべき7つのこと – 株式会社アクシア https://t.co/HAXlTgUdS2
— Takafumi Iju (@ijufumi_0810) March 16, 2018
とりあえずプログラミングしてみるという目的を考えた時に、プログラムを実行する環境を作らないくて良いというのは便利そうです。
2.何をやりたいのかを明確にする
エンジニアになりたいとご相談いただく方に結構多いのが、なぜプログラマーになりたいのか、プログラマーになってどうしたいのかが全くイメージできていないというものです。
何をやりたいのか、どこを目指すのかによって、当然やるべきことも変わってきますし、何よりも目指すべき方向が全く決まっていない状態で「何となくエンジニアになりたい」と思ってもその先は辛い道のりが待っているだけですし、エンジニアになることなんてできないと思います。
こんなものを作れるエンジニアになりたいとか、プログラマーを職業にしてお金を稼げるようになりたいとか、こんなサービスを自分で作ってみたいとか、何でも良いと思います。
何となくエンジニアになりたいと思っているだけの人はここで一度立ち止まって、自分はどこを目指していきたいのか、何をやりたいのかを明確にしてからこの先のステップに進んでください。
3.自分が目指す業界のことを知る
プログラマーになって何をやりたいのか明確になったら次は自分が目指す業界のことをよく調べてみてください。なぜ業界事情を知っておく必要があるかと言うと、まずは下記のブログ記事もご覧ください。
これは非常に残念なことなのですが、今のIT業界って知らない人からすると多分イメージしてるのと全然違うんですよね。プログラマーになりたいと思ってこの業界に飛び込んだのに、全然プログラミングの仕事をさせてもらえなかったり、どこかよくわからない他社に派遣されてしまったりといったことが当たり前のように起きる業界です。
事前にそういった業界事情を把握していればある程度対策してちゃんとした会社に就職することも十分可能ですが、何も知らないでこの業界に飛び込もうとするとSESと呼ばれる事業を行っている会社の餌食になる可能性が非常に高いです。
エージェントと呼ばれる人達も信用できない人だらけで、この人達もSESは良くないと本当はわかっていながら金儲けのために平気で未経験者をSES企業に斡旋したりしてきます。
まともな会社に就職して、自分がやりたいと思っていた働き方をしたいと思うのであれば、自分が目指す業界のことは本当に良く調べてください。これを怠ると後で就職してから「こんなはずじゃなかった」と嘆くことになります。
4.本格的にスキルを習得する
自分が目指していく方向性も決まって、目指す業界のこともよく理解したら、いよいよ本格的にスキルを習得していきます。
ここまでのことをちゃんとやってくれば、自分が目指す業界ではどんなプログラミング言語やスキルが必要とされているかもある程度見えてくるでしょうから、習得すべきスキルを未経験の方でもある程度は自分で判断がつくようになっているのではないでしょうか。
ではどうやってスキルを習得するかですが、無料プログラミングスクールは私はお勧めできません。その辺の詳しい理由は下記のブログ記事に詳しく書いてあります。
無料でプログラミング教えてくれるなんて素晴らしい!と脳天気に喜ぶべきではありません。無料には無料の理由があるわけです。
無料でプログラミングを教えてもらおうなんてことがそもそも傲慢で都合の良い話ですので、その先の就職のことまでしっかり考えるのであれば私は有料のプログラミングスクールに通うべきだと思います。
プログラミングスクールにそんな大金払いたくねーよって言う人にはぜひ「投資」という考え方を身に付けていただきたいですね。100万投資してもしっかりとした技術を習得すれば後でしっかりリターンは返ってきます。
でも現実的にそんな貯金はない・・・という人もいますよね。借金してまでスクールに通うというのはそれはそれで大変ですので、そういう場合は独学で頑張りましょう。
誰かが教えてくれるのと比べると非効率で時間がかかってしまうのは仕方ないですが、今はネットや書籍の情報をフル活用することで独学でも十分にプログラマーとして必要なスキルを習得することは可能です。
独学だと何をやったら良いかわからないという人はたくさんいますが、それは何をやりたいのか明確になっていないからであって、上記のやるべきことの1~3のステップを踏んできた人であれば、自分がこれから習得していくべきスキルを調べるくらいのことはできるようになっているはずです。
5.何でも良いので何か一つ作ってみる
プログラミングスキルを習得していく中で、単に黙々とスキル習得していくよりも、何でも良いので何か実際に動くものを作ってみると、やりがいにもなりますしスキルの習得ペースも早くなります。自分で作ってみたいもの、使ってみたいもの、何でも良いので実際にプログラミングして作ってみてください。
何かを作ってみることは、スキル習得に有効であるだけでなく、これから先の就職活動でも必ず役に立ちます。業務未経験者が就職活動する際の大きなネックになることの一つに「実績がない」という問題があります。
業務経験がないことは仕方ありませんが、採用する側の企業としても何か実績を見せていただかないと採用という判断を下すための材料が何もありません。未経験で実績が何もない状態で採用してくれる企業はブラック企業である確率も高くなるということは認識しておきましょう。
というわけで就職活動の際に何か実績がほしいのですが、この時に趣味で作ったプログラムは実績として十分活用できます。業務で作ったものであろうと、趣味で作ったものであろうと、その人のスキルレベルを証明できる実績さえあれば、企業が採用のジャッジを下すための材料になります。
せっかくプログラミングを学んでいるのであれば、こんなものを作ってみたいというものが一つくらいあってほしいと個人的には思いますが、どうしても何を作れば良いのかわからないという人は、ログイン機能、画像投稿機能、データダウンロード機能が備わった掲示板を作ってみてください。
これらの機能を備えた掲示板を作ることができれば、そこには業務で使用するプログラミングに必要なエッセンスが豊富に盛り込まれていますので、企業側に実績として見てもらうための材料にすることができます。
またできればサーバーは自前で構築して、ドメインも取得してインターネットに作ったシステムを公開するところまでやると良いと思います。ここまでやるためにはインフラの知識もある程度必要になりますので、自分でサーバー構築してシステムを公開するということは、それをやるためにスキルアップにつながりますし、実績にもなります。
6.ソースコードはGitHubで公開する
自分で書いたソースコードはGitHubで公開しましょう。就職活動の時には履歴書にGitHubのURLを貼っておきましょう。
未経験の方でここまで実行してくる方はわずかです。現役のプログラマーでもここまでやらない人の方が圧倒的に多いです。ですので企業側からするとGitHubにソースコードを公開しているだけで「お?」となります。この時点で選考で一歩も二歩もリードできます。
ちゃんとした開発会社でスキルをきちんと見てくれる会社であれば、GitHubのURLを履歴書に書いておけば必ず見てくれます。逆にこれを華麗にスルーしてくるような会社は技術をそれほど重視していない会社である可能性が非常に高くなりますので、プログラマーとしてその会社に就職しても幸せになれない可能性が高いです。
7.取り組んだことはブログで公開する
エンジニアがスキルアップしていく上で私が強くお勧めしたい方法が「取り組んだことはブログで公開する」ということです。QiitaのようなサービスでもOKです。
経験というものは知識のインプットとアウトプットのバランスであり、このバランスが取れていると最も成長できます。インプットだけではスキルアップの速度は緩やかですし、インプットが不足していれば満足なアウトプットはできません。
やってみるとわかると思いますが、ブログで何かの情報をアウトプットしようとすると、アウトプットするために不足する知識や情報が明確に見えてきます。そしてその情報を調べようとしてさらにインプットが強化されます。
こうしてアウトプットの機会を適切に作ってあげることで、インプットがさらに進むようになって良いスパイラルができてきて、成長が促進されます。
自分が作ったシステムを一般公開することももちろん大きなアウトプットですが、意識していないと勉強する時にはどうしてもインプットに偏りがちになります。エンジニアがスキルアップする時にインプットとアウトプットのバランスを良くするために、取り組んだことをブログで公開することは非常に有効な手段といえます。
まとめ
プログラミング未経験の方からすると、本当に自分がプログラマーになれるのか不安でしょうがないと思います。ですがここで述べてきた7つのことをぜひ実践してみてほしいです。
- とりあえずプログラミングしてみる
- 何をやりたいのかを明確にする
- 自分が目指す業界のことを知る
- 本格的にスキルを習得する
- 何でも良いのでなにか一つ作ってみる
- ソースコードはGitHubで公開する
- 取り組んだことはブログで公開する
ここまでのことを全部実践することができれば、SESではないまともな自社開発の会社で、業務未経験でも採用してくれる開発会社は必ずあると思います。ここまでやられてきた方であれば私ならぜひ面接でお会いしてみたいです。
楽で手っ取り早い方法ではありませんが、未経験の方がプログラマーを目指す上で非常に有効だと思いますので、ぜひ参考にしてみてください。