The author shares their learning path from a novice to an expert based on personal experience and observations of outstanding developers around them, hoping to help you avoid some detours and grow quickly.
iOS developers can be divided into four categories:
- Developers with completely zero foundation;
- Developers who have just entered the iOS field;
- Developers with some practical iOS development experience;
- Veteran iOS developers.
Let's discuss different advancement paths for different types of developers~
First, let's look at learning materials for those with completely zero foundation:
- Learn through books: The latest version of iOS Programming covers the basics of development languages, Cocoa design patterns, control usage, Xcode tips, and more.
- Learn through examples: The APPCODA website has tutorials that are very simple and easy to understand, guiding you step by step to write programs.
PS: For elementary and middle school students, you can refer to the highly praised answer on Zhihu | How to Start iOS Programming at 12?.
Don't Be Greedy for Basic Knowledge#
The scope of basic knowledge is too broad and often theoretical; mastering it without practice is not a simple task. However, this does not mean that the basics are unimportant; necessary fundamentals must be well grasped. So, for iOS developers, what basics should be learned well from the start?
Developers who have just entered the iOS field can be further divided into three categories, each with different learning paths:
- Students: Stanford University | App Development Course covers the most basic knowledge needed to develop an app, including MVC architecture, basic knowledge of iOS development languages, multi-touch, animations, ViewController lifecycle, Scroll View, multi-threading, Auto Layout, drag-and-drop, TableView, Collection View, Text Field, persistent storage, pop-ups, notifications, the entire app lifecycle, Storyboards, Core Motion, camera, and more; it also guides you step by step to develop some simple apps. Attached: Synchronized Chinese Subtitle Project.
- Recent graduates: Apple Official Development Manual is the go-to manual for knowledge encountered in actual work. The official code examples are well-structured, clearly categorized, and comprehensive, roughly divided into sections like App Frameworks, Graphics, App Services, Media, Development Tools, and Systems. Attached: Apple Official iOS Development Guide (Based on Swift).
- Veterans transitioning from other fields to iOS development: The RayWenderlich website has detailed guidance in each tutorial to master specific knowledge points, allowing you to learn specific categories based on work needs.
After mastering a certain amount of basic knowledge, how can you continue to improve your iOS development skills?
- Tang Qiao | How to Improve iOS Development.
- Limboy | Some Experiences in Self-Learning iOS Development.
- Futurice | iOS Best Practices Guide, which includes the complete app development lifecycle, best practices for setting up projects from the IDE, library selection, architecture selection, storage methods, resource management, coding standards, security, static analysis, crash analysis, building, and deployment, even considering IAP (In-App Purchases).
- SwiftGG | Swift Chinese Manual, Swift Official Blog.
Accumulate Through Practice#
For knowledge related to your work practice, it is essential to be greedy for more, and the more, the better.
Accumulating through practice is particularly suitable for developers with a few years of work experience:
- Always pay attention to the development trends of knowledge related to your work and master it comprehensively;
- Organize and summarize in a timely manner, think more, and ask yourself why you are doing this and if there are better ways;
- Finally, output your knowledge, listen to others' opinions, and communicate more.
Different Paths, Common Goals, Deepen Knowledge#
Regardless of the field, different paths lead to the same goal; foundational knowledge is the most worth digging into and requires continuous learning.
Recommended: Michael Ash | The Complete Friday Q&A, which covers content that will help you understand more about memory, performance, and system internals; you can also browse his blog.
Finally, the advancement path for veteran iOS developers (solid iOS foundation + practical experience + work achievements) should be to choose a direction and continue to learn deeply. Learning methods can include implementing a technical prototype from scratch, such as:
- LLVM Compiler: Implement a simple compiler or interpreter, refer to The Minimal C Compiler OTCC (Obfuscated Tiny C Compiler).
- Database: Develop a simple database project, refer to Let’s Build a Simple Database Tutorial.
- Operating System: Learn to create an operating system from scratch, refer to os-tutorial Tutorial, which guides you to develop a small but complete operating system, including system boot, interrupt handling, screen output, keyboard input, basic libc, memory management, file storage system, simple shell, user mode, text editor, multi-process, and scheduling, helping you understand paging, semaphores, memory management, and more deeply.
In addition, veteran iOS developers can also use their mastered tech stack to explore other fields, broadening their technical horizons. For example, using Canadian Team | Perfect allows Swift to be used for server development.
A master leads you to the door, but your practice depends on yourself. Organize your knowledge system well, fill in the gaps, and make your knowledge more systematic!