Kỹ năng cần có của một lập trình viên iOS
Giới thiệu
Mới học iOS bạn sẽ có thắc mắc là học gì để đáp ứng yêu cầu mà nhà tuyển dụng đề ra. Mình đã lên ITViec.com làm một bài thống kê chi tiết về các kỹ năng cần thiết cho một lập trình viên iOS. Mình thống kê được khoảng 50 công ty đang tuyển iOS.
Nội dung thống kê được lấy từ ITViec.com
Do các job description tiếng Anh, tiếng Việt lẫn lộn, cũng không có cấu trúc gì nên mình phải làm thủ công là liệt kê rồi đếm.
Đa số phần job description sẽ có 3 phần quan trọng, liên quan đến kỹ năng của ứng viên:
Kỹ năng/yêu cầu bắt buộc có
Kỹ năng nếu có sẽ là lợi thế
Số năm kinh nghiệm yêu cầu
Kỹ năng bắt buộc có của lập trình viên iOS
Kỹ năng
Số lượng
49
Thành thạo Objective-C
49
Có bằng đại học/cao đẳng
48
RESTful web service, xử lý JSON,XML
45
Làm việc nhóm
42
Tiếng Anh thành thạo
35
Có app trên AppStore
35
Storyboard, Xib Autolayout
15
Cấu trúc dữ liệu - Giải thuật
15
Unit test
12
Git
12
Multi-threading
11
9
CoreData
8
Hướng đối tượng
8
Thành thạo C++
7
SQLite
7
Realm
7
Tiếng Anh cơ bản
4
Biết Android
4
Swift hoặc Objective-C chắc chắn là bắt buộc. Một số công ty sẽ chỉ tuyển Objective-C hoặc Swift. Nhưng đa số đều chấp nhận cả hai ngôn ngữ này.
Các kỹ năng như làm việc với Web service, JSON; làm việc nhóm; tiếng Anh là bắt buộc phải có.
Ngoài ra, nhà tuyển dụng cũng yêu cầu ứng viên phải có bằng đại học cũng như có ứng dụng trên Appstore.
Số năm kinh nghiệm
Số năm kinh nghiệm
Số lượng
1-3 năm
24
3-5 năm
18
\> 5 năm
8
Khoảng một nửa công ty chấp nhập ứng viên ở mức junior khoảng 1-3 năm kinh nghiệm. Những công ty lớn, hoạt động lâu sẽ cần những ứng viên trên 5 năm kinh nghiệm.
Kỹ năng nếu có sẽ là lợi thế
Kỹ năng
Số lượng
Tiếng Anh thành thạo
14
React Native
12
Biết Android
9
Có app trên AppStore
6
Image processing
6
3
3
OpenCV
2
Machine learning
2
DLNA and uPnP
1
Appium
1
Testing skill
1
TFS, SVN
1
Xamarin
1
Photoshop
1
Tiếng Anh thành thạo và React Native là 2 kỹ năng nice-to-have khi ứng tuyển vị trí lập trình viên iOS. Có lẽ nhiều công ty muốn kết hợp kinh nghiệm là app native với React Native làm giảm thời gian phát triển ứng dụng.
Kết
Vì mình làm thủ công nên có thể có sai sót. Mình xin nhấn mạnh đây là thống kê từ job description . Mà HR là người đăng những yêu cầu này. Khi bạn đi phỏng vấn, công ty sẽ có những anh leader, dev hỏi những điều khác so với JD. Ví dụ JD không ghi là hướng đối tượng hay cấu trúc dữ liệu/giải thuật nhưng khi phỏng vấn họ có hoàn toàn có thể hỏi những phần này.
Vì thế bài thống kê này chỉ có tính tham khảo tương đối.