Lộ trình tự học Flutter từ cơ bản tới nâng cao
Trong bài viết này mình muốn chia sẻ với các bạn lộ trình để học Flutter từ mức độ cơ bản cho tới nâng cao một cách hiệu quả. Lộ trình này là do tự mình thiết kế, áp dụng và điều chỉnh qua thời gian nên mình tự tin là nó sẽ hữu ích cho tất cả mọi người.
Lộ trình học là gì?
Lộ trình học (roadmap) nói nôm na là một con đường, một kế hoạch cụ thể (về việc nên/cần học những gì, học cái gì trước, học gì sau, học như thế nào...) để việc học được hiệu quả hơn, nhanh chóng đạt được mục tiêu học tập.
Có một thực tế đáng buồn là có rất nhiều bạn, đặc biệt là các bạn sinh viên trẻ (đôi khi còn có những bạn giòa nữa) thường không có thói quen lập kế hoạch học tập. Các bạn thường bỏ qua việc này và lao đầu thẳng vào việc code, sau đó gặp vấn đề ở đâu thì mới đi tìm hiểu. Nếu bạn là một người như vậy, hi vọng bài viết này sẽ góp phần thay đổi quan điểm của bạn.
Tại sao phải có lộ trình học?
Một lộ trình học tập tốt sẽ đem lại cho bạn rất nhiều lợi ích. Dưới đây là một số lợi ích tiêu biểu có liên quan đến việc học Flutter.
Học từ cơ bản, không bỏ sót - tránh hổng kiến thức. Với một lộ trình học, bạn sẽ có cái nhìn tổng thể về tất cả nội dung cần phải học. Từ đó sẽ không bỏ sót những phần quan trọng.
Trên các hội nhóm về Flutter, mình thấy rất nhiều bạn đặt các câu hỏi về các lỗi liên quan đến const (vì sao em thêm từ khóa const thì không build được), vì sao hàm này em phải truyền tham số cùng với tên mà hàm kia lại không cần... Đây là một trường hợp điển hình do học sót, vì muốn nhanh mà bỏ qua kiến thức về ngôn ngữ Dart.
Tăng hiệu suất học tập. Khi bạn có một lộ trình rõ ràng, những kiến thức cần nạp sẽ được hệ thống một cách khoa học (ví dụ: từ cơ bản tới nâng cao), từ đó giúp bạn tiếp cận kiến thức mới một cách dễ dàng hơn, giúp tăng hiệu suất học tập. Thay vì trước đó, gặp vấn đề ở đâu tìm hiểu ở đó, sẽ gặp nhiều trường hợp mà kiến thức đang có sẵn của bạn không đủ để tìm hiểu vấn đề đang gặp, hoặc là đủ nhưng chưa đạt mức giúp bạn tìm hiểu một cách thấu đáo. Từ đó vấn đề trở nên khó khăn hơn và dễ cảm thấy nản chí.
Quản lý được tiến độ đạt được mục tiêu. Với một lộ trình học tập rõ ràng, bạn có thể phân chia ra thành nhiều giai đoạn, mỗi giai đoạn sẽ có những mục tiêu khác nhau. Việc nắm rõ tiến trình và phân nhỏ tiến trình như vậy sẽ giúp bạn hiểu rõ là mình đang ở đâu, mục tiêu của mình đã đạt được hay chưa từ đó có những điều chỉnh phù hợp để nhanh chóng đạt được mục tiêu đề ra.
Làm thế nào để đặt cho mình một lộ trình học?
Đây không phải là mục đích chính của bài viết nên mình xin phép không dài dòng vào vấn đề này. Bạn có thể Google để tìm hiểu thêm.
Lộ trình học Flutter 2023
Như đã nói, lộ trình này là mình xây dựng riêng cho bản thân mình, mặc dù vậy thì nó cũng phù hợp với đại đa số mọi người (đã biết qua lập trình cơ bản). Bạn có thể sử dụng để tham khảo, hoặc cũng có thể bắt đầu học theo lộ trình này luôn khỏi phải tạo một cái mới. Lộ trình này sẽ chia thành 4 giai đoạn chính:
Bắt đầu làm quen với ngôn ngữ Dart, từ các vấn đề cơ bản như biến, hàm, toán tử, lệnh điều khiển cho tới các chủ đề đặc trưng của Dart như isolate... Các bạn không nên nóng vội nhảy vào Flutter mà bỏ qua phần này. Tùy vào khả năng tiếp của chính bạn, giai đoạn này có thể mất từ vài ngày cho đến 1 tuần. (học ngắt quãng và tự thực hành)
Ở giai đoạn sơ cấp, chúng ta sẽ cài đặt các công cụ để làm việc với Flutter, tìm hiểu về thành phần cơ bản - quan trọng nhất trong Flutter đó là Widget. Học cách sử dụng các loại widget khác nhau, tạo UI, xử lý dữ liệu người dùng, điều hướng. Kết thúc phần này, bạn sẽ làm được những ứng dụng tĩnh (không có lấy dữ liệu từ database hoặc internet) đơn giản. Giai đoạn này có thể mất từ 1 đến 2 tuần.
Ở giai đoạn trung cấp, chúng ta sẽ chú trọng vào một số chủ đề như: responseive UI (làm cho giao diện ứng dụng hiển trị tốt trên tất cả thiết bị), tích hợp database, lấy data từ internet (rest api), tìm hiểu thư viện quản lý trạng thái bloc, và cuối cùng là cách để đưa ứng dụng lên store. Đến giai đoạn này, ứng dụng của bạn viết ra đã có thể có database để lưu trữ dữ liệu. Tổ chức code đã tốt hơn với state management, bạn đã có thể đưa ứng dụng đầu tiên của mình lên cửa hàng. Giai đoạn này sẽ mất 1 - 2 tuần.
Đến giai đoạn này, chúng ta sẽ tìm hiểu các chủ đề nâng cao hơn như: DI (dependency injection), kiến trúc sạch (clean artchitecture), cách gọi code native từ Flutter, Testing... Giai đoạn này sẽ chú trọng nhiều hơn đến chất lượng code. Những topic ở giai đoạn này đều là chủ đề khó, nhiều lập trình viên lâu năm thậm chí còn không nắm vững được. Vậy nên về khoảng thời gian để bạn có thể nắm được là hoàn toàn phụ thuộc vào (khả năng tiếp thu, mức độ thực hành) bạn.
Bên dưới là lộ trình chi tiết, bạn có thể bấm vào từng phần để xem nội dung cụ thể. Chúc bạn học tốt!
Trung cấp
Nâng cao