5 cách cải thiện kỹ năng lập trình mà không phải ai cũng biết
Bài đăng này đã không được cập nhật trong 3 năm
Bắt đầu với ngành lập trình thường rất dễ dàng, nhưng bạn cần nhiều hơn nữa để nâng cấp bản thân cũng như trình độ của bạn.
Lập trình viên là người thiết kế và phát triển hệ thống phần mềm. Ngành lập trình là ngành có rất nhiều lĩnh vực bao gồm: Frontend, Backend, Full-stack, hệ thống nhúng, v.v. Các lập trình viên thường làm việc với nhiều loại ngôn ngữ lập trình khác nhau. Chuyên môn của mỗi lập trình viên phụ thuộc vào kỹ năng của họ.
Vì vậy, họ luôn cố gắng nâng cao kỹ năng của mình bằng cách thực hiện nhiều hoạt động khác nhau. Hiện nay có rất nhiều cách độc đáo để nâng cao kỹ năng của lập trình viên dựa trên từng lĩnh vực. Ví dụ: thực hành xử lý CSS sẽ rất tốt nếu bạn đang phát triển Frontend. Tuy nhiên, những nghề nghiệp lập trình khác nhau này có một quy trình chung được gọi là Vòng đời phát triển phần mềm (Software Development Life Cycle).
Do đó, thực sự có rất nhiều cách thực hành cho tất cả các lập trình viên để cải thiện kỹ năng của họ. Tôi đã chọn theo hướng Full-stack khoảng bốn năm trước. Giống như một số lập trình viên khác, tôi đã thực hiện nhiều hoạt động khác nhau để nâng cao kỹ năng lập trình của mình.
Những thói quen sau đây đã giúp tôi cải thiện kỹ năng lập trình của mình. Chúng giúp công việc kỹ sư phần mềm của tôi trở nên tốt hơn. Như đã đề cập ở trên, đây là những cách thực hành chung cho tất cả các lập trình viên.
Xem bài viết đầy đủ tại 200Lab Education
1. Viết code clean, dễ đọc và chất lượng cao
Là lập trình viên, chúng ta thường xuyên viết code. Các lập trình viên thường thêm, xóa hoặc sửa đổi các dòng code trong các dự án codebase của họ. Những sửa đổi source code đó cải thiện hoặc làm xấu đi codebase. Chúng tôi luôn cần cải thiện codebase của mình với những dòng code chất lượng, không có lỗi. Không nghi ngờ gì nữa, việc làm theo một hướng dẫn về cách code rõ ràng là điều bắt buộc. Nếu dự án của bạn vẫn không có hướng dẫn về cách viết code, bạn có thể đề xuất.
Phát triển phần mềm là một hoạt động hợp tác khi làm việc nhóm chung với rất nhiều người khác. Nhiều lập trình viên thường cộng tác làm việc trên cùng một đoạn code. Một số lập trình viên có thể nhanh chóng áp dụng các patch cho các source code phức tạp do người khác viết. Mặt khác, một số lập trình viên phải vật lộn với các source code phức tạp.
Do đó, bạn luôn cần phải viết code tự giải thích ngay cả khi bạn đang triển khai một logic hoàn toàn phức tạp. Các mẫu thiết kế chính xác, cấu trúc thư mục, phân tách mô-đun giúp chúng ta viết code sạch. Ví dụ: xem cách nhóm Chromium tổ chức bộ điều khiển UI của trình duyệt để giảm độ phức tạp.
2. Ưu tiên Performance ứng dụng
Lập trình viên phải viết code tốt hơn để gây ấn tượng (impress) với phần cứng (hardware) và các lập trình viên khác bằng cách viết code clean. Chúng ta phải viết code hoạt động tốt với thời gian và không gian để impress với hardware. Có nhiều cách khác nhau để giải quyết cùng một vấn đề kỹ thuật phần mềm. Cách thức ưu tiên hiệu năng thúc đẩy bạn chọn giải pháp thiết thực và hiệu quả nhất. Hiệu năng vẫn là yếu tố quan trọng bất kể đó là cá modern hardware vì các vấn đề hiệu năng nhỏ tích lũy dần có thể ảnh hưởng xấu đến toàn bộ hệ thống phần mềm trong tương lai.
Việc đưa ra các giải pháp cho hardware đòi hỏi kiến thức cơ bản về khoa học máy tính. Lý do là các nguyên tắc cơ bản về khoa học máy tính dạy chúng ta về cách sử dụng các cấu trúc dữ liệu và thuật toán phù hợp. Lựa chọn cấu trúc dữ liệu và thuật toán phù hợp là chìa khóa thành công cho mọi dự án kỹ thuật phần mềm phức tạp. Một số vấn đề về hiệu năng có thể ẩn trong codebase. Bên cạnh đó, các test case hiệu năng của bạn có thể không bao gồm các trường hợp đó. Mục tiêu của bạn phải là áp dụng các patch hiệu năng khi bạn phát hiện ra vấn đề như vậy.
Ví dụ: tôi đã tìm thấy patch hiệu năng sau đây từ source code của Git trên GitHub.
3. Am hiểu về lĩnh vực mà bạn đang làm việc
Các lập trình viên thường làm việc với nhiều loại dự án phần mềm khác nhau. Mỗi dự án phần mềm có thể thuộc các lĩnh vực khác nhau như chăm sóc sức khỏe, thương mại điện tử, điện toán đám mây, giáo dục và quy trình kinh doanh. Nếu bạn bị giới hạn trong một dự án phần mềm thì việc nâng cao kỹ năng của bạn sẽ bị hạn chế. Nói cách khác, nếu bạn biết từng chút về dự án của mình sau khi làm việc trong vài năm, việc phát triển hàng ngày sẽ trở nên rất dễ dàng nếu bạn làm việc với những thứ mới mẻ.
Việc am hiểu lĩnh vực của dự án mà bạn thực hiện sẽ mở ra nhiều cơ hội học tập mới. Ai đó có thể tranh luận rằng kiến thức lĩnh vực chỉ cần cho các nhà phân tích kinh doanh - không phải cho các nhà phát triển. Tuy nhiên, không thể lập trình đúng cách nếu chúng ta xem toàn bộ quy trình của hệ thống phần mềm là một hệ thống trừu tượng. Nếu chúng ta hiểu cả kỹ thuật và lĩnh vực, toàn bộ quá trình phát triển phần mềm sẽ trở nên rõ ràng và dễ dàng hơn.
Các lập trình viên có thể đưa ra các giải pháp hoàn chỉnh khi họ am hiểu lĩnh vực của dự án mà họ đang thực hiện. Điều này có nghĩa là không ai sẽ giải quyết điều gì đó tốt hơn mà không nghiên cứu về nó.
4. Tìm hiểu sâu hơn về kiến trúc ứng dụng
Có rất nhiều mẫu kiến trúc phần mềm: Layered, client-server, plug-in, kiến trúc pub/sub, v.v là những Software Design Pattern (Mẫu thiết kế phần mềm) phổ biến được sử dụng hiện nay.
Các kiến trúc phần mềm thường phân toàn bộ dự án thành các dự án con để giảm độ phức tạp và để mở rộng khả năng bảo trì. Trong hầu hết các tình huống, lập trình viên không cần phải hiểu từng chút nhỏ về kiến trúc dự án phần mềm để đóng góp cho dự án. Tuy nhiên, các lập trình viên phải hiểu rõ về kiến trúc của hệ thống phần mềm để có những đóng góp bổ sung. Ngoài ra, sự phát triển nghề nghiệp của một lập trình viên điển hình sẽ hướng tới vai trò Software Architect.
Hơn nữa, các hệ thống phần mềm thường cần phải thường xuyên nâng cấp và cải tiến kiến trúc dựa trên các yêu cầu mới. Ví dụ: khi sản phẩm Phần mềm như một dịch vụ (Software as a service) của bạn có người dùng mới từ các quốc gia khác nhau, bạn sẽ phải tích CDN (Content delivery networks). Biết rõ hơn về kiến trúc hiện tại sẽ giúp bạn đề xuất những cải tiến kiến trúc đáng kể cho dự án.
Thật tuyệt khi nghiên cứu kiến trúc của dự án ở một cấp độ cao mà bạn có thể giải thích kiến trúc đó cho người khác hiểu. Bạn có thể tham khảo các bài giải thích về kiến trúc của Netflix để hiểu rõ hơn cách mà Netflix xây dựng kiến trúc phần mềm của họ.
5. Trở thành một người học và cũng như là một giáo viên
Trong mọi lĩnh vực, quá trình học tập không bao giờ kết thúc. Tương tự, luôn có một cái gì đó mới để học mỗi ngày trong lĩnh vực lập trình. Nhiều lý thuyết, bài báo, tài liệu nghiên cứu và triển khai liên quan đến khoa học máy tính được xuất bản mỗi ngày. Lĩnh vực khoa học máy tính vẫn đang phát triển như bất kỳ lĩnh vực nào khác trên thế giới. Do đó, mỗi ngày, bạn sẽ tìm thấy thứ gì đó sẽ nâng cao kỹ năng của mình. Ví dụ: bạn có thể học một design pattern mới ngay hôm nay để nâng cao khả năng đọc code bạn viết hôm qua.
Ngoài ra, giảng dạy là một cách tuyệt vời để ghi nhớ những gì bạn đã học. Bạn không cần phải giải thích mọi thứ về một giải pháp cụ thể cho một trình biên dịch - bởi vì nó chỉ quan tâm đến syntax code của bạn. Tuy nhiên, bạn phải giải thích hầu hết mọi thứ nếu bạn đang giải thích một giải pháp cụ thể cho một người nào đó. Vì vậy, trở thành một giáo viên cho một ai đó là một cách tuyệt vời để học một điều gì đó chuyên sâu.
Tóm lại:
Việc ưu tiên hiệu năng ứng dụng bị đánh giá thấp trong thế giới hiện đại do máy tính rất mạnh mẽ. Nhưng sức mạnh tính toán vẫn còn hạn chế. Do đó, các lập trình viên luôn cần phải đưa ra các giải pháp hiệu quả.Học liên tục là thực hành quan trọng nhất để trở thành chuyên gia trong lĩnh vực lập trình. Albert Einstein đã từng nói:
Once you stop learning you start dying.
Bài viết dược dịch từ đây.
All rights reserved