Bẻ khóa cuộc phỏng vấn iOS

Apr 02 2023
iOS là một phân khúc nhỏ trong lĩnh vực phát triển phần mềm và phạm vi kiến ​​thức bạn cần trang bị khá ổn định trong những năm qua. Chuẩn bị cho một cuộc phỏng vấn iOS không khác nhiều so với một cuộc phỏng vấn frontend.
Ảnh của JESHOOTS.COM trên Bapt

iOS là một phân khúc nhỏ trong lĩnh vực phát triển phần mềm và phạm vi kiến ​​thức bạn cần trang bị khá ổn định trong những năm qua.

Chuẩn bị cho một cuộc phỏng vấn iOS không khác nhiều so với một cuộc phỏng vấn frontend . Phát triển phía khách hàng là một kỹ năng mà chúng ta có thể dễ dàng thể hiện, do đó các công ty thường sẽ mong đợi một danh mục các dự án mà bạn đã từng thực hiện.

Sự cạnh tranh tại các công ty danh tiếng rất khốc liệt với hàng nghìn đơn đăng ký từ các kỹ sư hàng đầu trên thế giới. Bất kể trình độ kỹ thuật và vị trí ứng tuyển của bạn như thế nào, đây là 5 yếu tố sẽ ảnh hưởng lớn đến con đường tìm việc của bạn:

  1. Trình độ kỹ thuật — Giải quyết vấn đề, phát triển ios.
  2. Số năm kinh nghiệm — Càng nhiều càng tốt, ưu tiên từ 3 đến 5.
  3. Dự án cá nhân — Ứng dụng App Store, kho mã nguồn mở.
  4. Nhà tuyển dụng cũ — Càng uy tín càng tốt.
  5. Kỹ năng phỏng vấn — Suy nghĩ thành tiếng, kể chuyện, đặt câu hỏi.
  1. Phỏng vấn qua điện thoại với người quản lý tuyển dụng (0–1)
  2. Phỏng vấn qua điện thoại với các thành viên trong nhóm (1–3)
  3. Bài tập về nhà (0–1)
  4. Phỏng vấn trực tiếp (1)
  5. Thương lượng phiếu mua hàng (0-n)

Trình độ kỹ thuật

Dù yêu hay ghét cấu trúc dữ liệu & giải thuật thì bạn cũng phải dành một khoảng thời gian đáng kể để thực hành. Đa số các công ty đang sử dụng nó và nó sẽ không sớm thay đổi.

iOS là một phân khúc nhỏ trong lĩnh vực phát triển phần mềm và phạm vi kiến ​​thức bạn cần trang bị khá ổn định trong những năm qua. Vào năm 2022, bạn sẽ có kiến ​​thức kha khá về các chủ đề sau:

Kiến thức cơ bản

  • Swift (Giao thức, Generics)
  • Các mẫu (MVC, MVVM, VIPER)
  • Gói (SwiftPM, CocoaPods, Carthage)
  • Đồng thời (GCD, Async/Await, Tasks, Actors)
  • Lập trình phản ứng (Kết hợp, RxSwift)
  • Lưu trữ (Ứng dụng, Cảnh, CoreData, Lĩnh vực)
  • Mạng (URLSession, Alamofire)
  • Công cụ (Xcode, TestFlight, AppStore)
  • Nguyên tắc (API, Giao diện, Mua hàng trong ứng dụng)
  • Nền tảng, SwiftUI, UIKit
  • XCTests, Kết hợp, CoreData
  • CloudKit, StoreKit, PhotoKit
  • CoreGraphics, CoreAnimation
  • Alamofire — Kết nối mạng HTTP tao nhã
  • Kingfisher — Tải xuống và lưu trữ hình ảnh
  • SnapKit — Autolayout DSL cho iOS & OS X
  • RxSwift — Lập trình phản ứng
  • Vương quốc — Cơ sở dữ liệu di động
  • Lottie — Hoạt hình vector After Effects
  • SkeletonView — Chế độ xem tải ưa thích
  • Anh hùng — Quá trình chuyển đổi tao nhã

Bài tập về nhà

Bạn nên dành thời gian làm việc trên ứng dụng của riêng mình để đưa lên App Store. Nó không cần phải quá cầu kỳ: chỉ cần thứ gì đó hoạt động và đủ để cho thấy rằng bạn biết cách sử dụng iOS. Một ứng dụng đủ tốt và bạn sẽ không bao giờ gặp phải những thử thách tào lao như thế này nữa.

Một số ví dụ phổ biến nhất về các nhiệm vụ cần làm là:

  • Tìm nạp một số JSON và hiển thị kết quả.
  • Thêm một tính năng mới vào một cơ sở mã hiện có.
  • Tìm một lỗi trong một dự án hiện có.
  • Thực hiện một tính năng cụ thể, cốt lõi của công ty.

Để thành công trong dự án mang về nhà của bạn, hãy đảm bảo rằng:

  • Phải dễ chạy, xây dựng và cấu hình.
  • Phải được kiểm tra tốt và tài liệu phù hợp.
  • Phải tuân theo một mẫu thiết kế rõ ràng (MVC, MVVM).
  • Tránh sử dụng thư viện của bên thứ ba bằng mọi giá.
  • Codebase phải sạch sẽ, không có lỗi, không có cảnh báo.
  • Không bao giờ vượt quá giới hạn thời gian được chỉ định bởi người phỏng vấn.

Tài nguyên học tập

  • Các trang hướng dẫn: swiftbysundell.com , raywenderlich.com , nshipster.com , objc.io , byby.dev
  • Công việc từ xa: iOS Dev Jobs , RemoteOK , Remote , Remote , We Work Remotely
  • Thử thách thực hành: API công khai , Cảm hứng thiết kế giao diện người dùng di động
  • Câu hỏi phỏng vấn: Swift , SwiftUI