こんにちは、コン(@pippi_kon)です。
私がSwiftの勉強を始めたのは、2017年のゴールデンウィーク前。
ガッツリ勉強したわけではなく、毎日だいたい2時間くらいプログラムをいじる程度。
そんな私でも、一週間後にはiPhoneアプリを作ってAppStoreに公開できたんです。(他のプログラミング言語の経験あり)
そこで今回は、『私が実践したSwiftの勉強方法』についてご紹介します。
まずはネットで勉強
私は入門書や参考書などの書籍は購入はせずに、すべてネットの情報を参考に勉強しました。
理由はいたってシンプル!
「今の時代、本に書いてあることはネットにも書いてあるはず!」
と思ったから。
実際、ネット情報だけでアプリを公開できるまでになったのですから、あながち間違いじゃないはず。
ですが、ネット情報だとどうも痒いところに手が届かないんですよね。
Swiftは比較的新しいプログラミング言語なので、他の言語に比べてまだノウハウが充実していないって感じ。
いろんなサイトを調べて、時には英語サイトを見たりなんかもして。
勉強してる時間よりも情報を探してる時間の方が多かった気がしますw
また、ネット情報で気をつけないといけないのが、ネットの情報を鵜呑みにしてはいけないということ。
ネットにはだれでも簡単に情報が公開できてしまうため、情報が古かったり、誤った情報が掲載されていることがあります。
特にSwiftはバージョンアップによって互換性がなくなることがあります。
そのような情報を鵜呑みにしてしまい、「これは正解のはず!」と思い込んでしまうと、何かトラブルが発生したときに前に進まなくなってしまいます。
ネットの情報は常に「これであってるのかな?」と思うことが大切です。
今になって思えば、いくらコストを抑えたかったとはいえ、時間と労力を結構無駄にしてたなぁと感じます。
素直に本を買っておけばよかったなぁとw
入門サイトに頼らない
ネット情報で勉強しようと思った時、真っ先に探したのがSwift入門サイト。
しかし当時は入門サイトが充実しておらず、あまりわかりやすいサイトには出会えませんでした。(今はどうかな?)
どこも同じようなことがすごく簡潔に書かれてたんですよね。
わかる人が見たらまとまっててわかりやすいのかもしれませんが、初心者にとってはわかりにくいものでした。
そこで、やりたいこと(作りたいもの)を決めて、それを実現するためにあれこれ調べながら知識を習得していくスタイルに変更してみました。
まずはカレンダーを作ってみた
プログラミングの入門と言えば、真っ先に思いつくのが「電卓」。
でも電卓なんてありきたりだし、他のプログラミング言語を勉強したときに作ったこともあるし、あまり簡単なことをしてもなぁ…
と思った私がSwift入門に選んだのが「カレンダー」。
以下のサイトを参考にしました。
このサイトを最初に眺めたとき、全体のプログラムが記載されていたのでわかりやすいと思いました。
やっぱり初心者はコピペして動かせるもののほうが理解しやすいですよね。
サイトに掲載されていたサンプルプログラムを実際にXcodeに打ち込んで動かしてみました。
…が、ここで大きな壁にぶつかりました。
このサイトの情報が少し古く、サンプルプログラムがSwift2で書かれていたのです。
2017年5月現在、Swift3が主流となっています。(※2020年6月現在はSwift5が主流)
Swift2のサンプルプログラムをXcode8でそのまま動かすことができませんでした。
さっそくネット情報の使うときに注意しなくてはいけない「情報が古い」にぶち当たりました。
ひたすらネットで調査
サンプルプログラムを動かすためにひたすらネットで情報集め。
Swift2のサンプルプログラムはSwift3ではそのまま動きませんでしたが、アルゴリズムといいますか、考え方は問題ないはずと思いました。
また、発生しているエラーはSwift2→Swift3の互換性に関するものだと考え、エラーさえ何とかすれば動くと考えました。
発生したエラーを一つずつネットで調べて解決、調べて解決を繰り返す。
その過程で、同じようにカレンダーを勉強されていた方が居たらしく、以下のような記事も見つけました。
もちろん参考にさせていただきました。
Swift3 スワイプで切替えるカレンダーでCollectionViewCellの選択をうまく解除できない
カレンダー完成
エラー解決に時間がかかりましたが、なんとかカレンダーを作ることができました。
このカレンダー作成の過程で、カレンダーだけでなく、他にも様々な知識を習得できました。
(変数の型、Swift2とSwift3の違い、エラーの意味等)
ちなみに作ったアプリはドラゴンクエストX(オンラインゲーム)の支援ツール。
日によって変わるボスの強さを表示するアプリです。
少し知識がついた今手にとってみた本
アプリをいくつか公開し、少しSwiftの知識がついてきた今、気になっていた書籍をいくつか手にとってみました。
いずれの本も
『もっと早くに買っておけばあんな苦労しなくてよかったのに…』
って思っちゃいましたw
初心者には講習がおすすめ
ネット情報だと、書いてあることを自分なりに読み砕いて理解していかなければなりません。
疑問に思ったことがあっても、自分の期待する答えが100%書かれているとも限りません。
んで、自己解決しようとあれこれ情報を探すわけですが、これがなかなか見つからないんですよ。(体験談)
正直、時間と労力の無駄と感じました。(費用は抑えられますが)
その分、書籍だと比較的わかりやすく解説されているので、ネット情報のように答えを求めて探し回ることはありません。
本代がかかってしまいますが、プログラミングに集中できると思います。
ただ、これはあくまで他のプログラミング言語の経験がある場合。
プログラミング初心者の方にとっては、書籍の解説を理解するのも時間がかかってしまうかもしれません。
講習を受ければ、講師の方がわかりやすく説明してくださりますし、疑問に思ったことがあればその場で質問することができます。
たくさんのお金がかかってしまいますが、ネット情報や書籍で勉強するよりもはるかにわかりやすく、習得スピードも段違いで早いです。
講習にかかる費用は、後にプログラマーとしてデビューしたらすぐ回収できますよね!
膨大な時間を浪費する無料学習よりも、習得スピードが早い有料学習のほうが効率はよさげです。
本気でSwiftを勉強しようと考えている方は、プログラミングスクールの受講をおすすめします!
最後に
今回は、私が実践したSwiftの勉強方法についてご紹介しました。
今の時代、ネットにはたくさんの情報があります。
プログラミング経験者は、入門知識程度であれば参考書は購入しなくてもある程度勉強できると思います。
ただ、情報を探すための時間と労力を無駄にしてしまうおそれがあるので、素直に本の購入をおすすめします!
余裕があればプログラミングスクールの検討もありです。