MOBILE DEVELOPER CÓ CẦN HỌC BACKEND KHÔNG?

October 13, 2021


## Mobile Development không hề nhàm chán Nếu tính luôn thời gian tự nghiên cứu J2ME trên Đại học, đến nay tôi theo Mobile đã 10 năm rồi. Ngoài iOS, Android, tôi có biết thêm vài hệ điều hành khác. **Nhưng đó không phải là lý do tôi nghĩ mình đã nhàm chán với Mobile và cần tìm đến những vùng đất mới**. Các nền tảng (iOS, Android) nâng cấp định kỳ mỗi năm và giới thiệu hàng tá library, framework hỗ trợ kèm theo, và chưa kể các library của cộng đồng mã mở. Kiến thức rất nhiều, sợ rằng chúng tôi không có project để ứng dụng. 10 năm chỉ là con số khiêm tốn trên cộng đồng developer thế giới. Trên Quora, các senior 10, 20, 30 năm vẫn không tỏ ra nhàm chán trong chuyên môn của họ. Chúng tôi vẫn còn gặp nhiều vấn đề trong project trong công ty: về sự tương thích kích cỡ màn hình, nâng cấp OS, user luôn yêu cầu UI/UX mới lạ, source code Mobile không phân ra theo microservice như BackEnd nên source của Mobile thường nhiều và quản lý khó khăn hơn,... với tôi, còn thử thách là còn thú vị. Nếu vẫn còn đam mê Mobile, vì sao tôi muốn ôm thêm cả BackEnd? ## Học BackEnd để có solution toàn diện hơn Mobile cũng giống Web đều là FrontEnd đều là giao diện người dùng, nhưng khi định nghĩa Full Stack thì mọi người như ngầm hiểu đó là những developer có cả kiến thức Web, Database, có thể thiết kế API phục vụ business doanh nghiệp,... có thể làm từ đầu đến cuối. Nhưng hiếm khi nhà tuyển dụng yêu cầu FullStack làm được cả Mobile. Nói thế không có nghĩa Mobile Developer không cần mở rộng kiến thức sang các lĩnh vực khác. Đến một giai đoạn nào đó, Mobile Developer rất cần có thêm kiến thức về API. Khi optimize Mobile App đến một mức nào đó, tôi ngừng lại và nói với mọi người rằng: *"Đến đây là hết mức, cần tối ưu hơn nữa thì phải optimize data do API trả về"*. Chúng tôi có thể order đội API cung cấp data như yêu cầu, tuy nhiên, chi phí tạo document, communication đôi khi hơn cả effort của API team. Khi đó, phải chăng nếu tôi làm được cả API thì việc tiến hành sẽ thuận lợi hơn. Mobile Developer khi nhận các error từ API, trừ error 404, nếu developer nhận được các mã lỗi là lạ: 500, 401, 403, TimeOut,... thì thường bất an khi nhận các mã lỗi này, họ có thể loay hoay điều tra mọi vấn đề từ phía Mobile trong khi nguyên nhân nằm ở nơi khác. Nếu biết thêm về cách API hoạt động, thì có thể ngộ ra: "À đây là ngoại lệ trên tầng API khi xử lý nghiệp vụ", "Đây là lỗi thiếu chứng thực", "Đây là lỗi thiếu quyền truy cập", "Đây là vấn đề về môi trường không access được",... nắm được các vấn đề chúng tôi có thể giải quyết hoặc yêu cầu sự trợ giúp nhanh hơn. ## Lời kết
"Việc học cũng như khoan giếng. Miệng giếng nhỏ thì khó khoan sâu" -Trích lời một người thầy đã dạy và tôi luôn ghi nhớ-
Rõ ràng, trước kia tôi cố bó hẹp mình trong 1 lĩnh vực, tôi đã chững lại một lúc. Học BackEnd có rất nhiều thú vị (có lẽ tôi sẽ chia sẽ ở bài sau), nhưng hơn hết, khi tôi quay lại, tôi đã sáng tỏ các vấn đề tôi từng gặp ở Mobile. Chúng tôi cũng có thể xây dựng một số API để cung cấp bộ Test data thuận lợi hơn. Có bạn BackEnd nào muốn đổi vị làm Mobile Dev không nhỉ :D