Bài viết được dịch từ trang web Medium

Để trở thành một lập trình viên iOS là điều thật tuyệt vời, nhưng tôi nên bắt đầu từ đâu? Ngày nay có rất nhiều tài nguyên học tập hơn bao giờ hết. Điều này có thể là một điều tốt, nhưng cũng là một điểm dở bởi vì bạn rất dễ bị lạc trong một biển thông tin.

Điều mà tôi sẽ làm ngày hôm nay đó là phác thảo ra một bản kế hoạch cho bạn. Đây là một bản kế hoạch mà tôi ước gì một ai đó đã đưa cho mình khi tôi mới bắt đầu học. Bản kế hoạch này sẽ giúp bạn tiết kiệm được cái tài sản có giá trị nhất của loài người: đó là thời gian.

Tôi giả sử rằng bạn chưa có kinh nghiệm về lập trình, nhưng bản kế hoạch này cũng sẽ áp dụng được thậm chí nếu bạn đã là một lập trình viên.

Tôi sẽ cố gắng giữ cho bản kế hoạch này theo hướng giúp bạn có thể bắt tay vào thực hiện nhanh nhất có thể. Ok, nào hãy cùng bắt đầu!

Làm thế nào để trở thành một lập trình viên iOS?
Làm thế nào để trở thành một lập trình viên iOS?
Tham khảo các khóa học lập trình iOS online bằng SwiftObjective-C, hoặc học trực tiếp tại TechMaster

Bước 1: Học về các nền tảng cơ bản của lập trình trước tiên (đối với lập trình viên mới)

Khi mới bắt đầu, tôi đã xem một số khóa học bằng video ngẫu nhiên về C và Objective-C không được cấu trúc tốt và họ đã lược bỏ rất nhiều thông tin quan trọng. Tôi sẽ không đề xuất bạn nên bắt đầu theo cách đó.

Hiện nay tất cả mọi người đều muốn tạo ra các ứng dụng của riêng mình, có rất nhiều khóa học qua video và các cuốn sách nội dung rất dở, được kết hợp lại với nhau chỉ để dạy bạn phần kiến thức tối thiểu nhất. Đủ để cho bạn có thể viết ra một vài ứng dụng đơn giản.

Điều đó cũng tạm chấp nhận được nếu bạn chỉ muốn thử lập trình ứng dụng cho vui, nhưng nếu bạn thực sự muốn nghiêm túc trong việc lập trình, thì bạn nên học các kiến thức nền tảng trước, và bạn cần bắt đầu với một số tài liệu được cấu trúc tốt.

Lý do mà tôi đã phải mất khá nhiều thời gian để hoàn thành ứng dụng đầu tiên của mình chính xác là bởi vì điều đó. Tôi đã không dành thời gian để học về những kiến thức nền tảng. Nếu không có kiến thức nền tảng thì bạn chỉ có thể tiến xa hơn thông qua tìm kiếm trên Google và các câu hỏi trên Stack Overflow.

Bạn cần hiểu điều gì đang thực sự xảy ra phía dưới, và tại sao mọi thứ lại làm việc theo cách mà chúng làm, v.v…

Dù sao, có 2 khóa học mà tôi muốn đề xuất bạn nên học là:

Sách dạy lập trình iOS hay

Tôi có thể dành ra nhiều giờ liền để nói về lý do tại sao tôi lại thích những khóa học này và đã học được điều gì từ chúng, nhưng tất cả tôi có thể nói là bạn dứt khoát nên học nếu là người mới tham gia vào lĩnh vực lập trình. Simon Allardice (@allardice) là một giảng viên tuyệt vời và thường nói rất chi tiết bất cứ khi nào giảng giải về một điều gì đó.

Những khóa học này sẽ dạy bạn những kiến thức nền tảng mà bạn có thể mang theo suốt cuộc đời, và chúng sẽ giúp bạn dễ dàng hơn với bất kỳ ngôn ngữ lập trình nào bạn quyết định làm việc cùng.

Tôi thực sự ước gì mình đã tìm thấy những khóa học này và tham gia học vào những tuần đầu tiên khi tôi mới bắt đầu.

Tôi còn nhớ khi lần đầu tiên tôi đào xới vào các tài liệu của Apple iOS docs, có rất nhiều thứ trong đó mà tôi hoàn toàn chẳng hiểu gì cả.

Nhưng khi tôi đã hiểu về lập trình hướng đối tượng, thì mọi thứ trở nên rõ ràng.

Xin bổ sung: Trước khi đăng bài viết này, tôi đã nói chuyện với một người bạn và cũng là cố vấn của tôi, Chris Truman (@iAmChrisTruman), anh đã đề cập rằng một số người mới bắt đầu có thể sẽ thu được nhiều ích lợi từ video khóa học của trường đại học Harvard, nó cung cấp cho bạn một số nguyên lý nền tảng của Khoa học Máy tính:

Introduction to Computer Science (Giới thiệu về Khoa học Máy tính)

Bước 2: Học ngôn ngữ lập trình Objective-C

Tôi biết là bạn đang nghĩ gì vào lúc này. Bạn đã nghe tất cả những điều đáng kinh ngạc về ngôn ngữ lập trình Swift. Có thể bạn đến từ ngôn ngữ khác mà trông tương tự như ngôn ngữ Swift, vì vậy bạn sẽ cảm thấy thoải mái trong việc học phát triển ứng dụng trên iOS.

Tôi biết là Objective-C trông như là một ngôn ngữ xa lạ khi so sánh với hầu hết các ngôn ngữ khác. Bạn sẽ để ý thấy rằng người ta thích nhảy vào những cuộc tranh cãi trên mạng về chủ đề Swift vs. Objective-C. Bạn có thể đoán được gì? Đó chỉ là những tranh luận làm tốn thời gian. Thay vì đó bạn nên bắt tay vào xây dựng sản phẩm thì hơn.

Đây là lý do tại sao bạn nên học ngôn ngữ Objective-C:

  • Có hàng tấn GitHub repo được viết bằng Objective-C
  • Có hàng tấn câu hỏi trên Stack Overflow được viết bằng Objective-C
  • Có hàng tấn code trước đây được viết bằng Objective-C

Bạn có nhìn thấy điểm chung ở đây không? Khi mới bắt đầu học, bạn sẽ gặp phải những vấn đề rất khó khăn, bạn thà có thể tìm thấy một câu trả lời đã được kiểm chứng qua thời gian bằng 300 upvote và giải quyết vấn đề của bạn, hơn là tốn thời gian quý giá để nghiên cứu chỉ vì bạn đã quyết định bắt đầu với ngôn ngữ Swift?

Nếu mục tiêu cuối cùng của bạn là trở thành một lập trình viên iOS toàn thời gian, thì bạn cần học Objective-C. Nhiều nhà tuyển dụng mong chờ bạn biết về nó, và rất nhiều người trong số họ thậm chí chẳng hề quan tâm về Swift lúc này, bởi vì nó là ngôn ngữ chưa ổn định để người ta đánh cược công việc làm ăn của họ vào đó.

Tin tôi đi, nếu bạn bắt đầu ngay bây giờ với Objective-C, bạn sẽ có một khoảng thời gian dễ dàng và đơn giản hơn. Thêm nữa, Objective-C sẽ không biến mất trong thời gian gần. Nó sẽ còn được sử dụng tiếp tục trong nhiều năm tới.

Bạn nên sử dụng cuốn sách sau đây để học về Objective-C:

Cuốn sày này rất tuyệt vời, và những tác giả tại BNR đều có trình độ và rất nổi tiếng. Cuốn sách sẽ giúp bạn đào sâu vào trong Objective-C và khi mà bạn đọc xong cuốn sách đó bạn sẽ cảm thấy làm việc thoải mái hơn nhiều với ngôn ngữ này.

Bước 3: Học phát triển ứng dụng iOS

Bây giờ bạn đã biết về Objective-C, đây là lúc để học về cách phát triển ứng dụng iOS. Bạn nên sử dụng cuốn sách sau đây để học phát triển ứng dụng iOS:

Khi bạn hoàn thành cuốn sách này, bạn sẽ trải qua các kiến thức nền tảng của phát triển iOS, bạn sẽ làm ra vô số ứng dụng, và học cách làm thế nào để thực sự xây dựng mọi thứ theo cách đúng đắn.

Cuốn sách này sẽ nghiêm túc mang lại kiến thức nền tảng bạn cần để đi tiếp và bắt đầu xây dựng một số ứng dụng tuyệt vời. Đừng bỏ qua cuốn sách này.

Bước 4: Bắt đầu xây dựng ứng dụng iOS đầu tiên của bạn

Ứng dụng iOS đầu tay

Lúc này, bạn đã xây dựng hàng tấn ứng dụng thông qua các project từ cuốn sách của BNR về phát triển iOS, nhưng đây là lúc để xây dựng một cái gì đó mà bạn thực sự muốn làm. Điều này cần một dự án hoài bão. Nó có thể là một ứng dụng mà bạn luôn muốn nhưng vẫn chưa tìm thấy trên store, hoặc nó có thể thậm chí là một ứng dụng đáng giá hàng triệu đô-la tiếp theo?

Tất cả vấn đề ở đây đó là một cái gì đó mà bạn thực sự muốn xây dựng. Điều này rất quan trọng bởi vì bạn sẽ có một chuyến hành trình dài và gian khó. Sẽ cần nhiều sự khích lệ trên quãng đường đi, nhưng khi bạn đã hoàn thành việc bò qua tất cả những thứ khó khăn này thì bạn sẽ trở thành một lập trình viên iOS đích thực.

Bước 5: Bắt đầu cộng tác với những lập trình viên khác trên GitHub

Cộng đồng lập trình viên iOS

Đây là điều mà tôi thực sự ước mình đã làm sớm hơn và điều tôi cần phải làm nhiều hơn. Thật khó khi bạn phải tung hứng nhiều thứ cùng một lúc vì tất cả chúng ta đều rất bận rộn, nhưng bước đầu tiên này cực kỳ quan trọng và đây là lý do tại sao:

  • Bạn sẽ học cách làm thế nào để sử dụng git source control.
  • Bạn sẽ học cách làm thế nào để phân tích, mổ xẻ, và đọc code của những lập trình viên khác.
  • Bạn sẽ học được cách mà những lập trình viên thông minh và có kinh nghiệm xây dựng ứng dụng như thế nào.
  • Bạn sẽ có khả năng kết bạn với nhiều người mới và thậm chí có thể gặp được ông chủ tương lai của mình.

Tìm kiếm một số dự án iOS hấp dẫn trên GitHub và bắt đầu đóng góp. Chạy ứng dụng đó lên và thử tìm những vấn đề, hoặc tìm một cách để cải tiến hiệu suất của một thư viện nổi tiếng. Thử tìm những cách để tổ chức code tốt hơn. Một số phần code có thể được tối ưu hóa để chạy nhanh hơn. Có thể có một phần nào đó bị chạy lỗi do một cập nhật mới của iOS. Chỉ nên nhớ rằng luôn luôn có những điểm cần phải cải tiến.

Sau đây là một số repos iOS phổ biến trên GitHub để bạn bắt đầu:

  1. WordPress for iOS - Official repository
  2. AFNetworking - A delightful iOS and OS X networking framework
  3. JSQMessagesViewController - An elegant messages UI library for iOS

Một vài suy nghĩ và bí quyết

  • Tránh những tài liệu bằng video vào lúc ban đầu:

Bạn sẽ để ý thấy rằng tôi đã không đề xuất bất kỳ tài nguyên dạng video nào kể từ bước 1. Đó là bởi vì các video ngốn của bạn rất nhiều thời gian. Khi đọc sách thì bạn có thể học được nhanh hơn với chữ và hình ảnh. Tuy nhiên, các video có thể thực sự tốt vào lúc ban đầu nếu bạn đang phải vật lộn với một khái niệm đặc biệt cần được giải thích cặn kẽ. Chỉ cần đừng dựa hoàn toàn vào một khóa học bằng video, và chỉ sử dụng video như là một lựa chọn cuối cùng.

Cũng phải nói rằng, có một ngoại lệ tới quy tắc này nếu bạn thực sự cảm thấy thích các nguồn tài liệu bằng video hơn. Đó là đại học Stanford có một số khóa học miễn phí rất tuyệt vời trên iTunes U và chúng được dạy bởi huyền thoại Paul Hegarty:

  1. Developing iOS 7 Apps for iPhone and iPad (Phát triển ứng dụng iOS 7 cho iPhone và iPad)
  2. Developing iOS 8 Apps With Swift (Phát triển ứng dụng iOS 8 bằng Swift)

Nhiều lập trình viên iOS đã học từ những khóa học đó, và tôi thậm chí đi xa hơn khi nói rằng bạn có thể thay thế các cuốn sách của Big Nerd Ranch bằng những khóa học này bởi vì cả hai đều phục vụ cùng mục đích trong việc cung cấp một kiến thức vững chắc về tất cả mọi thứ trong iOS.

Một lần nữa, tôi muốn đề xuất bạn nên bắt đầu với khóa học iOS 7 vì với khóa học đó bạn có thể học Objective-C trước khi học Swift.

  • Tránh những tutorial dạng step-by-step lúc ban đầu:

Có một số trang web chứa các tutorial rất tuyệt vời như raywenderlich.com, và chúng có thể hữu ích, nhưng bạn nên tránh những trang này nhiều nhất có thể vào lúc ban đầu. Những tutorial này chỉ dạy bạn một vài thứ một lần, và theo quan điểm của tôi thì chúng không cung cấp kiến thức đủ sâu. Hơn nữa, các tutorial đó cũng không có cấu trúc. Không có sự phác thảo về cái mà bạn nên học vào lúc ban đầu và lý do tại sao, và chúng lại được viết bởi những giảng viên khác nhau.

Vào lúc bắt đầu bạn hãy gắn với bản kế hoạch ở trên. Những cuốn sách của BNR được cấu trúc có mục đích theo một cách chắc chắn để bạn học những thứ theo một trật tự đúng.

  • Trở nên cực kỳ thoải mái với các tài liệu được cung cấp bởi Apple:

Khi mới bắt đầu, tôi thường chỉ có thói quen tìm kiếm trên Google hoặc Stack Overflow nếu tôi cần sự giúp đỡ hoặc có một câu hỏi.

Tuy nhiên, giờ đây tôi cố gắng dành nhiều thời gian vào việc đào xới kiến thức thông qua các tài liệu.

Một điều đó là, khi mà bạn dành thời gian để khám phá các tài liệu của Apple, và bạn tìm thấy giải pháp cho vấn đề của bạn... thì theo quan điểm của tôi, cái trải nghiệm học tập đó có một tác động lên bạn lớn hơn so với việc bạn chỉ tìm các câu trả lời nhanh trên Stack Overflow hoặc hoàn thành một tutorial dạng step-by-step.

Đây có thể không phải là cách học nhanh nhất, nhưng tôi đã trở nên tự tin hơn nhiều trong khả năng của mình là một lập trình viên bằng cách dành hết giờ này sang giờ khác để nghiên cứu các tài liệu của Apple và giờ đây tôi cảm thấy yêu nó. Chúng là nguồn tài liệu chính của tôi.

Có một điều gì đó thực sự đặc biệt về những tài liệu này, trong việc tìm kiếm các phương thức mà bạn cần, hoặc khi đọc một số hướng dẫn chi tiết, v.v…

  • Luôn luôn đặt câu hỏi:

Đừng ngại đặt các câu hỏi. Ai cũng phải bắt đầu từ một nơi nào đó. Bạn đừng lo lắng về việc sẽ bị người ta xem như một thằng ngốc. Hầu hết mọi người trong cộng đồng lập trình đều rất tốt bụng và sẵn lòng giúp đỡ.

Hãy đảm bảo rằng trước khi bạn hỏi một ai đó nhờ giúp đỡ, hoặc đặt một câu hỏi, thì trước tiên bạn đã thực sự cố gắng giải quyết vấn đề đó theo cách của mình. Không có gì là phiền toái hơn khi nhìn thấy một câu hỏi toàn chữ là chữ và người đó thậm chí chẳng post đi kèm một đoạn code nào bởi vì họ vẫn chưa thực sự cố gắng thử giải quyết nó.

Tiến hành một số nghiên cứu, thử một số thứ theo cách của bạn, post một ít code, và hỏi một câu hỏi chi tiết. Điều này sẽ giúp bạn có khả năng nhận được sự giúp đỡ. Mọi người ai cũng rất bận rộn, và không ai muốn giúp đỡ một người chỉ muốn đi kiếm những câu trả lời dạng ăn sẵn cả.

  • Luôn luôn coding:

Dù cho bạn có ngồi đọc sách và xem rất nhiều video thì cũng không khiến bạn trở thành một lập trình viên iOS được. Hãy xem những tài nguyên này như là các công cụ của bạn, nhưng bạn không thể chỉ ngồi một chỗ với cây búa mà xây được một ngôi nhà. Bạn cần phải hành động.

Hãy đảm bảo rằng bạn luôn hoàn thành các bài tập trong các cuốn sách của BNR, và đừng nhảy vào những tutorial không có mục đích hoặc chỉ xem các bài nói về iOS. Không cái nào trong số chúng quan trọng đối với bạn vào lúc này. Hãy bắt tay vào thực hành, học nhiều nhất có thể, và áp dụng các kiến thức mà bạn đã học được.

Trong những ngày đầu tiên đôi lúc bạn sẽ cảm thấy tẻ nhạt bởi vì bạn đang học tất cả những kiến thức nền tảng, nhưng đó là cách giúp bạn trở nên giỏi hơn.

  • Một lời khuyên cuối cùng:

Tại một thời điểm nào đó trong chuyến hành trình này, bạn sẽ gặp phải những trở ngại mà bạn cảm giác như mình không thể vượt qua nổi. Có thể bạn đã bị mệt mởi bởi quá nhiều thông tin, có thể bạn đang bị nản chí và nghi ngờ chính bản thân mình.

Một tin tốt đó là hiện nay có nhiều tài nguyên hơn bao giờ hết để giúp đỡ bạn và những phản hồi từ các lập trình viên khác. Việc hỏi nhờ giúp đỡ và có sự truy cập tới những nguồn tài nguyên tốt có thể thực sự giúp bạn thoát ra khi mà bạn bắt đầu cảm thấy bế tắc. Tôi muốn giữ cho bài viết này được ngắn và dễ đọc, nhưng tôi sẽ đăng một bài viết tiếp theo trong thời gian sớm nhất có thể, nó sẽ cung cấp cho bạn tất cả những nguồn tài nguyên bạn cần để tiếp tục đi tiếp, nhưng bây giờ thì chưa cần thiết lắm. Bạn chỉ cần bắt tay vào hành động.

Tôi cầu chúc cho bạn gặp nhiều may mắn trên chuyến hành trình của mình để trở thành một lập trình viên iOS, và nếu bạn có bất kỳ câu hỏi nào hoặc muốn nói chuyện về bất cứ điều gì về chủ đề này thì hãy đừng ngại liên hệ với tôi trên Twitter @_mitchellporter bất cứ lúc nào bạn muốn. Tôi sẽ rất hạnh phúc để trả lời những câu hỏi của bạn, hoặc giúp đỡ bạn tìm ra hướng đi đúng.

Chúc bạn may mắn!

Khóa học lập trình di động tại Techmaster:

Để cài đặt MacOSX lên phần cứng không phải Apple liên hệ chuyên gia cài Hackintosh:

  • Nguyễn Minh Sơn: 01287065634
  • Huỳnh Minh Sơn: 0936225565
  • Website: caidatmacos.com