一个月学会Python的Quora指南和资料放送
如何一个月学会使用Python
文章翻译自Quora上的回帖,略有改动。原文链接:https://www.quora.com/What-are-the-best-tips-for-learning-Python-within-one-month
第1周
谷歌搜索“Python programming fundamentals” (Python编程基础),选择一个较好的网站,并针对其中的教程部分进行阅读和练习。这需要一周每天8小时的学习和练习来加强你的理解。记住:不要死记句法规则,每当你需要某个句法并使用时,会自然而然地记住。不过,最开始,多看几遍也不为过。书读多遍,其义自见。
如果不想搜索,我们在小学生都学Python了,你还不知道怎么开始提供了不少教程。而且还有自写的Python系列简明教程,精简版。可以作为小册子读用。
语法查找的话有Python cookbook,这里有中文翻译版本http://python3-cookbook.readthedocs.io/zh_CN/latest/preface.html (书中的所有源代码也可在此书的前言页面获取)。
第2、3、3.5 周
选择一个课题并试着完成它。
有以下建议:
不要想的太多,选择一个基础的项目,或者google搜索“beginner python projects” (新手python课题)。Python生信练习题。
不必记住句法规则,当遇到困难时上网搜索便可得到提示。
使用IDE (Integrated Development Environment) (可以更简单的debug以及运行程序)。如PyCharm、Jupyter notebook。
将项目拆分为几个小的部分。
例如如果你要做一个计算器,那么:
(1)先设想界面,在深入到各个按钮。
(2)将加减乘除等功能放入到相应按钮中。
可以借助Stackoverflow等网站。请在理解内容的基础上进行复制粘贴。
这个过程会比较艰辛,需要有毅力来强迫自己解决遇到的问题。
当遇到难题时:
(1)使用搜索引擎,注意输入更明确的搜索字段。
(2)如果不没能搜索出答案,可以把问题放到论坛上去。如何提问
编程时适当休息,转换心情。
花时间学一下版本控制 (version control) 的基础,推荐git这个网站。
慢慢学习如何debug。个人认为最好的debug,是打印出程序运行的关键过程,查看每一步是否符合预期。
在编写程序前,确保自己已经有了实际理论解决方案。可以事先笔头画出问题的解决方案流程。
编写完程序后,试着花几个小时来测试并从中改进学习。在一个小问题上,不断拓展,就可以深入。
当一个难题解决不了时,不要气馁。先去做别的部分,再返回来重新思考。
第3.5/4 周
首先保证程序没有运行BUG,然后再看有没有结果BUG。
如果你还没有完成此项目:
(1)给自己更多的时间。
(2)优先处理重要的编程部分。
恭喜你,对于只是通过读tutorial学习python却收获甚少的人来说,你已经超越他们了,或许比1、2年级的CS本课程还要领先。
之后可以通过学习数据库的工作原理以及python构架来提高自己的手法。
学习的过程大部分是程序写作和调试,想不想有个后盾呢?
回复中推荐的网络资源比较多,这就不列出来了。因为大部分我也没看过,适不适合初学也不好评价。
今天收到Coursera的邮件,列出了2017年最高评分的系列课程,计算机系列有三个,都跟Python有关:Fundamentals of Computing (编程语言使用Python,前两部分都是关于Python交互式编程), Algorithms (Python作为一个必修语言), Python for Everybody, 有时间的可以去看看 (https://www.coursera.org)。
搜索资料的过程中,不小心发现了这么一个神奇的Github库,里面包含了很多免费,大部分优质的书籍,部分相关的列举如下 (可点击的都是生信宝典之前发过的文章,夹杂私货),读过的付一点心得体会。可直接访问最后的网址跳到原网页,或点击阅读原文,每个链接都可点。
Awk
A User’s Guide for GNU AWK
An Awk Primer
Awk - Bruce Barnett
awk中文指南
awk程序设计语言
Sed
Sed - An Introduction and Tutorial
Bash
Docker —— 从入门到实践
鸟哥的 Linux 私房菜 基础学习篇 (学的人应该比较多,但没读过)
鸟哥的 Linux 私房菜 服务器架设篇
shell-book
Shell 编程基础
Shell 脚本编程30分钟入门
The Linux Command Line 中文版
Advanced Bash-Scripting Guide (很不错的书) - M. Cooper
Bash Guide for Beginners - M. Garrels
BASH Programming
Bash Reference Manual
Vim
不用Linux也可以的强大文本处理方法 (Vim操作)
Vim Manual(中文版)
大家來學 VIM
A Byte of Vim
Learn Vim Progressively
Learn Vimscript the Hard Way
Use Vim Like A Pro - Tim Ottinger
Vi Improved — Vim - Steve Oualline (PDF)
Vim Recipes (PDF)
Vim Regular Expressions 101
C
个人认为最好的还是The C Programming Language,经典中的经典。
A Tutorial on Pointers and Arrays in C - Ted Jensen (PDF, Zipped HTML)
Beej’s Guide to C Programming - B. Hall
Beej’s Guide to Network Programming - Using Internet Sockets - B. Hall
Build Your Own Lisp
C for Python Programmers - Carl Burch (Python用户可读,比较着学,更有利于提高)
C Programming - Wikibooks
C Programming Boot Camp - Paul Gribble
Deep C
Essential C (PDF)
Everything you need to know about pointers in C - Peter Hosey
Functional C (1997) - Pieter H. Hartel, Henk Muller (PDF)
Learn to Code With C - The MagPi Essentials (PDF)
Modern C (PDF)
Markdown
应该学习的标记语言,写文档,很方便。
Learn Markdown - Sammy P., Aaron O. (PDF) (EPUB) (MOBI)
Markdown 快速入门
Markdown 简明教程
Markdown 语法说明
献给写作者的 Markdown 新手指南
Octave
Octave Programming (Andrew Ng的机器学习课使用的语言,开源版MatLab,学一点当个乐子)
Python
Python学习极简教程 (一)(我的教程尽快更新到Python3)
Django 1.8 中文文档
Django book 2.0
Python 3 文档(简体中文) 3.2.2 documentation
Python Cookbook第三版 (作者:David Beazley, Brian K.Jones 翻译:熊能)
Python 中文学习大本营
Python之旅 (作者:Ethan)
Python教程 - 廖雪峰的官方网站
像计算机科学家一样思考Python (Downey教授的Think系列书都是不错的,讲解简单清晰) (中英对照版 作者:Allen B. Downey 翻译:大胖哥)
深入 Python 3
笨办法学 Python
简明 Python 教程 (很方便的小册子) (作者:Swaroop C H 译者:沈洁元、漠伦)
20 Python Libraries You Aren’t Using (But Should)
A Beginner’s Python Tutorial
A Byte of Python (3.x) (HTML, PDF, EPUB, Mobi)
A Guide to Python’s Magic Methods - Rafe Kettler
A Whirlwind Tour of Python - Jake VanderPlas (PDF) (EPUB, MOBI)
Automate the Boring Stuff - Al Sweigart
Biopython (用到了查查就好) (PDF)
Build applications in Python the antitextbook (3.x) (HTML, PDF, EPUB, Mobi)
Building Machine Learning Systems with Python - Willi Richert & Luis Pedro Coelho, Packt.
Building Skills in Object-Oriented Design (Python) (PDF) (2.1.1)
Building Skills in Python (PDF) (2.6)
Code Like a Pythonista: Idiomatic Python
CodeCademy Python
Composing Programs (3.x)
Data Structures and Algorithms in Python - B. R. Preiss (PDF)
Dive into Python 3 - Mark Pilgrim (3.0)
From Python to NumPy
Full Stack Python
Functional Programming in Python
Fundamentals of Python Programming - Richard L. Halterman (PDF) (3.2)
Google’s Python Style Guide
Hacking Secret Cyphers with Python - Al Sweigart (3.3)
Hadoop with Python
High Performance Python (PDF)
Hitchhiker’s Guide to Python! (2.6)
How to Make Mistakes in Python - Mike Pirnat (PDF) (1st edition)
How to Think Like a Computer Scientist: Learning with Python, Interactive Edition (推荐) (3.2)
Think Python (Think系列) - Allen B. Downey (2.x & 3.0)
Intermediate Python - Muhammad Yasoob Ullah Khalid (1st edition)
Introduction to Programming with Python (3.3)
Introduction to Python - Kracekumar (2.7.3)
Learn Python, Break Python
Learn Python in Y minutes
Learn Python The Hard Way (2.5 - 2.6)
Learn to Program Using Python - Cody Jackson (PDF)
Learning Python - Fabrizio Romano, Packt. (Just fill the fields with any values)
Lectures on scientific computing with python - J.R. Johansson (2.7)
Modeling Creativity: Case Studies in Python - Tom D. De Smedt (PDF)
Natural Language Processing with Python (3.x)
Non-Programmer’s Tutorial for Python 3 (3.3)
Python Cookbook - David Beazley
Python Data Science Handbook - Jake VanderPlas (HTML, Jupyter Notebooks)
Python for Everybody Exploring Data Using Python 3 - Charles Severance (PDF, EPUB, HTML)
Python for you and me (3.x)
Snake Wrangling For Kids (3.x)
Suporting Python 3: An In-Depth Guide (2.6 - 2.x & 3.1 - 3.x)
The Standard Python Library - Fredrik Lundh
Think Complexity - Allen B. Downey (2nd Edition) (PDF, HTML)
Learn Pandas (版本老了,有新的付费书(Python for data analysis),网上也许有电子版) - Hernan Rojas (0.18.1)
R
153分钟学会 R (PDF)
R 导论 (《An Introduction to R》中文版) (PDF)
用 R 构建 Shiny 应用程序 (《Building ‘Shiny’ Applications with R》中文版)
统计学与 R 读书笔记 (PDF)
Advanced R Programming (大神之作) - Hadley Wickham
An Introduction to Statistical Learning with Applications in R - Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani (PDF)
Cookbook for R - Winston Chang
Introduction to Probability and Statistics Using R - G. Jay Kerns (PDF)
Learning Statistics with R - Daniel Navarro
Machine Learning with R - Brett Lantz, Packt.
ModernDive - Chester Ismay and Albert Y. Kim
Practical Regression and Anova using R - Julian J. Faraway (PDF)
R for Data Science - Garrett Grolemund and Hadley Wickham
R Language for Programmers - John D. Cook
R Packages - Hadley Wickham
R Practicals (PDF)
R Programming
R Programming for Data Science (Needs valid email)
R Succinctly, Syncfusion (PDF, Kindle)
The caret Package - Max Kuhn
The R Inferno (短小精悍) - Patrick Burns (PDF)
The R Language
The R Manuals
Tidy Text Mining with R - Julia Silge and David Robinson
Regular Expressions
Learn Regex The Hard Way - Zed. A. Shaw
RexEgg
The 30 Minute Regex Tutorial - Jim Hollenhorst
The Bastards Book of Regular Expressions: Finding Patterns in Everyday Text - Dan Nguyen
正则表达式-菜鸟教程
正则表达式30分钟入门教程
Cloud Computing
Monitoring Modern Infrastructure (account required)
Multi-tenant Applications for the Cloud, 3rd Edition
OpenStack Operations Guide
Datamining
A Programmer’s Guide to Data Mining - Ron Zacharski (Draft)
Data Jujitsu: The Art of Turning Data into Product
Data Mining Algorithms In R
Internet Advertising: An Interplay among Advertisers, Online Publishers, Ad Exchanges and Web Users (PDF)
Introduction to Data Science - Jeffrey Stanton
Mining of Massive Datasets
School of Data Handbook
Theory and Applications for Advanced Text Mining
Machine Learning
一部分,还有其他比较适合初级学习的,如集体智慧编程 (Programming Collective Intelligence)
A Brief Introduction to Neural Networks
A Course in Machine Learning (PDF)
A First Encounter with Machine Learning (PDF)
An Introduction to Statistical Learning - Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani
Bayesian Reasoning and Machine Learning
Deep Learning - Ian Goodfellow, Yoshua Bengio and Aaron Courville
Gaussian Processes for Machine Learning
Information Theory, Inference, and Learning Algorithms
Introduction to Machine Learning - Amnon Shashua
Learn Tensorflow - Jupyter Notebooks
Learning Deep Architectures for AI (PDF)
Machine Learning
Machine Learning, Neural and Statistical Classification
Neural Networks and Deep Learning
Probabilistic Models in the Study of Language (Draft, with R code)
Reinforcement Learning: An Introduction
The Elements of Statistical Learning - Trevor Hastie, Robert Tibshirani, and Jerome Friedman
The LION Way: Machine Learning plus Intelligent Optimization
The Python Game Book
Competitive Programming
Competitive Programmer’s Handbook - Antti Laaksonen (PDF)
Competitive Programming, 1st Edition (PDF)
Algorithms & Data Structures
算法部分还是了解都有什么,找一下比较有意思的帖子看起,刘未鹏的http://mindhacks.cn/是很好的入口,很好的思维,也推荐了很多心理、逻辑的书。
A Field Guide To Genetic Programming
Algorithmic Graph Theory
Algorithms, 4th Edition - Robert Sedgewick and Kevin Wayne
Algorithms and Automatic Computing Machines (1963) - B. A. Trakhtenbrot
Algorithms and Complexity (PDF)
Algorithms Course Materials - Jeff Erickson
Analysis and Design of Algorithms - Sandeep Sen, IIT Delhi
Animated Algorithm and Data Structure Visualization (Resource)
Annotated Algorithms in Python: Applications in Physics, Biology, and Finance - Massimo di Pierro
Binary Trees (PDF)
Clever Algorithms
CS Unplugged: Computer Science without a computer
Data Structures - Prof. Subhashis Banerjee, IIT Delhi
Data Structures (Into Java) - Paul N. Hilfinger (PDF)
Data Structures and Algorithms: Annotated Reference with Examples - G. Barnett and L. Del Tongo (PDF)
Think Complexity (PDF)
更多的没有列出,免费书地址或点击阅读原文:https://github.com/EbookFoundation/free-programming-books