Lộ trình học python cơ bản

Giới thiệu

Ngôn ngữ Python có vẻ đang hot trong cộng đồng lập trình Việt Nam những năm gần đây với những cú pháp linh hoạt và nhiều công cụ tiện ích. Nhiều người vẫn nghĩ Python là ngôn ngữ mới là sai, thật ra Python được phát triển từ năm 1985-1990, có nghĩa là tuổi đời Python còn lớn hơn cả Java - trong khi đó Java đã góp mặt ở Việt Nam từ những thế hệ lập trình viên 8x - đầu 9x, thì Python lại mới làm quen ở Việt Nam những năm gần đây.

Kteam sẽ đưa ra lộ trình trở thành lập trình viên Python theo nhiều lĩnh vực khác nhau. Tuy nhiên điểm xuất phát của các bạn là cần phải học về lập trình cơ bảnhướng đối tượng của Python. Kteam sẽ nói về lộ trình học chuyên sâu hơn.


Nội dung

Trong bài viết này, chúng ta sẽ bàn về những lộ trình sau của Python:

  • Làm ứng dụng cho máy tính
  • Trở thành Web Developer
  • Lập trình nhúng/IOT
  • Làm game

Làm ứng dụng cho máy tính

Đây là con đường cơ bản nhất trong lập trình viên, việc tạo những ứng dụng có giao diện đồ họa đã giúp con người tiếp cận với máy tính hơn bao giờ hết. Nói về tạo GUI trong Python, Kteam khuyến khích các bạn dùng 1 trong 2 thư viện là Tkinter PyQT.

Đầu tiên là Tkinter, đây là thư viện được tích hợp sẵn trong Python 3, khi các bạn Cài đặt Python 3 đầy đủ thì có thể sử dụng ngay. Đây là thư viện được tạo ra ứng dụng nhanh và đơn giản, việc học không quá phức tạp. Vì vậy Tkinter ít khi sử dụng làm những ứng dụng quản lý lớn, hay được sử dụng làm giao diện cho các thiết bị điều khiển.

Còn về PyQT, đây không phải là thư viện mà là 1 Framework hỗ trợ khá đầy đủ. QT lúc đầu là của C++ để làm GUI, PyQT chính là QT được lập trình bằng Python. PyQT hỗ trợ khá đầy đủ, ngoài tạo ứng dụng thì có thể cho tự thiết kế hình dạng cửa sổ, có thư viện để kết nối cơ sở dữ liệu và có tool design.


Trở thành Web Developer

Python ở Việt Nam thường dùng cho lập trình back-end web. Có rất nhiều bạn muốn học Python theo con đường này nên Kteam sẽ nói rõ hơn!

Việc học web cần phải con đường vững chắc. Trước tiên bạn phải học Html, Css và Javascript - đây là 3 ngôn ngữ bắt buộc để làm web dù bạn có thích hay không. Khi nắm chắc cơ bản được 3 dạng này bạn có thể học Python Web - tất nhiên đây là con đường của Back-end Developer, còn các bạn muốn trở thành Front-end thì phải theo lộ trình của Javascript. Hoặc muốn trở thành Full-stack Developer thì phải theo luôn 2 lộ trình này.

Có rất nhiều Framework để lập trình Python web, thì có 2 cái phổ biến hiện này là Flask Django.

Flask là microframework, là framework thực hiện từ những việc cơ bản nhất trở lên. Bạn sẽ phải quyết định project Web của bạn như thế nào, chia bố cục ra sao, theo mô hình gì... Đây sẽ framework khá hay cho những bạn không muốn ràng buộc quá nhiều về thư viện, tự sáng tạo cách của mình - tất nhiên bạn phải biết cách chọn hướng đi tốt nhất để giải quyết, không phải mình thích là mình làm.

Khá ngược Flask, Django là Framework lớn hỗ trợ cho ta nhiều hơn, nhưng đồng thời ràng buộc những gì ta thực hiện. Django khá "đóng" hơn, bắt chúng ta phải làm theo kiểu "cách Django", Django quyết định mô hình thiết kế (mô hình MVC), cung cấp database interface theo dạng ORM (nói đơn giản là định nghĩa table sang kiểu hướng đối tượng) nên việc tương tác database bằng ngôn ngữ Python (vừa là ưu điểm và nhược điểm), quy định cấu trúc đặt file trong project...

Django hỗ trợ cho ta đầy đủ, nên việc tạo các trang web lớn sẽ giúp ta thực hiện nhanh hơn nhiều. Tất nhiên việc tạo các trang Web là do năng lực các bạn - framework là công cụ hỗ trợ, không phải quyết định kết quả của bạn. Bạn có thể chọn Framework theo sở thích của bạn, nếu còn phân vân thì ta học cả 2 luôn là biết mình thích cái nào.

Sau khi học xong 2 framework này, các bạn cũng nên học về Restful Framework của mỗi cái đó. Vì sao ta phải học nó, khi chúng ta làm các web lớn sẽ có những trường hợp cần tương tác với giữa các trang web với nhau, vì web được tạo ra từ nhiều Framework khác nhau (Asp.net, Node.js, ...) nên cần phải có một chuẩn mực chung để các trang web tương tác với nhau có thể hiểu - Đó là là REST. Khi các bạn học đến đây thì sẽ hiểu tầm quan trọng vì sao cần Restful Framework


Lập trình nhúng/IOT

Python ứng dụng rất nhiều lĩnh vực và trong đó có lập trình nhúng, tuy hiện số lượng board có hỗ trợ ngôn ngữ Python cũng hạn chế. Kteam sẽ cố gắng giới thiệu một số thư viện để các bạn có thể học lập trình nhúng Python. Vì Kteam không phải dân gốc bên điện tử - nên chỉ xin phép giới thiệu qua (nếu bạn hiểu rõ hơn! hãy đóng góp ý kiến trong phần BÌNH LUẬN bên dưới để mọi người có thể cùng tham khảo!)

Đầu tiên là thư viện MicroPython, đây là thư viện mã nguồn mở giúp ta nhanh thao tác nhanh các thiết bị nhúng như là Pyboard, Esp8266...việc phát triển lập trình nhúng cho Python sẽ trở nên dễ dàng hơn cho những ai tay ngang muốn đi theo con đường này.

Tiếp theo là Zerynth, đây là Framework hỗ trở chính cho các dòng ESP8266, SAMD21, STM32... Zerynth hỗ trở khá đầy đủ như có tính năng cho đa tiến trình, có IDE chạy đa nền tảng hỗ trở nhiều tính năng như có bài viết hướng dẫn, clone github hay hình ảnh mô tả board đang lập trình...Ngoài ra Zerynth còn hỗ trợ clouds, app, api để phát triển một project chuyên nghiệp. Zerynth có hai bản là Free và Pro, các bạn có thể chọn phiên bản miễn phí để có thể sử dụng.

Ngoài các board Pyboard, Esp8266 thì Raspberry cũng có thư viện Python để giao tiếp. Raspberry là một máy tính nhúng nên bạn có thể cài hệ điều hành vào mạch này - thường là hệ điều hành Raspbian. Để dùng Python giao tiếp với Raspberry, ta sẽ dùng 2 thư viện GPIO Zero và RPi.GPIO.


Làm game

Làm game là sở thích của nhiều bạn, có thể nó nhiều bạn muốn theo con đường công nghệ thông tin cũng từ sở thích này. Chúng ra hãy cùng tìm hiểu những thư viện Python hỗ trợ làm game

Đầu tiên là Pygame (được xây dựng từ thư viện SDL) , đây là thư viện low-level bắt buộc các bạn phải xây dựng game từ những từ cơ bản nhất, việc học Pygame là ưu tiên để cho các bạn muốn làm game chuyên sâu từ Python. Pygame có hỗ trợ phát triển trên Android, nếu muốn phát triển trên IOS cần phải thêm thư viện Kivy của Python vào. Sau khi nghiên cứu Pygame, các bạn nên tìm hiểu PyOpenGL để phát triển game 3D.

Tiếp theo là Pyglet, là một framework chạy đa nền tảng lớn hỗ trợ cho multimedia, hỗ trợ khá mạnh để phát triển đồ họa 3D, hỗ trở phát video-âm thanh, xử lý bàn phím-chuột... Pyglet thường dùng phát triển các dạng game lớn, và là 1 trong những framework được lập trình viên Python yêu thích.


Kết luận

Như vậy, Kteam đã giói thiệu cho bạn những lộ trình để trở thành lập trình viên Python, hy vọng bài giới thiệu sẽ giúp cho các bạn có thể định hình được con đường cho bản thân.Chúc bạn có thể thành công với quyết định của mình. 

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.