Python được sử dụng ở đâu?

Nếu bạn đang nghĩ đến việc học Python — hoặc nếu bạn mới bắt đầu học nó — bạn có thể đang tự hỏi mình

“Chính xác thì tôi có thể sử dụng Python để làm gì?”

Chà, đó là một câu hỏi khó trả lời, bởi vì có rất nhiều ứng dụng dành cho Python

Nhưng 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 - bao gồm học máy, phân tích dữ liệu và trực quan hóa dữ liệu
  • viết kịch bản

Hãy lần lượt nói về từng người trong số họ

Phát triển web

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

Các khung web này giúp bạn tạo mã phía máy chủ [mã phụ trợ] bằng Python. Đó là mã chạy trên máy chủ của bạn chứ không phải trên thiết bị và trình duyệt của người dùng [mã giao diện người dùng]. Nếu bạn không quen thuộc với sự khác biệt giữa mã phụ trợ và mã đầu cuối, vui lòng xem chú thích của tôi bên dưới

Nhưng chờ đã, tại sao tôi lại cần một web framework?

Đó là bởi vì khung web giúp dễ dàng xây dựng logic phụ trợ chung hơn. Điều này bao gồm ánh xạ các URL khác nhau tới các đoạn mã Python, xử lý cơ sở dữ liệu và tạo các tệp HTML mà người dùng nhìn thấy trên trình duyệt của họ

Tôi nên sử dụng khung web Python nào?

Django và Flask là hai trong số các khung web Python phổ biến nhất. Tôi khuyên bạn nên sử dụng một trong số chúng nếu bạn mới bắt đầu

Sự khác biệt giữa Django và Flask là gì?

Có một bài báo xuất sắc về chủ đề này của Gareth Dwyer, vì vậy hãy để tôi trích dẫn nó ở đây

tương phản chính

  • Flask cung cấp khả năng kiểm soát đơn giản, linh hoạt và chi tiết. Nó không có ý kiến ​​[nó cho phép bạn quyết định cách bạn muốn triển khai mọi thứ]
  • Django cung cấp trải nghiệm bao gồm tất cả. bạn nhận được bảng quản trị, giao diện cơ sở dữ liệu, ORM [ánh xạ quan hệ đối tượng] và cấu trúc thư mục cho các ứng dụng và dự án của bạn ngay lập tức

Có lẽ bạn nên chọn

  • Flask, nếu bạn tập trung vào trải nghiệm và cơ hội học tập hoặc nếu bạn muốn kiểm soát nhiều hơn về việc sử dụng thành phần nào [chẳng hạn như cơ sở dữ liệu nào bạn muốn sử dụng và cách bạn muốn tương tác với chúng]
  • Django, nếu bạn tập trung vào sản phẩm cuối cùng. Đặc biệt nếu bạn đang làm việc trên một ứng dụng đơn giản như trang tin tức, cửa hàng điện tử hoặc blog và bạn muốn ở đó luôn có một cách thức rõ ràng duy nhất để thực hiện mọi việc

Nói cách khác, nếu bạn là người mới bắt đầu, Flask có lẽ là lựa chọn tốt hơn vì nó có ít thành phần hơn để xử lý. Ngoài ra, Flask là lựa chọn tốt hơn nếu bạn muốn tùy chỉnh nhiều hơn

Mặt khác, nếu bạn đang muốn xây dựng thứ gì đó ngay lập tức, Django có thể sẽ giúp bạn đạt được điều đó nhanh hơn

Bây giờ, nếu bạn đang muốn học Django, tôi giới thiệu cuốn sách có tên Django cho người mới bắt đầu. bạn có thể tìm thấy nó ở đây

Bạn cũng có thể tìm thấy các chương mẫu miễn phí của cuốn sách đó tại đây

Được rồi, chúng ta hãy đi đến chủ đề tiếp theo

Khoa học dữ liệu - bao gồm học máy, phân tích dữ liệu và trực quan hóa dữ liệu

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

Tôi nghĩ cách tốt nhất để giải thích máy học là gì là đưa cho bạn một ví dụ đơn giản

Giả sử bạn muốn phát triển một chương trình tự động phát hiện nội dung trong ảnh

Vì vậy, đưa ra hình ảnh dưới đây [Hình 1], bạn muốn chương trình của mình nhận ra rằng đó là một con chó

Bức tranh 1

Đưa ra cái khác bên dưới [Hình 2], bạn muốn chương trình của mình nhận ra rằng đó là một bảng

ảnh 2

Bạn có thể nói, tốt, tôi chỉ có thể viết một số mã để làm điều đó. Ví dụ: có thể nếu có nhiều pixel màu nâu nhạt trong ảnh thì chúng ta có thể nói rằng đó là một con chó

Hoặc có thể, bạn có thể tìm ra cách phát hiện các cạnh trong ảnh. Sau đó, bạn có thể nói, nếu có nhiều cạnh thẳng thì đó là một cái bàn

Tuy nhiên, cách tiếp cận này trở nên phức tạp khá nhanh. Điều gì sẽ xảy ra nếu có một con chó trắng trong ảnh không có lông nâu?

Đây là nơi máy học xuất hiện

Học máy thường thực hiện một thuật toán tự động phát hiện một mẫu trong đầu vào đã cho

Chẳng hạn, bạn có thể đưa 1.000 bức ảnh về một chú chó và 1.000 bức ảnh về một cái bàn cho một thuật toán máy học. Sau đó, nó sẽ học được sự khác biệt giữa một con chó và một cái bàn. Khi bạn đưa cho nó một hình ảnh mới về một con chó hoặc một cái bàn, nó sẽ có thể nhận ra đó là cái gì

Tôi nghĩ điều này hơi giống với cách một em bé học những điều mới. Làm thế nào để một em bé biết rằng một thứ trông giống một con chó và một thứ khác giống cái bàn?

Bạn có thể không nói rõ ràng với một em bé rằng “Nếu thứ gì đó có lông và có lông màu nâu nhạt thì đó có thể là một con chó. ”

Có lẽ bạn sẽ chỉ nói, “Đó là một con chó. Đây cũng là một con chó. Và đây là một cái bàn. Cái đó cũng là cái bàn. ”

Các thuật toán học máy hoạt động theo cùng một cách

Bạn có thể áp dụng ý tưởng tương tự cho

  • hệ thống đề xuất [nghĩ rằng YouTube, Amazon và Netflix]
  • nhận dạng khuôn mặt
  • nhận diện giọng nói

trong số các ứng dụng khác

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

  • mạng lưới thần kinh
  • Học kĩ càng
  • Hỗ trợ máy vector
  • rừng ngẫu nhiên

Bạn có thể sử dụng bất kỳ thuật toán nào ở trên để giải quyết vấn đề ghi nhãn hình ảnh mà tôi đã giải thích trước đó

Python cho máy học

Có các thư viện và khung máy học phổ biến cho Python

Hai trong số những cái phổ biến nhất là scikit-learning và TensorFlow

  • scikit-learning đi kèm với một số thuật toán học máy phổ biến hơn được tích hợp sẵn. Tôi đã đề cập đến một số trong số họ ở trên
  • TensorFlow giống một thư viện cấp thấp hơn cho phép bạn xây dựng các thuật toán học máy tùy chỉnh

Nếu bạn mới bắt đầu với một dự án máy học, tôi khuyên bạn nên bắt đầu với scikit-learning trước. Nếu bạn bắt đầu gặp phải các vấn đề về hiệu quả, thì tôi sẽ bắt đầu xem xét TensorFlow

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

Để tìm hiểu các nguyên tắc cơ bản về học máy, tôi khuyên bạn nên tham gia khóa học học máy của Stanford hoặc Caltech

Xin lưu ý rằng bạn cần có kiến ​​thức cơ bản về giải tích và đại số tuyến tính để hiểu một số tài liệu trong các khóa học đó

Sau đó, tôi sẽ thực hành những gì bạn đã học được từ một trong những khóa học đó với Kaggle. Đó là một trang web nơi mọi người cạnh tranh để xây dựng thuật toán học máy tốt nhất cho một vấn đề nhất định. Họ cũng có những hướng dẫn hay cho người mới bắt đầu

Còn phân tích dữ liệu và trực quan hóa dữ liệu thì sao?

Để giúp bạn hiểu những thứ này có thể trông như thế nào, hãy để tôi đưa cho bạn một ví dụ đơn giản ở đây

Giả sử bạn đang làm việc cho một công ty bán một số sản phẩm trực tuyến

Sau đó, với tư cách là nhà phân tích dữ liệu, bạn có thể vẽ biểu đồ thanh như thế này

Biểu đồ thanh 1 — được tạo bằng Python

Từ biểu đồ này, chúng ta có thể biết rằng nam giới đã mua hơn 400 đơn vị sản phẩm này và phụ nữ đã mua khoảng 350 đơn vị sản phẩm này vào Chủ nhật cụ thể này

Là một nhà phân tích dữ liệu, bạn có thể đưa ra một vài lời giải thích khả dĩ cho sự khác biệt này

Một lời giải thích rõ ràng có thể là sản phẩm này phổ biến với nam giới hơn nữ giới. Một lời giải thích khả dĩ khác có thể là cỡ mẫu quá nhỏ và sự khác biệt này chỉ là ngẫu nhiên. Và một lời giải thích khả dĩ khác có thể là nam giới có xu hướng chỉ mua sản phẩm này nhiều hơn vào Chủ nhật vì một số lý do

Để hiểu cách giải thích nào là đúng, bạn có thể vẽ một biểu đồ khác như thế này

Biểu đồ đường 1 — được tạo bằng Python

Thay vì chỉ hiển thị dữ liệu cho Chủ nhật, chúng tôi đang xem xét dữ liệu cho cả tuần. Như bạn có thể thấy, từ biểu đồ này, chúng ta có thể thấy rằng sự khác biệt này khá nhất quán qua các ngày khác nhau

Từ phân tích nhỏ này, bạn có thể kết luận rằng lời giải thích thuyết phục nhất cho sự khác biệt này là sản phẩm này đơn giản là được nam giới ưa chuộng hơn nữ giới

Mặt khác, nếu bạn thấy một biểu đồ như thế này thì sao?

Line Chart 2 — cũng được tạo bằng Python

Sau đó, điều gì giải thích sự khác biệt vào Chủ nhật?

Bạn có thể nói, có lẽ đàn ông có xu hướng mua nhiều sản phẩm này chỉ vào Chủ nhật vì một số lý do. Hoặc, có lẽ đó chỉ là sự trùng hợp ngẫu nhiên khi đàn ông mua nhiều hơn vào Chủ nhật

Vì vậ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 đã làm khi còn làm việc tại Google và Microsoft rất giống với ví dụ này — chỉ phức tạp hơn. Tôi thực sự đã sử dụng Python tại Google cho loại phân tích này, trong khi tôi sử dụng JavaScript tại Microsoft

Tôi đã sử dụng SQL ở cả hai công ty đó để lấy dữ liệu từ cơ sở dữ liệu của chúng tôi. Sau đó, tôi sẽ sử dụng Python và Matplotlib [tại Google] hoặc JavaScript và D3. js [tại Microsoft] để trực quan hóa và phân tích dữ liệu này

Phân tích/trực quan hóa dữ liệu với Python

Một trong những thư viện phổ biến nhất để trực quan hóa dữ liệu là Matplotlib

Đó là một thư viện tốt để bắt đầu bởi vì

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

Tôi nên học phân tích/trực quan 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 về phân tích và trực quan hóa dữ liệu. Khi tôi tìm kiếm các tài nguyên tốt cho điều này trực tuyến, tôi không thể tìm thấy bất kỳ. Vì vậy, cuối cùng tôi đã tạo một video YouTube về chủ đề này

Tôi cũng đã hoàn thành một khóa học đầy đủ về chủ đề này trên Pluralsight, bạn có thể học miễn phí bằng cách đăng ký dùng thử miễn phí 10 ngày của họ

Tôi muốn giới thiệu cả hai

Sau khi học các nguyên tắc cơ bản về phân tích và trực quan hóa dữ liệu, việc học các nguyên tắc cơ bản về thống kê từ các trang web như Coursera và Khan Academy cũng sẽ hữu ích

viết kịch bản

viết kịch bản là gì?

Viết kịch bản 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 ở đây

Tôi đã từng làm việc tại một công ty khởi nghiệp nhỏ ở Nhật Bản, nơi chúng tôi có hệ thống hỗ trợ qua email. Đó là một hệ thống để chúng tôi trả lời các câu hỏi mà khách hàng đã gửi cho chúng tôi qua email

Khi tôi làm việc ở đó, tôi có nhiệm vụ đếm số lượng email chứa các từ khóa nhất định để chúng tôi có thể phân tích các email chúng tôi nhận được

Chúng tôi có thể thực hiện thủ công, nhưng thay vào đó, tôi đã viết một chương trình đơn giản/tập lệnh đơn giản để tự động hóa tác vụ này

Trên thực tế, chúng tôi đã sử dụng Ruby cho việc này trước đó, 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. Nó cũng nhanh chóng để viết một cái gì đó nhỏ với nó và kiểm tra nó

Còn các ứng dụng nhúng thì sao?

Tôi không phải là chuyên gia về các ứng dụng nhúng, nhưng tôi biết rằng Python hoạt động với Rasberry Pi. Nó có vẻ giống như một ứng dụng phổ biến trong số những người yêu thích phần cứng

Chơi game thì sao?

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ụ chơi trò chơi phổ biến nhất hiện có. Bạn có thể sử dụng nó để xây dựng một dự án theo 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ới việc phát triển trò chơi

Thay vào đó, tôi khuyên bạn nên bắt đầu với Unity với C#, một trong những công cụ chơi game phổ biến nhất. Nó cho phép bạn xây dựng trò chơi cho nhiều nền tảng, bao gồm Mac, Windows, iOS và Android

Còn các ứng dụng máy tính để bàn thì sao?

Bạn có thể tạo một cái bằng Python bằng Tkinter, nhưng có vẻ như đó cũng không phải là lựa chọn phổ biến nhất

Thay vào đó, có vẻ như các ngôn ngữ như Java, C# và C++ phổ biến hơn cho việc này

Gần đây, một số công ty cũng đã bắt đầu sử dụng JavaScript để tạo các ứng dụng Máy tính để bàn

Ví dụ: ứng dụng dành cho máy tính để bàn của Slack được xây dựng với thứ gọi là Electron. Nó cho phép bạn xây dựng các ứng dụng máy tính để bàn bằng JavaScript

Cá nhân tôi, nếu tôi đang xây dựng một ứng dụng dành cho máy tính để bàn, tôi sẽ sử dụng tùy chọn JavaScript. Nó cho phép bạn sử dụng lại một số mã từ phiên bản web nếu bạn có nó

Tuy nhiên, tôi cũng không phải là chuyên gia về các ứng dụng dành cho máy tính để bàn, vì vậy vui lòng cho tôi biết trong phần nhận xét nếu bạn không đồng ý hoặc đồng ý với tôi về điều này

Python 3 hay Python 2?

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

chú thích cuối trang. Một lưu ý về mã back-end so với mã front-end [chỉ trong trường hợp bạn không quen thuộc với các điều khoản]

Giả sử bạn muốn tạo một thứ gì đó giống như Instagram

Sau đó, bạn cần tạo mã giao diện người dùng cho từng loại thiết bị mà bạn muốn hỗ trợ

Bạn có thể sử dụng, ví dụ

  • Swift cho iOS
  • Java cho Android
  • JavaScript cho trình duyệt web

Mỗi bộ code sẽ chạy trên từng loại thiết bị/trình duyệt. Đây sẽ là bộ mã xác định bố cục của ứng dụng sẽ như thế nào, các nút sẽ trông như thế nào khi bạn nhấp vào chúng, v.v.

Tuy nhiên, bạn vẫn sẽ cần khả năng lưu trữ thông tin và ảnh của người dùng. Bạn sẽ muốn lưu trữ chúng trên máy chủ của mình chứ không chỉ trên thiết bị của người dùng để mỗi người theo dõi của người dùng có thể xem ảnh của họ

Đây là nơi mã phụ trợ / mã phía máy chủ xuất hiện. Bạn sẽ cần viết một số mã phụ trợ để làm những việc như

  • Theo dõi xem ai đang theo dõi ai
  • Nén ảnh để chúng không chiếm quá nhiều dung lượng lưu trữ
  • Đề xuất ảnh và tài khoản mới cho từng người dùng trong tính năng khám phá

Vì vậy, đây là sự khác biệt giữa mã phụ trợ và mã mặt trước

Nhân tiện, Python không phải là lựa chọn tốt duy nhất để viết mã phụ trợ/mã phía máy chủ. Có nhiều lựa chọn phổ biến khác, bao gồm Node. js, dựa trên JavaScript

Thích bài viết này?

Tôi có một kênh YouTube về giáo dục lập trình tên là CS Dojo với hơn 440.000 người đăng ký, nơi tôi sản xuất nhiều nội dung hơn như bài viết này

Ví dụ: bạn có thể thích những video này

Dù sao cũng cảm ơn rất nhiều vì đã đọc bài viết của tôi

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Nếu bài viết này hữu ích, hãy tweet nó

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Python là một ví dụ về cái gì?

Python là một ngôn ngữ lập trình cấp cao, hướng đối tượng, được thông dịch với ngữ nghĩa động.

Python ứng dụng vào cuộc sống hàng ngày như thế nào?

10 ví dụ sử dụng Python hàng đầu trong thế giới thực .
Phát triển web
Khoa học dữ liệu
Trí tuệ nhân tạo và học máy
Ứng dụng doanh nghiệp
ngành giáo dục
Ứng dụng quét web
Sự phát triển trò chơi
Phát triển phần mềm

Chủ Đề