[2022] LỘ TRÌNH HỌC LẬP TRÌNH iOS

Ngày đăng: 05/11/2020   -    Cập nhật: 15/02/2022
Ngày càng có nhiều công ty phát triển mạnh mẽ dựa vào ứng dụng di động, do đó, nhu cầu tuyển dụng lập trình viên iOS cũng ngày càng cao.


Sự thiếu hụt nhân lực có thể làm được việc khiến lương ngày càng cao, ngay cả đối với các vị trí lập trình viên iOS sơ cấp.


Vì thế, có thể hiểu được là ngày càng nhiều người muốn học lập trình iOS để bắt đầu sự nghiệp lập trình viên của mình.


Tất nhiên, không phải tất cả mọi người đều chăm chăm tìm kiếm lương cao.


Vẫn có nhiều người trong chúng ta muốn học lập trình ứng dụng iOS để tạo ra điều gì đó đáng để tự hào, điều này cũng tạo nên sự khác biệt của mỗi một lập trình viên iOS.


Tuy nhiên, để học lập trình iOS cần phải nỗ lực một chút. Để giúp bạn bắt đầu tốt hơn, đây là lộ trình chi tiết học lập trình iOS.



Lộ trình học lập trình iOS (Chi tiết nhất)
 

Mục lục:




Hãy cùng bắt đầu với phần đầu tiên.


1. LẬP TRÌNH IOS CÓ PHÙ HỢP VỚI BẠN?



Điều đầu tiên bạn cần quyết định là việc lập trình ứng dụng iOS có dành cho bạn hay không.


Mặc dù mức lương cho các lập trình viên iOS rất hấp dẫn nhưng tiền thường không phải là động lực đủ tốt. Và lập trình cũng đòi hỏi một số kỹ năng và đặc điểm tính cách nhất định.


Nhu cầu tuyển dụng và mức lương lập trình viên iOS cao



Một trong những lý do chính khiến mọi người muốn trở thành nhà phát triển iOS là vì nhu cầu và mức lương. Các ứng dụng đã tạo ra một nền kinh tế mới trị giá 120 tỷ đô la.


Và trên trang web của mình, Apple cũng khoe khoang về việc tạo ra 2 triệu việc làm chỉ riêng ở Mỹ.


Đấy là không tính các công ty gia công cho Apple ở Trung Quốc, Ấn Độ..... và hàng loạt nhà thầu phụ khác.


Và hàng vạn lập trình viên iOS có thể tham gia vào miếng bánh tỷ đô này bằng cách phát hành ứng dụng của họ lên Apple Store.


Nhìn chung, mức lương cho các lập trình viên là khá cao và điều đó cũng đúng đối với các lập trình viên iOS.


Tuy nhiên, bạn có thể kiếm được bao nhiêu phụ thuộc vào nhiều yếu tố. Cái chính là vị trí của bạn và kỹ năng / kinh nghiệm của bạn.


Theo như thống kê trên Glassdoor (Trang web thống kê, đánh giá công ty hàng đầu thế giới), mức lương của lập trình viên iOS có thể nhận được từ:



  • Thấp nhất khoảng 64.000 $ / năm
  • Trung bình khoảng 96.000 $ / năm
  • Cao nhất khoảng 140.000 $ / năm


Còn ở Việt Nam, mức lương lập trình viên iOS có thể nhận được là:


Mức lương lập trình viên iOS có thể nhận được (2020)

(Số liệu theo BC của Vietnamworks năm 2020)


Tuy nhiên, không phải lập trình viên iOS nào cũng có mức lương hơn 1.500 $ đâu. Nó còn phụ thuộc vào kỹ năng của bạn:


Mức lương lập trình viên iOS nhận được phụ thuộc vào kỹ năng

(Số liệu theo BC của Vietnamworks năm 2020)
 


Và trong nghành công nghệ thông tin này...

 

Lý do vì tiền và đam mê là chưa đủ



Mặc dù tiền ai cũng yêu tiền, nhưng nhiều lập trình viên iOS thành công lại bắt đầu vì nó.


Trong năm năm qua, mình đã dành nhiều thời gian tương tác với những người cùng ngành để xem điều gì đã thúc đẩy họ đến với nghề lập trình.


Một số thừa nhận họ ngay họ làm vì tiền, và không có gì sai cả.


Nhưng cái mình nghe được nhiều là:


 
  • Họ muốn làm, muốn tạo ra cái gì đó thú vị
  • Tìm kiếm thứ gì thách thức họ
  • Thứ gì đó giúp họ hiện thực hóa các ý tưởng sáng tạo
  • Họ muốn làm startup
  • Muốn tìm việc ở các tập đoàn lớn, đa quốc gia
  • Muốn làm freelancer
  • ...


 
Nói chung, các lập trình viên tự hào về nghề của họ. Họ không coi nghề nghiệp của họ chỉ là một cách để kiếm tiền.



Và bạn cũng không thể chỉ bắt đầu bằng đam mê.


Đam mê là chưa đủ đâu.


Nếu bạn ghét nó, bạn sẽ không đi xa.


Nhưng đam mê cũng chỉ là phù du. Bạn cần thêm một thứ gì đó khác để giúp bạn tiếp tục.


Và đam mê không phải lúc nào cũng đến ngay từ đầu. Thông thường, nó chỉ xảy ra sau khi bạn thành thạo một kỹ năng nhất định.


 

Chính xác thì lập trình viên iOS làm gì?


 
Đây có thể là một câu hỏi ngớ ngẩn, nhưng không phải vậy. Mình có thể nghe thấy một số bạn nói:


"MỘT LẬP TRÌNH VIÊN iOS LẬP TRÌNH CÁC ỨNG DỤNG iOS"


Đúng.


Nhưng nó có ý nghĩa gì?


Là một lập trình viên, bạn sẽ dành phần lớn thời gian để lập trình. Điều đó có nghĩa là gõ từng dòng code trong IDE của mình.


Không phải bất cứ đoạn văn bản nào bạn nghĩ ra đâu.


Có thể bạn sẽ viết chương trình bằng ngôn ngữ lập trình Swift, đây là ngôn ngữ chính thức mà bạn sử dụng để viết hướng dẫn cho máy tính.


Ví dụ một đoạn code Swift:




struct Account {
    private (setvar transactions: [Transaction]
    
    var balance: Int {
        var balance = 0
        for transaction in transactions {
            balance += transaction.amount
        }
        return balance
    }
    
    mutating func add(_ transaction: Transaction) {
        transactions.append(transaction)
    }
}
 


Bạn sẽ không làm là thiết kế ứng dụng iOS.


Đó là công việc của một nhà thiết kế giao diện người dùng, không phải của một lập trình viên (Recommend bạn nên biết về nguyên tắc thiết kế và biết thiết kế cơ bản để làm lập trình tốt hơn).


Thiết kế giao diện người dùng là một lĩnh vực bản thân nó cũng cần có thời gian để nghiên cứu.


Đó là một kỹ năng có thể hữu ích (nhiều) cho sự nghiệp của bạn (sau này) hoặc nếu bạn muốn tự tạo ra ứng dụng của riêng bạn.


Là một lập trình viên, bạn sẽ làm việc với các nhà thiết kế để có giao diện trực quan của ứng dụng. Sau đó, bạn sẽ chuyển hóa các bản thiết kế này thành ứng dụng thật sự.


Điều này có nghĩa là bạn không cần phải học cách sử dụng các công cụ thiết kế như Sketch, Figma hoặc Omnigraffle.


Thay vào đó, bạn sẽ sử dụng một số công cụ trực quan để xây dựng ứng dụng, bạn sẽ dành phần lớn thời gian để gõ từng dòng code.



Để trở thành lập trình viên iOS cần những gì?



Gõ code không phải là việc dành cho một nhà văn hay nhà thơ có tâm hồn nghệ thuật, bay bổng.


Những đặc điểm quan trọng của một lập trình viên là:



  • Tư duy logic và giải quyết vấn đề
  • Lý luận không gian và thiết kế hệ thống
  • Tư duy trừu tượng, trí tưởng tượng và óc sáng tạo để tìm ra giải pháp.


Những đặc điểm này đều liên quan đến sự thông minh, IQ. Vì thế mà các trường công nghệ thông tin thường chọn tuyển sinh theo khối A.


Ngoài ra, bạn còn cần phải tìm hiểu và xem xét đến tính cách của mình nữa.


Bạn cũng có thể tìm làm các bài kiểm tra trực tuyến, sinh trắc học trên Google theo từ khóa ENFP và INTJ (dựa trên mô hình Myers-Briggs)


Nhưng nó cũng không đáng tin cậy lắm bởi khi trả lời các câu hỏi, lý trí chủ quan của bạn sẽ tạo ra kết quả.


Trong khi tính cách lại là phần sâu bên trong nội tâm. Nó chỉ đúng nếu bạn trả lời thật lòng mà không chỉ "Cố gắng chọn phương án tốt nhất".



Nói chung, một lập trình viên thường là những người (Phân tích dựa trên mô hình Big Five):


  • Có tính cởi mở cao: Đặc điểm này dù sao cũng có tương quan với trí thông minh và với những đặc điểm trí tuệ .

  • Thân thiện / Dễ tính: Tính cách này giúp bạn trở thành một đồng đội tốt hơn. Nhưng quá thân thiện / dễ tính lại khó giúp bạn thương lượng mức lương cao hơn, đề xuất tăng lương, thăng chức hay tự mở công ty riêng.

  • Tận tâm: Tính cách này thường có ích trong bất kỳ lĩnh vực nào, là chỉ số quan trọng thứ hai để đánh giá thành công trong cuộc sống (chỉ số đầu tiên là IQ). Kỷ luật tự giác, trật tự và chú ý đến chi tiết cũng sẽ rất hữu ích để viết, sắp xếp và sửa lỗi. Nếu bạn có mức độ tận tâm thấp, bạn có thể tự làm cho mình.

  • Thường có tính hướng ngoại thấp: Điều này có ích cho việc lập trình, vốn thường là một công việc đơn độc. Điều đó không có nghĩa người có tính hướng ngoại cao lại không thể là lập trình viên.

  • Thần kinh ổn định: Nếu bạn không có thần kinh ổn định, hay nhạy cảm, lo lắng thì tốt nhất nên tìm kiếm một công việc ổn định bởi ngành lập trình này dễ bị "sốc" lắm.


Tiếp đến, trước khi bắt đầu học viết cái gì đó, bạn cần phải có công cụ.


2. CÔNG CỤ CẦN THIẾT ĐỂ HỌC LẬP TRÌNH iOS



Để trở thành một lập trình viên iOS, bạn không cần nhiều.


Nhiều công cụ, phần mềm bạn sẽ được sử dụng sẽ miễn phí. Chỉ có việc mua một máy tính Mac mới và iPhone hoặc iPad là khơi khó một tý. Nhưng đừng lo, vẫn có giải pháp thay thế rẻ hơn.



Để học lập trình iOS có cần Macbook?



Macbook là thiết bị tốt nhất để học lập trình iOS


Mặc dù về mặt kỹ thuật, có thể chạy macOS trên máy Windows hoặc Linux, nhưng nó không hề dễ thiết lập. Hơn nữa, nó không được phép theo giấy phép của Apple.


Và sẽ có những thứ rắc rối lặt vặt.


Hãy tuân thủ theo cách chơi của Apple là cách tốt nhất.


Đi đường tắt sẽ gây ra những hậu quả tâm lý có hại về lâu dài. Và nếu bạn không đầu tư vào bản thân, làm sao bạn có thể mong đợi người khác đầu tư vào bạn?


Mình biết là Macbook rất đắt.


Nhưng bạn không cần máy phiên bản mới nhất trên thị trường. Bạn có thể tìm thấy một số máy cũ giá rẻ với một mức giá hợp lý.


Bạn chỉ cần đảm bảo rằng nó có thể chạy phiên bản macOS mới nhất và có thể là phiên bản tiếp theo nếu Apple đã công bố.


Hiện tại, mình khuyên bạn nên dùng máy tính chạy macOS Catalina để bạn có thể tìm hiểu các công nghệ mới như SwiftUI (sẽ tìm hiểu thêm về điều này sau). Vì Catalina chạy trên các phiên bản Mac từ năm 2012 trở đi, nên không khó để tìm một cái.


Apple công bố các phiên bản iOS và macOS mới hàng năm tại Hội nghị nhà phát triển toàn cầu (WWDC) vào khoảng tháng 6, vì thế hãy theo dõi trang web của họ để biết thêm thông báo.


> Nếu bạn thích hệ sinh thái mã nguồn mở, miễn phí, thiết bị rẻ hơn thì có thể tham khảo: LỘ TRÌNH HỌC ANDROID.



Bạn tạo ứng dụng iOS bằng cách sử dụng Xcode được Apple cung cấp miễn phí



Sau khi có máy Mac, bạn sẽ cần cài đặt Xcode trên đó.


Xcode: IDE tốt nhất để lập trình iOS


Xcode là môi trường phát triển tích hợp (IDE) được hầu hết các lập trình viên sử dụng để lập trình ứng dụng iOS. Bạn có thể tải miễn phí trên App Store hoặc trực tiếp trên trang web của Apple.


Mình thì khuyên bạn nên tải nó trên App Store vì bạn sẽ không cần tạo tài khoản Apple (dù sao đi nữa thì sau này bạn cũng sẽ cần nó). Bạn cũng dễ dàng nhận được các bản cập nhật tự động cho Xcode từ App Store.


Bạn có thể tìm hướng dẫn Xcode tại đây, nhưng đó không phải là hướng dẫn mà mình khuyên bạn nên đọc ngay bây giờ, vì vậy hãy chỉ lưu lại liên kết để tham khảo sau này.


Đó là hướng dẫn sử dụng, vì nó giả định rằng bạn đã biết cách lập trình iOS trước khi đọc bài này.


Thế nên, tốt hơn hết là học cách sử dụng Xcode khi bạn học cách lập trình iOS.



Có thiết bị iOS (iPhone, iPad, Apple TV...) thì tốt nhưng nó không bắt buộc



Và cuối cùng, một câu hỏi phổ biến: Bạn cần iPhone hay iPad?


Nếu bạn đã sở hữu một cái, nó rất tốt.


Nhưng bạn không cần phải mua một cái để học lập trình iOS.


Xcode đã đi kèm với tính năng giả lập iOS cho phép bạn chạy tất cả các ứng dụng bạn tạo trên máy tính của mình.


Mình cũng đã lập trình ứng dụng iOS đầu tiên của mình chỉ bằng trình giả lập. Mình cũng đã làm việc cho nhiều khách hàng nhưng hiếm khi phải chạy thiết bị thật (Vì macOS và Xcode đã làm quá tốt).


Trình giả lập iOS trên Xcode đáp ứng hầu hết các nhu cầu học tập của bạn. Và để cẩn thận, bạn chỉ cần một thiết bị thực để thực hiện thử nghiệm lần cuối cùng trước khi gửi ứng dụng lên App Store mà thôi.


Và trên thực tế, Apple tiếp tục thêm tính năng vào trình giả lập, thế nên bạn còn có thể kiểm thử theo những cách mà thiết bị thật không làm được.


Ví dụ: Bạn có thể nhanh chóng thay đổi cài đặt cho chế độ tối hoặc trợ năng. Hoặc, nếu bạn tạo ứng dụng sử dụng vị trí GPS, bạn có thể tạo tệp có đường đi để giả lập chuyển động, tốt hơn là cầm điện thoại chạy quanh test thử.


Tuy nhiên, đôi khi, bạn có thể cần phải kiểm tra các tính năng không có sẵn trong trình giả lập.


Đối với các chức năng như cảm ứng đa điểm, con quay hồi chuyển, máy ảnh... bạn cần có phải một thiết bị.


Đây là những tính năng nâng cao, vì thế bạn không nên học chúng ngay từ đầu. (Mình sẽ cho bạn biết phải học những gì và theo thứ tự nào ở phần sau của bài viết).


Trong mọi trường hợp, thiết bị cũ vẫn có thể là một lựa chọn hợp lý.


Một lần nữa, hãy đảm bảo thiết bị có thể chạy phiên bản iOS mới nhất để bạn có thể sử dụng các tính năng mới nhất.



3. HỌC SWIFT



Bước đầu tiên cần thiết đối với bất kỳ lập trình viên nào là phải học lập trình.


Đây là một phần quan trọng để trở thành một lập trình viên iOS, vì vậy mình khuyên bạn nên tập trung vào nó trước khi bạn cố gắng tìm hiểu bất kỳ thứ gì khác.



Đừng lo lắng: Bạn sẽ không trở nên lỗi thời



Hãy cùng làm rõ một số thứ có thể khiến bạn lo lắng khi bắt đầu học lập trình iOS.


Apple phát triển với tốc độ nhanh chóng, phát hành những thứ mới mỗi năm.


Bây giờ, có thể bạn đã nghe nói về SwiftUI, UI Framework mới mà Apple phát hành tại WWDC 2019, thay đổi hoàn toàn cách tạo ứng dụng iOS.


Vì thế, bạn có thể cảm thấy là bạn cần phải học mọi thứ một cách nhanh chóng, hoặc “những thứ sắp ra mắt” sẽ khiến những gì bạn đang học trở nên lỗi thời.


Nhưng đừng lo.


Đó không phải là cách thế giới phần mềm hoạt động.


Nền tảng của khoa học máy tính và lập trình vẫn giống nhau trong nhiều thập kỷ và sẽ không sớm thay đổi.


Lịch sử của máy tính thực sự đã trải qua những bước tiến lớn.


Trong một vài thập kỷ, chúng ta đã đi từ những chiếc máy tính lớn lớn bằng cả căn phòng đến những thiết bị di động hiện đại có kết nối Internet mà chúng ta có thể mang theo trong túi.


Nhưng trong khi công nghệ phát triển nhanh chóng, nền tảng của sự phát triển phần mềm vẫn giữ nguyên.


Chỉ cần bạn quen thuộc với nó, bạn có thể chuyển sang bất kỳ công nghệ mới nào mà bạn thích.


Những thay đổi đáng kể như Swift và SwiftUI là có xảy ra, nhưng chỉ 5 năm một lần hoặc lâu hơn.


Dĩ nhiên, để sống tốt hơn trong ngành này, bạn sẽ phải luôn cập nhật kiến ​​thức của mình. Lập trình viên iOS cũng không ngoại lệ. Nhưng bạn có đủ thời gian, cộng đồng cũng cần có đủ thời gian.



Nên học ngôn ngữ Swift hay Objective-C?



Nên học Swift hay Objective-C
 

Như mình đã đề cập ở trên, là một lập trình viên iOS, bạn sẽ dành phần lớn thời gian để lập trình. Vì vậy, điều đầu tiên bạn phải học là lập trình.


Bạn phải sử dụng ngôn ngữ lập trình để tạo ra các chương trình, hướng dẫn cho máy tính làm việc.


Có rất nhiều ngôn ngữ lập trình trên mạng, nhưng việc lập trình hầu như giống nhau trên mọi nền tảng.


Điều này làm cho kỹ năng lập trình của bạn có thể được sử dụng giúp bạn chuyển từ ngôn ngữ này sang ngôn ngữ khác, vì thế không quan trọng bạn học ngôn ngữ nào trước.


Tuy nhiên, tốt nhất là bạn nên học lập trình bằng ngôn ngữ mà bạn sẽ sử dụng để tạo ứng dụng trên iOS và các nền tảng khác của Apple, đó là Swift.


Một vài năm trước, khi Swift lần đầu tiên được giới thiệu để thay thế Objective-C, đã có rất nhiều tranh luận xem nên học Swift hay là Objective-C trước.


Và kết quả là Swift đã thắng cuộc tranh luận đó từ lâu.


Sự ra đời gần đây của SwiftUI càng làm cho lập luận đó trở nên mạnh mẽ hơn, vì vậy nếu bạn tình cờ tìm các bài viết thảo luận về vấn đề này, bạn có thể yên tâm bỏ qua chúng.


Trong mọi trường hợp, đừng quên rằng Objective-C là ngôn ngữ được lựa chọn cho các nền tảng của Apple trong nhiều thập kỷ.


Bạn vẫn có thể phải học nó tại một thời điểm nào đó để làm việc với các dự án cũ. Nhưng cho đến lúc đó, hãy quên chuyện này đi.


Swift là chân ái.


> Cũng giống như nền tảng Android. Bạn có thể HỌC LẬP TRÌNH ANDROID bằng ngữ Java hoặc Kotlin (Ra đời sau Java). Mặc dù Kotlin rất tốt nhưng bạn vẫn sẽ cần học Java nếu muốn làm lập trình viên Android thực thụ.



Học lập trình Swift



Cả ngôn ngữ lập trình Swift và nền tảng iOS đều là hai con thú khổng lồ và sẽ rất khó để học cả hai cùng một lúc.


Vâng, mình biết rằng có nhiều khóa học dạy cả hai cùng một lúc.


Ngay cả Apple cũng làm thế.


Hướng dẫn Swift của Apple có thể là một khởi đầu tốt để bạn có nền tảng và hiểu được liệu bạn có thích lập trình ứng dụng hay không, nhưng mình sẽ không giới thiệu nó nếu bạn nghiêm túc muốn học hỏi.


Mình đã gặp rất nhiều người bối rối vì tiếp cận theo cách đó. Sau khi họ cố gắng rất nhiều để học cả hai chủ đề cùng một lúc, cuối cùng họ cũng chẳng đi đến đâu.


Hơn nữa, bạn có thể phải trả lời các câu hỏi khó về lập trình khi đi phỏng vấn tìm việc. Và nếu chỉ làm theo hướng dẫn đó thì bạn sẽ không thể vượt qua được.


Khuyến nghị của mình là tập trung trong vài tuần để có được nền tảng vững chắc về các khái niệm lập trình trong Swift:



  • Khái niệm cơ bản: Số, Chuỗi, Hằng, Biến và Toán tử.
  • Tập hợp: Array và Dictionanires
  • Cấu trúc điều khiển: if else, switch và các vòng lặp for / while.
  • Types và interfaces: structures và enumerations, functions, methods, protocols và extensions.
  • Các khái niệm lập trình hướng đối tượng: class, inheritance và polymorphism.


Bạn có thể bắt đầu bằng hướng dẫn trên tutorialspoint hoặc xem video trên kênh CodeWithChris.


Tránh sử dụng Swift Laguage Guide trừ khi bạn đã biết lập trình (Đó chỉ là hướng dẫn sử dụng tham khảo và không dạy lập trình từng bước)



Đừng lãng phí thời gian viết blog hoặc cho các hoạt động thừa khác



Điều quan trọng để trở thành lập trình viên iOS là bạn phải hiểu những thứ bạn cần làm và không cần làm.


Các bài viết trên Google có thể sẽ khuyên bạn như “Viết một blog” hoặc “Xuất bản ứng dụng ngay lên App Store”.


Nghe có vẻ như một lời khuyên tốt.


Nhưng thực tế thì lại không tốt đối với bạn.


Tự học lập trình ứng dụng iOS là một nhiệm vụ lớn (đừng tin những người nói với bạn rằng bạn có thể học nó trong vài tuần).


Bất cứ điều gì khiến bạn phân tâm, xa rời nhiệm vụ trọng tâm đều không cần thiết.


Rõ ràng, việc ghi chép những gì bạn học được có thể sẽ tốt. Nhiều người khác viết blog là để làm như vậy.


Nhưng nó không phải là một yêu cầu để học lập trình iOS, thậm chí nhà tuyển dụng cũng không yêu cầu bạn phải có một blog như thế.


Viết bài trên blog sẽ mất rất nhiều thời gian so với những gì bạn đang cố gắng làm: HỌC.


Thêm vào đó, sử dụng bút và giấy sẽ hiệu quả hơn việc ghi chú trên máy tính.


Và cuối cùng, có nhiều cách tìm việc hiệu quả hơn là viết blog mà mình sẽ trình bày ở phần sau.


Vâng, mình biết là có những IT Blogger nổi tiếng. Họ nên rất nổi tiếng bằng cách chia sẻ những thứ họ học được lên Blog.


Vì thế, mình không nói rằng bạn không nên viết blog. Điều mình đang nói là bạn không cần phải làm như thế.


Những gì bạn cần là một kế hoạch, không phải một blog.



4. NỀN TẢNG iOS VÀ SỰ PHÁT TRIỂN CỦA NÓ



Sau khi học lập trình bằng Swift, bước tiếp theo là học cách tạo ứng dụng iOS.


Lập trình iOS là một chủ đề rộng, vì thế có rất nhiều thứ để học hỏi. Nhưng không phải mọi thứ đều quan trọng như nhau


Đây là những gì bạn nên tập trung vào:



Tập trung vào các nguyên tắc cơ bản bạn cần để xây dựng bất kỳ ứng dụng iOS nào



Bạn không thể là một lập trình viên iOS nếu bạn chỉ biết lập trình Swift.


Sau khi đã học Swift, đã đến lúc giải quyết giai đoạn tiếp theo bằng nền tảng iOS.


iOS rất rộng và kèm theo rất nhiều công nghệ, framework và design pattern (Mẫu thiết kế). Mỗi nền tảng đều khác nhau, vì vậy ngay cả khi bạn đã là một lập trình viên, bạn vẫn sẽ phải học cách iOS hoạt động.


Hãy Google...


Bạn sẽ tìm thấy các bài viết chia sẻ về khá nhiều chủ đề. Nhưng không phải tất cả đều quan trọng.


Trước tiên, bạn phải tập trung vào các khái niệm cơ bản mà bạn sẽ cần cho mọi ứng dụng bạn sẽ làm.


Chắc chắn, những thứ như công nghệ thực tế tăng cường (AR), học máy (Machine Learning) hoặc trò chơi điện tử (Game) đều rất hay. Nhưng bạn sẽ không thể sử dụng chúng cho đến khi bạn tìm hiểu nền tảng lập trình iOS.


Mình chưa bao giờ chạm vào chúng trong hơn 10 năm lập trình iOS của mình.


Thực tế là phần lớn các ứng dụng iOS không phải là các ý tưởng sáng tạo đột phá, mà là các ứng dụng Tạo - Đọc - Cập nhật - Xóa (CRUD) đơn giản.


Vì vậy, một số thứ bạn học được sẽ áp dụng cho mọi ứng dụng bạn sẽ viết, trong khi có những công nghệ hot bạn sẽ chẳng bao giờ cần đến.


Đây được gọi là Nguyên tắc Pareto:



20% TẠO RA 80% GIÁ TRỊ


Tức là, bạn chỉ cần học 20% là đủ đáp ứng 80% công việc của lập trình iOS.


Bước đầu tiên, mình khuyên bạn nên làm quen với Nguyên tắc giao diện người dùng của Apple dành cho iOS.


Nó sẽ cung cấp cho bạn cái nhìn tổng quan về các mô hình giao diện iOS thông thường mà bạn có thể tìm thấy trong bất kỳ ứng dụng nào.


Sau đó, bạn có thể giải quyết các chủ đề cơ bản về lập trình iOS mà mình sẽ trình bày trong phần tiếp theo.



Bạn có nên học cách tạo ứng dụng bằng SwiftUI hoặc UIKit không?



Để tạo giao diện người dùng của ứng dụng iOS, bạn cần sử dụng UI Framework.


Vấn đề bây giờ là Apple cung cấp 2 cái (trong số đó)


Framework cũ là UIKit.



UIKit Framework


Nhưng đừng khẳng định “mới hơn thì tốt hơn”.


UIKit đã tồn tại lâu như nền tảng iOS, vì vậy phần lớn các ứng dụng iOS hiện có đều được tích hợp sẵn trong đó.


Nếu bạn muốn có một công việc như một lập trình viên iOS, bạn có thể sẽ cần phải học nó.


Tại WWDC 2019, Apple đã giới thiệu một framework mới có tên SwiftUI (Sẽ thay thế UIKit)



Swift UI


Nhưng SwiftUI là một framework mới, vì vậy nó vẫn chưa hoàn thiện như UIKit. Nhiều tính năng được cung cấp trong UIKit vẫn không có sẵn trong cái SwiftUI.


Mọi thứ chắc chắn sẽ thay đổi, nhưng thật khó để biết được là bao nhiêu.


SwiftUI cũng có một số hạn chế khác. Nó chỉ có sẵn trong iOS 13, vì vậy bạn chỉ có thể sử dụng nó cho các ứng dụng mới nhắm mục tiêu hệ điều hành mới nhất.


Nhiều công ty đã có khách hàng cũ thường chuyển nhắm mục tiêu đến khoảng 2 phiên bản trước phiển bản iOS hiện tại.


Và họ sẽ chỉ áp dụng SwiftUI khi iOS 15 ra mắt.


Vậy thì, bạn nên học SwiftUI hay UIKit?


Đây là câu trả lời hiển nhiên, nhưng không hữu ích. Với tình trạng hiện tại của thị trường, bạn có thể sẽ phải học cả hai.


Tuy nhiên, bạn nên học cái nào trước?


Câu hỏi đó ngày càng khó trả lời hơn. :D


Mấy tháng trước, mình chắc chắn khuyên bạn học UIKit trước vì hầu hết các công ty vẫn đang sử dụng nó. Điều này thậm chí có thể đúng vào thời điểm viết bài, nhưng khi thời gian càng qua đi, mình cũng không dám chắc nữa.


Hiện nay mọi người đang rất thích thú với SwiftUI. Trong báo cáo khảo sát này, bạn có thể thấy rằng 9% người được hỏi đã nói họ tạo ứng dụng bằng SwiftUI. Nhưng 60% người được hỏi tuyên bố họ sẽ sử dụng SwiftUI cho ứng dụng tiếp theo.



60% người được hỏi tuyên bố họ sẽ sử dụng SwiftUI cho ứng dụng tiếp theo.


SwiftUI cũng có một ưu điểm khác: Nó hoạt động trên tất cả các nền tảng của Apple. Bạn cũng sẽ có thể tận dụng các kỹ năng của mình để xây dựng các ứng dụng macOS, watchOS và tvOS.


Vì thế, câu trả lời thực sự là: Phụ thuộc vào chính bạn.


Nếu bạn chỉ muốn tạo ứng dụng cho chính mình, SwiftUI có lẽ là cách tốt nhất.


Nhưng nếu bạn định kiếm được một công việc với tư cách là một lập trình viên iOS, công ty bạn định làm sẽ quyết định thay bạn.


Và cho dù quyết định của bạn như thế nào thì...



Đây là những gì bạn nên học ở mỗi UI framework



Một trong những lợi thế của SwiftUI so với UIKit là tính đơn giản của nó (Đa phần là như vậy. Nhưng ở một mức độ nhất định, một số khía cạnh của SwiftUI không dễ nắm bắt).


UIKit có nhiều phần chuyển động và bạn cần tìm hiểu tất cả chúng để tạo ứng dụng iOS. Dưới đây là danh sách các khái niệm chính bạn nên học:



  • Mô hình Model - View - Controllerview controllers. MVC là mẫu thiết kế hướng dẫn cách bạn cấu trúc ứng dụng iOS. Bộ điều khiển chế độ xem là một phần của MVC và là thành phần trung tâm của UIKit.

  • Hệ thống phân cấp viewAuto layout. Những khái niệm này là nền tảng để xây dựng giao diện người dùng trên các thiết bị iOS với các kích thước khác nhau.

  • ContainersXcode storyboards. Vùng chứa là một loại trình điều khiển chế độ xem đặc biệt cho phép bạn cấu trúc luồng điều hướng trong ứng dụng của mình. Bảng phân cảnh là một công cụ trực quan để thiết kế và tổ chức các luồng điều hướng như vậy.

  • Table views. Các ứng dụng iOS cần quản lý màn hình với danh sách cuộn dài. Mặc dù table views chỉ là một trong nhiều thành phần của UIKit, nhưng ở đây mình liệt kê chúng một cách riêng biệt vì chúng có nhiều phần chuyển động và không đơn giản.


Nếu SwiftUI là lựa chọn của bạn, Apple vẫn chưa phát hành nhiều tài liệu về nó. Nhưng bạn có thể bắt đầu với hướng dẫn SwiftUI này của Apple.


Nó sẽ cung cấp cho bạn một ý tưởng về cách SwiftUI hoạt động nhưng đừng coi mọi thứ bạn thấy trong các hướng dẫn của Apple như một phương pháp hay nhất.


Cái bạn cần là căn bản và thử nghiệm.



iOS framwork phổ biến nhất là Foundation



SwiftUI và UIKit chỉ là các UI framework.


Có nhiều thứ để lập trình ứng dụng iOS hơn là tạo giao diện người dùng. Framework cơ bản khác để lập trình iOS mà bạn sẽ cần học là Foundation.


Foundation chứa rất nhiều tính năng. Tuy nhiên, không giống như hai UI framework của iOS, bạn sẽ không cần phải làm quen với mọi thứ mà nó có.


Có những phần của nó mình cũng chưa bao giờ sử dụng và nhiều phấn khác mình cũng hiếm khi chạm vào.


Trong mọi trường hợp, bạn thường học các phần liên quan của framework này khi theo học một khóa học lập trình iOS. Nó không phải là thứ để bạn học riêng.


Dưới đây là danh sách ngắn một số tính năng của nó để bạn tiện theo dõi.


Một số trong số này là các tính năng nâng cao mà bạn sẽ cần tìm hiểu sau này. mình sẽ liệt kê những thứ đó trong phần tiếp theo.



  • Foundation cũng chứa một số basic types ngoài loại được cung cấp bởi Swift. Những thứ quan trọng nhất là URLData, nhưng bạn thường học cách sử dụng những thứ này khi xử lý bộ nhớ và mạng (sẽ tìm hiểu thêm về điều này sau).

  • Nhiều ứng dụng xử lý ngày và giờ. Foundation chứa date and times để quản lý lịch, ngày, giờ, múi giờ và tính toán theo lịch.

  • Trong Foundation, bạn cũng tìm thấy nhiều định dạng (data format) cho số, đơn vị tiền tệ, tên người, ngày giờ và các phép đo khác.

  • Nói về các phép đo, Foundation chứa nhiều đơn vị đo lường (unit measurement) hữu ích cho việc chuyển đổi. Nếu ứng dụng của bạn cần xử lý độ dài, diện tích, trọng lượng, khối lượng, tốc độ, gia tốc, năng lượng, nhiệt độ, ánh sáng hoặc điện...


Tìm hiểu Git để quản lý các thay đổi trong một dự án và xuất bản code trên GitHub



Mình có thể nói rằng công cụ quan trọng thứ hai đối với các lập trình viên iOS sau Xcode là Git.


Git là một hệ thống kiểm soát phiên bản. Bạn sẽ cần phải học nó vì nó thường là một yêu cầu để làm việc nhóm, nhưng nó không phải là thứ bạn nên tập trung ngay từ đầu.





Kiểm soát phiên bản là cách bạn theo dõi sư thay đổi của code trên các dự án. Đặc biệt cần thiết khi phối hợp các lập trình viên trong một nhóm, nhưng cũng rất tốt để khi theo dự án cá nhân của bạn.


Có nhiều hệ thống điều khiển phiên bản khác nhau, nhưng Git là nổi bật nhất.


Không sớm thì muộn, bạn cũng sẽ gặp GitHub, một nền tảng khổng lồ, dựa trên Git, mà nhiều lập trình viên sử dụng để chia sẻ code và điều phối các dự án.


Một giải pháp thay thế cho GitHub ít phổ biến hơn là Bitbucket, nó cũng tích hợp với các công cụ trực tuyến khác mà nhiều công ty sử dụng.


Xcode có một số tích hợp Git, sẽ tốt hơn theo thời gian nhưng vẫn còn hạn chế. Bạn sẽ cần học cách sử dụng Git từ Command line để sử dụng tất cả sức mạnh của nó.


Ngoài ra còn có các công cụ trực quan cho Git như Tower, SourcetreeGitHub Desktop, có thể giúp cuộc sống của bạn dễ dàng hơn.


Nhưng thành thật mà nói, mình thấy chúng kém linh hoạt hơn so với sử dụng Command line.



5. NÂNG CẤP LEVEL LẬP TRÌNH IOS



Học cách để lập trình ứng dụng iOS đơn giản có thể giúp bạn bắt đầu một sự nghiệp, nhưng đó chỉ là một cột mốc quan trọng.


Trở thành một lập trình viên đòi hỏi nhiều thứ hơn.


Bạn sẽ cần phải học thêm các kỹ năng khác để trở thành top 3%.



Sau khi có được những nền tảng vững chắc, bạn nên mở rộng kiến ​​thức sang các chủ đề khác về phát triển phần mềm.



Khi bạn học được các trụ cột cơ bản, kỹ thuật lập trình và nền tảng của iOS, bạn có thể bắt đầu phát triển thêm.


Bây giờ, bạn sẽ có thể nhận được một số công việc (đơn giản) vào với tư cách là lập trình viên iOS hoặc tự lập trình ứng dụng iOS của riêng bạn.


Không phải tất cả các công việc đều có yêu cầu giống nhau, vì vậy hãy nhớ xem  phần tiếp theo của bài viết này.


Bạn sẽ biết nhiều về iOS hơn những gì mình biết khi mình nhận công việc đầu tiên với tư cách là lập trình viên iOS.


Trong mọi trường hợp, nếu bạn muốn trở nên giỏi hơn (tiến lên Expert) hoặc lên các vị trí cao hơn với tư cách là một lập trình viên, bạn cần phải mở rộng kiến ​​thức của mình.


Dưới đây là một số chủ đề quan trọng bạn nên tập trung vào.



Lưu trữ dữ liệu



Hầu hết các ứng dụng iOS cần lưu trữ dữ liệu vĩnh viễn. Có một số công nghệ iOS để lưu trữ dữ liệu, mỗi công nghệ đều có ưu và nhược điểm. Dưới đây là danh sách ngắn gọn những gì bạn cần học.


  • Trước hết, để lưu dữ liệu trong ứng dụng của bạn trên đĩa, bạn cần có cách chuyển đổi nó thành dữ liệu nhị phân. Cách tiêu chuẩn để làm điều này trong iOS là sử dụng các giao thức Codeable. Các định dạng dữ liệu phổ biến nhất trong iOS là Property list và JSON Data. Gần đây, JSON Data đã trở nên phổ biến hơn vì nó cũng được sử dụng để truyền dữ liệu trên internet.

  • Khi bạn có dữ liệu ở định dạng nhị phân, bạn cần có cách để lưu trữ nó. Foundation Framework cung cấp một API đơn giản để lưu trữ các tệp trong file system. Đây là lựa chọn tiêu chuẩn để lưu trữ dữ liệu của người dùng.

  • Thay vào đó, nếu bạn muốn lưu trữ cấu hình của ứng dụng, Foundation sẽ cung cấp Preferences system.

  • Hầu hết dữ liệu có cấu trúc phân cấp. Tuy nhiên, đôi khi bạn sẽ có dữ liệu có mối quan hệ phức tạp. Để làm được điều đó, bạn có thể sử dụng Core Data. Nhưng, nhiều lập trình viên nghĩ Core Data là giải pháp lưu trữ duy nhất có sẵn trong iOS. Trong thực tế, nó là giải pháp phức tạp nhất.


Cơ sở dữ liệu và ngôn ngữ SQL



Cơ sở dữ liệu là một cách khác để lưu trữ dữ liệu. Chúng được sử dụng trên nhiều nền tảng, từ web đến ứng dụng di động.


Quản lý cơ sở dữ liệu phức tạp hơn nhiều so với các giải pháp lưu trữ mà mình đã liệt kê ở trên, và đó là lý do tại sao nó được viết riêng.


iOS sử dụng SQLite, là một cơ sở dữ liệu quan hệ. SQLite là một công nghệ đa nền tảng, vì vậy có thể yên tâm học nó.


Tuy nhiên, bạn sẽ không phải gặp nó thường xuyên. Trong hơn mười năm, chỉ có một số dự án mình làm việc trên SQLite.


Trước hết, để làm việc với cơ sở dữ liệu quan hệ, bạn cần hiểu cách thiết kế bảng cơ sở dữ liệu bằng cách sử dụng mô hình Mối quan hệ thực thể (Entity-relationship model).


Khi bạn đã có các bảng, bạn quản lý dữ liệu của chúng bằng một ngôn ngữ cụ thể gọi là SQL. Đây không phải là một ngôn ngữ lập trình như Swift, mà là một ngôn ngữ truy vấn cho phép bạn kết hợp và lọc dữ liệu.


Tìm hiểu các loại cơ sở dữ liệu và mất thời gian. Bạn chỉ nên học nó khi đến lúc cần thiết.



Networking và REST APIs



Nhiều ứng dụng hiện đại lấy dữ liệu của chúng từ internet.


Foundation Framework cung cấp một URL loading system, nhưng học cách thực hiện các yêu cầu mạng trong ứng dụng của bạn cũng không đơn giản như học cách sử dụng một vài class mới.


Để có thể tạo các ứng dụng được nối mạng mạnh mẽ và gỡ lỗi chúng đúng cách, bạn cần tìm hiểu cách hoạt động của Internet nói chung.


Điều này bao gồm các khái niệm như giao thức HTTP, URL và hệ thống DNS, bộ định tuyến (Router) và Server, REST API được thiết kế như thế nào, CDN là gì, v.v.


Đây lại là một chủ đề khá rộng, nhưng vì bạn sẽ cần nó trong nhiều ứng dụng, nên cuối cùng bạn cũng cần tìm hiểu về nó.



Học thuật toán và cấu trúc dữ liệu



Chúng ta viết chương trình để giải quyết vấn đề. Trong khi nhiều vấn đề trong số này là đơn giản, có những vấn đề phức tạp đòi hỏi các giải pháp cụ thể.


Khi bạn học lập trình, bạn học các cấu trúc dữ liệu đơn giản như array và dictionaries...


Nhưng trong một số trường hợp, bạn cần những cái phức tạp hơn.


Một số ví dụ là stackqueues, bloom filters, linked list, skip list, treegraph (Cái nào bạn cần phụ thuộc vào vấn đề bạn đang cố gắng giải quyết)


Mỗi loại cấu trúc dữ liệu này có các thuật toán cụ thể để đọc, thêm và xóa dữ liệu, vì vậy bạn cũng cần phải học những thuật toán đó. Và đây không phải là những thuật toán duy nhất bạn có thể cần học.


Có nhiều thuật toán để giải quyết các vấn đề chung không liên quan đến cấu trúc dữ liệu cụ thể. Một số ví dụ là 
 greedy algorithmsconstraint satisfaction problemslinear programming, the simplex algorithmA* và các thuật toán AI và máy học khác.


Các thuật toán này tương đối phức tạp, vì vậy bạn không cần phải biết rõ chúng. Bạn luôn có thể xem lại khai triển của chúng khi cần thiết. Nhưng ít nhất bạn nên biết là chúng nó tồn tại.



Design patterns, Principles và Paradigms



Với các kiến thức ở trên, bạn hoàn toàn ổn nếu ứng dụng của bạn là nhỏ.


Nhưng khi một dự án phát triển, bạn cần nhiều công cụ hơn để xử lý sự phức tạp không thể tránh khỏi của chúng.


Đối với những điều này, bạn sẽ cần phải học các design pattern (mẫu thiết kế), principles (nguyên tắc) và paradigms (mô hình chung). Đây là những chủ đề không liên quan, mặc dù mình đang liệt kê tất cả chúng trong cùng một phần.


Một số ví dụ là unit testing, SOLID, quản lý bộ nhớ với ARCfunctional programmingprotocol-oriented programming, và concurrency...



Bạn không cần phải nghiên cứu code của các ứng dụng khác



Một số lời khuyên tồi tệ nhất mà bạn thấy trên mạng là xem code của các ứng dụng khác.


Mặc dù bạn có thể học điều gì đó từ bất cứ thứ gì, nhưng đọc code không có tài liệu kèm theo là cách kém hiệu quả nhất để học lập trình iOS.


Bạn sẽ học vẽ chỉ bằng cách nhìn vào những bức tranh đã hoàn chỉnh?


Đọc code của người khác, khi bạn không biết rõ ý định của họ là làm gì, tại sao họ lại làm thế này mà không làm thế kia thì đọc để làm gì.



Đừng lãng phí thời gian.


Ngoài ra, ai có thể cam kết với bạn là các đoạn code bạn đang đọc được viết chính xác và là giải pháp tốt nhất?


Thậm chí có thể bạn có thể đang xem phải phiên bản tồi tệ nhất.


Hãy học từ các nguồn đáng tin cậy, không phải từ các chương trình ngẫu nhiên bạn có được từ trên mạng.


> Ngoài ra, bạn cũng có thể nghiên cứu thêm về LẬP TRÌNH WEB VỚI JAVA hoặc LẬP TRÌNH WEB VỚI PHP để hiểu hơn về bức tranh lớn. Bởi vì bất kỳ doanh nghiệp kinh doanh nào sử Ứng dụng di động cũng kèm theo ít nhất một Website.



6. CÁCH TÌM VIỆC LẬP TRÌNH iOS



Nếu bạn muốn có một công việc với tư cách là một lập trình viên iOS, thì bạn nên bắt đầu thật sớm.


Điều quan trọng là phải tìm hiểu để xem nhu cầu thị trường đang cần là gì để định hướng học tập.


Tiếp xúc với các công ty sớm cũng có thể mang lại cho bạn lợi thế trước các đối thủ của bạn.



Bạn không cần phải lập trình một ứng dụng iOS hoàn chỉnh hoặc phát hành ứng dụng trên App Store để tìm việc làm



Không có gì tốt hơn là kinh nghiệm.


Mình không phản đối điều đó.


Nếu bạn cố gắng xây dựng một ứng dụng hoàn chỉnh thì sẽ khiến bạn nổi bật.


Nhưng việc xây dựng một ứng dụng đủ tốt để được phát hành cần rất nhiều thời gian.


Và cũng lhông phải mọi thứ bạn làm đều là cơ hội học hỏi.


Phát triển phần mềm chủ yếu bao gồm các nhiệm vụ lặp đi lặp lại sẽ không dạy bạn bất cứ điều gì mới.


Ngoài ra, portfolio không quá cần như mọi người nghĩ.


Bạn sẽ không bao giờ được thuê vì bạn có một porfolio tốt.


Nhà tuyển dụng biết cách nhận ra các lập trình viên có kỹ năng, làm được việc.


Nhưng hãy luôn nhớ rằng bạn đang tối ưu hóa việc học, vì vậy hãy để những công việc không cần thiết sang một bên.


Tập trung vào những thứ cốt lõi và cách tạo ra các tính năng tốt chứ không phải cố gắng tạo ra một ứng dụng phô diễn khả năng.



Tìm bất kỳ việc nào có sẵn



Mọi người thường nghĩ về việc xin việc khi bạn đã sẵn sàng để bước vào cuộc phóng vấn.


Mình sẽ cho bạn một lời khuyên khác.


Hãy bắt đầu tìm kiếm các công việc lập trình iOS sớm hơn, ngay cả khi bạn chưa sẵn sàng nộp đơn xin việc.


Trước hết, bạn phải tìm hiểu những công việc có sẵn trên thị trường tuyển dụng thay vì mơ ước về một công việc xa xôi.


Hơn nữa, tốt hơn hết là bạn nên có nhiều lựa chọn phù hợp với sở thích của mình thay vì nộp đơn vào một công việc ngẫu nhiên chỉ vì bạn không biết chỗ nào phù hợp với bạn.


Bạn có thể tìm kiếm công việc trên các bảng như công việc LinkedIn hoặc trên ITviec, TopDev, Facebook....


Mình thậm chí chắc chắc bạn có thể tìm được thông qua các hội nhóm facebook.


Đọc qua các tin tuyển dụng, Google một chút để xem môi trường làm việc ở đó.


Tìm hiểu từ vị trí thực tập sinh trở đi để xem cần học bao nhiêu là đủ để trở thành thực tập sinh.


Và từ vị trí đó lên các vị trí tiếp theo cần kỹ năng gì, công nghệ gì.


Thông qua đó bạn cũng biết được cụ thể cần học cái gì (bởi có những thứ trong bài viết này có thể thay đổi theo từng địa phương, từng thời điểm)


Đó là lý do tại sao bạn phải tìm kiếm việc làm càng sớm càng tốt.



Thử đi phỏng vấn



Bước tiếp theo mà có thể không ai nói với bạn.

 

Và bạn cũng khó có đủ tự tin để làm việc này.


Nhưng mình thực lòng khuyên bạn nên thử, ít nhất là một vài lần ngay cả khi bạn chưa đủ khả năng.


 

 

"CỨ ĐI PHỎNG VẤN THỬ. KHÔNG ĐƯỢC THÌ THÔI, CÓ GÌ ĐÂU MÀ SỢ"



Mình biết.


Sẽ rất ít người dám làm việc này. Đặc biệt là nhiều bạn học lập trình lại là người hướng nội.


Tuy nhiên, đừng liên hệ với bộ phận nhân sự. Họ thường chỉ quan tâm đến những người có khả năng làm việc.


Thay vào đó, hãy thử liên hệ với những người đang ở vị trí mà bạn mong muốn:


 

  • Bạn có thể biết thêm thông tin về công việc thực tế họ đang làm. Một số kiến thức có thể không cần thiết nhưng vẫn ghi vào tin tuyển dụng. Hoặc những thứ không được đề cập đến. Ví dụ: Vị trí đó có thể yêu cầu bạn học công nghệ khác (so với những thứ bạn có)

 

  • Bạn sẽ hơn về công ty và văn hóa của họ. Đây là những điều không ở đâu viết ra, và bạn chỉ khám phá ra khi tiếp xúc với người thật.

 

  • Bạn có được một chân trong. Điều mà không ai nói với bạn là nhiều công việc tốt đều không thông qua tuyển dụng chính thức mà là từ nguồn "Giới thiệu", mạng nội bộ. Điều này vừa đảm bảo được một người nội bộ của họ hiểu rõ về bạn, lại được đảm bảo bởi chính uy tín cá nhân. Thậm chí, việc giới thiệu ứng viên tốt họ còn được "thưởng" một khoản kha khá cơ. Nhiều công ty có ngân sách thưởng cho nhân viên mới 1 tháng lương đầu tiên là ở khoản này (Tự giới thiệu bản thân cũng là giới thiệu mà đúng không?)

 

  • Khi bạn nộp đơn xin việc tại một công ty mà bạn có ngươi quen biết, bạn có thể vào ngay vòng phỏng vấn trực tiếp (Vượt qua rất nhiều ứng viên khác).


Cách viết sơ yếu lý lịch (Resume)



Người ta thường nhắc đến CV.


Nhưng CV thường là dành cho chuyên gia.


Đối với những người mới bắt đầu thì người ta sử dụng Resume. Vẫn là sơ yếu lý lịch nhưng thường chỉ vẻn vẹn trong 1 trang A4.


> Mẹo: Bạn có thể sử dụng mẫu sẵn của TopCV (Hoặc các nền tảng tương tự). Nó sẽ giúp bạn nhanh chóng tạo ra một sơ yếu lý lịch tiêu chuẩn.


Ngay cả khi bạn thông qua một mối quan hệ cá nhân, bạn thường sẽ cần phải viết một bản sơ yếu lý lịch.


Cần phải viết những gì trên đó?


Câu trả lời ngắn gọn:



"VIẾT NHỮNG GÌ NHÀ TUYỂN DỤNG MUỐN XEM!"


Mình biết. Nói thì dễ hơn làm.


Nếu bạn đọc kỹ những phần bên trên, bạn sẽ biết nhà tuyển dụng muốn xem gì. Đó đã là một lợi thế to lớn so với đối thủ của bạn.


Nhưng đây là một số nguyên tắc chung:



  • Không ai quan tâm đến định dạng của bạn hoặc phông chữ bạn đã sử dụng. Đừng lãng phí thời gian cho những thứ vô dụng đó. Điều quan trọng là nội dung.
  • Bạn là ai chứ không quan tâm bạn thích gì.
  • Bạn có thể làm được gì chứ không phải bạn đã học những cái gì.
  • Bạn cần phải có thứ gì đó khác (nổi bật thì tốt). Nếu bạn chỉ liệt kê một loạt các công nghệ như những người khác thì có gì để thảo luận đâu.


 

Có nên nghiên cứu các câu hỏi phỏng vấn thường gặp không?



Có một điều mình chưa bao giờ hiểu là nhiều người chuẩn bị phỏng vấn bằng cách nghiên cứu các câu hỏi phỏng vấn lập trình iOS phổ biến.


Mình không nói là bạn không nên chuẩn bị để đi phỏng vấn.


Bạn chắc chắn nên làm. Và dĩ nhiên, có một số câu hỏi phổ biến mà người phỏng vấn muốn hỏi.


Nhưng thực sự bạn phải cẩn thận bởi những câu hỏi đó đến từ các bối cách khác nhau. Và có hàng nghìn câu hỏi.


Hầu hết các câu hỏi (mà mình google ra) mình chưa bao giờ từng được hỏi trong các lần phỏng vấn của mình.


Và mình cũng sẽ không tham khảo các câu hỏi đó để đi phỏng vấn người khác.


Nghiên cứu những câu hỏi đó là một sự lãng phí thời gian. Có quá rất nhiều câu hỏi bạn có thể được hỏi mà bạn không thể ghi nhớ tất cả.


Bí quyết để vượt qua vồng phỏng vấn này là nắm chắc về các khiến thức căn bản của ngôn ngữ, nền tảng bạn cần có.


Nếu bạn có điều đó, bạn có thể trả lời bất kỳ câu hỏi nào. Nếu bạn không, việc học trả lời theo các câu hỏi có sẵn chẳng giúp gì cho bạn.


Đơn giản là rất có khả năng sau khi bạn trả lời (một câu hỏi bạn đã học thuộc) nhà tuyển dụng sẽ ồ lên:



À, câu trả lời rất tốt...
vậy thì mình sẽ hỏi thêm một chút về phần này.


Nếu bạn chỉ nghiên cứu câu hỏi đó. Bạn sẽ chẳng thể nào trả lời câu hỏi thêm của nhà tuyển dụng.


Lúc đó họ sẽ biết ngay bạn chỉ học thuộc chứ không hiểu bản chất. Cách này khiến bạn bị đánh giá xấu hơn nhiều.



CHÀO LẬP TRÌNH VIÊN iOS TƯƠNG LAI!



Bạn sẽ mất nhiều năm để trở thành một lập trình viên iOS chuyên nghiệp. Không có cách nào để ăn gian cả.


Nhưng bạn sẽ không cần mất nhiều thời gian để tìm được công việc lập trình iOS đầu tiên.


Nhiều người có thể hoàn thành mục tiêu này chỉ trong khoảng 3 tháng nỗ lực học tập (Hoặc lâu hơn một chút)


Vì vậy, nếu bạn đang nghĩ đến việc chuyển đổi nghề nghiệp hoặc bạn quan tâm đến việc lập trình ứng dụng iOS, mình khuyến khích bạn nên bắt đầu ngay. Một vài tháng kể từ bây giờ, bạn có thể có công việc nhiều người mong ước.


Quan trọng là phải BẮT ĐẦU và KIÊN TRÌ!


Hi vọng lộ trình học lập trình iOS này sẽ giúp bạn có được những bước đi đúng hơn.



---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python

Bình luận Facebook
Khóa học liên quan đến bài viết

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Lập trình PHP với Laravel Framework

42 giờ
Khóa học Lập trình PHP với Laravel Framework được NIIT - ICT HÀ NỘI xây dựng nhằm hoàn thiện kỹ năng lập trình web các các bạn đã biết Lập trình Web PHP thuần.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!