Algorithms Design Techniques
Với những sinh viên công nghệ thông tin trên ghế nhà trường thì chắc hẳn không ai xa lạ gì với môn học "Cấu trúc dữ liệu và giải thuật" cả. Đây là một môn học (theo mình đánh giá thì) khá là khó, và thường xuyên là "ác mộng" với nhiều người 😂 (trong đó có mình). Một phần cũng bởi nó chứa nhiều kiến thức mới và rộng, một phần nữa là khi học đôi khi nhiều bạn không hiểu được "học cái này để làm gì" 😹 Và thực tế, khi mọi người bắt đầu đi thực tập, rồi thì khi tốt nghiệp đi làm thì phần lớn đều không dùng đến các kiến thức về thuật toán đã học. Với một vị trí công việc là Web Developer, Mobile Developer, mọi người rất ít khi phải viết một hàm đệ quy, rất ít khi phải implement một giải thuật quy hoạch động ... Đi phỏng vấn ở nhiều công ty thì cũng không hề có câu hỏi về phần Algorithm, hoặc nếu có thì chỉ dừng ở mức tượng trưng cho có. Điều đó khiến cho các kiến thức về thuật toán, cũng như các kỹ năng về thiết kế giải thuật của mọi người cũng ngày một mai một.
Tuy nhiên, có một thực tế là ở nhiều công ty lớn trên thế giới, thì Coding Interview vẫn luôn là một phần phỏng vấn bắt buộc, và đóng một vai trò quan trọng. Nó không chỉ giúp đánh giá khả năng tư duy của ứng viên, mà còn giúp công ty lọc được ra những ứng viên phù hợp một cách dễ dàng. Ở những công ty lớn như thế, họ cần xây dựng những sản phẩm lớn, có performance tốt và có thể mở rộng. Đó là nơi họ cần những người có tư duy về giải thuật tốt, cũng như có những hiểu biết cơ bản về thiết kế giải thuật.
Hy vọng series có thể ít nhiều giúp ích cho các bạn đang hoặc chuẩn bị học bộ môn "Cấu trúc dữ liệu và giải thuật" ở trên trường 😂, cũng như các bạn sinh viên đã học xong, hay thậm chí là cả những bạn đã tốt nghiệp đi làm rồi nhưng nhiều kiến thức giờ không còn nhớ rõ nữa.