Categories: Tài liệu IT

Ứng dụng thuật toán và cấu trúc dữ liệu lúc đi làm

Published by

Nhiều bạn trẻ thường tự hỏi liệu sau khi ra trường, liệu có thực sự cần ứng dụng thuật toán và cấu trúc dữ liệu trong công việc không? Và tại sao nhiều công ty tuyển dụng lại quan tâm đến điều này? Hãy cùng tìm ra câu trả lời!

Tại sao cần hiểu rõ thuật toán và cấu trúc dữ liệu

Có nhiều bạn cho rằng sau này khi đi làm, chúng ta sẽ không cần sử dụng thuật toán và cấu trúc dữ liệu lắm. Tuy nhiên, nếu chúng ta không hiểu sâu về hai khái niệm này, chúng ta sẽ không biết những điều căn bản sau đây:

  • Ví dụ, trong ngôn ngữ lập trình C++, lớp std::map được triển khai bằng cây nhị phân tìm kiếm tự cân bằng, trong khi đó HashMap trong Java sử dụng bảng băm, và lớp tương ứng là TreeMap. Còn std::unordered_map trong C++ mới là lớp sử dụng bảng hash như HashMap.

  • Điều này có ý nghĩa gì? std::map sẽ có các key được sắp xếp, trong khi các lớp implement lớp Map trong Java không có yêu cầu này. Độ phức tạp của việc lấy ra 1 phần tử trong std::map là O(logN), trong khi đối với HashMap là O(1).

Những người học sâu về cấu trúc dữ liệu và thuật toán sẽ nắm vững những kiến thức này. Khi sử dụng bất kỳ API nào, họ sẽ tìm hiểu cài đặt bên dưới, độ phức tạp thuật toán là bao nhiêu, và liệu nó phù hợp với công việc đang làm hay không? Các thông tin này có thể tìm thấy từ tài liệu của C++ hoặc Java.

Ví dụ, tài liệu về lớp std::map trong C++ giải thích rằng hàm at có độ phức tạp là “logarithmic in size” (tức là O(logN)). Tương tự, tài liệu về TreeMap trong Java ghi rõ “This implementation provides guaranteed log(n) time cost for the containsKey, get, put, and remove operations”.

Dù là ngôn ngữ hay framework nào, những kiến thức căn bản vẫn rất giống nhau. Hãy lấy ví dụ đơn giản để tự nhìn thấy rằng thuật toán nằm ngay bên dưới những hàm chúng ta sử dụng hàng ngày. Hãy rèn cho mình thói quen tìm hiểu sâu, bản chất thay vì chỉ quan tâm đến những điều hời hợt bên trên.

Tại sao những điều này quan trọng?

Thứ nhất, khi nhận yêu cầu, chúng ta có thể đánh giá khả năng giải quyết vấn đề trong yêu cầu đó.

Thứ hai, trước khi viết code, chúng ta luôn cố gắng tìm ra giải pháp tối ưu.

Thứ ba, trong quá trình viết code, chúng ta có thể đánh giá năng suất của đoạn code đã viết.

Thứ tư, khi gặp vấn đề về hiệu suất, chúng ta có thể phán đoán được nguyên nhân và xử lí.

Những công ty như Amazon đã đặt ra tiêu chí rằng khi bạn thêm một chức năng mới vào trang web của họ, thời gian xử lý một request không được vượt quá 3 mili-giây. Họ có công cụ để quét và đẩy phần chức năng vượt quá mức cho phép xuống, đồng thời bạn phải viết báo cáo tự đánh giá.

Ở VISA, một tôi từng tối ưu hệ thống xử lý email của công ty từ việc xử lý 5 triệu email trong 24 tiếng xuống còn 5 phút.

Công ty bạn cần tối ưu?

Việc tối ưu hệ thống rất quan trọng, nó giúp tiết kiệm chi phí, nâng cao trải nghiệm người dùng và đặc biệt giúp bạn nâng cao sự nghiệp. Dù công ty của bạn có cần thuật toán tối ưu hay không, nhưng nếu bạn muốn vươn xa hơn trong công việc, hãy chắc chắn rằng bạn có hiểu biết về thuật toán và cấu trúc dữ liệu.

Bài viết được sự cho phép của tác giả Trần Thiện Khiêm

Xem thêm:

  • Hướng Dẫn Assembly 64bit (Tái Bản)
  • Cách Giao Tiếp Giữa Các Service Trong Hệ Thống Có Tải Cao
  • Khởi Đầu Dự Án Python Như Thế Nào Để Thuận Tiện Phát Triển Lên

Hàng loạt việc làm IT lương cao đang chờ bạn, ứng tuyển ngay trên TopDev!

This post was last modified on Tháng Năm 7, 2024 6:57 chiều

Đinh Thái Hoàng

Đinh Thái Hoàng - tác giả của Laptrinhc.edu.vn, chuyên sâu trong lĩnh vực lập trình. Trang web chia sẻ kiến thức, hướng dẫn và tin tức về lập trình, giúp bạn khám phá thế giới mã nguồn và nâng cao kỹ năng coder.

Published by

Bài đăng mới nhất

Tổng hợp app bán hàng online uy tín nhất tại Việt Nam

Khám phá và tận dụng tiềm năng kinh doanh trên nhiều nền tảng là điều…

5 ngày ago

HỌC THIẾT KẾ MOBILE APP Ở ĐÂU UY TÍN?

Mobile App đang trở thành một phần thiết yếu trong cuộc sống hiện đại. Với…

5 ngày ago

Cách phá mật khẩu Windows bằng DLC Boot

Bạn đã bao giờ quên mật khẩu máy tính và không biết phải làm sao?…

5 ngày ago

Cách kiểm tra và cài đặt Driver cho Windows 10 chuẩn nhất

Driver chính là phần mềm giúp hệ điều hành nhận diện phần cứng trên máy…

5 ngày ago

Top 10 công cụ viết phần mềm tốt nhất

Hiện nay, lập trình viên không cần phải thực hiện toàn bộ công việc lập…

5 ngày ago

Những Công Ty Lập Trình Ứng Dụng Cho IOS Hàng Đầu Việt Nam

Lập trình ứng dụng cho iOS không chỉ đơn thuần là một quyết định khó…

5 ngày ago