Nếu bạn nghĩ về việc học Python - hoặc nếu gần đây bạn bắt đầu học nó - bạn có thể tự hỏi: Chính xác thì tôi có thể sử dụng Python để làm gì?

Theo thời gian, tôi đã quan sát thấy có 3 ứng dụng phổ biến chính cho Python:

  • Phát triển Web.
  • Khoa học dữ liệu (Data Science) – bao gồm học máy (Machine Learning), phân tích dữ liệu (Data Analysis) và hiển thị hóa dữ liệu.
  • Scripting (xây dựng công cụ tự động).
  • Lập trình nhúng và Internet of Things.

Phát triển Web

Các Framework cho Python như Django và Flask gần đây đã trở nên rất phổ biến để phát triển web.

Những Framework này hỗ trợ bạn viết các sever-site code (back-end code) bằng Python. Đó là những code chạy trên server của bạn, trái ngược với thiết bị người dùng và trình duyệt (front-end code).

Khoa học dữ liệu

Bao gồm học máy, phân tích dữ liệu và hiển thị hóa dữ liệu.

Trước hết, hãy xem máy học là gì?

Tôi nghĩ cách tốt nhất để giải thích máy học là gì để cho bạn một ví dụ đơn giản. Bạn cho chương trình của mình học hỏi rất nhiều hình ảnh về cá, và như vậy khi bạn cho chương trình của mình "xem" 1 con cá, nó sẽ biết đây chính là con cá, hoặc từ nhiều vật thể khác nhau, nó chỉ đích danh con cá đang ở đâu trong ảnh.

Tôi nghĩ rằng điều này hơi giống với cách một đứa bé học những điều mới. Làm thế nào để một đứa bé học được rằng một thứ trông giống như một con chó hay một cái bàn? Có lẽ đứa bé học từ một loạt các ví dụ về chúng.

Bạn có thể áp dụng cùng một ý tưởng như trên để:

  • Hệ thống đề xuất (như YouTube, Amazon và Netflix).
  • Nhận dạng khuôn mặt (như Facebook).
  • Nhận diện giọng nói.

Các thuật toán học máy phổ biến mà bạn có thể đã nghe nói như:

  • Neural networks 
  • Deep learning 
  • Support vector machines 
  • Random forest

Bạn có thể sử dụng bất kỳ thuật toán nào ở trên để giải quyết vấn đề "dán nhãn phân loại" ảnh mà chúng tôi đã đề cập.

Các thư viện và framework cho Python rất phổ biến, hai trong số những thư viện phổ biến nhất là scikit-learnTensorFlow. Nếu bạn chỉ mới bắt đầu với một dự án học máy, tôi sẽ khuyên bạn trước tiên nên bắt đầu với scikit-learn. Nếu bạn bắt đầu gặp phải vấn đề về tính hiệu quả, hãy bắt đầu tìm hiểu về TensorFlow.

Tôi nên học về học máy như thế nào?

Để học các nguyên tắc cơ bản về máy học xin lưu ý rằng bạn cần có kiến thức cơ bản về tính toánđại số tuyến tính cũng như kiến thức về lập trình Python.

Thế còn phân tích dữ liệu và hiển thị hóa dữ liệu?

Để giúp bạn hình dung chúng trông như thế nào, hãy để tôi cho bạn một ví dụ đơn giản ở đây. Hãy tưởng tượng rằng bạn làm việc cho một công ty bán hàng trực tuyến và bạn là một nhà phân tích dữ liệu, bạn có thể vẽ biểu đồ thanh như sau.

Từ biểu đồ này, ta thấy được doanh số bán hàng tăng mạnh từ tháng 7 đến tháng 10, như vậy với dữ liệu ta có và với việc phân tích dữ liệu như trên, ta có thể tìm các cách thức để tối ưu hóa doanh thu, chẳng hạn áp dụng mô hình, sự kiện đã thực hiện trong thời gian này tương tự cho các tháng còn lại để thu hút doanh thu tương tự. Như bạn đã thấy, đây là một ví dụ đơn giản về phân tích dữ liệu có thể trông như thế nào trong thế giới thực.

Công việc phân tích dữ liệu tại Google và Microsoft rất giống với ví dụ này - chỉ phức tạp hơn. PythonMatplotlib đã thực sự được sử dụng tại Google việc phân tích và hiển thị hóa dữ liệu loại này.

Một trong những thư viện phổ biến nhất để hiển thị hóa dữ liệu là Matplotlib, một thư viện vẽ đồ thị 2D của Python. Nó có một thư viện tốt để bắt đầu bởi vì:

  • Rất dễ dàng để bắt đầu với nó.
  • Một số thư viện khác như seaborn dựa trên Matplotlib. Vì vậy, học Matplotlib sẽ giúp bạn học các thư viện khác sau này.

Tôi nên học phân tích và hiển thị hóa dữ liệu với Python như thế nào?

Trước tiên bạn nên tìm hiểu các nguyên tắc cơ bản của phân tích dữ liệu và hiển thị hóa. Sau khi học các nguyên tắc cơ bản của phân tích dữ liệu và hiển thị dữ liệu, học các nguyên tắc cơ bản về thống kê nhưng hãy chắc rằng bạn không gặp nhiều rắc rối với các cú pháp cơ bản của Python.

Scripting

Viết Scripting thường đề cập đến việc viết các chương trình nhỏ được thiết kế để tự động hóa các tác vụ đơn giản. Vì vậy, hãy để tôi cho bạn một ví dụ từ kinh nghiệm cá nhân của tôi, khi khách hàng cần nhờ tôi thu nhỏ 10.000 bức ảnh của họ xuống 1 nửa, tôi có thể nghĩ đến việc sử dụng Photoshop hoặc cơ bản nhất là Paint. Và có thể tôi mất hơn 1 năm để làm điều này nếu tôi không biết viết Script và Python, vâng, như bạn nghĩ, tôi đã lập trình để Python tự động thu nhỏ từng tấm ảnh từ tấm ảnh thứ nhất đến tấm ảnh thứ 10.000 trong khi "treo" máy tính để nó chạy tự động thì tôi làm các công việc khác mà không cần quan tâm đến nó nữa, chỉ chờ mọi thứ hoàn tất.

Trên thực tế, chúng tôi có thể sử dụng C# cho việc này, nhưng Python cũng là một ngôn ngữ tốt cho loại nhiệm vụ này. Python phù hợp với loại nhiệm vụ này chủ yếu vì nó có cú pháp tương đối đơn giản và dễ viết. Bạn sẽ nhanh chóng viết một cái gì đó và áp dụng ngay khi viết xong.

Vậy các ứng dụng...

...nhúng thì sao?

Tôi viết Python để làm các ứng dụng Internet of Things với Rasberry Pi. Nó có vẻ như là một ứng dụng phổ biến trong số những người có sở thích về phần cứng.

...còn về game?

Bạn có thể sử dụng thư viện có tên PyGame để phát triển trò chơi, nhưng nó không phải là công cụ làm game phổ biến nhất hiện có. Bạn có thể sử dụng nó để xây dựng dự án trò chơi vì sở thích, nhưng cá nhân tôi sẽ không chọn nó nếu bạn nghiêm túc về phát triển trò chơi.

Thay vào đó, tôi khuyên bạn nên bắt đầu với C++, nó cho phép bạn xây dựng một trò chơi cho nhiều nền tảng, bao gồm Mac, Windows, iOS và Android.

...và ứng dụng máy tính nữa

Bạn có thể tạo một ứng dụng với Python bằng Tkinter.

Bạn muốn bắt đầu với Python nhưng không biết nên bắt đầu từ đâu?

Nếu bạn chưa biết bắt đầu từ đâu để học Python, tôi khuyên bạn nên tìm kiếm 1 khóa học từ căn bản trước. Chúng tôi cũng có 1 khóa học như vậy và bạn có thể tìm hiểu, đăng ký tại đây - Khóa học Lập Trình Python Căn Bản. Khóa học sẽ dẫn dắt bạn đi từ từng bước căn bản trước để bạn có được nền tảng tốt đi xa hơn trong lĩnh vực lập trình.

Python 2 hay Python 3

Tôi muốn giới thiệu Python 3 cho bạn vì nó hiện đại hơn và nó có nhiều tùy chọn phổ biến hơn vào thời điểm này.