Lộ trình + Resources học Swift và IOS từ cơ bản đến nâng cao
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
<iframe width="800" height="600" src="//www.youtube.com/embed/1czeebKyxHA" allowfullscreen="allowfullscreen"></iframe>
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é