Bản tin Careerly #13:
Thứ Hai, ngày 15 tháng 2 năm 2021
Về Kim Mi Yeon
Lead Product Designer tại PUBLY
Khi tìm hiểu về một số concept về tâm lý thì tôi tìm thấy trang này. Tôi nghĩ đây sẽ là một nguồn đáng đọc dành cho các lập trình viên (17k stars trên github và được dịch sang 14 ngôn ngữ!) về các quy tắc và định luật giúp cải thiện mindset khi phát triển phần mềm.

1. Định luật Gall (Gall’s Law):
Một hệ thống phức tạp hoạt động được thường được phát triển từ một hệ thống đơn giản hoạt động được. Những hệ thống được thiết kế phức tạp ngay từ đầu không bao giờ hoạt động và cũng không thể chắp vá để nó hoạt động. Bạn phải bắt đầu từ đầu với một hệ thống đơn giản nhưng hoạt động được.
Một ví dụ là world-wide-web, hiện tại đây là một hệ thống vô cùng phức tạp nhưng ban đầu nó chỉ đơn thuần là một kênh trao đổi nội dung giữa các đơn vị, tổ chức học thuật. Tuy nhiên hệ thống này đã làm tốt chức năng ban đầu này và tiến hóa trở nên phức tạp như hiện nay.
2. Hiệu ứng tối ưu hóa nóng vội (Premature Optimization Effect):
Bỏ nhiều công sức để tối ưu hóa một phần nào đó mà khi chưa biết liệu có cần thiết không.
3. Định luật Tầm thường (The Law of Triviality):
Xu hướng dành nhiều thời gian phân tích những cái đơn giản không quan trọng (vì nó đơn giản nên dễ phân tích).
4. Định luật Postel (Postel’s Law):
Nghiêm khắc với thứ bạn làm và rộng lượng với người dùng.
Trên đây là một số định luật mà tôi thích và thấy đặc biệt hữu ích, bạn có thể xem thêm toàn bộ các định luật và quy tắc ở link tôi dẫn ở đầu bài viết. Hi vọng bài viết này có thể giúp bạn trở thành một lập trình viên giỏi hơn!
Bạn có thể tìm đọc thêm định nghĩa các thuật ngữ xuất hiện trong bài như Agile, Scrum, Sprint, … tại đây.