作者は自らの経験と、周囲の優れた開発者の経験を観察し、新人から専門家への学習パスを共有し、あなたが遠回りを少なくし、迅速に成長できることを願っています。
iOS 開発者は四つのタイプに分けられます:
- 完全に 0 基礎の開発者;
- iOS 分野に足を踏み入れたばかりの開発者;
- ある程度の iOS 実際の開発経験を持つ開発者;
- iOS 開発のベテラン。
それでは、異なるタイプの開発者に対して、異なる進階パスについて話しましょう~
まずは完全に 0 基礎の学習資料を見てみましょう:
- 書籍を通じて学ぶ:《iOS プログラミング》の最新バージョンには、開発言語、Cocoa デザインパターン、コントロールの使用、Xcode のテクニックなどの基本的な側面が含まれています。
- 実例を通じて学ぶ:APPCODA のウェブサイトには、各チュートリアルが非常に簡単で理解しやすく、あなたを一歩一歩プログラムを書く手助けをしてくれます。
PS:小学生や中学生には、知乎 | 12 歳で iOS プログラミングを始めるには?の高評価の回答を参考にできます。
基礎知識を貪らない#
基礎知識は非常に広範囲にわたり、理論的なものが多いので、実践しなければうまく習得するのは簡単ではありません。しかし、基礎が重要でないわけではなく、必要な基礎はしっかりと習得する必要があります。では、iOS 開発者にとって、どの基礎を最初にしっかり学ぶべきでしょうか?
iOS 分野に足を踏み入れたばかりの開発者はさらに三つのタイプに細分化され、異なる学習パスを持っています:
- 学生:スタンフォード大学 | アプリ開発コースには、アプリを開発するために必要な最も基本的な知識が含まれており、MVC アーキテクチャ、iOS 開発言語の基礎知識、マルチタッチ、アニメーション、ViewController のライフサイクル、Scroll View、マルチスレッド、Auto Layout、ドラッグ&ドロップ、TableView、Collection View、Text Field、永続ストレージ、ポップアップ、通知、アプリ全体のライフサイクル、Storyboard、Core Motion、カメラなどの内容が含まれています。また、いくつかの簡単なアプリを一歩一歩開発する手助けもしてくれます。附:同期の中国語字幕プロジェクト。
- 新卒の就職活動中の学生:Apple 公式開発マニュアルは、実際の仕事で必要な知識に出会ったときに最初に参照するマニュアルです。公式のコード例は非常に規範的で、分類が明確で、内容が豊富で、主に App Frameworks、グラフィックス、App サービス、メディア、開発ツール、システムなどのセクションに分かれています。附:Apple 公式 iOS 開発ガイド(Swift ベース)。
- 他の分野から iOS 開発に転向したベテラン:RayWenderlich のウェブサイトには、各チュートリアルに詳細なガイダンスがあり、具体的な知識を習得するために、仕事のニーズに応じて特定のカテゴリを学ぶことができます。
一定の基礎知識を習得した後、どのように自分の iOS 開発スキルをさらに向上させることができるでしょうか?
- 唐巧 | iOS 開発をどうやって向上させるか。
- limboy | 自学での iOS 開発の経験。
- Futurice | iOS ベストプラクティスガイドには、アプリ開発のライフサイクル、IDE からプロジェクトを構築するための最良の使用方法、基礎ライブラリの選択、アーキテクチャの選択、ストレージ方法、リソース管理、コード規範、安全性、静的分析、クラッシュ分析、ビルド、デプロイ、さらには IAP(アプリ内購入)まで考慮されています。
- SwiftGG | Swift 中国語版マニュアル、Swift 公式ブログ。
実践での蓄積#
仕事の実践に関連する知識は、できるだけ多く蓄積するべきであり、越多いほど良いです。
実践での蓄積は、特に数年の実務経験を持つ開発者に適しています:
- 常に自分の仕事に関連する分野の知識の発展動向に注目し、全面的に把握する;
- 迅速に整理とまとめを行い、考えを深め、自分に問いかける、なぜそうするのか、他により良い方法はないか;
- 最後にアウトプットを行い、他人の意見を聞き、交流を深める。
殊途同归、深く知識を掘り下げる#
どの分野でも、殊途同归、基礎知識は最も掘り下げる価値があり、継続的に学ぶ必要があります。
おすすめ:Michael Ash | The Complete Friday Q&Aの本には、メモリ、パフォーマンス、システム内部の原理についての理解を深める内容が含まれています。彼のブログもぜひ訪れてみてください。
最後に、iOS 開発のベテラン(堅実な iOS 基礎 + 実践経験 + 仕事の成果)の進階パスは、特定の方向を選び、継続的に深く学ぶことです。学習方法としては、技術のプロトタイプを一から実装することが考えられます。例えば:
- LLVM コンパイラ:簡単なコンパイラやインタプリタを実装することができ、最小の C コンパイラ OTCC(Obfuscated Tiny C Compiler)を参考にできます。
- データベース:簡単なデータベースプロジェクトを開発することができ、Let’s Build a Simple Database チュートリアルを参考にできます。
- オペレーティングシステム:一からオペレーティングシステムを作成することができ、os-tutorial チュートリアルを参考にし、システムの起動、中断処理、画面出力、キーボード入力、basic libc、メモリ管理、ファイルストレージシステム、簡単なシェル、ユーザーモード、テキストエディタ、マルチプロセスとスケジューリングなどを含む、雀の涙ほどの小さなオペレーティングシステムを開発し、ページング、セマフォ、メモリ管理などの知識をより深く理解する手助けをします。
その上、iOS のベテランは、既に習得した技術スタックを使って、他の分野に触れ、技術的な視野を広げることもできます。例えば、カナダチーム | Perfectを使用すると、Swift でサーバー開発ができます。
師匠が門を開いてくれるが、修行は自分次第です。自分の知識体系をしっかり整理し、漏れを補って知識を体系化しましょう!