如何一个月学会使用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
- Linux学习 - 常用和不太常用的实用awk命令
- A User’s Guide for GNU AWK
- An Awk Primer
- Awk - Bruce Barnett
- awk中文指南
- awk程序设计语言
Sed
Bash
- Linux学习-总目录
- Bash概论 - Linux系列教程补充篇
- 用了Docker,妈妈再也不担心我的软件安装了 - 基础篇
- 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操作](http://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ==&mid=2247484250&idx=1&am
p;sn=d4759dc05a55643549646c77318c4f96&chksm=ec0dc6d0db7a4fc64791896914547b5ce818e8bd3cca98f0fb7bf6ebd9029fe6fd08a4
d55255#rd) - 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
Python
- [Python学习极简教程 (一)(我的教程尽快更新到Python3)](http://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ==&mid=2247483866&idx=1&sn=310
341a1c8d348958c304df03dfd06a0&chksm=ec0dc450db7a4d46e369637cd2867b0e56389bf4f2e1d0dce409bba38882e61e5063308a13af#r
d) - 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) (Just fill the fields with any values)
- 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. (Just fill the fields with any values)
- 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 (Just fill the fields with any values)
- 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 (Just fill the fields with any values)
- 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)
- Pandas,让Python像R一样处理数据,但快
- Learn Pandas (版本老了,有新的付费书(Python for data analysis),网上也许有电子版) - Hernan Rojas (0.18.1)
R
- 在R中赞扬下努力工作的你,奖励一份CheetShet
- [R语言学习 - 入门环境Rstudio](http://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ==&mid=2247483882&idx=1&sn=e
16903b4b745a1ef51855be3824149f6&chksm=ec0dc460db7a4d76a70bd4ca2d250f147225252ee963d3e577affaebeeb81dea1ff639d5e9aa
rd)
- [R语言学习 - 热图绘制 (heatmap)](http://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ==&mid=2247483889&idx=1&s
n=9c9970cb120ac1e976713aca558ac9bf&chksm=ec0dc47bdb7a4d6d6441e36055aa075b03d5592862eae01c05761e5972b39a62cf2228b19
787#rd) - [R语言学习 - 基础概念和矩阵操作](http://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ==&mid=2247483891&idx=1&s
n=40daf6435398c4d9a41f332e9bba4915&chksm=ec0dc479db7a4d6fec413bfb90a4660eb035b440d2bbee998114f7af29e3b3338a8adf625
40a#rd) - 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. (Just fill the fields with any values)
- 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) (Just fill the fields with any values)
- 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 (Just fill the fields with any values)
- 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)
- Data Structures Succinctly Part 1, Syncfusion (PDF, Kindle) (Just fill the fields with any values)
- Data Structures Succinctly Part 2, Syncfusion (PDF, Kindle) (Just fill the fields with any values)
- Elementary Algorithms - Larry LIU Xinyu
- Foundations of Computer Science - Al Aho and Jeff Ullman
- Handbook of Graph Drawing and Visualization
- Lectures Notes on Algorithm Analysis and Computational Complexity (Fourth Edition) - Ian Parberry (use form at bottom of license)
- LEDA: A Platform for Combinatorial and Geometric Computing
- Linked List Basics (PDF)
- Linked List Problems (PDF)
- Matters Computational: Ideas, Algorithms, Source Code (PDF)
- Open Data Structures: An Introduction - Pat Morin
- Planning Algorithms
- Problems on Algorithms (Second Edition) - Ian Parberry (use form at bottom of license)
- Purely Functional Data Structures (PDF)
- Sequential and parallel sorting algorithms
- Text Algorithms (PDF)
- The Algorithm Design Manual
- The Art of Computer Programming - Donald Knuth (fascicles, mostly volume 4)
- The Design of Approximation Algorithms (PDF)
- The Great Tree List Recursion Problem (PDF)
- Think Complexity (PDF)
更多的没有列出,免费书地址或点击阅读原文:https://github.com/EbookFoundation/free-programming-books