Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【初学者/自分用】未経験者が学ぶべきSwift基礎

はじめに

未経験の方は、エンジニアを目指すには何を学習すればいいのかわからない。
そのため、ロードマップが必要だと考えました。

https://qiita.com/Sossiii/items/e2c846d12f2f5db7c426
こちらの記事を参考にさせていただき、基礎から着実に学んでいこうと思います。

基礎の学習は、「レベル5:独学はもう効率悪いから今すぐ実務に入ろう」に到達した時点で実務を推奨されているので、この記事ではレベル5までの内容を記述していくことにします。
(※もちろん技術力が高い方が、未経験者の就職・転職はしやすいと思います。あくまで参考記事を目安します。)

最後にも述べますが、基礎を学び続けるよりもポートフォリオを作った方がインプット、アウトプット、就活・転職を効率よくできると思うので、一通り学んだらすぐにでもポートフォリオ作成に移ってしまいましょう!

※量が多かったので、見やすさを重視するために分散させました。🙇‍♂️
レベルごとにURLを飛んでいただくと、閲覧可能です。

それでは早速見ていきます

レベル1:実務は厳しい

・演算(+, -, *, /, %)
・インスタンスとは
・プロパティとは
・メソッドとは
・比較演算子(==, !=)
・変数 var
・定数 let
・エスケープ処理「()」
・if文
・switch文
・for文
・構造体:struct
・関数 func
・型キャスト

レベル2:数打てばどこか入れるかも

※作成段階です。🙇‍♂️

・型推論
・オプショナルがわかる
・if let
・オプショナルチェーン
・画像が使える
・storyboard/コーディングによる描画
 View、TableView、CollectionView、Switch、SegmentedControl
 TableViewとCollectionViewでのカスタムセルによる実装、
 その他もろもろのパーツ
・画面遷移(segue, navigationController,等)
・参照渡し, 値渡し
・アラート UIAlertController,UIAlertAction
・SVProgressHUDを適切なタイミングで使える
・NavigationControllerが使える

レベル3:数打てばどこか入れるかも

※作成段階です。🙇‍♂️

・UIView.animateでアニメーションが実装できる
 -> ライフサイクルを意識できると良い
   これができるとUIに磨きがかかるので選考でウケがいい
・セルの再利用がわかり、適切に動作させることができる
 -> 再利用を理解せず(特に初期化)、副作用が起きがち
・selfをつける時、要らない時がわかる

レベル4:入れる確率上昇中

※作成段階です。🙇‍♂️

・非同期処理(WebAPIを利用)->DispatchQueueやクロージャを使う
 (クロージャはここで使えれば良さそう)
・ライブラリ(Cocoapodsで外部ファイルをインストールして使う)
 Charts、FSCalendar、SwiftyJSON、とかで良さそう
・Delegateが実用できる
・NotificationCenterが使える
・Githubが使える
・SourceTreeが使える

レベル5:独学はもう効率悪いから今すぐ実務に入ろう

※作成段階です。🙇‍♂️

・Firestore、RealmSwiftを使える
 サーバー上に保存した情報をローカルDBに入れることで、
 何回もFirestoreからデータを引っ張らなくても良い(通信が減る)
 RealmSwiftはメモリ上に保存するのでタスクキルでデータは消え、肥大しない
・チャットが実装できる
 ライブラリ-> MessageKit
・ある程度のUIが設計できる
Pinterestでググれ

終わりに

お疲れ様でした!いかがだったでしょうか?

私は覚えること多いな〜と思いながら、この記事を書いていました笑
ですが、記事を書いていると、すごく理解して覚えることができました。

仕事で技術職のエンジニアを目指すなら、技術力なんて最低限は必須ですよね。
皆さんもインプットだけではなく、アウトプットをしながら学習することをおすすめします。

筆者も初学者ですので、未経験からエンジニアになるための人助けに少しでもなればいいと思い書きました。
少しでも参考になれば幸いです。☺️

下の『ストック』や『LGTM』をお忘れずに👇👇👇それでは

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away