Originality is not easy. , Don't copy , Offenders will investigate !
Hello everyone , I'm fish skin , Liver for about ten days Python The learning route finally came ~
Same as before , Before looking at the route , I suggest you learn a few questions through the following video :
Python Why is it so hot ?
Why are they all talking about learning Python No job found ?Python Is it really fragrant ?
I have to learn Python Well ?
How to learn quickly ?
Video address :https://www.bilibili.com/video/BV133411C7u5/
Click at the end of the article to read the original text
Python Why is it so hot ?
There are many reasons , List a few points :
Grammar is easy to learn , Other languages 5 Something that can only be realized by lines of code ,Python One line fix ! You can write a lot less code , So many students take Python Brush algorithm questions ( But be careful to understand the algorithm itself ).
The class library is rich in Ecology , What you want to do is basically ready-made code , Just use it directly , Very convenient !
Free and open source , Interested in 、 Capable students can study the source code by themselves .
Other features , For example, cross platform 、 Expandable etc .
As a data science 、 The preferred language of artificial intelligence , Stepped on the tuyere of the times .
So ,Python Pushed to the altar , Even in 2021 year 10 In the programming languages list of ,Python On the first !
But it's such a door “ The eternal God ” Programming language , But it was said on the Internet : To learn the Python No job found !
Ah , Why? ?
Why? Python Not fit for a job ?
On the one hand is , Most businesses , No need Python To develop applications .
because Python The running speed of is too slow , Don't talk to the bottom C++ Than the ,Java Can dump it for a few blocks ! And this is related to the design and implementation of the language itself , So even if you come up with any technology to optimize its performance , There is also a bottleneck after all , The best language in the world PHP Is the same .
And for businesses , performance It will directly affect the user experience and machine cost , Especially in this information explosion 、 We are all in the era of pursuing performance ,Python Its position in the field of application development is very embarrassing , And the development post happens to be a very high proportion of programmers .
On the other hand , although Python There are many application scenarios for 、 There are also many related positions , What is it again? AI、 The mainstream language of data science is , The future is beautiful . however , The difficulty of these cutting-edge technologies is not Python The code of the language itself , It's algorithms and ideas .Python Just a switch 、 It's just a tool to express your thoughts . So the threshold of these frontier positions is much higher than your entry Python、 Or listen to the training institutions draw cakes much higher , Algorithm post 、 The product posts of big factories are really immortal fights , And the majority of graduate students .
Learning goals
In this case , Then do I want to learn Python Well ?
In my submission : Must learn !
however , Be sure to think about your learning goals first , Different goals , Yes Python Their learning attitude and time invested are also different .
If you want to find a job in a development position , Like the above , It is not recommended that Python As your main language , But use it as your secondary weapon . Just learn Python Basics , You can write Python The script comes from automated office 、 Improve work efficiency 、 Make some gadgets , High cost performance .
If programming languages are tools , that Python Is the perfect interpretation of this sentence . One more artifact , Who doesn't love ?
If you want to find a job in another position , Such as operation and maintenance 、 test 、 Data analysis 、 The product manager 、 big data 、 Reptiles 、 Artificial intelligence 、 The image processing 、 Multimedia processing 、 Algorithm Research , Of course , Just if you target these positions , In addition to playing well Python Outside the foundation , It is more important to understand the thinking of the corresponding field 、 Methods and practices , Instead of just leading the library to transfer packages .
If you're a beginner or curious about programming , I also suggest you learn Python, interesting 、 Can learn 、 Can cultivate interest , These are very important for beginners , After being interested , Learning another language will be like a duck to water .
Study suggest
For beginners and non Python The practitioners of the post , Just put Python As a tool , Understand the basic syntax and common class libraries , Need to write Python Script time , Can use search engines and documents to write ( Or copy ) Just code . As long as you have learned other programming languages , Get started Python It's really easy ,3 - 7 You can learn it in a few days .
It is suggested to write more small examples , such as Python Process forms 、Python Handle PDF etc. , feel Python The power of the class library is over ~
The learning roadmap
Folded part , Still old , official account 【 Programmer fish skin 】 reply 【python】 Get mind maps :
Learning route
Basics
Python install
development tool
PyCharm
Sublime
VS Code
Variable
Defining variables
keyword
Naming rules
Basic data type
Type conversion
Operators and Expressions
Process control
Conditional branch
loop
Basic data structure
character string
list
Tuples
aggregate
Dictionaries
function
Definition
Parameter passing
Scope
lambda expression
Common built-in functions
object-oriented programming
Classes and objects
The three major characteristics
encapsulation
self
attribute
Method
Class method
Example method
Static methods
Access control
Inherit
Single inheritance
Multiple inheritance
polymorphic
Method rewriting
Operator overloading
Decorator
Reflection
modular
The import module
Common modules
Document processing
Date time
package
Import package
Build package
exception handling
Capture exception
try … else … finally structure
Custom exception
File operations
Document opening and closing
File read and write
Advanced
Function advanced
Closure
Anonymous functions
Generator function
Decorator
Higher order function
Regular expressions
Database programming
Database foundation
SQL To write
Inquire about
polymerization
grouping
relation
Sort
Business
Database design
Database tuning
Concurrent programming
Synchronous and asynchronous
Blocking and non-blocking
Multithreading
Multi process
coroutines
Concurrent class library
Network programming
Network foundation ( Seven layer model 、IP)
Network protocol (TCP、UDP、HTTP、HTTPS、FTP、DNS)
WebSocket
web Development
Django frame
Installation and Demo
MVT layered
Model
Database foundation
ORM
Single table query
Multi-table query
Aggregate query
View
Templates
Template syntax
Static resources
route
Django Admin Management tools
test
conversation
authentication
Upload files
middleware
Advanced features
Pagination
cache
Local cache
Redis Distributed cache
serialize
The signal
celery Task scheduling
Restful API Development
Concept
Data serialization
Django Rest Framework
Deploy
Project practice
Front end Foundation
HTML
CSS
JavaScript
Flask frame
Reptiles
Concept
Legitimacy
Data capture
Common network protocols (http / https) Concept
request
Request header
Request parameters
Request type
Respond to
Response head
Response parameter
requests modular
urllib modular
Simulated landing
static state / Dynamic website crawling
Headless browser
selenium
puppeteer
Data analysis
Commonly used labels
BeautifulSoup
Regular expressions
xpath
Export data
file
Excel
CSV
database
MongoDB
MySQL
middleware
Redis
Scrapy frame
The core concept
Command line tools
Spiders
Selectors
Items
Item Loaders
The Conduit
Scrapy Shell
Link Extractors
Scheduler
Distributed crawlers
Deploy
Concurrent asynchronous crawler
aioHttp
asyncio
senior
IP agent
Verification code recognition
APP Grab
Incremental reptiles
Project practice
The crawler
Request header limit
Verification Code
Black and white list
Prohibition IP
Data encryption
Data confusion
behavior analysis
Automatic operation and maintenance
Linux Environmental Science
Shell scripting
Script management
Script release
Python Yun Weiku
Common operation and maintenance tools
Data analysis ( Data Science )
Environment building
Anaconda
Conda
Miniconda
Jupyter Notebook
Common data structure
Common class library
Numpy
Array
Indexes
section
Multidimensional arrays
function
Pandas
Series
DataFrame
Indexes
alignment
function
Statistics
Data processing
Data cleaning
Hierarchical index
Data connection
Data merging
Group aggregation
Axial rotation
Data visualization
matplotlib
seaborn
pyechart
Algorithm ( Artificial intelligence )
Fish skin has little contact with artificial intelligence , Combined with the data of many great gods on the Internet , It also has certain reference significance .
Mathematical basis
Advanced mathematics
linear algebra
probability theory
Statistical analysis
machine learning
Feature Engineering
Model
Model classification
Model to evaluate
model training
Model tuning
Commonly used algorithm
Supervised and unsupervised learning
Return to ( Supervised )
Linear regression
Decision tree
The integration algorithm
classification ( Supervised )
Logical regression
Decision tree
Support vector machine
The integration algorithm
Bayesian algorithm
clustering ( Unsupervised )
k-means
dbscan
Dimension reduction
Principal component analysis
Linear discriminant analysis
Advanced
GBDT Lifting algorithm
lightgbm
EM Algorithm
The hidden Markov model
multifactorial model
Commonly used libraries
Scikit-learn
Quantitative trading strategy
Deep learning
Data preprocessing
Algorithm
neural network
Convolutional neural networks
Recursive neural network
Against generative networks
Sequential network model
Commonly used algorithm
Framework and platform
Tenserflow2
Pytorch
Keras
Caffe
natural language processing
The image processing
Computer vision
Common class library
Python Can be widely used , Largely because of its rich class library , Is the code written and encapsulated by others in advance . Basically, you can find the corresponding class library for everything you want to do , Just look at the document directly , Greatly improve development efficiency !
Open source project awesome-python-cn( Address :https://github.com/jobbole/awesome-python-cn) and awesome-python( Address :https://github.com/vinta/awesome-python) I've sorted out all directions for you Python Class library , A lot of them . On this basis, some relatively high-quality libraries were selected , Share with you .
Universal
Date processing
delorean: Date processing library
pendulum: Date time operation Library
dateutil: To the standard datetime Powerful expansion of modules
Terminal optimization
IPython: Feature rich interactive Python Parser
Jupyter Notebook: Web based applications for interactive computing
Prettytable: Produce beautiful ASCII A table of formats
Colorama: Let the terminal have color
bashplotlib: Basic drawing in terminal
emoji: Support in Python The terminal outputs an expression
Ipyvolume: stay Jupyter notebook Medium visualization 3d Volume and Glyph
Text processing
FlashText: Efficient text search and replacement Library
furl:url Processing library
pypinyin: Chinese pinyin conversion tool
simplejson:JSON Ed / decoder
JMESPath:JSON Query syntax Library
other
Pipenv:Python A new generation of package management tools officially recommended
threading: Its own thread library
multiprocessing: Built in multithreading Library
Chardet: Character encoding detector
logging: Log function
PySnooper:Python Debugging tools
sphinx:Python Document generator
pyttsx3: Text to speech library
PyWin32: Provide and windows Interaction
shortuuid: Generating uniqueness uuid The library of
more-itertools: Support iterative operation objects
cryptography: Cryptography toolkit
Network request & analysis
requests:HTTP Request Library
aiohttp: asynchronous HTTP The network library
scrapy: Distributed web page collection framework
pyspider: A powerful crawler system
BeautifulSoup: from HTML or XML A library that extracts data from a file
you-get: Web Video Downloader
wget: Web file download
musicdl:Python Music Downloader
Document processing
openpyxl:Excel Read and write library
tablib: Process tabular data
csvkit: For conversion and operation CSV Tools for
XlsxWriter: operation Excel
python-docx: operation office word file
PyPDF2: operation PDF file
pdfminer: from PDF A tool for extracting information from documents
xhtml2pdf:HTML turn PDF Tools
WeasyPrint: Visual Web pages , And supports exporting to PDF
html2text: take HTML Convert to Markdown file
xmltodict: Like dealing with JSON Handle it the same way XML
moviepy: Script based video editing module
eyeD3: Tools for operating audio files
pyAudioAnalysis: Audio feature extraction and analysis
Interface development
pyQT: Cross platform user interface development framework
Turtle: Interactive painting Library
pyglet: Cross platform interface and multimedia framework
wxPython:Python User interface development tools
Pygame: A set of... Used to develop games Python modular
Manim:Python Math animation engine
progressbar: A scroll bar function library
progress: Progress bar output
tqdm: Fast 、 Extensible progress bar
test
nose: The test framework
faker: Generate false data
PyAutoGUI: Cross platform GUI Automatic test module
coverage: Code coverage measurement
sqlmap: Automatically SQL Injection and penetration testing tools
Web Development
Django:Python The most popular web frame
Django REST framework: Used to develop web api Framework
FastAPI: Fast build web Applications
flask:Python Micro frame
Twisted: An event driven network engine
Operation and maintenance
psutil: Cross platform process and system tool modules
supervisor: Process control management system
sh: Give Way Python Support shell Script
dnspython:DNS tool kit
scapy: Packet processing library
pexpect: Control the interactive program in the pseudo terminal
paramiko: Remote connection service
Ansible:IT Automation platform
SaltStack: Infrastructure automation and management systems
watchdog: Manage file system events API and shell Tools
The image processing & Computer vision
Pillow: Image processing library
kornia: Computer vision library
Opencv: Open source computer vision library
Mahotas: Computer vision and image processing library
Luminoth: Deep learning tool set of computer vision
Data analysis & Data Science
NumPy: Numerical calculation toolkit
Pandas: Mainstream data analysis tools
pyecharts: Based on Baidu Echarts Data visualization Library of
Dash: Fast build Web Data visualization applications
matplotlib:Python 2D Drawing library
Seaborn: Use Matplotlib Perform statistical data visualization
python-recsys: Implement the library of the recommendation system
vaex: High speed big data processing library
SciPy: Algorithm and mathematical tool library
blaze:NumPy and Pandas Big data interface
statsmodels: Statistical modeling and Econometrics
Artificial intelligence
Tensorflow: Google's most popular open source deep learning framework
keras: Deep learning encapsulation Library , Fast start neural network
Pytorch: With tensor and dynamic neural network , And have a strong GPU Deep learning framework for accelerating ability
Caffe2: A light weight 、 modularization 、 Extensible deep learning framework
scikit-learn: be based on SciPy Building machine learning Python modular
PyMC: Markov chain Monte Carlo sampling tool
mmdetection: Deep learning target detection toolbox
imbalanced-learn: Unbalanced learning toolkit
XGBoost: Distributed gradient enhancement library
Gym: A toolkit for reinforcement learning algorithms
natural language processing
NLTK: Natural language processing toolkit
Gensim: Topic modeling library
Pattern: Natural language processing tools
fuzzywuzzy: Used for string fuzzy matching 、 Token matching, etc
TextBlob: Provide consistent... For common natural language processing tasks API
PyFlux: Time series processing library
jieba: Chinese word segmentation tools
The outline
( Outline )
Position
Tencent school recruitment Python Related positions :https://join.qq.com/post.html?keyword=python
Position salary query :OfferShow Applet
O & M Engineer
Web Development Engineer ( Back end 、 The whole stack )
Test Engineer
Data Analyst
The product manager
Algorithm engineer
machine learning
Computer vision
NLP
Multimedia processing
Big Data Engineer
Big data development
data mining
Web crawler Engineer
Technology researcher
resources
video
Zero basis
Qianfeng education 700 Set zero basis Python course :https://www.bilibili.com/video/BV1R7411F7JV( Very comprehensive , Basics 、web Development 、 Reptiles 、 Data analysis 、AI The basics are all talked about , There are plenty of examples )
Black horse programmer 600 Set Python course :https://www.bilibili.com/video/BV1ex411x7Em( More comprehensive , be based on Linux Environmental learning , With Python Basics + Focus on object orientation , It also includes some game development )
Python Full stack development tutorial :https://www.bilibili.com/video/BV1wD4y1o7AS( It's pure Python Basic course , Many cases , For a quick start )
Little turtle -《 Basic learning Python》 The latest version :https://www.bilibili.com/video/av52080698( unfortunately , It's half updated and gone ..)
【 MIT - Chinese subtitle version 】Python And the open course of introduction to Computer Science :https://www.bilibili.com/video/BV1ty4y1x7xP( It is suitable for students with good foreign languages to watch , Feel the foreign teaching atmosphere )
The official account of fish skin 【 Programmer fish skin 】 The background to reply Python, There is also a set of video lessons
other
Web Development
Python Django Project practice course :https://www.bilibili.com/video/BV1pq4y1W7a1
Python + Practical development of wechat applet :https://www.bilibili.com/video/BV1Xy4y1s792( Quite complete , Used backstage Django frame )
Data structure and algorithm
Python A complete set of data structures and algorithms 100 section :https://www.bilibili.com/video/BV1uA411N7c5
【 Peking University, 】 Data structure and algorithm Python edition ( Full version ):https://www.bilibili.com/video/BV1VC4y1x7uv
Reptiles
2020 year Python Reptile full course ( What to do after learning ):https://www.bilibili.com/video/BV1Yh411o7Sz
Python Fundamentals of crawler programming 5 It's a quick success :https://www.bilibili.com/video/BV12E411A7ZQ( A short introduction to reptile combat )
Data analysis
Self study data analysis course :https://www.bilibili.com/video/BV1ZM4y1u7uF( Very pure data analysis + Visualization course , Suitable for office party to get started quickly )
Complete data analysis course :https://www.bilibili.com/video/BV1vV411p7D6( Data analysis + machine learning , It's comprehensive )
Python Introduction to data analysis video collection :https://shimowendang.com/docs/36pykCPH6XCjKJcv/read
other
Finish the face recognition project in one day (python+opencv):https://www.bilibili.com/video/BV1Lq4y1Z7dm
Python Office automation :https://www.bilibili.com/video/BV1uv411W7Fi( Mainly dealing with Excel)
Books
《Python Programming : From introduction to practice 》:https://www.code-nav.cn/rd/?rid=cbddf0af6064484f002658102cdbba17
Don't worry about it Python course :https://mofanpy.com/( Including the foundation 、 Data processing 、 Machine learning, etc , Part of the content has video )
Django The official tutorial :https://docs.djangoproject.com/zh-hans/3.2/intro/tutorial01/
Python Exercise books :https://github.com/Yixiaohan/show-me-the-code( some Python Exercise questions )
The end of the
The above is the fish skin, which has been boiled for a few days and nights 、 Combined with personal experience 、 And refer to a large number of online videos 、 The learning route summarized by articles and comments , It's really not easy , If you are satisfied, please be sure to order Fabulous Under the support .
I'm fish skin , Programmers who continue to share programming dry goods , Welcome to your attention , See you next time ~