logo

Đang load dữ liệu

logo devmaster

VIỆN CÔNG NGHỆ VÀ ĐÀO TẠO DEVMASTER

Đào tạo - Phần mềm - Cho thuê nhân sự

  • 0969.609.003
  • 0978.611.889
  • Trang chủ
  • Các khoá đào tạo
    • Chuyên đề WEB - PHP

      • Lập trình web với HTML5 - CSS3- JQuery - Bootstrap - Ajax - [36 giờ]
      • Lập trình web frontend - reactjs - [75 giờ]
      • Lập trình web với mã nguồn mở PHP&MYSQL - PHP FRAMEWORK [126 giờ]

      Chuyên đề Mobile

      • Lập trình Games/Apps trên nền tảng Android - [120 giờ]
      • Lập trình Games/Apps trên nền tảng IOS - [120 giờ]

      Chuyên đề JAVA

      • Ngôn ngữ lập trình hướng đối tượng với java - [40 giờ]
      • Lập trình ứng dụng với java - [100 giờ]
      • Lập trình web site với java framework (JPA, HIBERNATE, SPRING MVC, SPRINGBOOT) - [276 giờ]

      Chuyên đề NETWORK/SECURITY

      • Khoá học Quản trị hạ tầng mạng CCNA v6 - [72 giờ]
      • Khoá học quản trị hệ thống với Windows SERVER 2012- [72 giờ]
      • Chuyên gia bảo mật hệ thống CompTIA + - [110 giờ]

      Chuyên đề .NET

      • Nền tảng lập trình hướng đối tượng với C# - [40 giờ]
      • Lập trình ứng dụng WINDOWS FORM - [100 giờ]
      • Lập trình Web với ASP.NET MVC 5, WebAPI - [145 giờ]

      Chuyên đề khác

      • Ngôn ngũ lập trình C/C++ - [80 giờ]
  • Lập trình cho trẻ em
  • Dịch vụ
    • Đào tạo theo như cầu
    • Cung cấp thiết bị - Phần mềm
    • Tư vấn - Thiết kế mạng hạ tầng
    • Tư vấn - Triển khai dịch vụ mạng
    • Tư vấn - Tư vấn, triển khai giám sát hệ thống
    • Thực tập dự án
  • Lịch khai giảng
  • Tin tức
    • Tin tức và sự kiện
    • Tin hoạt động
    • Tin công nghệ
    • Hội thảo, workshop, Codecam
    • Thông tin việc làm
    • Cẩm nang chia sẻ kiến thức
  • Tiện ích
  • Liên hệ

Cẩm nang chia sẻ kiến thức

Aug - 2018

09

Ebook Tổng hợp 10 tài liệu thuật toán không thể bỏ qua

Cẩm nang chia sẻ kiến thức

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.

Tổng hợp 10 quyển sách về thuật toán mà lập trình viên phải đọc qua ít nhất một lần

Những ai nghĩ rằng Thuật toán và Cấu trúc Dữ liệu chỉ dành cho những ai muốn làm việc ở Amazon, Google, Facebook, Intel hay Microsoft,.. thì hãy nhớ đây là kỹ năng duy nhất tồn tại bền vững cùng thời gian, tất nhiên không kể đến UNIX và C. Ngôn ngữ mới rồi sẽ có ngôn ngữ mới hơn, nhưng cái cốt lõi của lập trình, đó là Thuật toán và Cấu trúc Dữ liệu vẫn sẽ được giữ nguyên. Nếu bạn biết Hash Table hoạt động như thế nào thì bạn có thể triển khai chúng trong bất kỳ ngôn ngữ lập trình nào, ví dụ: HashMap từ JDK hoặc HashMap từ C++. Vì vậy, nếu thật sự muốn phát triển sự nghiệp lập trình thì ngay từ bây giờ, hãy dành thời gian để xem qua những cuốn sách được đánh giá cao về thuật toán.

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

 Đâ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

Đâ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

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 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.

Có thể bạn quan tâm:

  [Ebook] Tổng hợp 10 tài liệu thuật toán không thể bỏ qua

Thuật Toán của Phần Lan”]

 

  Học thuật toán để làm cái vẹo gì ???

5. Algorithms in a Nutshell

Algorithms in a Nutshell của O’Reilly là một cuốn sách thú vị, giúp bạn hiểu thêm rất nhiều thuật toán lập trình, đặc biệt là cho các lập trình viên Java. Nó mô tả các thuật toán và tập trung vào việc thực hiện chúng. Đặc biệt, cuốn sách này hoàn toàn không thiên về toán học nhiều. Tất cả các thuật toán được trình bày dưới dạng mẫu, hình ảnh và mã (C, C++, Java, Ruby), cho người đọc một cái nhìn tổng quan cấp cao. Tóm lại, đây là một trong những cuốn sách hay cho các lập trình viên.

6. Algorithm Design của tác giả Kleinberg & Tardos

Đây thực sự là cuốn sách hay thứ hai sau Introduction to Algorithms của Thomas Cormon. Cuốn sách này không thực sự dành cho các lập trình viên kinh nghiệm. Nó thiên về mảng thiết kế thuật toán cho những lập trình viên đã quen thuộc với những thuật toán cơ bản.

7. Introduction to Algorithms: A Creative Approach
Nếu bạn thích tự mày mò học hỏi thì cuốn sách này rất hợp với bạn, do nó đưa ra hàng ngàn vấn đề và ví dụ để bạn thử nghiệm. Sách được thiết kế với mục đích nâng cao khả năng giải quyết vấn đề của người đọc và sự hiểu biết về các nguyên tắc đằng sau thiết kế thuật toán, giúp bạn kỹ năng mã hóa và lập trình của bạn lên trình rất nhiều.

8. The Design and Analysis of Algorithms

Không từ nào có thể dùng để miêu tả được cuốn sách này hú vị đên mức nào đâu! Một khi bạn đã hoàn tất lớp Coursera về thuật toán và có kiến thức cơ bản về Thuật toán rồi, bạn có thể tìm đọc cuốn sách này để nghiên cứu các chủ đề nâng cao trong thuật toán.

9. Data Structures and Algorithms của tác giả Aho, Ullman & Hopcroft
Tin vui cho những lập trình viên không thích ứng dụng quá nhiều toán học vào chương trình của mình đây. Cuốn sách này được viết rất rõ ràng và mạch lạc, cũng như không chú trọng vào toán học. Tôi cá rằng nhiều lập trình viên sẽ thích cuốn sách này lắm!

10. Python Algorithms: Mastering Basic Algorithms in the Python Language

Nếu bạn đang theo học ngôn ngữ Python thì cuốn sách này dành cho bạn. Magnus Lie Hetland cũng là tác giả của cuốn sách về Python khá nổi tiếng, Beginning Python. Cuốn sách này tập trung nhiều vào thuật toán đồ thị. Như tôi đã nói rằng các thuật toán là ngôn ngữ độc lập, học Python không có nghĩa là bạn không thể áp dụng các công thức ấy trong Java hoặc C++, nhưng nếu bạn đã biết Python thì đây là cuốn sách tuyệt vời để học các thuật toán máy tính.

Tổng hợp

Các bài viết cùng chủ đề

BÍ QUYẾT HỌC LẬP TRÌNH CHO CÁC BẠN ĐẦU NĂM HỌC MỚI ❤
BÍ QUYẾT HỌC LẬP TRÌNH CHO CÁC BẠN ĐẦU NĂM HỌC MỚI...
5 Phương pháp hay để mở rộng các dự án React của bạn một cách dễ dàng
5 Phương pháp hay để mở rộng các dự án React của b...
Lab06.1 - Data Access In ASPNET MVC 5
Lab06.1 - Data Access In ASPNET MVC 5
Lab05 - Data Validation and Annotation In ASPNET MVC 5
Lab05 - Data Validation and Annotation In ASPNET M...
Lab 04 - Model in ASP.NET MVC 5 - Phần tự thực hành
Lab 04 - Model in ASP.NET MVC 5 - Phần tự thực hàn...
Lab 04 - Model in ASP.NET MVC 5 - Bài 4.2
Lab 04 - Model in ASP.NET MVC 5 - Bài 4.2

Các khóa đào tạo chuyên đề

Thiết kế và lập trình Website PHP, Laravel chuyên nghiệp - FullStack
Thiết kế và lập trình Website PHP, Laravel chuyên nghiệp - FullStack
Lập trình ứng dụng trên nền tảng android Lập trình ứng dụng trên nền tảng android
Lập trình Ứng dụng với Công nghệ ASP.NET Core MVC, WebAPI, ReactJS - FullStack

Lập trình Ứng dụng với Công nghệ ASP.NET Core MVC, WebAPI, ReactJS - FullStack
Lập trình ứng dụng với WINDOWS FORM Lập trình ứng dụng với WINDOWS FORM
Lập trình ứng dụng với JAVA (FORM) Lập trình ứng dụng với JAVA (FORM)
Thiết kế và lập trình Ứng dụng với công nghệ Java (Java Framework springBoot, hibernate,...) - FullStack
Thiết kế và lập trình Ứng dụng với công nghệ Java (Java Framework springBoot, hibernate,...) - FullStack
Thiết kế và lập trình website với công nghệ HTML5, CSS3, Javascript, Bootstrapt 4, Jquery Thiết kế và lập trình website với công nghệ HTML5, CSS3, Javascript, Bootstrapt 4, Jquery
Lập trình frontend với reacjs (Full) Lập trình frontend với reacjs (Full)
Viện Công Nghệ Và Đào Tạo Devmaster

DEVMASTER ACADEMY

Địa chỉ: Tầng 6 - Tòa nhà VIỆN CÔNG NGHỆ
Số 25, Vũ Ngọc Phan - Láng Hạ - Đống Đa - Hà Nội

Hotline: 0969 609 003 | 0978 611 889

devmaster.contact@gmail.com

hna.tvchung@gmail.com

CÁC KHÓA HỌC CHUYÊN ĐỀ

  • Thiết kế và lập trình Website PHP, Laravel chuyên nghiệp - FullStack
  • Lập trình ứng dụng trên nền tảng android
  • Lập trình Ứng dụng với Công nghệ ASP.NET Core MVC, WebAPI, ReactJS - FullStack
  • Lập trình ứng dụng với WINDOWS FORM
  • Lập trình ứng dụng với JAVA (FORM)
  • Thiết kế và lập trình Ứng dụng với công nghệ Java (Java Framework springBoot, hibernate,...) - FullStack
  • Thiết kế và lập trình website với công nghệ HTML5, CSS3, Javascript, Bootstrapt 4, Jquery
  • Lập trình frontend với reacjs (Full)
Viện Công Nghệ Và Đào Tạo Devmaster

VIỆN CÔNG NGHỆ VÀ ĐÀO TẠO DEVMASTER - Học thực tế * Làm thực tế * Cam kết việc làm
Copyright by Ⓒ DEVMASTER 2015