無職でプログラミング初心者の私がSwiftを勉強して2ヶ月でiPhoneアプリをリリースするまでに学んだ大事なこと


今日は2014年11月27日。10月1日から無職になり約2ヶ月間、プログラミング経験無しの初心者の私が、ようやっとSwiftを使って初めてのiPhoneアプリが公開できました。せっかくアプリを公開しましたので、その過程で学んだことを書き記します。どなたかの、なにかしらの役にたてば幸いです。

できたアプリ

5

SpeedPitch – 耳コピ用アプリ
オーディオ再生して音程と速度が変えられる(ただそれだけですスミマセン)。

私について

・プログラミングの経験は限りなくゼロに近い
・簡単なwebsiteを作ったことがあるくらい
・英語は多少できる(TOEIC900点は超えるくらい)

なぜ言語をSwiftにしたか

iPhoneアプリが作ってみたかった、そして、私の退職時期とSwiftのリリースがかぶっていたので。勝手に親近感を覚えました、Swiftに。お前も俺(当時無職)とおなじゼロ歳か、と。

やったこととか大事だと思ったこと

オフィシャルドキュメントを読む

「まずはこれを読まなきゃはじまらない」みたいな空気だったので、読みました。

The Swift Programming Language

分かるとか分かんないとか抜きにして、とにかく読みました。読んで、PlayGroundでコードを手で書いて(コピペしないで)、動かす。これをやりきりました。

プログラムのことがよく分からない初心者であり、かつ英語で書かれると意味不明な部分が多々ありますが、「とにかく読みきることが大事だ、ここで挫けてはだめだ」という気持ちで読みます。そんな状況で読んでも意味あるのかと思いつつ、読んだら読んだで、いいことがありました。

・とにかく読んだんだ!という自信になる
・後々の勉強で「あれ?これオフィシャルドキュメントんとこに、なんか書いてあったきがるする。」という気づきがある。

教材を見つける

オフィシャルドキュメントは読み終わりましたが、とてもじゃないけど、いきなり自分のアプリは作れそうではありません。ということで、教材を探しました。2014年10月より以前は、今とは違い日本語で初心者向けのSwift関連書籍がなかったので、ググってBlogやYoutubeを探します(今は本でもいいかもですね)。

良さそうな教材を見つけたら、コードを書き写します。写経、なーむ。

とくに、Youtubeはとても便利!動画で画面を見ながら、順序よく説明してもらえるのが初心者には助かります。
Code With Chris
Bo Qian
Brian Advent

動画じゃないけど、Swiftでテトリスを作るやつも面白かった。

上記以外にも、いろいろ見ては、写経しました。

勉強会に行ってみる

しばらくすると、ひとりでシコシコやってることに、だんだん飽きてきます。人とあって情報共有して新しいこと勉強したい、違う刺激が欲しくなってきます。幸い、私は東京都在住なので、勉強会やイベントがたくさん開かれていまして、機会をみては参加してました。

AZusaar!!は、ATNDとかconnpassなどの勉強会の情報がまとまっていて便利です。

「俺初心者だし、勉強会とか怖いし、恥ずかしいし」とか思ってないで、行ったほうがいいです。つまんなかったら帰って来ればいいんです。この業界は、勉強会の後は軽食と酒がでる懇談会がをすることになっているようなので、私はそれだけでもうれしいです。

アウトプットする

勉強をしたら、できるだけアウトプットをするようにしました。私の場合は、このブログとYoutubeへの動画投稿が主なアウトプットの方法です。

私が言うまでもありませんが、アウトプットには利点がたくさんあります。

・分かること、分からないことが、分かる。
インプットだけだと、分かったような気になります。が、実際のところは、本当に分かっているのか、実は分かっていないのかが、分かりません。アウトプットをすれば、分からない箇所で詰まりますから、そこをもう一回調べ直すとかしました。

・自分の活動を世に広められる
一人でしこしこやってても、正直飽きます。人に評価されたり、世の中の役にたつから、嬉しいんですね。自分が、人の教材で助けられた分、自分と同じような境遇にいる他の人にも、何かを与えられたらと思います。

などなど。

完成品を作る

上記のアウトプットにもつながりますが、勉強ばっかやっててもあんま意味ないんです。私にとっては、勉強は目的ではなくプロセスなのです。勉強を経て、最終的には成果物を、つまりアプリを作ってリリースさせるということを、達成しなければいけません。

アプリをリリースするまでの2ヶ月間のうち、勉強だけしかやらない期間は1ヶ月くらいだっと思います。あとの1ヶ月は、自分のアプリを作りながら、壁にぶち当たったらそれを解決するために勉強する、という感じでした。

分からないときは聞く

自分のアプリを作り始めたら、わかんないことがたくさん出てきました。調べて解決することもあれば、調べても意味不明な場合もあります。一人で考えまくってもどうしてもわからないときは、諦めて人に聞きました。

私の場合は、Swiftについて相談できる人がいなかったので、
stackoverflow
を使いました。

その他、2chで聞いたり、ブログ書いてる人にコメントして質問したりなど。
スレ違いとか言われることもありますが、世の中そんなもんです。

「聞くは一時の恥、聞かぬは一生の恥」であります。

完璧を求めない

自分のアプリを作りはじめると、この機能実装したいとか、レイアウトはこうしたいとか、コード綺麗に書きたいとか、いろいろな欲が出てきました。

もちろん、本当はそれを実行したいんです。

でも、今のわたしには、そんな力はありません。修行をすればいつかは達成できるでしょうが、アプリを早くリリースして職探しをしたい無職の私に、そんな時間はありません。時間は有限であります。

やりたいこと、と、やるべきこと・やれること、を分けて、期限内に今の力でできる精一杯をアプリに詰め込みます。

やればできる

やればできる、それにつきます。「できるかなあ?」とか不安になってる暇があれば、手を動かしてコードを書いて、本やウェブから情報をあつめて、トライアンドエラーを繰り返すしかありません。2ヶ月もやっていれば、知識ゼロで意味不明な状態から、なんとなーく分かるかな?くらいまで、いけるもんです!

私も精進していきますので、みなさまも一緒にがんばりましょう。

以上。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です