Lộ trình + Resources học Swift và IOS từ cơ bản đến nâng cao
Bài viết chia sẻ lộ trình học Swift và iOS từ cơ bản đến nâng cao dựa trên trải nghiệm thực tế của tác giả. Nội dung bao gồm các tài nguyên học tập chất lượng như sách, khóa học trực tuyến từ Devslopes, Ray Wenderlich và Apple, cùng với lời khuyên về cách tiếp cận hiệu quả cho người mới bắt đầu.

Giới thiệu
Dưới đây là Lộ trình + Resources học Swift/IOS từ cơ bản đến nâng cao.
Đây đều là những sách, tài liệu, khóa học mình đã trực tiếp học. Vì thế đánh giá từ bài viết sẽ "chân thực" hơn mấy bài viết copy trên mạng.
Ngoài ra, đa số resource đều là trả phí. Mấy bạn cũng nên đầu tư một tý. Có thể bây giờ bạn thấy mua một khóa học khoảng vài trăm đô là mắc, không đáng. Tuy nhiên việc tạo một khóa học không phải là dễ. Và tạo một khóa học chất lượng càng khó hơn. Hãy nên mua để ủng hộ tác giả.
Nếu kinh tế eo hẹp, bạn có thể rủ bạn bè mua chung hoặc tìm người trên các diễn đàn. Vừa có người học chung lại vừa giảm bớt tiền.
Swift cơ bản - The Swift Programming Language
Trước khi bắt đầu mần app, bạn phải học Swift cơ bản. Và nguồn học không thể tốt hơn, lại ngon, bổ rẻ, lại chính chủ. Đó chính là official guide của Apple
Theo đánh giá của mình, official guide của Apple khá dễ hiểu. Là một trong những docs dễ hiểu nhất mình từng đọc. Tuy nhiên những phần nâng cao như Closure, Optional, Protocols dùng ví dụ hơi khó hiểu.
IOS cơ bản -> trung cấp - Khóa học IOS của Devslopes
Sau khi có được kiến thức cơ bản Swift. Ta bắt đầu học làm app.
Theo kinh nguyệt của mình, những thứ liên quan đến làm sản phẩm thì nên học từ video. Làm sản phẩm là sao, là những khóa dạy làm project, ví dụ như làm game Unity, Unreal, lập trình di động IOS/Android mấy khóa này phải xây dựng UI, thao tác với IDE nhiều, chưa kể công nghệ thay đổi liên tục, xem video dễ thao tác hơn là đọc sách.
Còn lại những thứ liên quan về lý thuyết, nền tảng thì nên học trong sách. Ví dụ như hướng đối tượng, giải thuật, design patterns, kiến trúc phần mềm,vv là nên đọc sách. Why? Thứ nhất là những kiến thức này ít thay đổi, đọc thấm lâu hơn. Và quan trọng là quay video mấy cái nền tảng khó hơn, ít khách hàng. Hiện tại mình chỉ thấy Coursera dạy nền tảng chất thôi, tại họ kết hợp với mấy trường đại học lớn.
Khóa học IOS 10 - Swift 3 của Devslopes
Nội dung khóa học
Còn về khóa học IOS của Devslopes khá đầy đủ, mình có thể list một vài nhận xét dưới đây:
-
Khóa dạy từ cơ bản, kể cả Swift
-
Nội dung còn mới Swift 3, IOS 10
-
Anh Mark dạy khá hay và tận tình, vui tánh nữa
-
App làm từ cơ bản đến nâng cao như máy tính, dự báo thời tiết, Pokemon Finder, Mạng xã hội, App SnapChat clone
-
Được học kĩ thuật từ Autolayout, Core Data, Web service API, Firebase, GeoLocation, MVC, Singleton
-
Được học về Git, chính từ khóa này mà mình bắt đầu sử dụng Git tới giờ.
-
Học thêm về Objective-C.
-
Học design app (UI/UX) với Sketch
Let's build that app chanel
Đây là channel của anh Brian Voong trên Youtube.
Bạn sẽ học nhiều điều về design UI tại channel này. Anh Brian Voong sẽ hướng dẫn làm UI bằng code chứ không xài kéo thả trên Storyboard Xcode. Ngoài ra, kênh này còn hướng dẫn clone lại một số app nổi tiếng như Youtube, Facebook, Twitter,vv.
Thế mạnh của Brian là code giao diện đẹp
Dĩ nhiên khi học clone những app này, mức độ xử lý của app không là gì so với app thiệt. Nhưng UI nhìn rất chuyên nghiệp. Vậy nên đây là nguồn tài liệu tốt để học design app _ bằng code_.
Hacking with Swift
Hacking with Swift - một blog uy tín về Swift/IOS
Tiếp theo là thời gian bạn học nâng cao thêm về Swift với quyển Pro Swift tại Hacking with Swift.
Với quyển này bạn sẽ tìm hiểu sâu hơn về closure, struct, class, functional programming với Swift. Tìm hiểu thêm về Protocol, kiến trúc MVC và MVVM.
Mình đánh giá quyển này khá dễ đọc, nội dung cũng nâng cao. Hay nhất là phần functional programming. Còn phần nói về OOP, Protocol, MVVM khá nhạt, cần phải làm app thực tế mới hiểu rõ được
Làm app thực tế với khóa UberEats with Python/Django and Swift 3
Khóa học này được public tại Code4Startup.com của anh Leo Trieu.
Khóa học này hướng dẫn làm app UberEats. Đoạn video intro về app này bạn có thể xem bên dưới
Bạn sẽ học được rất nhiều thứ thực tế trong khóa này. Anh Leo Trieu thiết kế theo format: product oriented course. Tức là hướng người học làm sản phẩm bán được. Không lý thuyết rườm rà, anh Leo nói ngắn gọn, đúng ý. Bạn sẽ học cách xử dụng thư viện như SwiftyJson, Charts, cách implement thanh toán: Apple Pay, Stripe
Điểm đặc biệt của khóa học này là có dạy thêm viết web app, viết API với Python/Django, deploy lên Heroku. Tức là học full stack luôn.
Khóa học này giúp bạn làm app thực sự. Với kiến thức từ khóa học này, bạn hoàn toàn có thể lên Upwork nhận dự án . Không tin bạn có thể search các dự án Food Delivery trên Upwork. Tuy nhiên, để trúng thầu, bạn cần có porfolio đẹp.
Để học tốt khóa này, bạn cần phải đọc tài liệu về Django, HTML, CSS, Javascript nhiều vì phần này anh Leo lướt qua khá nhanh
Instagram với Zero2launch
Đây là khóa mình hài lòng nhất
Khóa học này tập trung vào phần nâng cao. Khóa hướng dẫn làm Instagram với backend là Firebase. Mặc dù đã dùng Firebase từ khóa Devslopes, nhưng mình phải ngỡ ngàng vì nhiều thứ chưa biết trong Zero2launh. Chẳng hạn như cấu trúc database trên Firebase sao cho hợp lý, xài Firebase Transaction.
Khóa Build Instagram to Learn Swift 3 and Firebase 3 in Depth
Cấu trúc khóa học này rất hay. Ban đầu sẽ viết code như bình thường. Mỗi bài học sẽ có note để học sinh review cũng như gợi ý cho bài học tiếp theo.
Cuối chương sẽ có bài refactor code. Đây là phần mình thích nhất. Khi làm app bạn sẽ Refactor code liên tục, làm sao cho tối ưu nhất. Code dễ đọc, cấu trúc sao để có thể scale được, cấu trúc sao thể đổi backend mà không ảnh hưởng tới các phần khác của app.
Thực tế là những project mình làm, khoảng nửa tháng không đụng nhìn lại code còn chẳng hiểu gì. Việc thiết kế Api, refactor code trong khóa học này giúp ích cho mình rất nhiều. Cảm thấy mình "pro" hẳng ra.
Optional
Thực tế, sau khi học xong khóa Instagram. Mình nghĩ chúng ta đã "đủ lông đủ cánh" để tự biết mình học gì tiếp theo rồi. Tuy nhiên mình muốn gợi ý cho các bạn 2 phần nữa
Viết REST API với Flask
Học viết REST API với Flask/Python
Mặc dù Firebase hỗ trợ bạckend khá tốt. Tuy nhiên chúng ta cũng cần học cách tự viết API cho một số trường hợp cụ thể. Chẳng hạn gần đây, mình cần build một API đơn giản là gửi email đến một list danh sách. Dù khá đơn giản nhưng nếu không biết viết API thì cũng chịu. Firebase hiện tại không làm được (hiện tại Firebase đã có chức năng Function beta )
Đây cũng là một khóa học rất hay. Anh giảng viên dạy vô cùng dễ hiểu
Desgin Pattern và thuật toán
Đây là hai thứ bạn nên học song song với việc học Swift và IOS.
Với design pattern sẽ giúp bạn tổ chức code hợp lý hơn. Mình recommend quyển: Pro Design Pattern in Swift
Còn với thuật toán thì không cần thiết phải dùng Swift, bạn có thể dùng ngôn ngữ khác để học. Nguồn học thuật toán uy tín đó chính là Coursera
Tổng kết:
Thực ra mình cũng "giật tít" thôi, chứ để đạt tới trình độ "nâng cao" khá là mông lung như một trò đùa, bởi riêng định nghĩa từ "nâng cao" cũng khá mơ hồ rồi. Như thế nào là nâng cao?
Mình cũng xin khẳng định:
Không một khóa học nào có thể giúp bạn master một ngôn ngữ / framework
Không một khóa học nào có thể giúp bạn master một ngôn ngữ / framework đâu nha.
Với những khóa học trên, theo mình bạn có thể đạt đến level "nâng cao". Từ level "nâng cao" này, bạn hoàn toàn biết được mình cần gì để học lên level "nâng cao" khác rồi.
Với kiến thức từ những khóa học này, mình cũng đang xây dựng một khóa tổng hợp IOS Swift All in one phát miễn phí trên Youtube, hy vọng có thể giúp ích được mọi người.
Còn bạn, bạn có nguồn tài liệu nào về học Swift và IOS. Hãy cùng chia sẻ với mọi người nào? À, mình có share lại các khoá học trên, bạn nào muốn share lại thì comment nhé
Related Posts
Discover more content you might enjoy

English Course Challenge in 2 weeks - Day 12: Kinh nghiệm quay khoá học
Bài viết chia sẻ kinh nghiệm quay khóa học tiếng Anh về Bubble.io, bao gồm việc lựa chọn phần mềm Screen.Studio để quay màn hình và tự động tạo phụ đề, những bài học từ việc đặt mục tiêu và xác định đối tượng học viên trước khi chọn nội dung, cũng như lợi ích của việc thử thách bản thân để vượt qua nỗi sợ và hoàn thành dự định. Tác giả cũng giới thiệu khóa học 'Build your first web app in Bubble for beginners' dành cho người mới bắt đầu.

English Course Challenge in 2 weeks - Day 7: Fine-tuning ChatGPT là gì?
Bài viết chia sẻ tiến trình ngày thứ 7 trong thử thách tạo khóa học tiếng Anh trong 2 tuần. Tác giả giới thiệu về Fine-tuning ChatGPT, một tính năng cho phép tạo phiên bản ChatGPT tùy chỉnh dựa trên dữ liệu cung cấp, đặc biệt hữu ích cho chatbot hỗ trợ khách hàng. Bài viết cũng thảo luận về việc điều chỉnh hướng phát triển ứng dụng demo và khóa học, cùng với những khó khăn khi sử dụng API của OpenAI tại Việt Nam.

English Course Challenge in 2 weeks - Day 2: Tiềm năng của Prompt Engineering
Bài viết chia sẻ về việc phát triển ứng dụng SaaS AI demo cho khóa học Bubble, tập trung vào Prompt Engineering - kỹ thuật viết prompt hiệu quả cho AI. Tác giả giới thiệu cấu trúc prompt chuẩn gồm 6 phần: Persona, Context, Task, Format, Examplar và Tone, đồng thời trình bày ý tưởng và mockup cho ứng dụng hỗ trợ người dùng viết prompt tốt hơn, giải quyết vấn đề nhiều người gặp phải khi sử dụng AI.

Đối thoại với AI: Generative AI (AI tạo sinh) và những điều cần biết
Bài viết dạng hỏi đáp toàn diện về AI tạo sinh, bao gồm kỹ thuật viết prompt hiệu quả, cách kiếm tiền từ AI, các nền tảng thay thế Claude AI, chi phí huấn luyện mô hình lớn, và các khái niệm quan trọng như BERT, mô hình tiền huấn luyện cùng những vấn đề đạo đức liên quan.

Công ty một người
Bài viết giới thiệu về khái niệm 'Công ty một người' (Company of One) từ cuốn sách của Paul Jarvis, một mô hình kinh doanh tập trung vào việc tối đa hóa lợi nhuận thay vì mở rộng quy mô. Tác giả so sánh giữa việc điều hành công ty lớn với nhiều nhân viên và mô hình công ty một người, phân tích ưu điểm của việc duy trì quy mô nhỏ nhưng hiệu quả cao, đồng thời chia sẻ những ví dụ thực tế về các cá nhân thành công với mô hình này trong lĩnh vực MMO, influencer và content creator.

Day 11 - Profitable MVP in 30 Days - Bế tắc với những ý tưởng mới
Bài viết ngày 11 của thử thách xây dựng MVP có lợi nhuận, tác giả chia sẻ về việc tìm kiếm ý tưởng mới sau khi gặp khó khăn với sản phẩm đầu tiên. Bài viết giới thiệu ý tưởng Reading Tracker - công cụ giúp người dùng tạo, quản lý và chia sẻ danh sách sách đã đọc, với các tính năng như đồng bộ từ Goodreads, tự động hoàn thành khi nhập và tích hợp liên kết tiếp thị liên kết Amazon.