Lập Trình Viên Android Chuyên Nghiệp Cần Gì?

Lập Trình Viên Android Chuyên Nghiệp Cần Gì?

“Lập trình viên Android cần học những gì?” là câu hỏi mà nhiều bạn trẻ đặt ra khi bắt đầu học lập trình Android nhưng hãy thử đổi câu hỏi đó thành "Lập trình viên Android chuyên nghiệp cần gì?" nó sẽ giúp các bạn trở nên chuyên nghiệp hơn và dễ dàng được tuyển chọn hơn khi ứng tuyển vào các công ty công nghệ. Vậy cái gì hay điều gì là cần thiết để các lập trình viên Android trở nên chuyên nghiệp, hãy cùng mình tìm hiểu trong bài viết này nhé!

Đầu tiên thay cho tất cả, để trở thành một lập trình viên nói chung hay trở thành một lập trình viên Android chuyên nghiệp nói riêng, các bạn hãy chuẩn bị cho mình "một tâm hồn tươi đẹp". OK Just for fun, mình chỉ đùa thôi, mình sẽ chỉ ra 5 thứ mà các bạn cần phải có nếu muốn trở thành một lập trình viên Android chuyên nghiệp. Đừng lười đọc nhé, hãy cố gắng đọc hết bài viết, nó sẽ là liều thuốc bổ giúp bạn trong bước đường phát triển sự nghiệp lập trình.

Nắm vững một ngôn ngữ lập trình

Ngôn ngữ lập trình là thứ không thể thiếu đối với mỗi lập trình viên, nếu các bạn muốn trở thành lập trình viên mà không biết về bất cứ một ngôn ngữ lập trình nào thì giống như các bạn cầu mong được trúng vé số nhưng lại không mua vé số vậy. Ngôn ngữ lập trình thì nhiều vô số kể, nó nhiều còn hơn cả các bí kíp võ công trong phim kiếm hiệp Kim Dung.

Tuy nhiên đối với nên tảng Android, Google (công ty sỡ hữu hệ điều hành Android) chỉ cho phép các nhà phát triển (hay lập trình viên) sử dụng một trong hai ngôn ngữ là JAVA hoặc KOTLIN làm ngôn ngữ lập trình chính thức để phát triển các ứng dụng trên nền tảng này. Cả hai ngôn ngữ này đều là những ngôn ngữ lập trình hướng đối tượng, để học được nó thì các bạn phải nắm được các khái niệm về hướng đối tượng. JAVA thì có từ lâu đời rồi và nó cũng là ngôn ngữ lập trình đầu tiên mà Android lựa chọn, còn KOTLIN thì chỉ mới đây thôi (được giới thiệu vào tháng 7 năm 2011). Vì được ra sau nên KOTLIN có phần nhỉnh hơn một xíu, nó kế thừa toàn bộ tinh hoa của JAVA đồng thời khắc phục những điểm yếu mà vị huynh trưởng của nó mắc phải.

KOTLIN được tinh chỉnh để viết gọn hơn, mã nguồn của nó trong sáng, dễ hiểu, trong KOTLIN chúng ta không cần phải dùng dấu chấm phẩy để ngăn cách các câu lệnh và cũng không cần phải quan tâm đến việc NullPointerException tồn tại vì đối với KOTLIN điều đó sẽ không bao giờ xảy đến. Ngôn ngữ tuyệt vời này cũng sở hữu cho mình rất nhiều thư viện và các hàm chức năng, từ đó giúp các nhà phát triển đỡ công hơn trong việc suy nghĩ để giải quyết các bài toán common. Không những thế với khả năng tương tác JAVA 100%, chúng ta có thể sử dụng KOTLIN kết hợp với các thư viện của JAVA mà không hè có bất kì một sự e ngại nào.

Để học và tìm hiểu về sự thú vị của KOTLIN, các bạn có thể truy cập trang chủ của nó ở đường dẫn này Tuy tuyệt vời như thế, song chúng ta cũng không thể phủ nhận sự tồn tại của JAVA khi phát triển các ứng dụng Android. Vì đa phần các package (gói), library (thư viện),... trong Android đều được viết và đóng gọi lại bắng ngôn ngữ JAVA, do vậy việc học và biết về ngôn ngữ JAVA cũng là một điều tất yếu. Hãy thử nghĩ rằng một ngày đẹp trời nào đó, khi khách hàng yêu cầu bạn phát triển một chức năng nho nhỏ, bạn lên mạng tìm hiểu và thấy một thư viện tuyệt vời, nó đáp ứng được một vài tiêu chí bạn cần đồng thời bạn cũng phải customize (tuỳ biến) lại một vài thứ để phù hợp với yêu cầu, nhưng không may thay nó được viết bằng ngôn ngữ JAVA và bạn không biết gì về thứ gọi là JAVA, hãy cho tôi biết cảm xúc của bạn ngay lúc đó... có phải là tiếc điên cuồng không!?? Mà đấy cũng là trường hợp thực tế chúng ta sẽ gặp phải. Vì thế dù KOTLIN có ngon đến mấy thì mình khuyên các bạn cũng nên biết thêm chút đỉnh về JAVA. KOTLIN hay JAVA cũng được, hoặc cả hai thì càng tốt, nhưng để trở nên chuyên nghiệp hơn thì hãy cùng mình đi đến với cái thứ hai nhé, nó là nền móng quan trọng để bạn trở thành expert KOTLIN hoặc JAVA.

Lập trình hướng đối tượng (OOP) - không biết không phải là lập trình viên

Vì sao mình khẳng định nếu không biết lập trình hướng đối tượng thì không phải là lập trình viên? Vì hiện nay, đa số các ngôn ngữ đều dựa trên các khái niệm về lập trình hướng đối tương, vẫn có một vài ngôn ngữ theo hướng lập trình chức năng nhưng mình tin chắc rằng, khi các bạn bắt tay vào học lập trình, thì các bạn đã biết đến lập trình hướng đối tượng rồi. Và như ở mục phía trên mình đã nói, JAVA hay KOTLIN nó đều là ngôn ngữ lập trình hướng đối tượng và nếu như các bạn không biết cái khái niệm lập trình này... ôi thôi cuộc tình với Android của các bạn sẽ chính thức tan vỡ! Vậy nắm vững lập trình hướng đối tượng là nắm những thứ gì? Đó chính là các bạn phải biết đối tượng trong lập trình là gì? Nó cũng như ngoài đời thực vậy, đối tượng trong lập trình cũng chính là con người, là sự vật, sự việc, là cây cối, hoa lá, chim chóc. Khi bắt tay vào lập trình, các bạn cũng phải xác định rõ đối tượng mà chúng ta hướng đến là gì. Đối tượng thì sẽ có hành động, mà hành động ở trong lập trình người ta gọi là các phương thức (methods). Ngoài các phương thức đối tượng còn có các tính chất, thuộc tính (properties). Không dừng lại ở đó, khi nhắc đến OOP, các bạn phải nắm thật kĩ bốn thuộc tính bá đạo của nó bao gồm Kế thừa (Inheritance), Trừu tượng (Abstraction), Đa hình (Polymorphism), Đóng gói (Encapsulation), phân biệt được bốn thuộc tính đó, cách sử dụng chúng ra sao và làm thế nào để kết hợp chúng lại với nhau. Đấy chỉ cần nắm nhiêu đó thôi là các bạn cũng đủ nâng mình lên tầm cao mới rồi, nhưng phải nắm thật kĩ nhé.

Các thành phần trong ứng dụng Android (Android components)

Nãy giờ chỉ là những thứ râu ria, nhưng mà râu ria đấy lại là nền móng cho cả tương lai. Tiếp theo chúng ta đến với một thứ cực kì quan trọng và luôn cần phải nhắc đến đó chính là các thành phần trong ứng dụng Android. Các thành phần thì nhiều lắm, nhưng mình sẽ nêu ra một vài thứ mà khi các bạn nắm kĩ những thứ đó, người ta sẽ đánh giá các bạn thật là chuyên nghiệp. Đầu tiên phải kể đến đó là các layout, trong Android có rất nhiều loại layout là LinearLayout, RelativeLayout, TableLayout, GridLayout... và đặc biết là ConstaintLayout, các bạn không nên dừng lại ở việc biết sắp xếp bố cục trong layout mà phải biết cách lựa chọn layout nào cho hợp lí, sắp xếp các thành phần lên đó sao cho ứng dụng đạt hiệu năng (performance) tốt nhất, tối ưu hoá (optimize) đoạn code xml (mã nguồn giao diện). Tiếp đến các bạn cần phải nắm kĩ và rõ về Activity, Fragment và vòng đời của chúng. Cách mà Activity hoạt động như thế nào, mỗi một dự án (project) thì nên tổ chức bao nhiêu Activity, Fragment hoạt động ra sao, nó lệ thuộc như thế nào vào Activity... Nắm vững các loại view trong Android, ví dụ như TextView, Button, ViewPager... ViewGroup là gì, cách customize view ra sao... Đấy nếu mà kể thì sẽ đến sáng mai nhưng tốt nhất khi làm việc, các bạn hãy dành thời gian vào trang chủ của Android tại đây để xem về những điều này nhé. Sự chuyên nghiệp sẽ thể hiện ở những thứ bạn làm mà nó được người ta khuyến nghị và cộng đồng đều hưởng ứng.

Kiến trúc ứng dụng trong Android (Android architecture) - sự chuyên nghiệp thể hiện ở đây

Từ thời xa xưa, cái thời mà Android vừa mới đủ lông đủ cánh để bước vào xứ sở của những công nghệ đình đám, người ta rất ưa chuộng kiến trúc gọi là MVC (Model-View-Controller). MVC chính là cả thanh xuân của Android nhưng bây giờ, khi mà yêu cầu ngày một khó khăn hơn đòi hỏi Android cũng phải thay đổi để đáp ứng được các nhà phát triển khó tính. Hiện nay Google khuyến khích các chiến binh lập trình viên khi phát triển các ứng dụng Android thì nên sử dụng một trong hai kiến trúc là MVP (Model-View-Presenter) hoặc MVVM (Model-View-ViewModel).  Để nắm vững các loại kiến trúc này thì buộc các bạn phải trải nghiệm thật nhiều trong các dự án thật. Khi tham gia các dự án thật, các bạn sẽ có cơ hội để gặp những bài toán lớn, từ đó sẽ học được cách thiết kế kiến trúc hợp lí, đáp ứng tải lượng các yêu cầu. Các bạn có thể truy cập vào trang web này để tìm hiểu về các kiến trúc trong ứng dụng Android, ở đây Google cũng đưa ra các ví dụ mẫu kiến trúc. Hãy làm theo sự chỉ dẫn của Google!

Các mẫu thiết kế (Design Patterns) - vừa chuyên nghiệp, vừa đẳng cấp

Các mẫu thiết kế (Design Patterns) - mình xin phép phải nói là mình không thích dịch nó ra tiếng Việt chút nào - là những lời giải cho những bài toán đã có từ trước. Các bạn sẽ không phải đau đầu, cũng không phải mất nhiều thời gian từ vài ngày cho đến vài năm và thậm chí là cả cuộc đời để giải những bài toán lập trình này vì thật sự may mắn khi bạn và tôi đã đọc và hiểu được những lời giải mà các vị tiền bối tổ sư để lại. Design Patterns nó cũng như bài văn mẫu vậy, các bạn đọc vào bài văn mẫu của người ta, sau đó hiểu được bố cục họ làm như thế nào, dàn ý bài văn đó ra sao, nắm được cái sườn đó rồi chúng ta lại lấy cái sườn đó qua bài văn của mình mà viết lời văn ra thôi. Thật đơn giản phải không nào!? Nói đơn giản vậy thôi chứ để hiểu và ứng dụng được các design patterns trong lập trình quả là một việc không hề nhẹ nhàng gì, tuy nhiên nó cũng không quá phức tạp. Design patterns có rất nhiều loại, nhưng theo như kinh nghiệm của mình, một vài loại ứng dụng trong Android như là Singleton, Builder, Dependency injection, Observer, Adapter,... Khi các bạn nắm vững nó và ứng dụng nó một cách nhuần nhuyễn trong dự án của mình, các bạn sẽ thật sự rất chuyên nghiệp. Mơ hồ quá đúng không? Nếu vẫn cảm thấy mơ hồ thì hãy bắt tay lên Google và tìm kiếm với từ khoá "design patterns in android", sau đó áp dụng và thực hành thật là nhiều, dần dần sẽ không còn khái niệm mơ hồ trong bạn nữa.

Tạm kết

Trên đây là năm thứ mà mình nghĩ thực sự rất cần khi các bạn muốn mình trở nên chuyên nghiệp hơn trong lập trình Android. Sự chuyên nghiệp sẽ không dừng lại ở việc các bạn đọc blog của mình hoặc lên mạng tìm kiếm những thứ xoay quanh đó mà hãy bắt tay vào làm, làm thật là nhiều các bạn sẽ khám phá ra những điều mới lạ và sẽ hình thành trong bản thân một phản xạ là sự chuyên nghiệp.

Bài viết cũng khá dài, chân thành cảm ơn các bạn đã đọc đến câu này. Mình sẽ cố gắng viết thêm những bài viết bổ ích hơn và chi tiết hơn dành cho các bạn. Mong rằng sau khi đọc bài viết của mình, các bạn sẽ đọng lại được điều gì đó và chút ít kiến thức đó sẽ là nền móng cho sự thành công sau này của các bạn.

Nếu các bạn thấy bài viết hữu ích, hãy đánh giá cho nó 5 sao để mình có thêm động lực viết tiếp những điều hay ho nhé.

Nếu có chủ đề gì cần mình viết ra, các bạn hãy cứ comment cho mình biết.

Chúc các bạn thành công và hẹn gặp lại!