Top 10 quy tắc học lập trình mà ai cũng nên theo

0
1165

Sau rất nhiều sai lầm khi theo đuổi con đường lập trình viên, mình đã tự đúc kết được 10 quy tắc học lập trình mà mình nghĩ bất cứ ai mới bắt đầu cũng nên theo.

Nó có thể giúp cho các bạn tự tin hơn khi bắt đầu hành trình trở thành một developer chân chính. Tất nhiên là không nên lặp lại những sai lầm mà mình đã gặp trước đó.

Quy tắc học lập trình

Mình đã bắt đầu học lập trình như thế nào?

Mình vẫn nhớ ngày này năm 2014, là ngày mình bắt đầu đăng ký một khóa học lập trình Android tại một trung tâm gần học viện An Ninh. Giờ nghĩ lại mới thấy đó thật sự là quyết định vô cùng đúng đắn.

Sau đó là 3 năm đi làm, mình đã có nhiều cơ hội để trải nghiệm với nhiều dự án thực tế hơn.

Điểm xuất phát của mình là một con số “0” tròn trĩnh. Mình học code không có ai hướng dẫn, cũng không có bất kì ai nói với mình rằng: Hãy làm như thế này này, thế kia mới là đúng…

Lẽ dĩ nhiên, sai lầm trong quá trình làm việc là không thể tránh khỏi. Đặc biệt, trong khoảng thời gian đầu, mình gần như mất rất nhiều thời gian. Thậm chí mất luôn cả phương hướng khi “tự bơi” trong thế giới lập trình.

Một năm rưỡi sau đó, mình may mắn được cộng tác với một số đàn anh rất giỏi và dày dạn kinh nghiệm trong lĩnh vực phát triển Android. Ở thời điểm đó, mình được anh hướng dẫn rất tận tình. Anh chỉ cho mình những quy tắc học lập trình mà mình vẫn còn nhớ như in đến tận bây giờ.

Lưu ý: Mình sẽ chủ yếu tập trung vào công việc phát triển Android và một số khái niệm lập trình và phát triển phần mềm nên một số bạn “ngoài ngành” sẽ hơi khó tiếp cận. Tuy nhiên, mình sẽ giải thích các khái niệm ở cuối bài viết.

#1.Đừng cố gắng làm lại những gì mà thế giới đã làm tốt

Đừng cố gắng làm lại những gì mà thế giới đã làm tốt

Thuở mới vào nghề, mình không thích sử dụng thư viện mã nguồn mở (open-source code). Nếu cảm thấy cần thiết, mình sẽ tự tay tạo những mã code cho riêng mình. Và đó thật sự là một sai lầm.

Khi bạn gặp phải bất cứ vấn đề gì trong trình phát triển ứng dụng. Nếu nó đã có giải pháp khắc phục thì đừng ngần ngại tận dụng nó.

Hãy Google Search trước khi làm, không tội gì phải tự nghĩ giải pháp mới. Chắc chắn bạn sẽ tiết kiệm được rất nhiều thời gian trong quá trình làm việc đấy.

Hãy tập trung nhiều hơn vào việc giải quyết business của ứng dụng vì code lại những thứ đã có rồi. Giả sử ứng dụng của bạn cần kết nối mạng, bạn không cần phải code lại nguyên thư viện Retrofit đâu.

Bonus: Github là trang web cung cấp rất nhiều thư viện tham khảo. Bạn cứ thử search một từ khóa mà mình cần trong Github xem, mình tin là sẽ có thứ bạn cần. Nếu bạn chưa biết sử dụng Github thì tham khảo bài viết này nhé: Hướng dẫn sử dụng Github

#2.Lựa chọn thư viện một cách khôn ngoan

Như mình đã nói ở trên, để giải quyết một vấn đề thì luôn có sẵn một giải pháp mà người đi trước đã làm. Và mình cũng khuyên bạn nên tận dụng nó nhưng phải khôn ngoan.

Bạn có thể tìm vô số thư viện hỗ trợ bạn giải quyết công việc một cách nhanh chóng. Nhưng trước khi lựa chọn bất kì một thư viện nào, bạn hãy kiểm tra số lượng rating mà người dùng trước đó đánh giá, cũng như thời gian gần nhất mà tác giả cập nhật thư viện.

Ngoài ra, bạn cũng nên tham khảo danh sách issues của thư viện để có thể đánh giá độ tin cậy và khả năng hỗ trợ lâu dài của thư viện.

Nếu bạn ”max rảnh” thì có thể nhảy hẳn vào mã nguồn để tận mắt kiểm tra xem nó có thực sự tốt không? Cấu trúc mã nguồn có rõ ràng và có khả năng bảo trì cao không? Source code có được viết cẩn thận, có comment rõ ràng hay không?

Chỉ có như vậy bạn mới thực sự kiểm soát được chất lượng của thư viện mà bạn đang tham khảo để bổ trợ cho việc hoàn thành dự án.

Nếu bỏ qua bước này, bạn sẽ có nguy cơ tích trữ “một đống rác” cho dự án của mình, làm chậm tiến độ của dự án. Đấy là còn chưa nói đến hàng tá bug mà thư viện khuyến mãi cho bạn!

2-nam-tro-thanh-nha-phat-trien-android-da-toi-luyen-toi-nhu-nao

#3.Ngồi xuống, nhâm nhi tách cà phê và đọc code nhiều hơn

Nếu bạn để ý, Khi đi làm thì thời gian chúng ta dành cho đọc code của người khác là vô cùng nhiều. Chủ yếu là bạn sẽ phải phân tích code của dự án, review code cho member… hơn là thời gian tự viết code.

Nếu bạn đang trong hoàn cảnh ngồi tự suy nghĩ và tự code tất cả thì hãy nhanh chóng thay đổi suy nghĩ đi thôi.

Bất kể đoạn code nào bạn viết ngày hôm nay, thực chất chỉ là những gì bạn đã đọc hoặc từng học được ở đâu đó mà thôi.

Tức là bạn không phải nhà phát minh gì đâu, chỉ là bạn “bắt chước” ở đâu đó và biến nó thành của mình một cách sáng tạo.

Thực tế đã chứng minh là bạn chỉ có thể phát triển và cải thiện khả năng code của mình bằng cách đọc và học hỏi từ người khác.

Android là một nền tảng mã nguồn mở. Bạn có thể đào sâu mã nguồn để tìm hiểu xem các chuyên gia lập trình ra framework như thế nào. (Xem thêm Flutter hay react native Framework)

Như mình đã nói ở phần trước, hiện đã có hàng nghìn thư viện open-source trên Github. Bạn chỉ cần chọn lọc và nghiên cứu xem họ đã phát triển chúng như thế nào rồi sau đó học hỏi và tự nâng cao trình độ của mình.

Một lập trình viên thành công luôn biết cách học hỏi một cách hữu ích.

Bonus:  Đây là hai danh sách thư viện open-source code dành cho Android mà bạn sẽ cần đến khi bắt đầu triển khai dự án của mình:

#4.Code theo một tiêu chuẩn nào đó

Nếu bạn so sánh việc coding với viết văn, thì các tiêu chuẩn của coding cũng giống như chữ viết tay của bạn vậy.

Cũng giống như việc bạn đọc rất nhiều code của người khác (có thể là đồng nghiệp, chuyên gia hoặc sếp của bạn) trong khi họ cũng có thể đang đọc code của bạn viết ra.

Chắc hẳn bạn không hề muốn nhìn thấy cảnh họ phải thốt lên: “Trời ơi, nó đang viết cái quái gì đây?” đúng không?

Sẽ không khó hiểu nếu bạn bị đồng nghiệp của mình “xa lánh” khi chẳng may họ vô tình đọc được code do chính bạn tạo ra.

Hãy viết code thật ngắn gọn, rõ ràng và dễ đọc (Bạn biết từ khóa này chứ: DRY? Nghĩa là: Don’t repeat yourself. Nếu chưa biết thì hãy search google nhé).

Đỉnh cao của lập trình viên chính là: “Hãy viết code như viết một câu chuyện!”. Mình khuyên bạn nên đọc bài viết về clean code này của mình: Cách để viết Clean Code Android

#5.Với Android, nên sử dụng ProGuard

Proguard là công cụ tuyệt vời không chỉ làm giảm kích thước code mà còn đảm bảo code của bạn an toàn trước các tay “đạo chích” có ý định “chôm chỉa” code của bạn.

Nếu bạn đang có ý định đưa ứng dụng của mình lên Google Play, mình có lời khuyên chân thành rằng bạn nên sử dụng Proguard “liền, ngay và lập tức”.

Mình từng bắt gặp một số ứng dụng được phát hành trên Google Play nhưng lại không sử dụng Proguard. Và kết quả là các hacker chỉ mất vỏn vẹn 5 phút để “chôm chỉa” bằng cách biên dịch ngược lại 100% mã nguồn từ file apk.

Pro Tip: Nhưng nếu bạn muốn bảo vệ mã nguồn ở mức cao nhất, thì Proguard chỉ như “tấm giấy bìa mỏng manh”, DexGuard mới là “vệ sĩ đích thực” bảo vệ mã nguồn của bạn.

#6.Không quên tận dụng các “cấu trúc” (Architecture)

Có khi nào bạn thầm tự cảm ơn mình khi đã may mắn lựa chọn một “cấu trúc” (Architecture) hợp lý từ những ngày đầu của dự án chưa?

Một Architecture hợp lý sẽ đảm bảo dự án của bạn dễ dàng duy trì cũng như mở rộng. Từ đó việc đọc mã nguồn cũng trở nên đơn giản hơn rất nhiều.

Ở thế giới lập trình web, MVC là một trong những architecture phổ biến nhất. Trong khi đó, với lập trình Android mọi người lại sử dụng MVP (Model-View-Presenter) nhiều hơn.

Với MVP, bạn có thể phân chia source code thành 3 tầng riêng biệt. Mục đích là tách phần View của Android ra khỏi phần xử lý logic. Như vậy, tầng Model-Presenter sẽ chỉ có thuần code Java mà không có code Android.

Pro Tip: Đây là một ví dụ minh họa về MVP kiến trúc. Và có thể bắt đầu bằng một guide hướng dẫn chi tiết MVP

#7.“Giao diện người dùng” (User Interface) là cực kì quan trọng

2-nam-tro-thanh-nha-phat-trien-android-da-toi-luyen-toi-nhu-nao

Bất kì ứng dụng nào, nếu ngay từ lần sử dụng đầu tiên đã phải nhờ đến một bài hướng dẫn cách sử dụng dài lê thê thì đó chính là “điềm báo” cho một ứng dụng thất bại.

Nếu bạn làm việc trong một công ty chuyên phần mềm với vai trò là một nhà phát triển Android (Android Developer) thì có thể bạn sẽ không cần quan tâm đến vấn đề này. Vì công ty đã có team UI/UX lo.

Nhưng nếu bạn là một nhà phát triển app độc lập, làm việc một mình thì UI/UX là vấn đề bạn phải luôn ghi nhớ trong đầu.

Người xưa có câu: “Tốt gỗ hơn tốt nước sơn”. Nhưng ở cái thế giới mà nhiều khi “nước sơn” tốt vẫn thu hút được rất nhiều người hơn là “gỗ tốt”.

Đặc biệt trong ngành phần mềm, sự cạnh tranh vô cùng khắc nghiệt cộng với người dùng ngày càng lười biếng thì UI là cái đập vào mắt họ đầu tiên trước khi họ kịp trải nghiệm tính năng bên trong.

Theo số liệu thống kê từ VnTalking, một ứng dụng với thiết kế UI cực tệ và khó sử dụng thì khả năng thất bại của nó sẽ tăng gấp 4 lần.

Chính vì vậy, hãy đầu tư cho “nước sơn” thật tốt vào nhé!

Bonus: Nếu bạn không có khả năng thiết kế hoặc không thể tự học được thì có thể nghĩ đến chuyện đi thuê. Có rất nhiều website cung cấp dịch vụ thiết kế với giá cả rất hợp lý, mình gợi ý một nơi đó là: Fiverr.com (Chỉ 5$ cho một dự án thành công)

#8.Phân tích số liệu – “bạn đồng hành” lý tưởng

Nếu bạn muốn tạo ra một ứng dụng thật sự tốt, bạn cần phải dựa vào các công cụ phân tích (Analytics tool) để biết được hiệu năng (Performance) và tần suất sử dụng các chức năng trên ứng dụng đó.

Dù bạn có là nhà phát triển Android thiên tài đi chăng nữa, bạn cũng không thể nào viết một ứng dụng hoàn hảo 100%.

Tất cả đều chỉ mới dừng lại ở mức “trên lý thuyết” mà thôi. Thực tế, có nhiều trường hợp ứng dụng hoạt động không đúng, khác xa so với lúc test, thậm chí là crash và không thể chạy được.

Ngay lúc này, các công cụ Crash Reporting sẽ là trợ lý đắc lực, giúp bạn biết cần phải làm gì, sửa lỗi như thế nào dù sự cố crash ấy chỉ xảy ra có một lần.

Ngoài ra, xét về khía cạnh marketing, các công cụ Analytics Tools sẽ giúp những điều bạn làm trong ứng dụng của mình trở nên gần gũi hơn với nhu cầu thực tế của người dùng.

Sẽ thật hoang đường nếu nghĩ rằng nhà phát triển Android ứng dụng chỉ cần ngồi nhìn lên trời và biết được ngoài kia người dùng đang cần gì và muốn gì.

Tất cả đều phải có số liệu. Chỉ có số liệu mới giúp suy nghĩ hoặc suy luận của bạn chính xác và có độ tin cậy hơn.

#9.Hãy là một Ninja Marketing

Nếu bạn là một nhà phát triển app độc lập, hãy tự mình thoát ra khỏi suy nghĩ: “Mình chỉ là một nhà phát triển”.

Vì việc xây dựng code chỉ là một phần rất nhỏ trong số những việc bạn cần phải làm để hoàn thành một app và đưa nó đến tay người dùng.

Đây chính là bài học xương máu mà bản thân mình đã tự đúc kết được từ không ít thất bại.

Ban đầu, mình từng nghĩ hãy cứ làm một ứng dụng thật chất lượng, UI/UX thật ngon thì nhiều người sẽ tải về và mình sẽ nhanh chóng nổi tiếng.

Nhưng thật trớ trêu, những ứng dụng mình đầu tư rất nhiều công sức thì lại chẳng có ai dùng, còn số ít ứng dụng mình viết “chơi chơi” thì lại được đánh giá khá cao.

(Bạn có thể tham khảo Tại sao việc tăng lượt tải ứng dụng di động lại thất bại?)

Sau rất nhiều đêm suy nghĩ, mình nhận ra ứng dụng của mình thật sự chất lượng nhưng lại không đáp ứng được nhu cầu thị trường.

Bản thân mình cũng chưa biết cách tiếp cận với khách hàng, càng không biết họ thật sự muốn gì, cần gì ở một ứng dụng.

Nếu bạn thực sự nghiêm túc với việc kiếm tiền từ công việc viết ứng dụng thì bạn phải đầu tư công sức và thời gian vào việc tiếp thị ứng dụng, nghiên cứu đối thủ cạnh tranh để tự nhận biết điểm mạnh và yếu của mình từ đó đưa ra chiến lược marketing app ngắn và dài hạn.

“Biết người biết ta, trăm trận trăm thắng”, thành ngữ đó chẳng sai chút nào cả!

#10.Luôn luôn tối ưu ứng dụng

Cuối cùng trong 10 quy tắc học lập trình, đó là luôn luôn tối ưu ứng dụng. Khi bạn mới học lập trình, bạn sẽ có ít kinh nghiệm nên việc tối ưu sẽ khó khăn hơn. Nhưng khi bạn đã thời gian đúc kết kinh nghiệm thì cần phải để ý chuyện này.

Việc tối ưu code, tối ưu hiệu năng… là điều mà rất nhiều bạn thường quên làm nhưng nó thực sự nên làm và cần làm thường xuyên.

Có một sự khác biệt lớn giữa viết code chạy được và viết “code tối ưu”. Viết code chạy được thì nhanh nhưng viết code để tối ưu được Memory, CPU, sử dụng ít Device Storage … thì lại là cả một vấn đề lớn.

Một ứng dụng không được tối ưu có thể chạy tốt ở điều kiện bình thường nhưng thực tế sử dụng thì “muôn hình vạn trạng”. Không có gì để bạn đảm bảo rằng ứng dụng của mình sẽ chạy tốt trong mọi trường hợp.

Vì vậy, hãy luôn kiểm tra Memory bị chiếm dụng bởi ứng dụng, đề phòng các lỗi Memory Leaks. Hãy nhớ rằng: “Một vết thủng nhỏ cũng đủ để nhấn chìm cả một con tàu lớn”.

Pro Tip: Hãy dùng thư viện Leak Canary để tự động nhận diện các “Memory Leaks”. Thư viện này có thể được tích hợp dễ dàng vào code của bạn, chỉ cần khởi tạo và sau đó cứ để như thế. Khi phát hiện leaks, nó sẽ hiện thông báo và log lên màn hình.

Tạm kết

Mình đã cố gắng chia sẻ quy tắc học lập trình được bản thân đúc kết trong quá trình làm việc.

Hi vọng rằng, những quy tắc đó sẽ giúp cho những bạn mới bước chân vào thế giới lập trình có thêm thông tin và nhanh chóng gặt hái thành công.

Hãy chia sẻ bài viết nếu thấy hay hoặc comment bên dưới để góp ý cho bài viết nhé!

Bình luận. Đặt câu hỏi cũng là một cách học

avatar
  Theo dõi bình luận  
Thông báo