Bạn có tự hỏi tại sao một bài viết về Machine Learning, Deep Learning lại được viết trong series cho người mới bắt đầu? Gần đây, mình đã viết một số bài về Machine Learning (bạn có thể xem ở đây nếu chưa biết). Trong đó, mình đã đề cập đến việc cần có kiến thức toán học vững chắc về đạo hàm, xác suất… Nhưng như một lập trình viên, chắc hẳn bạn đã từng nghe thầy cô hoặc những người có kinh nghiệm nói rằng để trở thành “dân IT” thì cần phải học toán tốt. Thực tế, nhiều người vẫn làm việc trong lĩnh vực lập trình mà chẳng biết gì về toán (mình cũng vậy). Vậy là lập trình không cần toán sao? (không biết nếu liên quan tới otofun).
Bạn đang xem: Tìm hiểu về toán học và lập trình
Đúng vậy, chúng ta không cần phải giỏi toán để trở thành lập trình viên. Công nghệ thông tin rất đa dạng và phần lớn công việc mà chúng ta thường làm hướng đến kỹ thuật hơn là tư duy. Bên cạnh đó, việc sử dụng các IDE, framework… giúp chúng ta rất nhiều. Vì vậy, chúng ta chỉ cần giỏi tiếng Anh và nỗ lực tìm hiểu (đọc tài liệu, stackoverflow…) là đủ để làm việc.
Xem thêm : Lập trình C++ cơ bản: Học lập trình một cách dễ hiểu
Tuy nhiên, không cần toán cũng không phải là lời đáp cuối cùng. Trong một số vấn đề, việc sử dụng toán học giúp chúng ta giải quyết hiệu quả hơn. Có những lĩnh vực yêu cầu chúng ta phải sử dụng toán đấy (“Bác” Huy Trần trên kipalog đã nói). Dưới đây là một số ví dụ mà bạn có thể đã bỏ qua từ trường học.
Ví dụ 1: Highlight các dấu ngoặc trong Editor (Sublime, Atom, Visual code…)
Giả sử bạn muốn viết một plugin cho Editor để làm nhiệm vụ highlight các dấu ngoặc trong đoạn code. Cách đơn giản nhất là sử dụng cấu trúc Stack. Khi quét đoạn code từ trên xuống dưới, khi gặp dấu mở ngoặc, ta đưa nó vào stack và tiếp tục quét. Khi gặp dấu đóng ngoặc, ta kiểm tra xem dấu mở ngoặc gần nhất trong stack có cùng loại hay không. Nếu có, ta lấy nó ra khỏi stack và highlight. Nếu không, ta báo lỗi syntax. Chi tiết có thể xem tại đây.
Ví dụ 2: Áp dụng ma trận vào CSS
Xem thêm : Tổng hợp các tài liệu React Native chất lượng – Free Download
Đúng vậy, bạn không nhầm đâu. Kiến thức về ma trận, mặc dù khá khô khan và nhàm chán, nhưng lại có thể kết hợp với CSS – một phần “mỹ phẩm” của HTML. Chỉ cần hiểu kỹ thuật sau đây, bạn hoàn toàn có thể tạo ra những hiệu ứng tuyệt vời cho các thành phần trên trang web, thậm chí có thể tạo ra các plugin như image slider, hiệu ứng 3D…
Thông qua thuộc tính CSS3 transform, nhà thiết kế web có thể xoay, tỉ lệ, nghiêng và lật các đối tượng một cách dễ dàng. Tuy nhiên, để làm cho hiệu ứng trông “mượt” nhất và kiểm soát điểm ảnh trên biến đổi, hiểu cách hoạt động của hàm ma trận là rất quan trọng. Với hàm matrix, nhà thiết kế có thể xác định vị trí và hình dạng của biến đổi một cách chính xác. Chi tiết có thể xem tại đây. Nếu bạn muốn tìm hiểu sâu hơn về ma trận CSS3, bạn có thể xem thêm tại đây. Cảnh báo trước là nó hơi phức tạp nhé.
Ví dụ 3: Sắp xếp 10 GB dữ liệu trong 1 GB bộ nhớ (hấp dẫn)
Đây là một ví dụ điển hình về xử lý Big data và thường được đặt trong phỏng vấn tại các công ty lớn. Chi tiết có thể xem tại đây.
Nhìn chung, bạn không cần phải giỏi toán học để trở thành một lập trình viên giỏi. Tuy nhiên, nếu bạn muốn trở thành một lập trình viên xuất sắc, bạn chắc chắn cần kiến thức toán học. Để cạnh tranh với lập trình viên trên toàn thế giới, chúng ta cần trang bị cho mình kiến thức chuyên sâu và mới mẻ. Đừng sợ hãi khi tiếp cận với những công việc mới như Data Scientist, Algorithm Developer hay công nghệ mới như Deep Learning, Machine Learning. Điều quan trọng là phải bỏ đi định kiến “công việc không yêu cầu” và nỗ lực tìm hiểu từ bây giờ.
Nguồn: https://laptrinhc.edu.vn
Danh mục: Tài liệu IT