Wednesday, 13 April 2011

Tài liệu và hướng dẫn học Python

Updated: 130617
Sau đây là các tài liệu khuyên dùng:

Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.6 (giờ là tháng 2/2017)

Chuẩn bị:
1. biết bật tắt máy
2. biết cài python
3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất.

Căn bản, mới học

1.1 Python PyMI.vn https://pymi.vn/tutorial/
1.2. Python offical tutorial
kết hợp làm bài tập trên HackerRank

hoặc học và làm hết bài tập hết theo sách Learn Python The Hard Way
 
Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ python (để biết Python có những gì, xem ở đây )

1.3 Các tut how-to của python.org https://docs.python.org/3/howto/index.html
1.5 FAQ: https://docs.python.org/3/faq/programming.html

2. Học lại từ đầu một lần nữa sau khi đã hoàn thành [1] với Dive Into Python #người đã từng lập trình các ngôn ngữ khác, hậu newbie

Tham khảo lớp học Python của Google: https://developers.google.com/edu/python/?csw=1
Đọc các câu hỏi / trả lời trên Stackoverflow: http://stackoverflow.com/questions/tagged/python
Học thêm về làm web, deploy tại FullStack Python  
Một website khác tổng hợp các nguồn tài liệu học Python: http://wiht.link/python-guide


 Những điều cần biết/ nên biết/ phải biết
  • Pythonic : pep8
  • python -c 'import this' 
  • Virtualenv
  • Pip
  • Pypi
  • IPython (the better you know it, the easier your life is)
  • pdb / ipdb
  • ...

Tài liệu cho các "chuyên ngành" hẹp
Bên dưới chỉ là những cái tên, cho nó vào google và bạn có thể tìm được các tài liệu liên quan đến nó. Thông thường, document của các trang này rất đầy đủ, nhiều thông tin bổ ích (ví dụ: flask)

Web
Flask
Django
CherryPy
Bottlepy
...

Game
Pygame
...

Tính toán khoa học
Numpy
Scipy
Pandas
scikit-learn 
Theano
...

Scripting - quản trị hệ thống
Chủ yếu sử dụng library có sẵn :  
- subprocess để gọi các câu lệnh CLI
- os, sys để xử lý các thông tin liên quan đến hệ điều hành, hệ thống, path ...
- nagiosplugin để viết plugin NRPE
...



Networking/system
twisted https://twistedmatrix.com/trac/
Scapy 

Reverse engineering
...


Crawler
Scrapy


Async
gevent

Các tài liệu tham khảo có thể tìm ở đây: http://www.familug.org/search/label/Book

IDE/Editor
Pycharm (chỉ free 30 ngày, cực xịn :3) (Win-Linux-Mac)
Emacs
Vim
Sublime Text 3
PyScripter (Windows)

http://stackoverflow.com/questions/81584/what-ide-to-use-for-python

PS:
Học theo kiểu HVN hướng dẫn: (Python 2.7.x )
1. Học các phần trong Learn Python the hard way mà tương ứng với Chương 1 => 8 của http://docs.python.org/2/tutorial/index.html 
2. Làm 20 bài PE. (kết hợp như bài tập khi học các chương ở bước 1) http://projecteuler.net/
2.5 : học nốt chương 9 là điều tuyệt vời, không cần viết được nhưng đọc hiểu là được.
3. Đến đây coi như biết lập trình cơ bản rồi, chọn vũ khí để nhét vào bao đồ xách đi chiến tiếp: (phần này tùy chọn, nhưng phải chọn ít nhất 3 cái)
- SQL (import sqlite3)
- JSON + requests (http://www.python-requests.org/en/latest/)
- Web framework: flask / django (CẢ HAI)
- logging (import logging) / debugger (import pdb)
- multiprocess / gevent

HOẶC đọc hết 1 quyển sách học python nào đó LÀ coi như XONG!

4. Tất nhiên là không phải đợi xong bước 3, bước này kết hợp với quá trình học bước 3 để viết code chuẩn /đẹp / xinh + hiệu quả:
- pep8 + import this  + ipython + pip + virtualenv

5. Đến đây thì tự biết mình phải học gì rồi, bye :D