Bo2SS

Bo2SS

1 Basics (Best Learning Path)

The author, based on their own personal experience and observations of excellent developers around them, shares the learning path from a beginner to an expert, hoping to help you avoid some detours and grow quickly.

iOS developers can be divided into four categories:

  1. Developers with absolutely no background;
  2. Developers who have just entered the iOS field;
  3. Developers with some practical iOS development experience;
  4. Seasoned iOS developers.

Let's talk about different advanced paths for different types of developers below~


Let's first take a look at learning materials for developers with absolutely no background:

  • Learn through books: "iOS Programming" latest version, covering basic aspects such as programming language, Cocoa design patterns and control usage, Xcode tips, etc.
  • Learn through examples: APPCODA website, where each tutorial is very easy to understand and guides you step by step in writing programs.

PS: For elementary and middle school students, you can refer to the highly upvoted answer to the question "How can a 12-year-old get started with iOS programming?" on Zhihu.

Don't Neglect the Basics#

Basic knowledge covers a wide range and tends to be more theoretical. It is not easy to master it without practice. However, it doesn't mean that basics are not important. Essential basics must be well understood. So, for iOS developers, what basics do they need to learn from the beginning?

Developers who have just entered the iOS field can be further divided into three categories, each with a different learning path:

  • Students: Stanford University | App Development Course, which covers the most basic knowledge required to develop an app, including MVC architecture, iOS programming language basics, multitouch, animations, view controller lifecycle, scroll view, multithreading, auto layout, drag and drop, table view, collection view, text field, persistence, pop-ups, notifications, app lifecycle, storyboards, core motion, camera, etc. Here's a synchronized Chinese subtitle project.
  • Recent graduates who have just started working: Apple Official Documentation, refer to this documentation for the knowledge needed in actual work. The official code examples are well-structured and cover various categories such as app frameworks, graphics, app services, media, development tools, and system. Here's the official Apple iOS Development Guide (based on Swift).
  • Experienced professionals transitioning to iOS development from other fields: RayWenderlich website, where each tutorial provides detailed guidance to master specific knowledge areas based on job requirements.

After mastering the basics, how can you continue to improve your iOS development skills?

Accumulate Through Practice#

For domain-specific knowledge related to work practice, it is important to be greedy and accumulate as much as possible.

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 them comprehensively.
  • Regularly organize and summarize, do some thinking, and ask yourself why you do things a certain way and if there is a better approach.
  • Finally, share your knowledge and listen to others' opinions, and engage in more communication.

Different Paths, In-depth Knowledge#

Regardless of the field, different paths converge, and underlying knowledge is the most worthwhile and requires continuous learning.

Recommended: "Michael Ash | The Complete Friday Q&A" book, which covers more about memory, performance, and system internals. You can also explore his blog.

Finally, the advanced path for seasoned iOS developers (solid iOS foundation + practical experience + work achievements) should be to choose a direction for continuous in-depth learning. One way is to implement a technical prototype from scratch, such as:

  • LLVM Compiler: Implement a simple compiler or interpreter. You can refer to the Obfuscated Tiny C Compiler (OTCC).
  • Database: Develop a simple database project. You can refer to the Let’s Build a Simple Database tutorial.
  • Operating System: Learn to create an operating system from scratch. You can refer to the os-tutorial, which guides you in developing a small but complete operating system, including system booting, interrupt handling, screen output, keyboard input, basic libc, memory management, file storage system, simple shell, user mode, text editor, multiprocessing, scheduling, etc., helping you gain a deeper understanding of paging, semaphores, memory management, and other knowledge.

In addition to these, iOS experts can also use their mastered technology stack to explore other fields and broaden their technical horizons. For example, using Perfect, a Canadian team, allows Swift to be used for server development.

The master leads the way, and personal practice is key. Take the time to organize your knowledge system, fill in the gaps, and make your knowledge more systematic!

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.