Top 10 quy tắc học lập trình mà ai cũng nên theo
Bài viết được sự cho phép bởi tác giả Sơn Dương
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 đó.
Mình đã bắt đầu học lập trình như thế nào?
Mình vẫn nhớ năm 2014, là ngày mình đă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…
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 các đà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 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ờ.
#1. Đừ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. Thay 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.
#2. Lựa chọn thư viện một cách khôn ngoan
Như mình đã nói ở trên, với mỗi vấn đề thì thường luôn có sẵn một giải pháp mà người đi trước đã làm. 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.
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á bugs mà thư viện khuyến mãi cho bạn!
#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é).
Việc làm IT Fresher dành cho bạn
#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. Nó 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”. Chỉ đơn giản bằng cách biên dịch ngược lại mã nguồn từ file apk.
#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 khi đã may mắn lựa chọn một “cấu trúc” (Architecture) hợp lý từ 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), MVVM, Clean Architecture… 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 UI Android.
#7. “Giao diện người dùng” (User Interface) là cực kì quan trọng
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 lớn thì có thể bạn sẽ không cần quan tâm đến vấn đề này. Vì công ty đã có hẳn team UI/UX riêng để 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 ở 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é!
#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.
Lúc này, công cụ Crash Reporting sẽ là trợ lý đắc lực. Nó 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 sẽ giúp những tính năng mà bạn xây dựng trở nên thực tế hơn.
Sẽ thật hoang đường nếu nghĩ rằng nhà phát triển ứng dụng android 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”.
Viết 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à 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 những ứng dụng mình viết “chơi chơi” thì lại được đánh giá khá cao.
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. Lại 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.
Có một sự khác biệt lớn giữa viết code chạy được và “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 lại “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”.
Tạm kết
Mình đã chia sẻ quy tắc học lập trình được đúc kết trong quá trình làm việc.
Hi vọng rằng, những quy tắc này sẽ giúp cho bạn 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ài viết gốc được đăng tải tại vntalking.com
Xem thêm:
- Nghề lập trình viên có những ưu nhược điểm gì?
- Viết clean code: Code “đẹp trai” và code “xấu gái” có gì hay ho?
- Top 10 việc làm tuyển dụng ngành IT mới nhất 2023
Đừng bỏ qua việc làm IT tất cả level có trên TopDev nhé!
- P PM2 là gì? Trình quản lý các ứng dụng viết bằng NodeJS
- T Tìm hiểu ngành kỹ thuật máy tính: Học gì? Học ở đâu? Cơ hội nghề nghiệp
- T Tổng hợp kiến thức từ cơ bản đến chuyên sâu về Mạng máy tính (P2)
- T Tổng hợp kiến thức từ cơ bản đến chuyên sâu về Mạng máy tính (P1)
- H Hướng dẫn cách tạo ứng dụng Convert video sang GIF
- I IDE C++ là gì? Tiêu chí lựa chọn IDE cho lập trình C++
- A Acceptance Test là gì? Phân loại Acceptance Testing
- T Tổng hợp 50+ thuật ngữ chuyên ngành dành cho Frontend Developer
- H Hàng đợi – Queue trong C++
- P Prototype là gì? Ưu và nhược điểm của mô hình Prototype