どうも、フリーランスのITエンジニア兼ブロガー兼投資家のKerubitoです。
私はフリーランスでITエンジニアをやっているのですが、最近はiOS関連の仕事がメインとなっています。
このブログでもエンジニア向けの情報を発信しているため、たまに「エンジニアになるためにはどうしたらいいのか」というような質問をいただくことがあります。
中にはiOSエンジニアになりたいといった明確な目標を持っている人も。
自分の目標や夢を具体的に持つことは非常に良いことだと思いますし、この業界に10年いる私からしたら、大いに刺激を受けます。
ただ、IT業界は未経験歓迎と言いながら、未経験者には厳しい目を向けるのも事実です。
もしかしたら、そういう現実に直面した人もいるかもしれません。
「iOSエンジニア 未経験者」などでググると、”数ヶ月でiOSエンジニアになる”といった宣伝文句が飛び込んでくるのではないでしょうか。
嘘はついていないかもしれませんが、少し楽観的過ぎるかと。
未経験という壁を飛び越えてiOSエンジニアになるのはそこまで簡単にできるわけではありませんし、もしそうだったらエンジニア不足になんてならないはずです。
本記事では、未経験者がiOSエンジニアになる現実的な方法について語りたいと思います。
対象は転職者ですが、新卒、第二新卒の人でも参考になるところもあるかと。
iOSエンジニアとは?
iOSエンジニアとはどんな人たちなのか。
ここに訪れている方のイメージとしては「iPhoneやiPad向けのアプリを作る人」といった感じでしょうか。
大まかには当たっていますが、参画するプロジェクトによって役割は変わってきます。
経験年数が少なかったりスキルが高くない場合は、他のエンジニアの指示に従ってプログラムの作成、テストが主な作業になるでしょう。
中堅以上になると仕様書を作成したり、スケジュール調整やクライアントとの折衝も必要になってきます。
また、iPhoneアプリはサーバーと連携するものも少なくありません。
大きなプロジェクトになると、iPhoneアプリとサーバーの開発担当は分かれますが、規模が小さいとサーバーの開発もやることがあります。
チームの規模としては小さいものだと1人で作れますし、中規模は数人、大規模だと数十人にもなります。
大規模なプロジェクトはiOSエンジニアが数十人というよりも、サーバーサイドのエンジニア、インフラ技術者など様々な分野の技術者が一つのチームを形成することになります。
iOS開発のプログラミング言語
iso開発で使用できるプログラミング言語は2種類あります。
objective-cとSwiftです。
クロスプラットフォームといって、一つのプログラムでiPhoneとAndroid両方のアプリを作成する手法もありますが、主流としてはまだ上記の二つの言語が使われています。
objective-c
c言語というメジャーなプログラミング言語をベースに「オブジェクト指向」を取り入れたプログラミング言語です。
といきなり言われても困るかと思いますが、iOSエンジニアを目指すのであれば知っておく必要があります。
iPhoneが発売された当初はobjective-cしかなく、アプリを開発するにはこの言語一択でした。
しかし、swiftが登場してからは新規開発でobjective-cが採用されることは少なくなりましたね。
Swift
2014年に発表されたSwiftは、プログラミング言語としては新しい部類に入ります。
objective-cを改良し、よりわかりやすく実装しやすい言語となっています。
現在のiOS開発のスタンダートとなっている言語ですので、初心者が勉強するのであれば、こちらでしょう。
未経験者歓迎の事情
iOSエンジニア関連の求人などを見ると、「未経験者歓迎」となっているものもちらほら見かけます。
理由は単純で、エンジニアが足りていないからです。
IT業界は元来、経験者ばかりを求める傾向がありました。
しかし、ここ数年のITへの需要の増大に対して供給が完全に追いついていません。
もう経験者という条件では人は集まらないんです。
それに経験者である程度のスキルを持った人間となると、給与もそれなりに高くなります。
例えば、経験5年のエンジニアを年収500万で雇うよりも、未経験のエンジニアを年収300万で雇い、うまく育てれば企業としては旨味があるのです。
もちろん、未経験者の場合はやめてしまう確率や、うまく育たないリスクが高いためトレードオフの関係ですが。
求職者と企業の考える未経験は違う
「未経験者」という言葉の捉え方が、求職者と企業では違います。
求職者としては
「業界未経験。プログラミング言語も触ったことなし。入社してから教えてもらえる」
という認識ではないでしょうか。
ですが、企業側は
「何かプログラミング言語を触ったことがある。ITに関して自分たちと会話ができるぐらいの知識を有している」
といった期待を持っていることがほとんどです。
世間一般的な解釈としては、求職者寄りでしょう。
未経験といえば、何も知らなくて当然。
そう考えるのが正論ですが、現実は違います。
ですが、ここが他者と差をつけられるポイントでもあります。
興味があるだけでは企業は採用しない
もしIT企業の面接まで進んだとして、その中で一つのキーワードが出てくる可能性が高いです。
それは「興味」です。
と面接官から話を振られたり
などと自らアピールする人もいるんじゃないでしょうか。
当然といえば当然ですが、興味がないとわざわざこんな面倒な仕事選びませんよね(笑
飛び抜けて収入が高いわけでもないですし、世間ではブラックだと揶揄されることもありますし。
この興味という言葉、面接のときには非常に便利なのですが、興味があるだけでは採用は難しいかもしれません。
なぜなら、興味のあることや好きなことなら何らかの行動に移しているはずと、採用担当者は考えるからです。
いくら興味があると口では言っても実際に行動に移していなかったら、「口先だけの興味」と取られてしまいます。
行動に移すことが困難であれば仕方ないですが、エンジニア志望であればできることはいくらでもありますので。
採用を勝ち取るための行動
自分はコミュ力抜群だから心配ないという人は例外として、未経験者は全員横一線に近いです。
なので、差をつけたもん勝ちです。
差をつける方法としては、二つあります。
・独学でiPhoneアプリを作る。
・スクールでiPhoneアプリ開発を学ぶ。
独学でiPhoneアプリを作る
10万円あれば、そこそこのmacが買えます。
どうしてもお金に余裕がないのであれば、5万円でもなんとかなります。
以下の記事を参考にしてください。
どれぐらいの難易度のものを作るかは、それぞれの状況に合わせればいいと思います。
大事なのは具体的に何かアプリを作ってみたという事実です。
できれば作ったアプリを実際に面接時に見せるのがいいです。
独学といっても、何もなしでは難しいですので本やネットで調べながらになるかと思います。
スクールでiPhoneアプリ開発を学ぶ
上では独学でアプリを作ることを勧めましたが、正直これは未経験者にとって低くないハードルです。
何も知らない状態から一つのアプリを完成させるまでにはいくつも関門をくぐり抜ける必要がありますので。
よほどのセンスか根気が必要になってくるでしょう。
本気でITエンジニアを目指したいけど、独学でやる自信がないという人にはスクールという手もあります。
ただ、スクールは時間とお金を投資することになりますので、慎重に行動することをおすすめします。
スクールに関してはこちら。
行動して見えてくるもの
いずれの行動も他者と差をつけるほかに、もう一つメリットがあります。
それは自分がエンジニアに向いていそうか、確認ができるところです。
上でも書きましたが、iSOエンジニアの主な仕事はiPhoneやiPad向けのアプリを作ることです。
規模や難易度は変わってもプログラムを書き、テストをしたりといった作業に大きな違いはありません。
もしこういった作業を苦痛に感じたり、興味が継続できないようであれば、仕事として向いてないかもしれません。
それを見極めるためにも、実際にアプリを作ってみたりスクールに通うことは決して無駄にはならないかと。
まとめ
アプリを作るというのは「モノづくり」です。
そのモノづくりをしてお金を稼ぐITエンジニアはなかなか面白い仕事ですよ。
そして、その仕事を志望するのであれば、実際にアプリを作ってみることをおすすめします。
もちろん、はじめはまともなモノはなかなか作れないと思いますが、重要なのはアウトプットではなくインプットです。
仕事になったらアウトプットを重要視されますが、それまではインプットだけを考えても誰からも文句を言われません。
行動し、インプットした結果、エンジニアという仕事により興味を持てるようになったか、それともやはり違うと思ったか。
答えは意外と簡単に出てくるはずです。
また、そこまで行動して得たインプットをアウトプットに変えれば、採用にもぐっと近づくと思います。