(Tải về) Thuật toán algorit - sách tiếng Việt

(Tải về) Thuật toán algorit - sách tiếng Việt

Share Everywhere

Table of contents

Bất kỳ lập trình viên nào đều phải có khả năng tư duy thuật toán. Thật không may, có rất nhiều lập trình viên thực sự giỏi về ngôn ngữ lập trình, v.d. Java, biết tất tần tật về API và các ngôn ngữ phức tạp nhưng lại thiếu kiến ​​thức về thuật toán. Nếu bắt họ phải sắp xếp các thuật toán theo thứ tự phổ biến hiện nay, như #quicksort.. thì họ sẽ bó tay. Trên thực tế, các nhà tuyển dụng lại mong muốn ứng viên biết chút ít về các thuật toán phức tạp, ví dụ như Chuỗi, Đồ thị, Cây hoặc Thuật toán tham lam.

Một lần, tôi đã phỏng vấn một ứng cử viên xuất sắc về Java và Multi-threading. Thế nhưng điều làm tôi thất vọng chính là kỹ năng Cấu trúc Dữ liệu và Thuật toán của anh ta thực sự khá nghèo nàn so với kinh nghiệm và năng lực của anh ấy. Tôi hỏi tại sao anh ta không dành thời gian để ôn lại kỹ năng Thuật toán trước khi đến phỏng vấn?

Và anh ta trả lời rằng những thuật toán này chỉ dành cho các cuộc phỏng vấn và không bao giờ ứng dụng thực tế trong quá trình viết code cả! Đúng vậy, tôi chưa bao giờ sử dụng đến thuật toán trong suốt 6 năm làm lập trình viên. Nhưng có lẽ anh ta chưa nhận ra lợi ích dài hạn của thuật toán và cấu trúc dữ liệu trong việc cải thiện kỹ năng lập trình của mình.

Đây là công cụ dùng để phát triển kỹ năng giải quyết lập trình và mã hóa, rất cần thiết trong việc chuyển đổi yêu cầu của người dùng thành dòng mã, hay còn được gọi là chương trình máy tính.

1. Introduction to Algorithms của tác giả Thomas H. Corman

Introduction-to-Algorithm-Good-book

 

Đây là một trong những cuốn sách về thuật toán bán chạy nhất, nhưng theo tôi thấy cuốn sách này khá thiên về lý thuyết. Hiện cuốn sách này đã co ấn bản thứ 3, và tôi thiết nghĩ mọi lập trình viên nên có cuốn này, nhưng chỉ để đọc và tham khảo.

2. Algorithms của Robert Sedgewick & Kevin Wayne

Algorithm-4th-Edition-free-Book-online

Đây là cuốn sách ưa thích từ lâu của tôi về các thuật toán, nhưng bây giờ tôi ít đọc nó hơn so với trước đây. Bạn sẽ tìm thấy nhiều nền tảng về thuật toán. Hiện nay, các ấn bản của sách này có sẵn các ngôn ngữ lập trình khác nhau, ví dụ như Java và C++. Ngoài ra còn có cả một lớp học trực tuyến trên Coursera về cuốn sách này, bao gồmThuật toán Phần 1 và Thuật toán Phần 2. Thật tuyệt vời phải không nào? Tôi đã từng đề xuất cuốn sách này cho các lập trình viên Java trong chỗ tôi làm đấy! Bạn cũng có thể đọc phiên bản thứ 4 của cuốn sách này trực tuyến miễn phí tại đây

3. The Algorithm Design Manual của Steve S. Skiena

The-Algorithm-Design-Manual

Một cuốn sách khá hay khác về thuật toán máy tính và mã hóa. Điều tôi thực sự thích về cuốn sách này là tác giả đã đưa ra những ví dụ về những chỗ ông đã sử dụng các thuật toán (hoặc các biến thể của chúng) trong thực tế. Nó thực sự giúp bạn xem xét nhiều khía cạnh của vấn đề khi sử dụng thuật toán (hoặc các thuật toán liên quan khác).

Tất cả các mã đều viết theo ngôn ngữ C, nhưng theo tôi nó rất dễ hiểu cho ngay cả những người mới bắt đầu.

Từ khi tốt nghiệp, cuốn sách này đã giúp tôi bắt kịp xu thế của các thuật toán đồ thị trong khoảng thời gian ngắn. Cuốn sách đã theo tôi gần 10 năm rồi, và thi thoảng tôi vẫn đọc lại nó.

4. Algorithm for Interviews

Algorithms-for-Inteview-Great-book-Must-read

Algorithms for Interviews của Adnan Aziz đem đến một cái nhìn hoàn toàn mới về Thuật toán cho lập trình viên. Bìa sách khá thú vị như nội dung của nó vậy. Nếu bạn nhìn kỹ, bạn sẽ thấy phần hình ảnh trên trang bìa được thiết kế bằng các hình thu nhỏ của những người nổi tiếng. Tôi khá thích cuốn sách này vì cách tiếp cận và mục tiêu của nó. Một cách nào đó, nếu tiếp cận một vấn đề bằng nhiều cách khác nhau, ta có thể sẽ hiểu rõ bản chất của vấn đề đó hơn.

Bạn thấy tài liệu phát triển bản thân này như thế nào?

Add new comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.

Bài viết liên quan

(Tải về) Giải thuật và thuật toán

N. Wirth, một nhà khoa học máy tính nổi tiếng, tác giả của ngôn ngữ lập trình Pascal, đã đặt tên cho một cuốn sách của ông là