プログラミングスクールの体験談、口コミ、評判がわかる比較サイト

プログラミング初心者の24歳が、経験0からiOSエンジニアになった話

私は、大学在学中に日本を旅して、世界を旅して、今までの自分が見ていた世界がどれだけ狭い世界かを感じました。

 

自分という存在がどれだけちっぽけな存在なのかを感じました。

 

それと同時に、田舎だろうと都会だろうと、発展途上国だろうと先進国だろうと、ITは同じ水準で進化していることを実感しました。

 

道を調べようと思っても、ホテルを調べようと思っても、ITの恩恵を受けないことはありませんでした。

 

旅を重ね、ITの便利さを感じるにつれて、気づけばいつしか、今度は自分がそれを提供する側になりたいと思うようになっていました。

 

それがきっかけで私は、IT企業を中心に就職活動を始めることに決めました。

 

新卒で企画・営業職を志望して就職活動を進める中でとある会社からエンジニアにならないかとの提案を受け、エンジニアとしてキャリアを始めることにしました。

 

当記事では
・未経験からiOSアプリエンジニアになった経緯
・どのようにプログラミングを学習をしてきたのか
・現在はどのようなことをしているのか
を実体験をもとにお話できればと思います。

 

全くのエンジニア未経験からエンジニアへと転向したきっかけ

就職活動をしていた当時、私の頭の中で “IT” = “ベンチャー” という謎の等式が成り立っていたのと、自分の性格から言って年功序列が嫌いだったこともあり、迷うことなくITベンチャーに絞って就職活動をはじめました。

 

ですがその時点ではもちろんエンジニアスキルなど持ち合わせていません。

 

スキルがなくても入社できそう、かつ自分のしたいことをカタチにできそうな企画・営業職を志望して就職活動を進めていきました。

 

そんな就職活動の終盤、とある企業の最終面接日を決める電話で、採用担当の方にこんなことを言われました。

 

「やりたいことは確かに企画よりだとは思うけど、企画をする上でもコーディングの知識を持っておいた方が後々絶対に役に立つよ。ウチなら研修期間でちゃんと基礎知識もつくから、未経験でも問題ないんだけど、エンジニアを検討してみる気はない?」

 

コーディングのことは全くわかりませんでしたが、言っていることは至極真っ当で、説得力がありました。

 

同時に、知らないことを仕事として学べることに興味を持っている自分がいました。

 

最後は社長に惹かれていたことが決め手となって、提案を受け入れ、その企業への入社を決めました。

 

入社3ヶ月でiOSアプリを作成

私が新卒入社した企業では3ヶ月が研修期間となっていて、そのうち最初の2週間は座学、残りの2ヶ月半は独力でのアプリ制作となっていました。

 

アプリ制作については、企画構成からレイアウト、画面数やアニメーションなど、基本的なアプリ制作の流れを全て自分一人で考え、自分でコーディングするという内容でした。

 

研修期間の最後には作成したアプリのプレゼンコンテストを行い、1位に輝いたアプリは会社の製品としてリリースされるという特典付きでした。

 

最初の2週間の講義では社員の方が資料をもとに説明をしてくださるのですが、カタカナや英語ばかりが飛び交い、なにを言っているのかまるでわかりません。

 

「なぜ日本語にしないのだろう…」

 

と思いつつも、現状を嘆いてばかりでは仕方がありません。

 

わからない状況を少しでも改善すべく、自分で参考書を購入し、自宅での自主学習を始めました。

 

あくまで参考にですが、当時購入した参考書は以下になります。

 

Objective-C超入門 改訂第3版〜ゼロからしっかり学べるiPhoneプログラミング〜Xcode5.0対応

 

技術系の参考書では、基本的なことだと知っているという前提で説明を飛ばされていることが多々あります。

 

ですが、この参考書は本当に初心者向けで、基礎の基礎から説明してくれているので、未経験だった私でも理解しやすかったです。

 

この参考書を利用しながら、電卓などの簡単なアプリや、Firebaseを利用したメッセージアプリを作成しました。

 

現在では、書籍での勉強にこだわらなくても、Progateのような実践型のプログラミング学習サービスもたくさんあるので、うまく既存のサービスを活用してコードを書きながら理解を深めるのもオススメです。

 

実際のところ、私も書籍は参考程度でしか読んでいませんでしたし、やっぱりコードを書いた方が成長スピードは早いです。

 

座学の期間が終了し、iOSアプリ制作へ

iOSアプリを作成するにはMacを使うことになります。

 

さらにはXcodeというアプリケーションを利用しなければならず、それまでWindowsPCしか使ったことのなかった私は、右も左も分からない状態でアプリ制作をスタートしました。

 

とはいえ、やることは単純明快で、「調べて、コードを書いて、動作確認する」この繰り返しでした。

 

Xcodeは統合開発環境と呼ばれる、アプリ制作のために必要な要素を全て積み込んだアプリケーションなので、Web開発で必須の環境構築を行う必要がなくなります。

 

そのおかげもあって、思いのほか順調にアプリ制作は進み、1ヶ月半くらいでアプリを制作することができました。

 

研修を通して、初心者が3ヶ月以内にアプリを作成できたということに達成感を覚えると同時に、誰かに教えてもらえる環境がなかったとしても、「自分の求める情報を検索する力」と「情報の信憑性を判断する力」がちゃんと付いていればひとりでもアプリを制作することは可能なんだということを体感しました。

 

この経験がその後のエンジニア人生において、大きな財産となりました。

 

最初はわからなくても”自分ひとりで解決することができた”という経験は、今後同じような状況に対峙しても、ひとりで解決できるという論拠になり、それはエンジニアとしての自信に繋がります。

 

実際に私は、わからないことがあったとしても、それを「楽しい」と思えるようになりました。

 

余談ですが、私はコーディング初心者が誰しも経験する「Hello, World!」の文言表示を経験していません。

 

エンジニアのスタートラインに立ったのを実感できるので、今から始める方は最初にやってみるといいです。

 

また、人生で初めて作成したアプリは「GPSを取得し、特定の場所に行ったらイベントが発生するアプリ」です。

 

そのイベントは「フテネコというキャラクターを捕獲する」というもので捕まえたフテネコをコレクションしていくゲームアプリでした。

 

ほとんどポケモンGOと同じです。このアプリを作ったのが2015年なので、私はだいぶ流行を先取りしていたようです。

 

iOSエンジニアとして働く

 

3ヶ月の研修期間を終え、私は実務としてiOSアプリ制作の案件に携わることになりました。

 

制作案件とはいえ、業務内容はコーディングだけではなく、画面仕様書やテスト仕様書などのドキュメント作成を担当することもありました。

 

働く場所も自社のオフィスだけでなく、クライアントのオフィスに常駐して働くこともあったり、開発の体制もチームだったり個人だったりと案件によって環境は全く異なりました。

 

そういった環境の変化は、自分にとっては刺激となって、心地の良いものでした。

 

例えば、クライアントのオフィスで働くことになった場合、そこには自社のエンジニアだけではなく、他社のエンジニアの方がいるわけで、そんな人たちとチームで開発することになれば、自分のコーディングスキルをわかりやすく測ることが出来ます。

 

褒められて嬉しくなることもあれば、圧倒的なスキルの差に悔しい思いをすることもあり、それらは全て、自分が成長するキッカケになりました。

 

また、時にはiOSだけではなくAndroidアプリの制作も任されることもあり、常に変化に対応し、向上意欲を持って成長し続けることが必須でした。

 

向上意欲は、iOSエンジニアに限らず、全てのエンジニアに共通して必要なものです。

 

IT業界は常に進化し続けていて、全てのエンジニアはその進化に対応しなければならないからです。

 

そういう意味では、常に勉強しなければいけない状況にストレスを感じてしまう人は、エンジニアという職業が向いていないかもしれません。

 

エンジニアとしては働く中で気づいたこと

iOSエンジニアとして働くようになって、2年が過ぎた頃、ふと思いました。

 

「エンジニアという職業は場所を選ばない働き方が出来るはずなのに、その利点を活かしきれてないな。エンジニアという職業なら旅をしながら働くこともできるはずだ。」

 

私は旅が好きで、それは社会人になってからも変わっていませんでした。

 

ですが、大学生時代から比べれば旅をする機会は減り、旅したい欲がふつふつと湧き始めていたのです。

 

幸いなことに、日本ではiPhoneが普及していることもあり(世界規模で見るとAndroidの方が普及しています)、iOSエンジニアの需要に関して困ることはありません。

 

「フリーランスも視野に入れて転職をしてみてもいいんじゃないか。」

 

思ったが吉日、私は会社の上司にその旨を伝えました。

 

もちろん、上司には強く反対されましたが、2年半を区切りに、私は新卒入社した会社を辞めました。

 

iOSアプリエンジニアからWebエンジニアへ

旅をしたかったこともあり、仕事をやめるタイミングでは転職先を決めていませんでした。

 

いざ、転職先を探そうと動き始めた時に考慮したのは以下の3点。

 

①旅に関わる仕事であること
②働く場所を選ばないこと(リモートワークが可能)
③自社サービスを展開していること

 

フリーランスであれば、①と②を満たすことは簡単なのですが、外注というカタチになってしまうことで、サービスへの貢献度は低くなってしまいます。

 

前職で下請けの業務を経験していたからこそ、サービスに対する自分の裁量権が大きいことも注視するポイントになっていました。

 

結果として、上記の3つ全てを満たす企業と巡り会うことができ、正社員として採用して頂きました。

 

現在も働いているこの会社はWebサービスを展開していて、採用時、アプリはまだ開発していませんでした。

 

それに対して、私が持っていたスキルはアプリ開発の中でもiOSに特化したもの。しかもWeb開発については経験がほとんどなく、未経験の状態。後々サービスをアプリ化するのを見越したとしても、会社側にとって私の採用ははデメリットの方が多い状態でした。

 

もちろん面談時には志望する理由を熱弁させてもらいましたし、Web開発に対する意気込みも誠心誠意伝えさせてもらいましたが、それにしても採用してもらえたのは本当に幸運でした。

 

実際に入社してからは、新卒で入社した時以上に、勉強漬けの毎日でした。

 

中途として採用してもらっている以上、金額に見合ったパフォーマンスを発揮しなければいけません。

そのプレッシャーをモチベーションに切り替えて、ひたすらにWeb開発と向き合っています。

 

未経験だった私がエンジニアとして働いてみて

以上が私が辿ってきたルートです。

 

結論から言えば、未経験でもエンジニアとして働くことはできます。

 

あとは、どこまでのスキルを自分に求めるのかどうかだと思います。

 

エンジニアとして出来て当たり前なことを出来る状態を目指すのか。

 

1つの言語にとらわれず、いろんな言語に挑戦するのか。

 

エンジニア領域で名の知れた存在になるほどに技術を極めるのか。

 

人によって目指すエンジニア像は様々だと思います。

 

ただ、エンジニアとしてのスキルが他人より劣れば、自分が求められる機会は自ずと減ってきます。

 

仕事としてエンジニアを選ぶのであれば、心に留めておいて下さい。

 

私はよくエンジニアという仕事を”RPG”に例えます。

 

というのも、自分自身がエンジニアとして働いてみて、RPGの主人公になったような気分を味わっているからです。

 

最初は何も装備がない状態でスタートして、それから経験を積むごとにスキルを手に入れて、レベルが上がって出来ることが増えていく感覚はRPGそのものだなと思います。

 

それでいて、エンジニア領域にはラスボスは特にいないので、永遠にゲームは続きます。

 

旅が好きな私には、それが合っていたんだろうなぁと思います。

 

もしこの文章を読んで、エンジニアという職業に興味を持ってくれた人がいるのであれば、ぜひ、一緒にRPGを楽しみましょう。

 

終わらない旅をしましょう。

 

最後に

体験談の中で述べている通り、私はアプリの開発とWebの開発をどちらも経験しています。

 

この記事を読んでいるみなさんは、コーディングを始めようと思った時に、アプリ開発かWeb開発か、どちらを選ぶか悩むのではないかと思います。

 

そこで、主観にはなってしまいますが、それぞれのメリット/デメリットを簡単にまとめておこうと思います。

 

アプリ開発

メリット
・開発に必要なXcodeやAndroidStudioは統合開発環境なので、開発までの下準備が必要ない
・アプリ市場が拡大しているので、需要が高まっている・モバイル端末さえあればアプリを作成/利用することができる(サーバーなどのコストがかからない)

 

デメリット

・開発言語のバージョンアップに加えて、OS(端末側)のバージョンアップがある
・サーバーから情報を取得するアプリを作成する場合、別途Web開発の勉強が必要

 

Web開発

メリット
・基本となるHTMLはタグの配置だけなので、コーディングが簡単
・言語の歴史が長いので、参考になる情報やツールが豊富
・Webページの開発だけでなく、APIなどサーバー開発の知識も身につく

 

デメリット
・習得しなければいけない言語数が多い
・フロント(Webページ)からバックエンド(サーバー)までの知識が必要

個人的にはWeb開発を先に経験した方が良いと思います。

 

アプリ開発でもサーバーやデータベースの知識は必ず必要になりますし、その基礎ありきでアプリ開発に入った方が汎用性が高いからです。

 

また、仮にJavaを経験した後にAndroidアプリ開発に進んだ場合、学習コストも抑えることができます。

 

アプリ開発とWeb開発を同時にマスターしたい!という方には、React Nativeを学ぶという選択肢もあるので、ぜひ検討してみてください。

公開日:2019.03.23

この記事を書いた人


関連記事