Cái nào tốt hơn cho DSA Java hay C++?

Các thuật toán là ngôn ngữ bất khả tri và bất kỳ lập trình viên nào xứng đáng với muối của họ đều có thể chuyển đổi chúng thành mã bằng ngôn ngữ lập trình mà họ chọn. Thật không may, tôi đã gặp một số lập trình viên THỰC SỰ giỏi về các ngôn ngữ lập trình như Java hoặc Python, biết các chi tiết nhỏ về API và sự phức tạp của ngôn ngữ nhưng lại có kiến ​​thức kém hơn về các thuật toán cơ bản và Cấu trúc dữ liệu.

Show

Chỉ cần yêu cầu họ triển khai bất kỳ thuật toán sắp xếp phổ biến nào như sắp xếp nhanh hoặc sắp xếp hợp nhất, và chúng sẽ sụp đổ. Nếu bạn mong đợi họ biết các thuật toán nâng cao và tinh vi hơn như thuật toán Chuỗi, thuật toán đồ thị, duyệt cây hoặc thuật toán tham lam, hãy sẵn sàng kiểm tra Phỏng vấn;

Một lần, tôi tình cờ gặp một ứng cử viên xuất sắc cho vai trò nhà phát triển cấp cao cốt lõi của Java, anh ấy rất xuất sắc về Core Java, đa luồng nhưng kỹ năng thuật toán và cấu trúc dữ liệu của anh ấy thực sự kém so với kinh nghiệm và năng lực của anh ấy.

Có khi nào tôi hỏi anh ấy rằng tại sao anh ấy không dành thời gian chải kỹ thuật toán và kỹ năng giải quyết vấn đề của mình trước khi đến phỏng vấn? . Tôi chưa bao giờ sử dụng chúng trong sáu năm sự nghiệp phát triển Java của mình”

Anh ấy có phần đúng;

Các thuật toán là công cụ phát triển kỹ năng giải quyết lập trình và ý thức mã hóa, cần thiết để chuyển đổi yêu cầu của người dùng thành dòng mã còn được gọi là chương trình máy tính

Họ cũng ở xung quanh, nếu bạn sử dụng Facebook Design, bạn đã bao giờ nghĩ làm thế nào họ tìm thấy bạn bè của bạn nhanh như vậy chưa?

10 cuốn sách về cấu trúc dữ liệu và thuật toán — Nhà phát triển phải đọc

Một mẹo vàng khác cho những người nghĩ rằng Thuật toán là Cấu trúc dữ liệu dành cho những người muốn làm việc ở Amazon, Google, Facebook, Intel hoặc Microsoft;

Ngôn ngữ lập trình đến rồi đi, nhưng cốt lõi của lập trình, đó là thuật toán và cấu trúc dữ liệu thì không thay đổi

Nếu bạn biết cách thức hoạt động của bảng băm, thì bạn có thể sử dụng triển khai của chúng trong bất kỳ ngôn ngữ lập trình nào như HashMap từ JDK, Dictionary in Python hoặc HashMap từ thư viện tăng cường C++

Vì vậy, nếu bạn thực sự nghiêm túc về lập trình và nhận ra rằng các thuật toán và cấu trúc dữ liệu không phải là tùy chọn, thì đây là một số cuốn sách tuyệt vời để tìm hiểu các thuật toán

Một số bạn có thể đã đọc chúng trước đây, nhưng chúng đáng để đọc lại

1. Giới thiệu về thuật toán của Thomas H. Cormen

Đây là một trong những cuốn sách về thuật toán phổ biến nhất, nhưng lưu ý rằng nó chứa rất nhiều lý thuyết. Phiên bản hiện tại của cuốn sách này là Phiên bản thứ 3 và Phiên bản thứ 4 sắp ra mắt

Tôi thực sự khuyên mọi lập trình viên nên có cái này trên giá sách của họ, nhưng chỉ để đọc ngắn và tham khảo

best algorihtm book for programmers

Không thể đọc hết cuốn sách này trong một lần và một số bạn cũng có thể cảm thấy khó đọc, nhưng đừng lo, bạn có thể kết hợp việc học của mình với một khóa học trực tuyến như Cấu trúc dữ liệu và thuật toán. Deep Dive Sử dụng Java cùng với cuốn sách này

Cấu trúc dữ liệu và thuật toán. Tìm hiểu sâu bằng Java

Vậy là bạn đã làm việc với kiến ​​thức cơ bản về cấu trúc dữ liệu và thuật toán trong Java (hoặc một ngôn ngữ lập trình OO khác) nhưng…

nhấp chuột. sức mạnh liên kết. com

Điều này giống như điều tốt nhất của cả hai thế giới, bạn học các Thuật toán cơ bản một cách nhanh chóng trong một khóa học trực tuyến và sau đó bạn củng cố thêm kiến ​​thức đó bằng cách xem qua cuốn sách, điều này sẽ có ý nghĩa hơn với bạn khi bạn đã trải qua một lớp học rồi

Một lý do khác khiến tôi giới thiệu cuốn sách này như một trong những cuốn sách đầu tiên về thuật toán là vì ngôn ngữ của nó không thể tin được và kèm theo các bài giảng tại đây

Xin chân thành cảm ơn tất cả các tác giả Thomas H Cormen, Charles E. Leiserson và Ronald L. Rivest vì điều này đã tạo ra nguồn tài nguyên toàn diện nhất này, còn được gọi là sách CLRS về Thuật toán

2. Các thuật toán của Robert Sedgewick & Kevin Wayne

Đây là tài nguyên ưa thích của tôi về thuật toán trong một thời gian dài, nó vẫn vậy, nhưng bây giờ tôi ít thấy nó hơn trước. Bạn sẽ học được nhiều kiến ​​thức cơ bản về thuật toán và ngày nay, thậm chí các phiên bản cụ thể của cuốn sách này cũng có sẵn cho các ngôn ngữ lập trình khác nhau như Java và C++

best book to learn Algorithms

Ngoài ra còn có một vài khóa học trực tuyến Coursera miễn phí cho cuốn sách này, Thuật toán Phần 1 và Thuật toán Phần 2, bổ sung độc đáo cho cuốn sách này. Nó là tuyệt vời. Đó cũng là đề xuất hàng đầu của tôi dành cho các lập trình viên Java để học các thuật toán

Thuật toán, Phần I

Khóa học này bao gồm các thông tin cần thiết mà mọi lập trình viên nghiêm túc cần biết về thuật toán và dữ liệu…

khóa học. pxf. io

Thuật toán, Phần II

Khóa học này bao gồm các thông tin cần thiết mà mọi lập trình viên nghiêm túc cần biết về thuật toán và dữ liệu…

khóa học. pxf. io

Trong khi trên Coursera, nó cũng có một số bộ sưu tập tốt nhất về Cấu trúc dữ liệu và các khóa học thuật toán bao gồm từng chủ đề thiết yếu. Chúng được nhóm lại với nhau dưới dạng Chuyên môn về Thuật toán của Coursera. Nếu bạn muốn tìm hiểu sâu về Thuật toán, thì đó là nơi tôi khuyên bạn nên đến

Dù bạn có tin hay không, nhưng nếu bạn đã biết một ngôn ngữ lập trình, thì việc xem một ví dụ về thuật toán trên ngôn ngữ lập trình đó hơn các ngôn ngữ lập trình khác cũng giúp giảm thời gian học tập. 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

Và, nếu bạn thấy các khóa học của Coursera hữu ích, bởi vì chúng được tạo ra bởi các công ty và trường đại học danh tiếng trên khắp thế giới, tôi khuyên bạn nên tham gia Coursera Plus, một gói đăng ký từ Coursera cho phép bạn truy cập không giới hạn vào các khóa học, chuyên ngành phổ biến nhất của họ . Nó có giá khoảng $399/năm nhưng nó hoàn toàn xứng đáng với số tiền bạn bỏ ra khi bạn nhận được các chứng chỉ không giới hạn

Is Coursera Plus really worth it?

3. Sổ tay thiết kế thuật toán của Steve S. Skiena

Đây là một cuốn sách tuyệt vời khác về các thuật toán máy tính bao gồm rất nhiều thuật toán với rất nhiều mã. Điều tôi đặc biệt thích ở cuốn sách là nơi anh ấy thực sự đưa ra các ví dụ về nơi anh ấy đã sử dụng các thuật toán (hoặc các biến thể của chúng) trong thực tế;

best book to learn Algorithms Design

Mã này bằng C, nhưng nó không bí truyền lắm và rất dễ làm theo. Tôi cũng đã ra trường được một thời gian và điều này giúp tôi tiếp cận khá nhanh với một số thuật toán đồ thị. Tôi đã có cuốn sách này gần mười năm nay và thỉnh thoảng vẫn xem nó. Xin chân thành cảm ơn @SteveSkiena

4. Thuật toán phỏng vấn

Algorithm for Interview của Adnan Aziz là cuốn sách phải đọc về thuật toán, được viết theo cách ghi nhớ các cuộc phỏng vấn lập trình

best book to learn Algorithms for Interviews

Bản thân trang bìa cho thấy cuốn sách có thể khác thường như thế nào nếu bạn nhìn kỹ vào hình ảnh trên trang bìa được vẽ bằng hình thu nhỏ của những người nổi tiếng và cuốn sách giải thích cách bạn có thể phát triển các thuật toán như vậy. Thú vị phải không?

Chà, tôi thích cuốn sách này vì cách tiếp cận và mục tiêu của nó, đôi khi học cùng một thứ với các đối tượng khác nhau giúp hiểu nó tốt hơn

5. Tóm tắt thuật toán

Tóm lại Thuật toán của O’Reilly là một cuốn sách tuyệt vời để học các thuật toán lập trình, đặc biệt là đối với các lập trình viên Java. Nó mô tả các thuật toán tập trung vào việc triển khai chúng và không dùng toán học nặng nề được sử dụng trong các sách cổ điển về thuật toán

best Algorithms book for programmers

Tất cả các thuật toán được trình bày ở dạng mẫu, với động cơ sử dụng chúng, hình ảnh và mã giả cung cấp tổng quan cấp cao và mã làm việc (bằng C, C++, Java và Ruby)

Họ cũng có điểm chuẩn để cung cấp bằng chứng về hiệu suất lý thuyết của các thuật toán. Tóm lại, một trong những cuốn sách hay nhất để học thuật toán dành cho lập trình viên

6. Thiết kế thuật toán của Kleinberg & Tardos

Đây thực sự là cuốn sách hay thứ hai về Thuật toán sau cuốn sách Giới thiệu về thuật toán của Thomas Cormon. Nó không thực sự là phần giới thiệu về thuật toán và phù hợp hơn với các lập trình viên có kinh nghiệm

best Algorithms book for experienced programmers

Nó nói thêm về thiết kế thuật toán cho các nhà phát triển quen thuộc với các thuật toán cần thiết. Bạn nên bắt đầu với cuốn sách Introduction of Algorithm hoặc Algorithms của Robert Sedgewick và sau đó tiếp tục với cuốn sách này

Nhân tiện, nếu muốn, bạn cũng có thể kết hợp việc học của mình với một khóa học trực tuyến như Thuật toán và Cấu trúc dữ liệu — Phần 1 và 2 trên Pluralsight. Đây là một khóa học tuyệt vời để làm quen với các Thuật toán và Cấu trúc dữ liệu thiết yếu trước khi bạn chuyển sang chủ đề Thiết kế thuật toán

Thuật toán và cấu trúc dữ liệu - Phần 1

Trong khóa học này, bạn sẽ học các khái niệm sau. Các loại cấu trúc dữ liệu và giải thuật Danh sách liên kết Ngăn xếp…

đa giác. pxf. io

7. Giới thiệu về thuật toán. Một cách tiếp cận sáng tạo

Giới thiệu về thuật toán. Phương pháp tiếp cận sáng tạo của Udi Manber là một cuốn sách tuyệt vời khác để tự học vì nó có hàng trăm vấn đề và ví dụ

best book to learn Algorithms from Scratch

Nó được thiết kế để nâng cao khả năng giải quyết vấn đề của ứng viên và hiểu biết về các nguyên tắc đằng sau thiết kế thuật toán, điều này sẽ giúp bạn phát triển các kỹ năng Giải quyết vấn đề và Mã hóa của mình

8. Thiết kế và phân tích các thuật toán

Đây là một đầu bếp tuyệt vời khác về thuật toán máy tính và xứng đáng có một vị trí trong kệ của lập trình viên. Khi bạn đã hoàn thành Chuyên môn về thuật toán của Coursera và một trong những cuốn sách giới thiệu, bạn có thể đọc cuốn sách này để nghiên cứu các chủ đề nâng cao trong thuật toán

best book to learn design of algorithms

9. Cấu trúc dữ liệu và thuật toán. Aho, Ullman & Hopcroft

Một cuốn sách giới thiệu hay khác về thuật toán và cấu trúc dữ liệu. Một cuốn sách đáng yêu và tươi sáng và bất kỳ lập trình viên nào không thích sử dụng nhiều Toán học trong thuật toán sẽ đánh giá cao cuốn sách này

best data structures and algorithms books

Nhân tiện, nếu bạn thấy cuốn sách này khó đọc, đó là điều mà một số độc giả của tôi phàn nàn, thì bạn cũng có thể xem qua Grokking Algorithms của Aditya Bhargava, một trong những cuốn sách dễ dàng và thú vị nhất về Thuật toán dành cho người mới bắt đầu

10. Thuật toán Python. Nắm vững các thuật toán cơ bản trong ngôn ngữ Python

Cuốn sách này được thiết kế cho các lập trình viên Python. Magnus Lie Hetland cũng là tác giả của một trong những cuốn sách giới thiệu phổ biến về Python, Beginning Python

best book to learn algorithms in Python

Như tôi đã nói rằng các thuật toán không phụ thuộc vào ngôn ngữ;

Cuốn sách này cũng tập trung nhiều vào Thuật toán đồ thị, rất hữu ích trong việc giải quyết các vấn đề trong thế giới thực

11. thuật toán mò mẫm

Đây là cuốn sách không nằm trong bộ gốc khi tôi xuất bản bài viết này trên blog của mình, nhưng sau khi đọc cuốn sách này, tôi nên đưa nó vào danh sách vì tính đơn giản của nó. Đó là một trong những cuốn sách hay nhất tôi từng đọc về thuật toán, đặc biệt là từ quan điểm của người mới bắt đầu

best Algorithms book for Beginners

Nó sử dụng các ví dụ hiện đại như cách Facebook lưu trữ tên người dùng để có thể tìm kiếm dễ dàng khi đăng nhập. Những ví dụ này cộng hưởng tốt hơn với người mới bắt đầu và giúp họ nắm bắt khái niệm như tại sao mảng là lựa chọn tốt hơn so với danh sách được liên kết để tìm kiếm

Nền tảng về Mỹ thuật của Aditya cũng làm cho cuốn sách này trở thành một nguồn học tập trực quan. Bạn sẽ tìm thấy rất nhiều sơ đồ thú vị, chi tiết trong cuốn sách này giúp bạn học khái niệm này tốt hơn và nhanh hơn. Nếu muốn, bạn cũng có thể đọc bài đánh giá của tôi về cuốn sách Grokking Algorithms trên The Hacker News

Đây là một sơ đồ hữu ích để so sánh cuốn sách này với cuốn sách thuật toán khác được đề cập trong danh sách này

best books to learn data structures and algorithms

Tóm lại, một trong những cuốn sách Thuật toán hay nhất dành cho bất kỳ lập trình viên mới bắt đầu nào. Nó không bao gồm tất cả các cấu trúc dữ liệu và thuật toán, nhưng bất cứ điều gì nó bao gồm, nó sẽ giải thích rõ về chúng

Đó là tất cả về 10 cuốn sách Thuật toán mà mọi lập trình viên nên đọc. Tôi đồng ý rằng các thuật toán là một chủ đề phức tạp và không dễ để hiểu chúng trong một lần đọc;

Ngoài ra, chỉ đọc thôi là chưa đủ, hãy thử thực hiện chúng bằng ngôn ngữ lập trình mà bạn yêu thích. Việc viết ArrayList, HashMap hoặc triển khai Bản đồ dựa trên cây của riêng bạn không gây hại gì

Tác dụng của Thuật toán học không thể nhìn thấy ngay lập tức, nhưng bạn sẽ nhận thấy sự cải thiện tinh tế trong tư duy, cách xây dựng giải pháp và chất lượng mã của mình theo thời gian

Nhân tiện, nếu bạn quan tâm đến một khóa học trực tuyến về thuật toán, tôi khuyên bạn nên xem Cấu trúc dữ liệu và thuật toán. Tìm hiểu sâu bằng cách sử dụng Java trên Udemy. Đây không phải là một khóa học miễn phí, nhưng bạn có thể mua với giá chỉ dưới 10 đô la đến 15 đô la trong một số đợt giảm giá chớp nhoáng của Udemy, diễn ra vài ngày một lần

Nhân tiện, nếu bạn mua bất kỳ khóa học nào bằng các liên kết của tôi trong bài viết này, tôi sẽ được trả tiền mà không tính thêm phí cho bạn, nhưng bạn chỉ nên mua một khóa học sau khi xem bản xem trước và liệu bạn có thể kết nối với người hướng dẫn hay không

Mua một khóa học mà bạn không kết nối với người hướng dẫn sẽ lãng phí thời gian và tiền bạc. Tương tự với sách, hãy chọn cuốn sách mà bạn kết nối với tác giả và kết hợp với một khóa học nếu điều đó giúp bạn dễ dàng. Cảm ơn sự hỗ trợ của bạn

Các bài viết về cấu trúc dữ liệu và thuật toán khác mà bạn có thể thích

  • 5 khóa học miễn phí để tìm hiểu thuật toán và cấu trúc dữ liệu
  • Hơn 50 bài toán về cấu trúc dữ liệu và giải thuật dành cho lập trình viên
  • 10 khóa học về cấu trúc dữ liệu và thuật toán để bẻ khóa các cuộc phỏng vấn
  • Top 5 cuốn sách về cấu trúc dữ liệu và giải thuật
  • 10 Điều Lập Trình Viên Java Nên Học
  • 13 tài nguyên hàng đầu để hiểu lý thuyết đồ thị và thuật toán
  • Hơn 30 vấn đề mã hóa dựa trên mảng từ các cuộc phỏng vấn
  • Hơn 30 vấn đề mã hóa dựa trên danh sách được liên kết từ các cuộc phỏng vấn
  • Hơn 75 vấn đề viết mã từ các cuộc phỏng vấn để thực hành
  • Danh sách các khóa học miễn phí yêu thích của tôi để tìm hiểu sâu về Thuật toán (freeCodeCamp)

Cảm ơn bạn đã đọc bài viết này, Nếu bạn thích danh sách sách này thì bạn cũng sẽ thích bộ sưu tập 10 cuốn sách mà mọi lập trình viên nên đọc của tôi, đó là danh sách sách về lập trình, mã hóa, kỹ thuật phát triển phần mềm và các phương pháp hay nhất, máy tính, lập trình

Cuối cùng, có hai loại lập trình viên, một người hiểu thuật toán và một người không

Nhân tiện, bạn không cần phải đọc tất cả những cuốn sách này để thành thạo Thuật toán, vâng, điều đó không bắt buộc, bạn có thể bắt đầu với một cuốn sách mà bạn thấy dễ dàng như Thuật toán Grokking, sau đó tiếp tục với một cuốn sách toàn diện khác như CLRS

P. S. — Nếu bạn thích các khóa học trực tuyến hơn sách hoặc bạn muốn học cả sách và khóa học trực tuyến thì bạn cũng có thể xem danh sách 5 khóa học trực tuyến hàng đầu của tôi để học cấu trúc dữ liệu và thuật toán. Nó bao gồm các khóa học về Java, Python và JavaScript để dễ học

Java có tốt hơn cho DSA không?

Nằm giữa C++ và Java, Java thuận tiện cho người mới bắt đầu vì bạn có thể tập trung vào khái niệm Oops và DSA mà quên đi sự phức tạp của việc cấp phát bộ nhớ và con trỏ thông minh< . Nhưng nếu bạn muốn chơi nhiều hơn với các khái niệm cốt lõi, bạn sẽ thích học DSA với C++. . But if you like to play more on core concepts you will enjoy learning DSA with C++.

Ngôn ngữ nào là tốt nhất cho DSA?

Ngôn ngữ nào tốt nhất cho DS và Algo? . Nói như vậy, ngôn ngữ chỉ là một phương tiện và bất kỳ ngôn ngữ nào bạn thông thạo đều phù hợp để bạn triển khai DSA. C++ because of its efficiency for DSA. That being said, the language is just a medium and any language that you are affluent with is appropriate for you to implement DSA.

C có tốt cho DSA không?

Ngôn ngữ tốt nhất để học DSA. Theo một tìm kiếm gần đây trên google thì thấy rằng C++ là ngôn ngữ tốt nhất để cạnh tranh cũng như để giải quyết các bài toán về cấu trúc dữ liệu và thuật toán .

Nền tảng nào là tốt nhất cho DSA?

7 trang web tốt nhất để chuẩn bị cho câu hỏi phỏng vấn về cấu trúc dữ liệu, thuật toán và mã hóa .
Udemy. Đây là một trong những trang web tốt nhất để tìm các khóa học chuẩn bị phỏng vấn lập trình với giá cả phải chăng. .
giáo dục. .
LeetCode. .
Xếp hạng tin tặc. .
CodeFights. .
bánh phỏng vấn. .
xe đẩy. .
5 cuốn sách và khóa học hay nhất cho các cuộc phỏng vấn viết mã