一个月学会Python的Quora指南和资料放送
歡迎關注天下博客:http://blog.genesino.com/2017/12/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小時的學習和練習來加強你的理解。記住:不要死記句法規(guī)則,每當你需要某個句法并使用時,會自然而然地記住。不過,最開始,多看幾遍也不為過。書讀多遍,其義自見。
如果不想搜索,我們在小學生都學Python了,你還不知道怎么開始提供了不少教程。而且還有自寫的Python系列簡明教程,精簡版。可以作為小冊子讀用。
語法查找的話有Python cookbook,這里有中文翻譯版本http://python3-cookbook.readthedocs.io/zh_CN/latest/preface.html (書中的所有源代碼也可在此書的前言頁面獲取)。
第2、3、3.5 周
選擇一個課題并試著完成它。
有以下建議:
不要想的太多,選擇一個基礎的項目,或者google搜索“beginner python projects” (新手python課題)。Python生信練習題。
不必記住句法規(guī)則,當遇到困難時上網搜索便可得到提示。
使用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)優(yōu)先處理重要的編程部分。
恭喜你,對于只是通過讀tutorial學習python卻收獲甚少的人來說,你已經超越他們了,或許比1、2年級的CS本課程還要領先。
之后可以通過學習數據庫的工作原理以及python構架來提高自己的手法。
學習的過程大部分是程序寫作和調試,想不想有個后盾呢?
http://www.ehbio.com/Training
回復中推薦的網絡資源比較多,這就不列出來了。因為大部分我也沒看過,適不適合初學也不好評價。
今天收到Coursera的郵件,列出了2017年最高評分的系列課程,計算機系列有三個,都跟Python有關:Fundamentals of Computing (編程語言使用Python,前兩部分都是關于Python交互式編程), Algorithms (Python作為一個必修語言), Python for Everybody, 有時間的可以去看看 (https://www.coursera.org)。
搜索資料的過程中,不小心發(fā)現(xiàn)了這么一個神奇的Github庫,里面包含了很多免費,大部分優(yōu)質的書籍,部分相關的列舉如下 (可點擊的都是生信寶典之前發(fā)過的文章),讀過的付一點心得體會。可直接訪問最后的網址跳到原網頁,或點擊閱讀原文,每個鏈接都可點。
Awk
- Linux學習 - 常用和不太常用的實用awk命令
- A User’s Guide for GNU AWK
- An Awk Primer
- Awk - Bruce Barnett
- awk中文指南
- awk程序設計語言
Sed
- Linux學習 - SED操作,awk的姊妹篇
- Sed - An Introduction and Tutorial
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
- Octave Programming (Andrew Ng的機器學習課使用的語言,開源版MatLab,學一點當個樂子)
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語言學習 - 入門環(huán)境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》中文版)
- 統(tǒng)計學與 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
總結
以上是生活随笔為你收集整理的一个月学会Python的Quora指南和资料放送的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Blizzard Transitions
- 下一篇: fcpx插件:Chinese New Y