Mình bổ sung thêm. Hiểu biết về ngôn ngữ không phải là cú pháp câu lệnh. Mỗi ngôn ngữ có tư duy thiết kế riêng, nắm dc sâu sắc cái 'hồn' của ngôn ngữ đó mới có thể vận dụng hiệu quả các design pattern, thuật toán hay architect phù hợp. Chẳng hạn Javascript prototype, event loop single thread, sẽ rất khác tư duy OOP, mấy ông PV đem mấy cái design pattern đọc trong sách OOP ra chém gió rất ngô nghê. Hay Python, concept của nó là Duck typing, cấu trúc code không chú trọng class chỉ tập trung methods, nên việc kế thừa class là rườm rà, chỉ dùng đố nhau khi PV
, mấy ô code Java C# lại vào chê sao code nó lởm, không có cái A cái B, buồn cười.
Kinh nghiệm của mình nói riêng về code thì quan trọng nhất là kĩ năng đặt tên và chia module, làm dc 2 cái này là master, đọc code mà ko cần xem cmt, nhìn tên module, class, hàm, tên biến đã hiểu logic. Có vẻ đơn giản nhưng ít ai làm dc