Lộ trình học Python Cơ Bản đến Nâng Cao

7 steps to learn Python - From beginner to advanced

Posted by TAn on September 12, 2023. 12 min read.

Mục lục

Internet phát triển, nhu cầu về các công việc liên quan đến công nghệ thông tin, lập trình, phần mềm chưa bao giờ ngừng hot. Các tập đoàn và công ty công nghệ hàng đầu hiện nay như: Google, Facebook, Amazon, Samsung, Apple,…. đều tuyển những kỹ sư có trình độ cao trên khắp thế giới. Tại Việt Nam, nhu cầu săn đón những chuyên gia trong lĩnh vực này cũng vô cùng khốc liệt. Các công ty Việt Nam cũng đang phát triển rất mạnh mẽ và nhu cầu nhân sự cho tương lai vô cùng lớn như Vsmart (Vingroup), FPT, Viettel, VNG, Tiki, CMC…

Theo PYPL Index – chỉ số thống kê dựa trên số lượng hướng dẫn về ngôn ngữ lập trình trên Google, Python hiện đang là ngôn ngữ phổ biến nhất vượt qua Java hay C#. Hiện nay, Python chưa phải là một kỹ năng bắt buộc trong tuyển dụng vị trí Data Analyst ở các công ty Việt Nam. Tuy nhiên, thị trường ngày một phát triển hơn vì thế trong vài năm tới Python cũng sẽ trở nên phổ biến như SQL. Là một ngôn ngữ linh hoạt, Python không những có thể query dữ liệu mà còn có nhiều thư viện hỗ trợ người dùng clean, transform, làm statistics và visualization.

Ngoài ra, nếu bạn mong muốn phát triển sang các vị trí Data Scientist, Data Engineer, Python sẽ là công cụ rất cần thiết khi cung cấp khả năng tự động hóa và kho công cụ khổng lồ đủ để bạn làm việc với APIs, Library, Framework, Data Science, Machine Learning, AI, Web…

Thành thạo Python sẽ mở ra rất nhiều cơ hội sự nghiệp đắt giá. Bằng chứng là những “ông lớn” trên thế giới như Google, Facebook, Youtube, Disney, Nokia và IBM.… đều sử dụng Python. Tại Việt Nam, các công ty lớn như VNPT Software, Tập đoàn FPT, Zalo, Axon, Tiki, Shopee,… cũng luôn có nhu cầu lớn với nhân sự thông thạo Python.

Python

I. Định hướng nghề nghiệp

Python

1. Python Developer

Python Developer được biết đến là lập trình web trong Python đảm nhận việc phân tích, thu thập dữ liệu và thiết kế các khuôn khổ cho các dự án khác nhau. Họ sẽ tạo một web app hay là ứng dụng web có thể chạy được trên Client Browser (trình duyệt web của người dùng).

Mà để có thể tạo được web app thì các developer phải biết cách lập trình server, trong Python có 2 framework nổi tiếng là Django (web framework bậc cao) và Flask.

2. Test Automation

Test Automation là kỹ sư phần mềm mảng kiểm tra tự động, họ kiểm tra code một cách tự động. Khi công ty ra feature (tính năng) mới cho ứng dụng, họ sẽ cần có người kiểm tra xem tính năng mới có ảnh hưởng đến soft code của ứng dụng hay không.

Vì ứng dụng rất lớn mà tính năng gây ra lỗi thì sẽ rất nguy hiểm đến app. Vì thế cần test trước khi tích hợp mainline (tích hợp code) vào trong toàn bộ app.

Ví dụ: Khi facebook ra icon mới thì họ sẽ test thử xem có ảnh hưởng đến nút like, haha hay nút thả tim hay không. Vì thế, Python cung cấp Pytest, Selenium, Robot Framework, unittest dùng để test code một cách tự động.

3. Web Scraping, Web Crawling

Web Scraping hay còn biết đến là khai thác dữ liệu web, là một chương trình viết ra để tải xuống, sắp xếp và cấu trúc dữ liệu đó một cách hợp lý.

Ví dụ: Bạn muốn so sánh các mặt hàng trên sàn thương mại điện tử như Tiki thì bạn sẽ tạo ra một con bot web scraping để lấy dữ liệu và so sánh chúng với nhau.

Bên cạnh Web Scraping, Python còn có Web Crawling hay còn gọi là cào dữ liệu web trên mạng internet. Web Crawling là quá trình thu thập thông tin từ các website trên Internet theo các đường links cho trước.

Ví dụ: Khi bạn nhập từ khoá “Web Crawling là gì” trên Google, Google sẽ cào toàn bộ các web trên Internet xuống, sau đó họ sẽ tìm kiếm keywork mà bạn tìm kiếm qua các web mà họ đã cào.

4. Scripting

Scripting là công việc viết những chương trình nhỏ bằng Python để tự động hoá những công việc, nhiệm vụ hàng ngày mà bạn muốn hệ thống máy tính công ty tự động thực hiện task đó.

Scripting có nhiều nhánh nhỏ như :

System Admin

System Admin là quản lý hệ thống, chăm sóc hệ thống máy tính trong công ty để đảm bảo hệ thống máy tính hoạt động một cách trơn tru.

DevOps

DevOps là kết hợp giữa Develop và Operate là trung gian giữa System Admin và Developer.

Tiếp đến, chúng ta sẽ đến với 3 định hướng nghề nghiệp phổ biến và trending nhất mà bất kỳ một Python Developer nào cũng muốn học.

5. Machine Learning

Machine Learning Engineer sẽ làm nhiệm vụ lấy dữ liệu có sẵn để xây dựng nên một mô hình machine learning nhằm tạo ra một giá trị mới cho doanh nghiệp như phân tích, dự đoán, phân loại.

Các machine model này sẽ được xây dựng dựa trên python packages, chẳng hạn như: TensorFlow, Scikit-Learn, Keras, PyTorch. Những packages này sẽ giúp bạn xây dựng mô hình machine learning một cách nhanh chóng và hiệu quả.

6. Data Science

Data Science hay còn gọi là khoa học dữ liệu, là một lĩnh vực liên quan đến việc sử dụng các công cụ máy tính kết hợp với kiến thức toán học, thống kê để chuyển hoá dữ liệu thành những thông tin quan trọng và có ích cho công ty.

Dưới đây là những thư viện được sử dụng nhiều nhất, mà một data science cần biết NumPy, Pandas, SciPy, Bokeh, Matplotlib, Seaborn.

7. Big Data

Big Data Engineer là một kỹ sư dữ liệu. Nhiệm vụ của họ là xây dựng các cơ sở hạ tầng có sẵn hoặc khuôn khổ phù hợp cần thiết để sẵn sàng cho việc tạo ra các dữ liệu. Họ thường làm việc thiên về kiến trúc của dữ liệu như thu thập, lưu trữ, và quản lý dữ liệu trong nhiều nhiệm vụ khác nhau.

Trong đó, trọng tâm chính của họ là quản lý các cơ sở dữ liệu và công nghệ khai thác dữ liệu lớn hay Big Data. Đáng chú ý nhất có lẽ là việc quản lý và lưu trữ Big Data do đây là dữ liệu có khối lương khổng lồ và tốc độ tăng lên tính tối thiểu theo giây.

Hay nói một cách dễ hiểu, bạn hãy tưởng tượng những công ty như Amazon hay Netflix họ có rất nhiều dữ liệu về sản phẩm, đánh giá review sản phẩm hay review series film.

Họ không thể nào chứa hết được các dữ liệu đó trên cùng một máy tính được, họ phải chứa ở nhiều server khác nhau trên khắp thế giới. Vậy làm thế nào có thể lưu trữ kho dữ liệu lớn như thế. Đó chính là công việc của một Big Data Engineer.

Để trở thành một kỹ sư dữ liệu lớn bạn phải nắm được thế nào là Hadoop và MapReduce.

7 bước học Python: Từ cơ bản đến nâng cao

1. Tìm hiểu các nguyên tắc cơ bản của Python

  • Cài đặt Python
  • Visual Studio Code
  • PyCharm Community Edition
  • Cú pháp và các thành phần cơ bản của Python
  • NumPy, Lambda, JSON, modules…
  • SoloLearn

    2. Bắt đầu xây dựng dự án và thiết lập portfolio

  • Thực hiện các dự án mà bạn có thể thêm vào portfolio trực tuyến của mình trên một trang web như GitHub
  • Tập trung vào những dự án thu hút sự quan tâm và thách thức bạn

    3. Đi sâu hơn vào các chủ đề Python nâng cao

    Những Kiến Thức về Khoa Học Máy Tính Cơ Bản

  • Software design patterns
  • Object-oriented programming
  • Cấu Trúc Dữ Liệu (Data Structures)
  • Thuật Toán (Algorithms)
  • Time Complexity
  • Space Complexity

    4. Tham gia vào cộng đồng trực tuyến và tham dự các buổi gặp mặt

  • PySlackers
  • 5. Tham gia hackathons, thử thách viết mã và đóng ghóp mã nguồn mở

  • Hackathon

    6. Tiếp tục học bằng cách lấy chứng chỉ chuyên môn

  • Certified Associate in Python Programming (PCAP)
  • Professional Certified in Python Programming (PCPP), PCPP2™
  • 7. Bám sát các xu hướng mới nhất của ngành

  • Blogs
  • Social media accounts
  • Podcasts
  • Online communities
  • PyCon
  • PyData
  • EuroPython

Lộ trình học lập trình Python

Python level 1

  • Làm quen với Python
    • Giới thiệu ngôn ngữ lập trình Python
    • Cài đặt Python và các công cụ lập trình
    • Làm quen với các công cụ lập trình
    • Viết chương trình Python đầu tiên
    • Chạy chương trình và tìm hiểu cách hoạt động
    • Biến và kiểu dữ liệu
    • Quy tắc, quy ước đặt tên cho biến
    • Nhập giá trị từ bàn phím
    • In ra màn hình sử dụng print()
    • Các hàm có sẵn
  • Kiểu dữ liệu number và string
    • Các kiểu dữ liệu số
    • Các dạng toán tử
    • Một số hàm số học
    • Chuyển đổi (ép) kiểu dữ liệu
    • Module math, random
    • String và các cú pháp làm việc với string
    • Format với f-string
    • Một số phương thức thường dùng với string
  • Cấu trúc điều khiển
    • Cấu trúc điều kiện if else
    • Toán tử so sánh
    • Toán tử logic
    • Cấu trúc so sánh match case
    • Vòng lặp for
    • Vòng lặp while
    • Điều khiển vòng lặp với break, continue
  • Các kiểu danh sách
    • List
    • Comprehensions
    • Tupple
    • Set
    • Dictionary
  • Function
    • Hàm và cách hoạt động của hàm
    • Cú pháp khai báo và gọi hàm
    • Docstring
    • Phạm vi của biến
    • Tham số, đối số hàm
  • Module vs Package
    • Module
    • Cú pháp import
    • Package
    • Giới thiệu một số builtins module, package
    • Kiểu dữ liệu datetime
    • Builtins module xử lý datetime
    • Các phương thức xử lý, tính toán dữ liệu datetime
    • Quy trình làm việc với file
    • Đọc file
    • Các phương thức xử lý file và thư mục
    • Giới thiệu một số package xử lý datetime khác
    • Kỹ thuật đọc ghi file hiệu quả
    • Xử lý file CSV, JSON
    • Cài đặt package từ PyPi
    • Virtual Environment
  • Lập trình hướng đối tượng
    • Class vs Object
    • Properties vs Methods
    • Hàm tạo init()
    • Data hiding - @property
    • Class variables, class methods
    • Magic methods
    • Tìm hiểu về các tính chất trong lập trình hướng đối tượng
    • Encapsulation - Tính đóng gói
    • Inheritance - Tính kế thừa
    • Polymorphism - Tính đa hình
    • Abstraction - Tính trừu tượng
  • Xử lý ngoại lệ - Exception
    • Các loại lỗi phổ biến
    • Xử lý lỗi với try except
    • User-defined exception - lỗi tự định nghĩa
    • Raise exception
    • Decorators
    • Generators
    • Lambda functions
  • Làm quen framework Django
    • Giới thiệu web framework Django
    • Khởi tạo dự án Django sử dụng Cookiecutter
    • Mô hình ORM trong Django
    • Khởi tạo cơ sở dữ liệu quản lý sách
    • Kiến trúc MVC trong Django
    • Tạo trang web hiển thị danh mục sách
    • Viết unit test sử dụng pytest
    • Quiz
  • Xây dựng website quản lý sách với Django
    • Phân tích yêu cầu xây dựng website bằng UML
    • Thiết kế cơ sở dữ liệu bằng biểu đồ ER
    • Xây dựng models cho website quản lý sách
    • Quản lý models sử dụng Django Admin
    • Khởi tạo dữ liệu cho thư viện sách sử dụng Django Admin
    • Xây dựng trang login, log out
    • Xây dựng trang hiển thị danh mục sách
    • Xây dựng trang thêm mới sách
    • Xây dựng trang chỉnh sửa thông tin sách
    • Quiz
  • Xây dựng API Gateway và Deploy dự án Django
    • API và mô hình Client-Server
    • Sử dụng Django như API Framework
    • Cài đặt và sử dụng Postman để test API
    • Viết API tìm kiếm đầu sách
    • Viết API thêm mới sách
    • Viết API chỉnh sửa thông tin sách
    • Kĩ thuật deploy và phân tải backend Django
    • Deploy Django lên Heroku
    • Quiz
  • Web Automation với Selenium
    • Giới thiệu về Web Automation và Xpath
    • Thao thác tự động trên trang web sử dụng DevTool Chrome
    • Webdriver và thư viện Selenium
    • Thu thập toàn bộ tiêu đề bài báo trên vnepxress.net
    • Browser profile và headless mode
    • Thu thập các bài viết trong group Facebook
    • Quiz
  • Xử lý và phân tích dữ liệu với Numpy và Pandas
    • Tổng quan về phân tích dữ liệu
    • Thư viện pandas và cấu trúc dữ liệu DataFrame
    • Đọc dữ liệu điểm thi đại học từ file csv
    • Truy cập và biến đổi dữ liệu trên DataFrame
    • Tính điểm trung bình của mỗi thí sinh
    • Tìm top 100 thí sinh có tổng điểm cao nhất
    • Data Visualization với Matplotlib
    • Vẽ đồ thị phân bố điểm của các thí sinh thi đại học
    • Quiz
  • Tải dữ liệu, lưu trữ và làm sạch, chuẩn bị dữ liệu
  • Xử lý và Biểu diễn dữ liệu
  • Xử lý và phân tích dữ liệu
  • Phân tích dữ liệu nâng cao với Pandas
  • Giới thiệu các thư viện mô hình hóa trong Python và các ví dụ phân tích dữ liệu
  • Quản trị rủi ro và Danh mục đầu tư
  • Quản trị danh mục đầu tư

Python Level 2

  • OOP Python Overview và Data Analysis Review
  • Machine Learning cơ bản
  • Các mô hình học máy có giám sát
  • Các mô hình học máy không có giám sát
  • Deep Learning Overview
  • Xử lý ngôn ngữ tự nhiên
  • Thị giác máy tính

Làm game 2D với Pygame

  • Tổng quan về game và thư viện Pygame
  • Game loop và các class quan trọng
  • Hiển thị nhân vật và điều khiển di chuyển
  • Xử lý va chạm và tính toán quỹ đạo chuyển động
  • Ping pong game
  • Trí tuệ nhân tạo và Bot trong game
  • Game bắn Zombie
  • Quiz

Xây dựng game Flappy bird hoàn chỉnh với Django và Pygame

  • Quy trình phát triển dự án phần mềm
  • Phân tích thiết kế yêu cầu
  • Xây dựng models cho game
  • Xây dựng các APIs cần trong game
  • Tạo game playground
  • Tạo nhân vật và điều khiển nhân vật
  • Tính năng tính điểm
  • Tính năng bảng xếp hạng
  • Quiz

Power BI

  • Làm quen với Power BI
  • Xử lý dữ liệu cơ bản và ngôn ngữ M
  • Sử dụng bộ lọc và slicers
  • Xử lý dữ liệu bằng Drill-down và Drillthrough
  • Sử dụng map và tạo calculated columns
  • Trích xuất và chia sẻ báo cáo

Thị trường việc làm ngành CNTT năm 2023

7 xu hướng chính trên toàn cầu thúc đẩy ngành CNTT phát triển

  1. Chuyển đổi số
    • Kỹ thuật số
    • Chuyển đổi số
    • Kỹ thuật mô phỏng
    • Ảo hóa
    • Tự động hóa các quy trình…
  2. Artificial Intelligence
    • Học máy (machine learning)
    • Học sâu (deep learning)
    • Nhận thức điện toán (cognitive Computing)
    • Xử lý ngôn ngữ tự nhiên
    • Thị giác máy tính
  3. Internet of Things
    • Nhà máy thông minh (Smart Factory)
    • Tòa nhà thông minh (Smart Building)
    • Sổ khám bệnh điện tử
    • Sổ theo giỏi sức khỏe người bệnh hàng ngày
  4. DevOps và Machine Learning
  5. Tăng trưởng về dịch vụ điện toán đám mây
    • Amazon AWS
    • Microsoft Azure
    • Google Cloud
    • Oracle Cloud
    • IBM Cloud
    • Hotmail, SaleForce, Dropbox
  6. Bảo mật hệ thống
  7. Người máy, ChatGPT, trí tuệ nhân tạo thay thế con người

Các vị trí tuyển dụng IT phổ biến

  1. Lập trình Mobile (Web/ ứng dụng)
  2. Lập trình Back-end
  3. Lập trình Full-stack
  4. Lập trình Front-end
  5. Phát triển phần mềm
  6. Việc làm Data
    • Data Science
    • Data Engineer
    • Data Analytics
    • Big Data
  7. DevOps
    • Python, R
    • Coding & Scripting
    • Git và Jenkins
    • Làm chủ trong Linux hoặc UNIX System
    • Hiểu biết sâu sắc về các best practice của DevOps
  8. Cloud Architect
    • Python, Ruby
    • Nguyên tắc cơ bản lưu trữ dữ liệu
    • Route 53 (DNS)
    • CloudFront (CDN)
    • Virtual Private Cloud (VPC)
    • Các khuôn mẫu và công nghệ cụ thể của Cloud
  9. Blockchain Developer
    • C++, Java, Python, JavaScript và C#
    • Làm việc với các cơ sở mã, kiến thức tốt về thuật toán và cấu trúc dữ liệu.
  10. AI / Machine Learning / Deep Learning

Khóa học lập trình Python

  1. Microsoft - Python for beginners
  2. Tutorialspoint - Python Basic Tutorial
  3. Google’s Python Class
  4. Python 3 Programming Introduction Tutorial
  5. Udemy - Introduction To Python Programming
  6. The Complete Python Bootcamp From Zero to Hero in Python
  7. Python Mega Course: Learn Python in 60 Days, Build 20 Apps
  8. Learn Python Programming Masterclass
  9. Machine Learning, Data Science and Generative AI with Python
  10. Python and Django Full Stack Web Developer Bootcamp
  11. The Data Science MicroDegree: Data Analysis & Visualization
  12. Learn Python Hard Way
  13. Coursera
  14. Codecademy
  15. edX

Sách học lập trình Python cơ bản

  1. Python Programming and Computer Science
  2. Python Crash Course & Project-Based Introduction to Programming
  3. Programming Python: Object-Oriented Programming
  4. Grokking Algorithms
  5. Head-First Python
  6. Learn Python the Hard Way
  7. Learning with Python

Tổng kết

Bên cạnh lập trình thì Python cũng được ứng dụng khá nhiều trong lĩnh vực phân tích dữ liệu. Sở hữu các kiến thức cần thiết và thông thạo công cụ Python sẽ mang đến cho bạn cơ hội tìm kiếm việc làm và phát triển chuyên môn quan trọng.


Tham khảo