CodeGym /Blog Java /Ngẫu nhiên /Nâng cấp kỹ năng mã hóa, Phần 2. Tìm hiểu về các thuật to...
John Squirrels
Mức độ
San Francisco

Nâng cấp kỹ năng mã hóa, Phần 2. Tìm hiểu về các thuật toán ở đâu

Xuất bản trong nhóm
Tiếp tục loạt bài viết của chúng tôi về các chủ đề bổ sung liên quan đến lập trình không nằm trong khóa học của CodeGym, với các liên kết và đề xuất về nơi bạn có thể học chúng. Hôm nay chúng ta sẽ nói về các thuật toán. Nâng cấp kỹ năng mã hóa, Phần 2. Tìm hiểu về thuật toán ở đâu - 1

thuật toán là gì

Bản thân thuật toán không gì khác hơn là một biên nhận từng bước để giải một bài toán. Phần lớn các thuật toán được sử dụng trong lập trình ngày nay đã được khám phá, thử nghiệm và chứng minh. Các thuật toán trong Java là các phương thức tĩnh được sử dụng để thực hiện các thao tác khác nhau trên các bộ sưu tập. Nếu các cấu trúc dữ liệu được các lập trình viên Java sử dụng để lưu trữ và sắp xếp dữ liệu, thì các thuật toán sẽ được sử dụng để thao tác dữ liệu trong các cấu trúc đó. Vì vậy, hai chủ đề này gắn liền với nhau và việc hiểu cách chúng hoạt động cùng nhau là khá quan trọng và có thể giúp mã hóa Java của bạn hiệu quả hơn rất nhiều. Các thuật toán có thể được áp dụng cho bất kỳ ngôn ngữ lập trình nào và các lập trình viên có kinh nghiệm vững chắc thường ít nhất phải biết những điều cơ bản của chủ đề này, cũng như biết cách chuyển đổi các thuật toán thành mã trong ngôn ngữ lập trình mà họ đang sử dụng.

Sách về thuật toán

  1. Cấu trúc dữ liệu và thuật toán được thực hiện dễ dàng bởi Narasimha Karumanchi.

    Một trong những sách giáo khoa tốt nhất cho người mới bắt đầu học thuật toán (và cấu trúc dữ liệu). 'Data Structures And Algorithms Made Easy: Data Structures and Algorithmic Puzzles' là cuốn sách cung cấp giải pháp cho các cấu trúc dữ liệu và thuật toán phức tạp. Có nhiều giải pháp cho mỗi vấn đề và cuốn sách được mã hóa bằng C/C++. Bạn có thể sử dụng tài liệu này như một hướng dẫn để chuẩn bị cho các cuộc phỏng vấn, kỳ thi và công việc trong khuôn viên trường.

  2. Thuật toán Grokking của Aditya Bhargava.

    'Thuật toán Grokking' là một cuốn sách khác dễ hiểu, được minh họa đầy đủ và được viết với giọng điệu hướng dẫn thân thiện, hướng dẫn bạn cách áp dụng các thuật toán phổ biến vào các vấn đề thực tế mà bạn gặp phải hàng ngày với tư cách là một lập trình viên. Bạn sẽ bắt đầu với việc sắp xếp và tìm kiếm, đồng thời khi bạn xây dựng kỹ năng suy nghĩ theo thuật toán, bạn sẽ giải quyết các vấn đề phức tạp hơn như nén dữ liệu và trí tuệ nhân tạo. Mỗi ví dụ bao gồm các sơ đồ và các mẫu mã được chú thích đầy đủ bằng Python.

  3. Các thuật toán được mở khóa bởi Thomas Cormen.

    Cuốn sách về kiến ​​thức cơ bản về thuật toán dành cho người mới bắt đầu và các chuyên gia viết mã muốn mở rộng kiến ​​thức về chủ đề này, lần này được viết dưới dạng sách giáo khoa đại học dành cho sinh viên MIT.

    “Người đọc sẽ tìm hiểu thuật toán máy tính là gì, cách mô tả chúng và cách đánh giá chúng. Họ sẽ khám phá những cách đơn giản để tìm kiếm thông tin trong máy tính; các phương pháp sắp xếp lại thông tin trong máy tính theo một trật tự quy định (“sắp xếp”); cách giải quyết các vấn đề cơ bản có thể được mô hình hóa trong máy tính với cấu trúc toán học được gọi là “đồ thị” (hữu ích để mô hình hóa mạng lưới đường bộ, sự phụ thuộc giữa các nhiệm vụ và các mối quan hệ tài chính); cách giải các bài toán có câu hỏi về chuỗi ký tự như cấu trúc ADN; các nguyên tắc cơ bản đằng sau mật mã; nguyên tắc cơ bản của nén dữ liệu; và thậm chí có một số bài toán chưa ai tìm ra cách giải trên máy tính trong một khoảng thời gian hợp lý,” tác giả cuốn sách nói.

  4. Cấu trúc dữ liệu và thuật toán trong Java của Robert Lafore.

    Và đây là một cuốn sách giáo khoa tập trung cụ thể vào Java. Bên cạnh các chương trình ví dụ rõ ràng và đơn giản, Robert Lafore đã thêm vào cuốn sách một hội thảo dưới dạng một chương trình trình diễn nhỏ có thể thực thi được trên trình duyệt web. Các chương trình thể hiện ở dạng đồ họa cấu trúc dữ liệu trông như thế nào và chúng hoạt động như thế nào.

    Các giải pháp đề xuất cho các dự án lập trình được tìm thấy ở cuối mỗi chương được cung cấp cho các giảng viên tại các tổ chức giáo dục được công nhận. Bạn có thể tìm thấy phần bổ sung giáo dục này cho sách giáo khoa tại pearson.com , trong Trung tâm Tài nguyên dành cho Người hướng dẫn.

  5. Hello World: Being Human in the Age of Algorithms của Hannah Fry.

    'Xin chào thế giới: Trở thành con người trong thời đại thuật toán' của Hannah Fry là một cuốn sách khá thú vị xem xét các thuật toán từ một góc độ hơi khác. Tác giả đang mô tả sức mạnh và hạn chế thực sự của các thuật toán đã tự động hóa các quyết định quan trọng trong lĩnh vực chăm sóc sức khỏe, giao thông vận tải, tội phạm và thương mại.

Các khóa học trực tuyến về thuật toán

  1. Các thuật toán, Phần I , Phần II của Đại học Princeton thông qua Coursera.

    Một khóa học hoàn toàn miễn phí khá tuyệt vời từ Princeton. Nó 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ề các thuật toán và cấu trúc dữ liệu, nhấn mạnh vào các ứng dụng và phân tích hiệu suất khoa học của các triển khai Java. Phần I bao gồm các cấu trúc dữ liệu cơ bản, thuật toán sắp xếp và tìm kiếm. Phần II tập trung vào các thuật toán xử lý đồ thị và chuỗi. Khóa học không cung cấp chứng chỉ sau khi hoàn thành.

  2. Chương trình Chuyên môn hóa về Cấu trúc Dữ liệu và Thuật toán của UC San Diego thông qua Coursera.

    Một chương trình khóa học danh tiếng khác về thuật toán và cấu trúc dữ liệu do Đại học California, San Diego và Trường Kinh tế Đại học thuộc Viện Nghiên cứu Quốc gia cung cấp. Chuyên môn này là sự kết hợp giữa lý thuyết và thực hành: bạn sẽ học các kỹ thuật thuật toán để giải các bài toán tính toán khác nhau và sẽ thực hiện khoảng 100 bài toán mã hóa thuật toán bằng ngôn ngữ lập trình bạn chọn.

    “Không có khóa học trực tuyến nào khác về Thuật toán thậm chí có thể cung cấp cho bạn vô số thách thức về lập trình mà bạn có thể gặp phải trong cuộc phỏng vấn xin việc tiếp theo. Để chuẩn bị cho bạn, chúng tôi đã đầu tư hơn 3000 giờ để thiết kế các thử thách của chúng tôi thay thế cho các câu hỏi trắc nghiệm mà bạn thường thấy trong MOOCs. Xin lỗi, chúng tôi không tin vào các câu hỏi trắc nghiệm khi nói đến việc học các thuật toán...hoặc bất kỳ thứ gì khác trong khoa học máy tính! Đối với mỗi thuật toán bạn phát triển và triển khai, chúng tôi đã thiết kế nhiều thử nghiệm để kiểm tra tính chính xác và thời gian chạy của nó — bạn sẽ phải gỡ lỗi chương trình của mình mà thậm chí không biết những thử nghiệm này là gì! Nghe có vẻ khó, nhưng chúng tôi tin rằng đó là cách duy nhất để thực sự hiểu cách thức hoạt động của các thuật toán và nắm vững nghệ thuật lập trình,” các tác giả của khóa học cho biết.

  3. Algorithms Specialization của Đại học Stanford thông qua Coursera.

    Và lần này là khóa học thuật toán miễn phí được công nhận rộng rãi thứ ba từ một trường đại học danh tiếng, Đại học Stanford. Khóa học này giới thiệu về các thuật toán dành cho người học có ít nhất một chút kinh nghiệm lập trình. Người học sẽ thực hành và nắm vững các nguyên tắc cơ bản của thuật toán thông qua một số loại đánh giá. Mỗi tuần, có một bài kiểm tra trắc nghiệm để kiểm tra hiểu biết của bạn về các khái niệm quan trọng nhất. Ngoài ra còn có các bài tập lập trình hàng tuần, trong đó bạn triển khai một trong các thuật toán được trình bày trong bài giảng bằng ngôn ngữ lập trình mà bạn chọn. Mỗi khóa học kết thúc với một bài kiểm tra cuối kỳ trắc nghiệm.

Các kênh và danh sách phát trên YouTube

  1. Các thuật toán của Abdul Bari.

    Danh sách các bài giảng ngắn về thuật toán của Abdul Bari, một YouTuber khá nổi tiếng, người giải thích các chủ đề phức tạp theo cách đơn giản và dễ hiểu nhất cho người xem của mình.

  2. Cấu trúc dữ liệu và thuật toán trong Java trên kênh Lập trình với Mosh.

    'Lập trình với Mosh' là kênh YouTube phổ biến dành cho người mới bắt đầu lập trình. Nó có rất nhiều hướng dẫn về Java và các ngôn ngữ lập trình khác, chúng có cấu trúc và trình bày tốt, bao gồm cả hướng dẫn về cấu trúc dữ liệu và thuật toán. Một cách hay để bạn làm quen với những chủ đề này nếu bạn không muốn đọc sách và trả tiền cho các khóa học.

  3. MIT 6.006 Giới thiệu về thuật toán, mùa thu năm 2011 bởi MIT OpenCourseWare

    MIT OpenCourseWare là một kênh của Viện Công nghệ Massachusetts và kênh này có rất nhiều khóa học video miễn phí tuyệt vời, bao gồm cả khóa học về thuật toán. Toàn bộ khóa học bao gồm 47 buổi học kéo dài khoảng một giờ.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION