実録。非エンジニアOLがiOSアプリエンジニアになるまでの道のり
この記事はSwift愛好会 Advent Calendar 2017 16日目の記事です
※この記事はとあるOLの主観のみによって書かれていますのでお気をつけください。
2015年のOL
毎日帰宅は22時以降、正社員だけど見込み残業で年収300くらいだったとあるOL。
- 収入400万までのキャリアまでしかみえない
- ルーチンすぎて成長が感じられない、働くことで成長ができる成長スパイラルに入りたい
- コーポレート系職種は人材の空きが出づらいので再就職の難易度が鬼(採用時100倍いったことがある)
- コーポレート職種は求められるものが会社によって違うので、会社ガチャ
以上の懸念点が全て拭えるエンジニアへのキャリアチェンジを考えていました。
実務レベルのアプリをリリースする
これができれば男女関係なく30代までなら就職できる印象。 年齢とかに引っかかるかどうかは会社の風土とかなのでなんとも言えませんが。
28くらいまでなら第二新卒なので「開発未経験ですが頑張ります」で転職できちゃう会社は多いよ。
そのために会得すること
開発力をつける!
まず開発ってなに?を知るために開発をやってみよう。 もしかしたら案外できるかもしれないから!!
逆にめっちゃ合わないかもしれないから!!
ドットインストール
プログラミングしていく動画を見て、実際にやってみるスタイルでプログラミングを学びました。
とりあえず無料でできる範囲をすべてやってみた(プレミアムのやつも最初の数個は無料なのでやってみよう)
HTML、CSSからRubyにObjective-Cまで。
プログラミング自体が苦手な場合もあるので、がっつり学校に行ったりする前に苦手じゃないかどうか判断するのに最高コンテンツ。
しっくりきた言語やらがあって「アプリが作れるようになりそう!」「プレミアム講座をやってみたらアプリ作れそう!」とおもうならそのままドカドカ作ればいいと思う。
OLは開発を楽しく感じました。
ですが、無料講座をすべてやってみても全然身についてる実感が湧かなかった。
「これでアプリが作れる!」とは思えなかったんですね。
なので勉強方法を変えることを考えました。
職業訓練校
ハローワークに行くと、職業訓練校の情報が書かれた情報誌みたいなのがもらえる。
このなかに興味のある科や気になる匂いを感じたコースがある場合、具体的に就職時にどういうことをする仕事につけるのかをたくさん調べましょう。
Web クリエータ科って?
HTML,CSS,JavaScript,PhotoShopを使ってWebの見た目を作る。フロントエンドエンジニアという仕事になる。では実際どんな仕事なんだろう?レシポンシブってなんだろう?Webデザイナーとは違うのかな?
PHP・Web プログラミング科って?
PHPという言語をつかってWebに表示したり登録したりするデータを作成、添削、表示するシステムを作る。サーバサイドエンジニアという仕事になる。では実際サーバサイドの言語ってどんなのがあるんだ?PHPはベースとなるようなフレームワークというのを使っていて、そのフレームワークによって書き方が随分変わるらしい。ではこの学校の採用するフレームワークはなんだろう。実際実務の現場で多く採用されてるフレームワークはどれだろう?
カリキュラム内容が実際就職する際に求められるスキルと一致しているか、実際見学に行ってみて講師の方との相性や、学びたい事と学べる事のずれがないか、講師は実際の開発現場で求められるスキルを教えてくれそうな人なのか、なども。 エンジニアは使わないであろうDreamweaverというデザインツールを使うコースとかもあるので、それを学ぶことによってエンジニアとして就職できるのかっていうのを調べることがめちゃくちゃ重要。 下調べをしっかりすると、その分どの勉強にどのくらい力をかければいいのかが具体的に見えてくるのでおすすめです。
OLはこのとき「iOSアプリエンジニアになろう」と決めました。
OLはここに行くことにきめました。
職業訓練校に行くにはいろいろな条件があるので、ハロワに行って「職業訓練校に行きたい」と相談するといいです。
職業訓練校カリキュラム内容
カリキュラム | 内容 |
---|---|
MacOSX入門 | MacOSXを利用するうえで、最低限知っておくべき基本操作や環境設定。 |
Objective-Cプログラミング | iOSアプリケーションの開発に使うObjective-C言語について、変数、条件分岐といったプログラムの基礎からオブジェクト指向プログラミングのための基礎知識であるクラスについての学習 |
SQLiteデータベース | iOS上で利用できるコンパクトなデータベースSQLiteで基本的なSQL文の学習やSQLiteをプログラムに組み込んで利用する方法を学習 |
アプリ作成基礎 | iOSアプリケーションに使われているターゲットアクション機構や、デリゲートについて学習。 |
基本API | 画面の基礎部品であるUIViewに自由に描画する方法を学習 |
ユーザーインターフェース | UIKitの代表的な画面部品の利用方法を学習します。 |
オリジナルアプリ作成 | 現時点で作れそうなアプリケーションを自分で考え作ってみる |
応用API | iPhone自体の持つ機能や通信、多言語対応方法など学習 |
卒業制作 | テーマによる独自アプリケーション開発を行う |
このカリキュラムをこなす中で、どの開発現場に行ったとしてもだいたい必要な
について、さらりと教わった。
この「どの開発現場に行ったとしてもだいたい必要な基礎」を教えてもらえたおかげで、iPhoneアプリ開発科に通いながらPHPを書いてMySQLデータベースにアクセスしてJSONを返すAPIをつくることが可能でした。
実際iPhoneアプリ開発科に行っていた同級生でPHPのサーバーサイドエンジニアになった人もいました。
学校は15:30くらいに終わるのですが、その後17時頃までPCとネットワークを使わせてくれたので、違う言語の学習などもできました。
先生はIOTからWebにモバイル、インフラなどなどなんでもできる人だったので、無謀なチャレンジでなければ他のプログラム言語の質問にも答えてくれた。
残念ながら現在はiPhoneアプリ開発科は開講予定はない様子。 ※開講してた!!! 2018年加筆
今のタイミングだとAndroidアプリ開発科に行きながら習ったことをKotlinで書いて復習してみて、余裕があればサーバーサイドを少しやる。という戦略がいいかなと思う(Swift愛好会とは)
WebのクラスもあるしLPIC系クラスもあるし、メガテクノロジーでやってる訓練はマジでオススメ。
志の高い先生方なので、勉強環境としては申し分ないです!
git
gitとはバージョン管理のツールです。
OLの職業訓練校ではgitについて学ぶことはありませんでした。
かなりレガシーな会社でなければgitを使います。 (かなりレガシーな会社はsvnを使います)
就職活動の際に「git使えますか?」と聞かれることでしょう。
そのときまでにちゃんと使えるように、最低限のコマンドは扱えるようにしました。
「さるはわかんねーだろ。」とおもうので、 ドットインストール の講座を実際に手を動かしてみて覚えるといいでしょう。
最初gitの概念を理解するにはgitについて教えてくれる先生がいるといいと思う。
githubも使えるようになっていてほしい。
デザイン力をつける!
学校に行きながら並行して下記内容を勉強。
プラットフォームのデザインルールを学ぶ
モバイルアプリを作るのであれば、各プラットフォームのデザインガイドラインは押さえることは重要です。
これはデザインしたくないエンジニアでもネイティブアプリやるなら必須だとおもう。
こう比べるとマテリアルデザインのほうが圧倒的にイケてるので今モバイルアプリ作りたい人にはマジでAndroidを勧める(Swift愛好会とは)
- 画面遷移できるボタンはこう作るべき
- スクロールできる一覧表を見せるためにはこの素材を使うのが良い
- この素材はこのような意味を表現するときに使う
などUIデザインの実践的な事例を学ぶ。
デザインするにあたっての基礎概念を学ぶ
こちらの前半部分をしっかり読みました。
デザインにおいて「やっちゃいけないこと」と「やらなきゃいけないこと」がわかるようになるでしょう。
色の選び方とかも学ぶといい。
アプリ体験を決める
- 映画が観たくなる
- iPhoneからアプリを開く
- 好きな映画が一覧で表示される
- 好きな映画を選ぶと映画情報がみれる(近くのどこで上映しているか位置情報から取得して表示してる)
- "予約"ボタンをタップするとsafariで該当の映画館のHPが開く
- Webブラウザから予約ができる
ざっくりと。
調査
似たアプリがあったらその調査をして、参考にする。 何故こうなっているのか、をかんがえるとアプリが大切にしているテーマが分かる気がする(気がする)
ペーパープロトタイプでモックを作成
どのような画面の流れにしたらこれが実現できるか考える工程です。
用紙に色鉛筆(色があること大事)でめっちゃ描く ざっくり Prottを使ってモックを作成
「良いな!」ってなるまで作り直したりするといいと思うの
素材作成
SketchやPhotoshopを使って素材作成。 この辺OLは全く抵抗なかったのでスムーズにできたんですが、苦手な人はうまく手を抜くのもアリだと思います。
実現力をつける!
あとはもうがんばる。
各種勉強会にいって、実際の開発現場ではどのような方法を用いているのか情報を得たり、同志を巻き込んで開発する習慣をつけたり、コミュニティに属してわからないことが聞ける開発者の友人をつくったり、OLはそんなことばっかしてました。
そんなときに出会ったのがSwift愛好会ですね。
OLはObjective-Cが第一言語だったので、Swiftを学ぶ際にはめちゃくちゃお世話になりました。
いまではもうSwiftしか書けないです(
複数勉強会に行った結果、就職した後の姿が想像できたり、エンジニア文化を知ることにつながったり、よかったですよ。
あとは卒業生でアプリでドッカン当てている人などがいるので「自分もそうなるんだ!」と思い込んでモチベをあげてました。
アプリ作り楽しいモードに入れるか入れないかが重要な気がする。
就活
就活をしましょう。
公開したアプリがある方は、それを持って就活。
公開したアプリがない方は、ソースコードをgithubに公開して、それを持って就活。(OLはこちらにあたります、でもやっぱリリースしてる方が5000倍良い)
希望年収になるかはわかりませんが、手に職が何もないときと比べると比較的簡単に内定をもらえることでしょう。
とても良いアプリができていたりグロースも考えられている場合、有名なスタートアップに入ることも不可能ではないでしょう。
今のOL
就職後もいろいろあったし全然へっぽこだけど、とあるOLはiOSアプリエンジニアとして働けています。
収入は上がり、将来への不安はめっちゃ減ったそうです。
OL「エンジニアへキャリアチェンジ、ありだよ。」
とのことです。