見出し画像

未経験からプログラマーになるには

最近Twitterなどで「未経験からプログラマーに!」といった文言を見かけます。私はITエンジニア(SEとかプログラマーとか色々呼び方はあるけどIT技術系の職種ということでこう表現します)という仕事をしているので、どんな人だったら未経験からITエンジニアになりやすいのかを書いてみようと思います。

業務経験とはなにか

まずどんな人が未経験からITエンジニアになれるかの前に、未経験者と経験者の違いを考えてみたいと思います。私自身は自分の技術がそれほど高いと思っていませんが、それでも業界の中でなんとか生きてこられたのは、それなりに業務経験があるからだと思います。では業務経験を通して身につくスキルとは何でしょうか。とくにプログラミングが主な業務の場合は以下のようなものだと思います。

1. 息をするように使える技術

 この業界、特にサービスよりの仕事をしていると技術の変化は激しいです。オンプレでCentOSでApache入れて…というのがいつの間にかクラウドでクラスタリングされたコンテナでマイクロサービス化して…のようにスタンダードがどんどん変化します。それらをすぐにキャッチアップする必要がありますが、ベースとなる知識があればその習得も早いです。その知識は何度も何度もコマンドを入力したり、同僚のコードを読み解いて試行錯誤しながら改修したり…と言うことで実際に身についていきます。

2. 障害回避能力

実際の業務では想定外のことが起こります。並列処理の書き方が悪くて無限ループになっている、使っているミドルウェアのバグで挙動がおかしい、APIの仕様変更でデータが更新されない、ログ排出機構の前段でエラーになってエラーが追いにくい、想定以上のアクセス数でサーバーが落ちる…など。そういう想定外のエラーを経験することで徐々に障害の当たりが付くようになってくるし、それを設計段階で回避できるようになります。

3〜N. その他

その他にもコミュニケーションのとり方、チームでの仕事の仕方、ディレクション能力、サービスに関する知識…など色々あると思いますが、プログラミングが仕事という前提では未経験者と経験者の違いで大きいものは上にあげた2つだと思います。

年齢による役割の違い

一言で未経験と言ってもそのバックグラウンドは様々だと思います。よくプログラミングスクールなどでは未経験でもプログラマーになれるというような謳い文句で広告が打たれていますが、本当にそれは可能でしょうか。年齢のことを書きたくはないですが、残念ながら事実として日本では年齢は重要なファクターです。20代前半であれば未経験でもスキルアップできる環境に就職することは比較的簡単だと思います。20代後半以上だと普通は即戦力が求められるでしょう。30代以降だとマネジメント的な立場を求められることも多いです。ではそれを踏まえた上で次の項目からはどんな人が採用されやすいかを書いていきます。

キャリアの一貫性

20代後半だからといって未経験でいいところ就職できないかと言うとそうではないと感じます。しかしそれには条件があります。それはキャリアの一貫性です。営業なら営業、経理なら経理、あるいは製造業や金融業といった業務知識、マネジメント能力など、全くのゼロではなくこれまでの知識の積み上げの上に、自己実現の手段としてプログラミングがあるということです。それを退職理由と絡めてきれいなストーリーにできれば良いと思います。

例えば、「私が使っていたこの営業支援ツールはここが不便で、こうすればもっと便利なのにと考えてシステム開発に興味を持ちました。御社の○○というサービスは私が営業で培ってきた知見を生かして企画段階から提案できます。今はまだプログラミングの知識が足りないかもしれませんが、そのためにプログラミングスクールでこういう知識を学んできました。」など。志望している会社の技術職の役割を見極めて、企画なのかディレクションなのか、求められている人物像と自分のできることを照らし合わせて一致させることが重要です。

ポジティブな退職理由

退職理由と志望理由が一貫したストーリーになっていないと「今の仕事が嫌だからやめたのか」という判断になってしまい、「せっかく採用してもやめそうだ」と思ってしまいます。なんとなくネガティブな退職理由というのは言葉の端々から感じ取れてしまいます。年齢が高くなれば単純なポテンシャル採用ではなく会社としても新たな価値がほしいわけですから、プログラミングが初心者であることを補える業務知識があると、一緒に仕事してみたいと思えます。今までのキャリアを捨てるのは本当に勿体ない。

上流から入るのも一つの選択肢

SES業者なんかは「始めは無関係な仕事を受けて徐々に開発の仕事ができるようになっていく」なんていうことを言うらしいですが、たぶんそれは職務経歴書が汚れるだけなのでやめたほうが良いと思います。それならば全く別の業務知識を活かしてITコンサルティングなど、ビジネスよりな方から攻めたほうが良いと思います。待遇もいいでしょうし。

いろいろな意見を知る

技術系のことを扱っているインフルエンサーやプログラミングスクールは「未経験でもプログラマーになって稼げる!将来はフリーランスで自由に働ける!」なんて言いますが、プログラミングスクールを卒業した人のSNSやYouTubeのチャンネルを見ると就職が決まらずにSESで監視やテスト(テストコードの実装ではなくテスト項目をチェックしてひたすらエクセルに書き込んで行くようなテスト)ばかりやらされているという話も聞きます。

そういう現実は、夢見がちなITエンジニア志望の人は無視してしまいがちです。実際にはそういう情報はたくさん転がっているのですが、人は普通信じたい情報ばかりを見てしまうので同じようなことを言っているお気に入りのインフルエンサーばかり追ってしまいます。

得ることばかり考えない

フリーランスが良いというのはインフルエンサーやプログラミングスクールが広めているのですが、残念ながら経験の少ないフリーランスにはあまりいい仕事は回ってきません。良い仕事、成長につながる仕事は正社員に回ってしまいます。企業としてもそのほうが育てやすいのです。フリーランスに良い仕事も回って来ることはありますが、それはとても優秀な人の場合です。全くの未経験でプログラミングスクールを出たばかりの人には普通回ってきません。

そういうことで未経験の人も始めは正社員を目指すのでしょうが、夢見がちな人たちが自分のスキルアップのことばかりを求めているのを目にします。直接表現しなくても言葉の端々から感じ取れてしまいます。もちろんスキルアップを目指すことは良いことですが、自分が価値を提供して会社の売上を上げるということが完全に抜け落ちています。それでは会社にとってメリットがないので採用されません。与えることを考えましょう。

分をわきまえる

未経験で「ノマドワーク」「モダン技術」「自由な服装」「フルフレックス」「ホワイト」「スキルアップ」なんていうキラキラしたワードが使われがちです。言いたいことはわかるのですが、仕事できるようになってから言いましょう。開発をする能力がない人・自学自習できない人が開発の仕事に就くのは難しいです。

つまらないポートフォリオをやめる

今どきはプログラミングスクールを卒業した人はポートフォリオを作るようですね。某プログラミングスクールではメルカリクローンを作るようですが、私個人として、それはあまりポートフォリオとして意味を成さないと感じます。メルカリが技術的にすごいのは裏でマイクロサービスになっていたり大量のアクセスに対してスケーリングがされていたりという部分なので、表面的なクローンを作っても普通そんなところまで意識されているポートフォリオはありません。そこまで意識していたらアピールできますが、普通はフレームワークのMVCがわかるとかORMが使えるとかくらいのアピールにしかならないです。そういうのは入社してからでも学べます。

スマートフォンアプリをポートフォリオに加える

「業務経験とはなにか」で書いたように実際の業務では、想定外のことに悩まされながら試行錯誤して常に学ぶことが求められます。数ヶ月で学んだ言語の知識やフレームワークの知識ではアピールできません。結局未経験での入社はポテンシャル採用だと思いますので、自走できそうかどうかが1つの見極めポイントです。そこで私がおすすめするのはスマートフォンアプリ、とくにゲームをポートフォリオに加えることです。理由はいくつかあります。

1. 完成させるという経験ができる

 スマートフォンアプリは基本的にストアに上げることが前提なので、その段階で一旦完成品ができることになります。Webサイトだと「その部分は未完成です」とか「昨日まで動いていたんですが」という言い訳ができてしまいますが、ポートフォリオを見る方としては完成させられる力も見たいので、その言い訳ができない状態が好ましいです。

2. 他の候補者との差別化ができる

メルカリクローンはつまらないですし、某プログラミングスクールの課題になっているので作る人が多いです。スマートフォン用のアプリを作れば自分が楽しみながらアイディアを出して作ることができて差別化になります。

3. 試行錯誤しながら開発できる

何度も書きますが実際の業務では試行錯誤したり障害対応したりということで知識が身についていきます。プログラミングスクールの課題と違って答えのないものを作るので、そういった経験ができます。また、ストアにアップロードするのも自分で調べなければならないので経験になります。

4. フィードバックがもらえる

実際にストアに上げると、ユーザーからフィードバックがもらえます。ときにはひどいレビューをされることもありますが、第三者の意見をもとに改善するというのも重要です。

5. ディレクション能力がつく

とくにゲームを作ると、絵が必要になります。自分で描ける場合もあるでしょうが、できない場合は素材を探したり誰かに依頼するという事が必要になります。そこでディレクション能力が必要になります。これは年齢が上がってくると特に必要になってきます。

6. 学ぶ能力をアピールできる

プログラミングスクールで数ヶ月で得られる知識というのはそれほど多くなく、ポテンシャル採用になると思います。実際に仕事についてから学ぶことのほうが多いですから、学ぶ能力がアピールできると良いです。

7. プログラミング技術も向上する

スマートフォンアプリはサーバーサイド志望でもおすすめしています。サーバーサイドのフレームワークの実装の仕方というのは書き方の1つに過ぎませんから、クライアントサイドの実装方法を知ることでプログラミングに関する知見が広がり、それをサーバーサイドに活かすこともできます。

8. 作っていて楽しい

結局作っていて楽しいものが一番モチベーションが上がります。ですからゲームでなくてもこれまでの業務経験を生かしたアプリや、自分の趣味に関連するアプリでも良いと思います。

「基本情報技術者」を取得する

基本情報技術者の資格が就職に有利になるかどうかは微妙なところですが、広く浅くITについて学べるので勉強することは損ではないと思います。使うかどうかわからないベンダーの初級資格を取るよりは良いのではないかと。

さいごに

これは私が今まで何度か採用候補者の面接に出席したときに考えたことや、ITエンジニアとしてどういう人と働いてみたいかというのを考えたことを元にしています。実際の採用責任者とはまた考えが違うかもしれません。ですがそれほどずれてはいないと思うので、参考にしていただければと思います。

この記事が気に入ったらサポートをしてみませんか?