知人からタイトルの様に質問されて、自分なりに回答したものを共有しようと思います。
自分はプログラミングが全くわからない状態で開発部に配属されて2年間、フリーランスで2年間、計4年間iOSアプリを開発してきた経歴を持っています。
独学だったか? と言われると難しいところですが、共有させていただきます。
##1. ひたすらググる
「iOS アプリ カメラ 開発」だったり、エラーの時に出てくる英語の文章をそのままコピペして検索したりなど、ひたすらググっていました。
これは今も変わりません。エンジニアはググれる力がないと生き残れません。
その際によくQiitaやStackOverflowなどがよく出てくると思います。日本語版もありますがStackOverflowでは基本的に英語なのでちょっと敬遠するかもしれませんが、よくお世話になっています。ちなみに自分は英語がそんなに得意ではないです。
##2. 参考書や動画は後からで良い
ドットインストールというプログラミング学習サイトを見たり、分厚い参考書を買ったこともありますが入門時にはそんなに必要ないと思います。
大体分厚い参考書をやりきれず挫折します。僕も読みきっていない参考書がいっぱいあります。
最初の頃はひたすらググっていました。
##3. それでもわからないときは人に聞く
ひたすらググる、とは言ってもやっぱりわからないときはどうしても出てきます。
僕の場合は職場だったり友人に聞くことができました。そういう環境でない場合は
- Stack Overflow
- teratail
などの技術専門Q&Aサービスで聞いてみるのも良いかもしれません。
ちなみに自分は1度だけ質問して回答が返ってきたことがあります。結果的には回答は解決には至らなくて自分で解決することになったのですが。
あとはお金をかけていいならTechCampだったりTechAcademyだったりのプログラミングスクールを利用するのも良いかもしれません。
ちなみに上記の2つではないのですが、会社で通わせてもらったプログラミングスクールで、iOSではなくPHPを学んだのですが、内容が古く結局ググって勉強した記憶があります。
なので、ちゃんと現場で通用することが学べるかがプログラミングスクールを選ぶコツかもしれません。
##4. 目的意識を持つこと
自分がエンジニアになったきっかけは開発部に配属されたからでした。
なので、危機感で成長しました。独学したいと考えている方はどうしてプログラミングを勉強したいのか、という目的意識を今一度考えてみると良いかもしれません。
独学はやっぱり大変なので強い目的意識が必要だと思います。
##5. 情報収集
twitterでエンジニアをフォローしたり、はてなブックマークのテクノロジーカテゴリでひたすら技術関連の情報を漁っていました。最初は興味が湧く記事からわからないなりに読んでいって、次第に分野も広がっていきました。
これは今も続けています。
##6. とにかく手を動かすこと
規模の小さいアプリでもいいのでとにかく手を動かして開発していました。
なるべく自分の興味に近かったり役立つものが良いですね。例えばゴルフに興味があるのなら「アプリからゴルフをしている自分を録画する」みたいに最小限で作って徐々に「シェア機能」「ブックマーク機能」などを足していく、というふうに手を動かすと良いかもしれません。
自分は社会人1年目の頃はプライベートでもアプリを作ってAppStoreに2本公開していました。
手を動かすこと、それを人に見せることはとても大事です。
#まとめ
- ひたすらググること
- 参考書や動画は後からで良い
- どうしてもわからないときは人に聞く(技術系Q&Aサービス使うのが良いかも)
- 目的意識を明確にすること
- twitterやはてなブックマークで情報収集
- とにかく手を動かすこと。興味があったり役に立つものを、小さい規模から徐々に大きくして人に見せること