プログラミングとデザイン、スタートアップの話

プログラミングやデザイン、スタートアップ関連についての雑記

未経験でもエンジニアに転職するために身に付けるべきスキル・準備とは

転職を考えている人の中でエンジニア(プログラマー)にジョブチェンジして新しい会社に移ることを考えている人の相談をちらほら聞きます。

他の職種の人からするとプログラマーは「手に職がある」職種だという見られ方をするようで、先のことを考えた結果プログラマーへの転職をひとつの候補として考えているそうです。

実際に私の周りでも元々は営業畑出身だった人がジョブチェンジをし、転職してきた方がいます。他にもデザイナーの方がプログラミングを独学し、プログラマーとして新しい会社にジョインしたケースもあります。

はてなブログのプログラミングカテゴリやテクノロジーカテゴリに参加しているブログの中でも、元々は全くプログラミングの経験がないけど今独学していてプログラマーとして働くことを目標としていたり、実際に働いている方もいるのが事実です。

つまり、プログラマーとしての就業経験がなかったとしても上手くやればプログラマーとしての再就職・転職は可能だということです。

この記事では、プログラマーとして転職するためにはどのようにしてプログラミングの勉強をすればいいかについて述べたいと思います。

まずはアプリケーションの作り方を学ぶ

プログラミング未経験者の方からすると、プログラミングというひとくくりで業務内容を考えがちですが、そうではありませんので注意して下さい。

プログラマーの仕事を分けると、 - ユーザーとインタラクティブにやり取りを行う部分を実装するフロントエンドエンジニア - サイトやアプリの実装を行うアプリケーションエンジニア - サーバーとのやり取りを主に実装するサーバーサイドエンジニア などが存在します。この分類が全てではなく、インフラエンジニアなどもいますが、未経験者の方にわかりやすいように割愛します。

このようにプログラマーの種類は何種類かに分けられるのですが、まず未経験者のあなたが学習するべき項目は、「アプリケーションエンジニア」の部分になります。

webサイトやネイティブアプリをどのように作るのかを学びましょう。

プラットフォームを選ぶ

次に、どのプラットフォームでのアプリを作りたいのかを検討しましょう。

iPhoneアプリを作りたいのか、Androidアプリを作りたいのか、webサイトを作りたいのか、デスクトップアプリを作りたいのか等です。

どのプラットフォームを選択するかによって、どの言語を習得すればよいかが変わってきます

そして、この言語選択は転職活動にダイレクトに影響してきます。なぜなら、企業はある程度使用する言語を絞って選択しており、転職したい企業と異なる言語を身に着けていてもその企業には採用される可能性はほぼゼロです。

したがって、プラットフォーム及びプログラミング言語を選択する時には、以下の2つの視点から考えるようにしましょう。

1. 自分の興味のある分野はどれか 2. 転職希望先の企業はどの言語を使っているのか

1についての説明は不要かと思います。2については、既に現段階で転職希望先の企業が決まっている場合は必ず事前に下調べするようにした方が良いです。

もしまだ転職希望先が決まっていない場合でも、転職サイトを眺めながら「こういう企業がいいな」と思った所の言語を全てリストアップし、メモしておきましょう。

間違っても自分の興味があるという理由だけで言語を選んだり、流行っているからという理由や友達に薦められたからという短絡的な考えで言語は選択しないでください

後悔しないような選択が必要です。以下のようなサイトに登録してエンジニア募集案件を調べてみましょう。

おすすめの転職サイト

自分でサンプルアプリを作る

プラットフォーム、言語が決まったらいよいよ勉強を開始していきましょう。

言語によって勉強方法は異なりますが、おおまかには本や動画学習サイト、チュートリアルサイト等を経て基礎を身に付けた後に自分でサンプルアプリを作ってみてください。

チュートリアルや動画を見ながら作ることとサンプルアプリを作ることと自分でゼロから作ることは大きく異なるため、必ずやっておいた方が良いです

また転職時にも、どんなプロダクトを開発したのかということがアピールポイントになります。あなたの書いたコードでレベルが判断されますし、面接官としてはスキルが明確にわかって助かります。

Ruby on Railsの場合の学習方法は以下の記事で紹介しています。

harv-tech.hatenablog.com

harv-tech.hatenablog.com

サーバーサイドの勉強をする

この章に関しては、あなたの方向性によってやるかやらないかは変わってきます。

サーバーサイドと言われても現段階でははっきりとは理解できないかもしれませんが、アプリケーションが稼働するサーバーの設定や運用、保守の事を指しています。

サーバー上でアプリケーションを動かしたり、デプロイしたり、負荷分散をしたり等など...

サーバーサイドエンジニアという人がいるくらい、これはこれで勉強することがたくさんあります。もしあなたがアプリケーションサイドエンジニアになりたいのであれば、本を読む程度で大丈夫です。

ヒットするアプリ製作をする

サンプルアプリも作ったので、今度は本気でヒットするようなアプリを狙ってみましょう。

もちろんヒットさせることはとても大変なわけですが、とりあえずそれくらいの意気込みでチャレンジしましょう。

きっとあなたが最初に作ったサンプルアプリというのはそれほどクオリティは高くないです。コードレベルも低く、コンセプトもあまり大したものじゃない可能性が高いです。

それだけを実績として持っていくことは非常にリスキーです。面接官からの印象も良いとはいえないでしょう。 したがって、ヒットしなくてもいいですがコンセプトをしっかりと固め、コードレベルも以前よりは上がってきていることを証明できるようなアプリを作ってみましょう。

おわりに

おそらく準備期間は半年〜1年くらいになることが多いです。仕事を完全に辞めて転職準備に100%集中するとなれば別ですが、だいたいは平日の夜と休日を使ってやることになります。

なかなか大変な準備にはなりますが、エンジニアの仕事は楽しいです。うまくモチベーションをコントロールしながら勉強をしてみてください。


あわせて読みたい

harv-tech.hatenablog.com

harv-tech.hatenablog.com

harv-tech.hatenablog.com