FarmについてHOMEDevelopment数学赤点系IT未経験Apple信者が独学でiOSエンジニアになるまでの全記録!勉強法を教えます!企業探しのコツも紹介!数学赤点系IT未経験Apple信者が独学でiOSエンジニアになるまでの全記録!勉強法を教えます!企業探しのコツも紹介!2022年1月12日2022年2月6日Developmentこんにちは!Apple信者のiOSエンジニアです。この記事は、現在現役のiOSエンジニアとして働く僕が、iOSエンジニアになるまでの戦いを振り返るものです。iOSエンジニアはプログラミングや最新技術が好きなギークの方はもちろん、目に入れても痛くないほどAppleが大好きな人にとっても、この上なく魅力的な職業だと思っています。そこで、一人でも多くのiOSエンジニアのお仕事に興味のある方に役立つように、独学でiOSエンジニアとして企業に就職するまでのことを、僕の体験談や経験談を交えながらお話ししていきます!もともとエンジニア適正があると思えない勉強嫌いの僕ですが、Appleは大好き。そんな僕だからこそ、これからiOSエンジニアを目指そうと思っている方にお伝えできることがあると思い、記事にしてみました。やってiOSエンジニアとして仕事ができるようになったのか、どんな勉強が効果的だったのか。iOSエンジニアとして活躍するためには、どういった企業に就職するのがおすすめなのかも書いていますので、ぜひお読みいただけたら幸いです。さいごにスポンサーリンク僕のスペックまずは大前提として、iOSエンジニアになった僕の基本情報についてお話していきます。タイトルにもある通り僕は数学赤点系男子。プログラミングどころか、エクセルさえまともに触ったことはありません。高校を卒業後に上京して、音楽系の専門学校に通い、10代の頃は楽器屋さんやレコード会社で働いていました。このような下手な記事でお恥ずかしいのですが、直近の前職はWebライター。ディスプレイに向かってあることないこと書いてました。転職グセのせいで良くも悪くも、若くして接客やオフィスワーク、デスクワークなど多くのジャンルの仕事を経験させてもらえたと思います。前職でやっていたWebライターの仕事では仲間にも恵まれて、文字を書くというのは今でも大好きなことの一つです。お気づきのように、ここまでのキャリアにエンジニア要素は一切ありません。言えば、Webライターの仕事のおかげでタッチタイピングができるようになったくらい。何度も仕事を変えているにも関わらず、プログラミングやエンジニアリングに対してずぶの素人だったということですね。!とあることをきっかけに、14歳の頃から変わらず抱いてきたAppleへの愛が、僕の人生に思いもよらぬ転機を運んでくれました。iOSエンジニアになるきっかけ僕がiOSエンジニアになるきっかけになった出来事は、意外にもブログ運営でした。当時僕はWebライターとして、メディアに寄稿したりメディアの立ち上げに携わったりと、貴重な経験をいくつかさせていただきました。そんな中で、自分でもメディアを持ってみたいという気持ちから、ブログを立ち上げることにしたわけです。Farmを立ち上げるよりも昔の出来事。閉じてしまいましたが、以前にもブログをやっていたことがあります。皆様の中にも経験ある方がいるかもしれませんが、ブログを立ち上げるにはサーバーを契約して、WordPressをいじって、レイアウトのためにCSSを書いて...など、多少ではありますがIT関連の素養が必要とされる場面がありますよね。面倒くさいなぁと思いながら、CSSについて調べていたとき。「ブログもやることだし、どうせなら一つくらいプログラミング言語をまともに勉強してみようか」などと思いながら、世界のプログラミング言語なるものの一覧ページを例によってMacで見ていた。すると、そこで衝撃の事実を知りました。Swiftは、Apple社が2014年に発表したプログラミング言語であり、iPhoneやMacなどのアプリ開発に用いられている言語だということ。え!?Appleってプログラミング言語も作ってんの!?それでiPhoneのアプリが作れるの?!Macのディスプレイを2度見...いえ、7度見くらいしました。いやもしかすると「えっ?」「いやいや」などと声が出たかも知れません。人がたくさんいる、昼さがりのド○ールでのお話です。お恥ずかしいのですが、知らなかったわけです。iOSエンジニアという職業はおろか、Swiftさえも知らなかった。iPhoneアプリは、一部の天才エンジニアの方が作るもので、専用の言語があるなんて思いもしませんでした。4が出る直前には、熱狂しながらWWDCも見ていました。結局iPhoneの紹介シーンしか見ていなかったので、肝心のWWDCの正体については気にもかけませんでした。Eventで発表されるようになっていき、近年ではWWDCすらも忘れかけていた。Swiftの存在を知ってしまった今、これは是が非でもiOSエンジニアになるしかない。詳しいことも調べぬうちから、これがまさに自分の天職なのだとさえ思ったほど。この喜びをとにかく聞いてほしくて、その日のうちに彼女(今の奥さん)に興奮気味にことの顛末を話しました。彼女の最初の反応は「ふーん」「へぇ〜そうなのね」「ところで晩ごはん何食べる?」という感じでしたが、大丈夫。心が折れることはありません。前置きが長くなりすみません。ここからは、iOSエンジニアになることを決めた僕が実際にやった勉強などをご紹介していきます。勉強法は人によって向き不向きがあるもの。是が非でもこの勉強法でなければいけないということはありませんよ。い、ミーハーの僕が独学でiOSエンジニアとして働けるようになった方法を知っていただくことによって、きっと読者の皆様ならもっとスムーズにiOSエンジニアを目指せると思います。書籍学習まず僕が取り組んだのは、書籍による学習です。最近ではオンラインで完結する学習教材もありますし、僕も普段は紙の本はほとんど読みません。コンテンツはサブスク派ですし、MacFanでさえU-N○XTで読んでます。プログラミングの学習となれば、一言一句の説明文やコードの読み違いがとんでもない誤理解に繋がってしまう場合があります。僕のようにコーディングの未経験者ならばなおのこと。そこで機械的に流れていく情報よりも、自分のペースで読み進めていくほうが、僕には合っている。実際に物理的な本を使って勉強することで、マーカーを引いたり付箋を貼ったりと、泥臭くも着実に知識がついていくように感じます。書籍にも、様々な人に向けたものがあります。完全に初心者向けのものもあれば、ある程度知識のある人に向けた教本もある。そのため、一冊の本を理解して終わらせたとき、次のレベルの本を吟味する楽しさもありますね。しているうちに、どんどんと知識がついていきますし、理解できなかった部分をあとで読み返したときに何を言っているのかわかるというこの上ない喜びを感じることもできます。僕は最初の半年強くらいは、とにかく書籍で学習を進めました。書籍学習のデメリットはかさばることくらいですので、まずは本を買ってみるのがおすすめですよ。おすすめの本については、後ほど詳しくご紹介できればと思っています。スポンサーリンクオリジナルのアプリ開発2冊ほどの本を読み終え、なんとなくでも内容が理解できたとき、実際に自分が思うアプリを作ってみることをおすすめします。前情報なしにアプリを作ることは、他言語の経験者でなければ難しいと思います。そのため、書籍学習を進めながら自分が作りたいアプリを考えておくといいでしょう。この自分でのアプリ開発がとてもミソ。いうのは、自分の中で作りたいアプリがあれば、それに必要な技術を何が何でも調べようと思えますよね。すると、以前学習した技術などに再び触れることになりますからね。知らずしらずのうちに反復学習ができるということ。反対に作りたいアプリがなければ、なんのために使う技術なのかわからないまま勉強していくことになってしまいます。大人になる前の中高の勉強を苦手だと思ったり苦痛だと思ったりするのは、なんのために知識をつけているのかわからないまま勉強するからなのかなと思っています。中高の勉強を楽しいと思ったり真面目に取り組んだりしていた人は、僕と違って10代のうちから目標とする大学の受験や将来の安定などのビジョンがしっかり見えていたからこそだと思います。同様にアプリ開発も、ビジョンや目標(=作りたいアプリ)を事前に考えておくことで、モチベーションを落とさずに楽しく学んでいけるでしょう。いえば、僕はじめ初心者が思いつくアプリというのは、たいていもうこの世の中に似たようなものがある場合が多い。参考にできる既出の技術が多い。Swiftはまだまだ若い言語。2014年に発表された8歳くらい(2022年時点)の言語ですから、JavaやPHPなどに比べてTips(役立つ知識)がネットにも少ない状態といえます。はじめのうちは、世に出ている技術を活かせるようにスタンダードなUIで作れるアプリを考えてみるというのも大切ですね。ちなみに僕の場合は、地域バスの時刻表アプリと占いのアプリにチャレンジしました。今思えば散々な出来ではありましたが、僕の経験上、とにかくイメージしたものを動かせるだけでも凄まじいモチベーションにつながりますよ。四六時中Googleに聞きまくる書籍学習、オリジナルアプリ開発と平行して行うことでもあるのですが、とにかくググりまくること。的確な情報をGoogleから探し当てるには、ググるための能力も必要です。エンジニアとしての能力のうちには、このググり力も大きく関係しているというベテランエンジニアさんの話を聞いたこともあるほど。僕の場合には、Appleの公式ドキュメントページをiPhoneのホーム画面においておいて、いつでもググれるようにしておきました。電車に乗っているときや人を待っているとき、仕事の休憩中など、今取り組んでいる問題があるなら欠かさずググるようにすると、ググり力は自ずと養われていきます。Appleのプラットフォームに限らず、技術は日進月歩で進化しています。2ヶ月前には問題のなかったコードがWarningエラーの業火に包まれていることなんて、よくあることです。どんなに新しい書籍で紹介されている内容も、もしかしたら古くなっているかもしれません。わからないこと、納得のいかないこと、モヤモヤすることは、最悪iPhoneさえ持っていればいつでもどこでも調べられます。そこでわかった情報があれば、次の瞬間にはコードを書いてみたくてたまらなくなるでしょう。大体の情報はオープンなので無料で手に入り、さらにはそれが自分のキャリアにも繋がっていくというのは、iOSアプリ開発の醍醐味でもありますよ。SwiftというApple公認資格の取得です。これは僕がちょうど1年位学習を進めたあたりで日本に上陸した資格試験で、取得すると本家Appleから認定証をもらえます。これはiOSエンジニアになりたい人はもちろん、僕のようなApple信者にとっても信じられないほどのモチベーションになるもの。認定証には、Appleのロゴが入っているんですから!といって喜べる僕はかなりちょろいですね。真面目な話をすると、Apple公認資格は決して多くありません。あったとしても、本当のスペシャリストや法人でなければ取得出来ない場合もあります。これは個人で取得できますし、出題範囲はAppleの公式Swift教本から。教材も練習問題も、MacやiPhoneさえあればBookアプリでいつでもどこでも読めますよ。「iOSエンジニアとして応募して不採用をもらっても平気だぜ!だって俺はそもそもAppleから認められているんだからね!」という気概で前に進めるので、根気強く求職活動をしていけます。これは調子に乗りすぎだとしても、先が見えない挑戦の中でなにかしらに合格するというのは勇気に繋がります。アプリ開発をする上での自信もつくでしょう。一点懸念があるとすれば、2022年現在でも試験は全編英語での出題です。Apple公式の出題範囲ドキュメントもすべて英語。不安がある方はさらっと英語について復習しておくのもいいかもしれません。僕はペラペラの英会話などできませんが、もともと英語はそこまで苦痛ではないので、単語カードなど作って楽しく勉強できました。Swift】合格までの記録!出題範囲や最短最強の勉強法は?」で詳しく解説していますので、併せてご覧いただけたら嬉しいです。僕の体験談としては、一日中腰を据えて勉強をするときにはやはり自宅がおすすめです。自宅はだらける理由になるような誘惑も多いですが、周囲の音をコントロールできる環境でもあります。カフェなどでは、雑談や店内BGMの程度をコントロールできませんよね。自宅なら、自分の好きな学習環境を作り上げられる。例外として、朝イチで勉強をして午後から用事がある、などのときにはカフェなどでの勉強もおすすめですよ。朝はどうしても眠いですが、カフェなどに行く軽い運動を挟むことで、頭も体も目覚めるように僕は感じました。カフェによっては勉強がNGな場所もありますし、長時間勉強をすることは周りのお客さんに迷惑になるなどするため、周囲の状況にあったマナーも大切にしましょう。2022年現在にiOS開発の勉強を始めるならUIKit?SwiftUI今はSwiftUIという新しい開発方法も出てきているようですから、これはとても悩ましいポイントかと思います。僕が勉強を始めたときにはUIKit一択でしたが、2022年から勉強を始める方は「UIKitとSwiftUIどちらが良いか」という悩みを抱えることになるので、少し不利といえるかもしれません。僕個人的には、経験から言ってまだUIKitの勉強から始めても良いのかなと思います。理由は、SwiftUIにはまだまだできないことが多いから。その出来ないことを補うとき、SwiftUIからUIKitを呼び出す場面があるんです。いった場面を想定すると、やはりできる限りはUIKitの知識をつけておくに越したことはないでしょう。僕の知り合いの3人のiOSエンジニアは、まだ今のところUIKitでの開発をしているという事実もあります。うち一人はかなりベテランエンジニアですが、彼に言わせても今のところはSwiftUIの案件はそこまで多くないという認識のようです。就職する企業が決まっていて、SwiftUIでの開発がメインになるようであれば、とりあえずはSwiftUIから学び始めても問題ないでしょう。アプリエンジニアとしての求職活動さて、ある程度力と自信がついたら、いよいよ働きましょう。iOSアプリ開発は、Apple信者としては趣味として続けても楽しいですが、職業にすることでさらに深くSwiftを学んでいけます。仕事をもらえたら、自習中とは違って四六時中Swiftを触っていても怒られることはありませんからね。企業探しのすすめ未経験からiOSエンジニアとして働くためには、どんな企業に応募するのが良いでしょうか?今やIT企業は星の数ほどありますし、非常に悩ましいところですよね。僕が会社を選べる立場ではなくおこがましいのですが、僕はとにかく「iOSエンジニアとして雇ってくれるところ」を中心に探していきました。「この人は何を言っているんだ?iOSエンジニアとして雇ってくれる企業を探すのは当たり前じゃないか」と思われるかもしれませんが、求人情報を見た時点で、未経験者がiOSエンジニアとして働くのは難しいだろう、と思う会社さんは実は結構あります。未経験歓迎だとしても、ジョブローテーションによって様々な仕事があてがわれると書いている企業。「ゆくゆくはiOSの開発もできますよ」のように書いてある会社などがそれに当たります。iOSに限らずエンジニアになりたいという方にとって、こういうオールマイティな企業とのご縁はとても素晴らしい出会いだと思います。ジョブローテーションが悪いというつもりはありません。いった企業に入社した場合、iOSエンジニアとして活躍できるのはけっこう先になる可能性があります。一般論として企業は、社内事業に人が足りていない、もしくはもっと規模を大きくしたいがために採用活動をしますよね。なれば、人が足りない部署に配属されるのは当然のこと。iOSエンジニアがたまたま足りていない企業に就職しない限りは、すぐに現場での仕事ができるかどうかは未経験者にとって運任せ。iOSエンジニアのポストが空くかどうかなんてわかりませんし、就職先企業の社内状況などは自分でコントロールできないことです。エンジニアを募集しているのであり、業務内容にiOS開発もある。規模の大きな会社さんとなれば、iOS開発をさせてもらえるのはある程度会社で力をつけて、自分の意見が通りやすくなったあとになるでしょう。どれほど勉強をしたとしても、IT企業業界に限ったことではないですが、未経験者に一発目から希望のポストをくれる会社なんてそうそうありませんよね。Appleのプラットフォームでの経験を積みたいと思うのなら、エンジニアを募集している企業ではなく、iOSエンジニアを募集している、なおかつiOSに詳しい方がいそうな会社に応募しましょう。僕はとても運の良いことに、iOSエンジニアを決め打ちで募集している企業と一発目に出会うことが叶いました。スタートアップで若い会社ですが、一緒に働く仲間は皆ベテランでとてもいい人たちばかりです。iOSエンジニアに絞って募集している企業の門を叩くということは、すなわち面接の時点である程度、iOSエンジニアとしての適正があるかどうか会社に判断されるということ。ジョブローテーションとは違って、iOS開発には向いていないと判断された場合に、他の部署にあてがうということはできませんからね。僕の場合には、既存のオープンになっているAPIを組み込んだアプリを作っておいでという宿題でした。自分では勉強をしたつもりでも、まだまだ素人過ぎて凄まじく時間がかかりましたが、なんとか完成させられました。適性検査の場ではベテランのiOSエンジニアからアドバイスもいただき、それだけでも勇気を出して企業に応募してみてよかったなぁと感じましたよ。内定後の勉強では、内定をもらったあとのことについてもお伝えしていきますね。内定をもらったからといって、一気に能力が上がるわけではありません。ここからは、より実践的な勉強に変わっていきます。自社アプリ開発:2ヶ月まず手始めに、アイデアだけがあった自社アプリの開発を任せていただきました。とある情報を検索するアプリで、一から好きなように作っていいとのことだったのですが、やはり難しかったです。今まで作っていたチュートリアル的なものではなく、APIも叩きながら、複雑な画面仕様も作りながらと、四苦八苦しながら完成にこぎつけました。難関だったのが、AppStoreへのリリースです。これはベテランのiOSエンジニアの上司にアドバイスをもらいながら、満身創痍でなんとかやり遂げました。関係ないですが、その大変だった日の夜に地上波でスティーブ・ジョブズの特集をやっていたのが嬉しかったです。上記の自社アプリ開発は、言ってもまだまだ利益化するには程遠い状態。OJTのように、僕のために用意してくれたという部分が大きいと思います。そのあと、ベテランエンジニアの上司と一緒に進めた開発プロジェクトこそが、最大の経験と成長に繋がりました。そもそも自社アプリと違ってクライアントさんがいるので、当然ですが細かい部分まで詰めていかなければなりません。規模も僕にとってはそれなりに大きく、バックエンドチーム、Androidチームと密に連携を取り合うことも必要。中級者に近づくために、一所懸命に取り組みました。その結果、今までの自習はなんだったのかと感じるほど、大きな成長を遂げられたように思います。WebViewやサードパーティのライブラリなど、チュートリアルではなかなか扱わない分野でも経験を積むことが出来た。自習や教材では触れない部分に関しても、着任後すぐに経験ができる。これこそが、iOSエンジニアとして雇っていただくことの大きなメリットだといえるかもしれませんね。(ほとんど)一人前のiOSエンジニアとしての独り立ちそういった経験を積ませていただき、現在はありがたく一人称でiOS開発のお仕事をさせていただいています。上司や他のiOSエンジニアと一緒ではないので、不安やプレッシャーはある程度ありますが、自分が書いたソースコードがiPhoneで狙ったように動く様子は、やはり何度経験しても何にも変えられないほど楽しい瞬間だといえます。「ほとんど」とつけたのは、僕はまだまだ本当の一人前のiOSエンジニアではないためです。業界で長く活躍されているiOSエンジニアの方の中には、設計や企画そのものに携わるなどもっと広い守備範囲で活躍している方もいらっしゃいます。いった方たちのことを、真のベテランエンジニアと呼ぶのでしょう。ベテランになるに越したことはないですが、僕はちょっとでも多くAppleのプラットフォームで経験を積んだり、皆に使ってもらえるような良いプロダクトを作れたらそれがいちばん嬉しいです。文系がエンジニアになるのは難しい?文系がエンジニアに向いているかどうか論争は、いろいろなところでありますよね。僕が思うに、文系・理系はあまり関係ないように思います。僕は高校時代はかろうじて文系でしたが、それからは音楽の専門学校に行っていましたし、もはや今の自分が文系か理系かなんて判別不能。言えば、読解力や英語力は大切かもしれません。仕様を理解したり新しい機能を理解するためには、文章を読み解く能力のほうが大切ではないでしょうか。どんなに頭の回転が早くても、適切に文章を理解できなければ技術を使いこなすのは難しいでしょう。プログラミング言語はSwiftも含めて、米国で生まれたものが多い。なると自ずと、ドキュメントも英語のものが多くなります。英語がペラペラである必要は全くないと思いますが、英語が苦手な方は、英語への耐性をつけておくのがいいかもしれませんね。さいごにこの記事では、決して勉強や数学が得意ではない数学赤点系の僕が、iOSエンジニアになるまでのことをお話ししてきました。これからiOSエンジニアを目指されている方のお役に立てばとても嬉しいです。iOSの仕事に関わらず、達成するために大事なことは目標を持つことや自分なりに楽しむことだと思っています。あとはスティーブ・ジョブズの受け売りで恐縮ですが、「心から好きだと思えるもの、打ち込めるものを探し続ける」こと。和風に言うと「好きこそものの上手なれ」ですね。皆様のご健闘を心よりお祈りしています!お読みいただき、ありがとうございました。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。スポンサーリンク運営者情報rentaro青森県出身、Apple信者のiOSエンジニア。『Products(Apple製品)』と『Development(iOS等の開発)』の両軸でApple関連情報を発信することを最大のテーマに、このサイトで色々と書いています。