You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First of all, don't be afraid, read [Plateau of Productivity]. More importantly, be patient, a good read from Peter Norvig, titled [Teach Yourself Programming in 10 years].
4
+
3
5
## Motivation
4
6
5
-
[Language war] between Python and R is one of the most frequently discussed topics among the Data Scientist, and there doesn't seem to be a consensus on which one is better. Personally, I used both R and Python, but for very different purposes. I mainly use tidyverse packages (dplyr + ggplot2) to carry out data analyses and data visualization, while using Python for web scraping, task automations, and building [basic web applications in Flask].
7
+
[Language war] between Python and R is one of the most frequently discussed topics among the Data Scientists, and there doesn't seem to be a consensus on which one is better. Personally, I used both R and Python, but for very different purposes. I mainly use tidyverse packages (dplyr + ggplot2) to carry out data analyses and data visualization, while using Python for web scraping, task automations, and building [basic web applications in Flask].
6
8
7
9
By now, I have a pretty good working knowledge of the R language. There are obviously many more things that I can learn - in particular building and maintaining R packages as well as more [advanced R materials]. Yet, the appeal of Python has always been there for me for a few reasons:
8
10
@@ -40,19 +42,20 @@ I am a huge believer in learning by doing, and there are a lot of opportunities
40
42
41
43
***Outcome**: I want to move my data stack to Python completely. This means my day-to-day data analysis work will be done in Python instead of R, make my code as pythonic as possible. Become a Contributor to Airpy / tools, and take on one bigger Python project (ML, Data Viz ...etc).
42
44
43
-
***Curriculum**: I want do everything that I can to go through all the basic materials in Pandas/Matplotlib combo. Expose yourself to functional programming, OOP, testing in Python, or even make tools. Get feedbacks from Airpy team members.
45
+
***Curriculum**: I want do everything that I can to go through all the basic materials in Pandas/Matplotlib combo. Expose myself to functional programming, OOP, testing in Python, or even making command tools. Get feedbacks from Airpy team members.
44
46
45
47
***Timeframe**: Efficiency parity by end of October. One contribution to Airpy by Mid November. One ongoing big project touching different stacks in Python by the end of 2016.
46
48
47
49
## Project Milestones
48
50
49
51
***Learning Python & Best Practices**
50
-
*[Plateau of Productivity]
52
+
*[Build On Top of the Basics: Python Progression]
53
+
*[Drastically Improve Your Understanding: Jeff Knupp: Python's Execution Mode]
54
+
*[Nate Batchelder: Loop like a native]
51
55
*[Columbia Data Scientist Style Guide]
52
56
53
-
***[Build On Top of the Basics]: Writing Pythonic Code**
54
-
55
-
* Guidelines of Writing Pythonic Code
57
+
***Writing Pythonic Code**
58
+
* Guidelines For Writing Pythonic Code
56
59
* Function: Use *args and **kwargs to accept arbitrary arguments in function definition
57
60
* Tuples: effective unpacking, use _ for placeholder, swap values without tmp variables
58
61
* List/Dict/Set: list comprehension, dict comprehension. dict.get, set comprehension
@@ -63,42 +66,35 @@ I am a huge believer in learning by doing, and there are a lot of opportunities
63
66
* Formatting: pep8 standards
64
67
* Executable script: __name__ = __main__
65
68
* Import: The right way to do imports
66
-
*[Drastically Improve Your Understanding: Jeff Knupp: Python's Execution Mode]
67
-
*[Nate Batchelder: Loop like a native]
69
+
*[Writing Idiomatic Python - Jeff Knupp]
70
+
*[Stanford CS 41: Idiomatic Python]
71
+
*[Another Tutorial On How To Write Pythonic Code]
68
72
69
73
***iPython Notebook**
70
74
71
-
* Just start writing all your practices as iPython notebooks
72
75
*[BIDS: Python Bootcamp: IPython Notebook]
76
+
*[Jupyter Notebook tips, tricks and shortcuts]
73
77
*[iPython Notebook Keybinding]
74
78
75
79
***Pandas For Data Analysis**
76
80
77
-
*[Brandon Rhode's Pandas From The Groud Up]: good explanation on index; (row) set_index, sort_index; (column) stack, unstack
78
-
*[dplyr/pandas vignette comparison]
79
-
*[Data School Pandas Tutorials]
80
-
*[Data School Pandas Github iPython notebook]
81
-
*[More Pandas Questions Answered]
82
-
*[Other resources]
83
-
*[Tom Augspurgur: Pandas]
84
-
*[Coursera: Introduction to Data Science in Python]: This course is basically about Pandas
Once mastered all the above, the next natural step is to create public work that other people can use so you can democratize your useful tool to others. A great introduction to how to get started is from Tim Hopper's talk, titled [Sharing Your Side Projects].
140
135
141
-
***Building Packages In Python (Next Year?)**
136
+
***Logging In Python (Next Year?)**
137
+
*[Basic Python Logging - Code Session]
138
+
*[Logging HOWTO]
139
+
*[Become A Logging Expert In 30 Minutes]
140
+
141
+
***Writing Command-Line Tool (Next Year?)**
142
+
*[Click Documentation]
143
+
*[Writing A Command-Line Tool In Python]
142
144
143
-
*[Using cookiecutter to set up a project]
144
-
*[Creating a clean Pytyon development environment]
145
-
*[How to generate beautiful technical documentation]
146
-
*[Five steps to add the bling factor your Python package]
145
+
***Building Packages In Python (Next Year?)**
146
+
*[Computational Biology: Using Cookiecutter To Set Up A Project]
147
+
*[Computational Biology: Creating A Clean Pytyon Development Environment]
148
+
*[Computational Biology: How To Generate Beautiful Technical Documentation]
149
+
*[Computational Biology: Five Steps To Add The Bling Factor Your Python Package]
147
150
148
151
149
152
## Reference
@@ -156,68 +159,83 @@ I am a huge believer in learning by doing, and there are a lot of opportunities
156
159
*[Berkeley BIDS Python bootcamp]
157
160
*[Josh Bloom's Python Computing For Data Science]
158
161
*[Writing Idiomatic Python - Jeff Knupp]
159
-
*[Another tutorial on how to write pythonic code]
162
+
*[Another Tutorial On How To Write Pythonic Code]
160
163
*[Pandas Cookbook]
161
164
*[Udemy course]
162
-
*[Chris Albon's notes]
165
+
166
+
[Teach Yourself Programming in 10 years]:http://norvig.com/21-days.html
167
+
[Plateau of Productivity]:http://pbpython.com/plateau-of-productivity.html
[Plateau of Productivity]:http://pbpython.com/plateau-of-productivity.html
174
+
[Build On Top of the Basics: Python Progression]:http://stackoverflow.com/questions/2573135/python-progression-path-from-apprentice-to-guru
175
+
[Drastically Improve Your Understanding: Jeff Knupp: Python's Execution Mode]:https://www.jeffknupp.com/blog/2013/02/14/drastically-improve-your-python-understanding-pythons-execution-model/
176
+
[Nate Batchelder: Loop like a native]:https://www.youtube.com/watch?time_continue=14&v=EnSu9hHGq5o
170
177
[Columbia Data Scientist Style Guide]:http://columbia-applied-data-science.github.io/pages/lowclass-python-style-guide.html
171
-
[Build On Top of the Basics]:http://stackoverflow.com/questions/2573135/python-progression-path-from-apprentice-to-guru
172
178
173
-
[Drastically Improve Your Understanding: Jeff Knupp: Python's Execution Mode]:https://www.jeffknupp.com/blog/2013/02/14/drastically-improve-your-python-understanding-pythons-execution-model/
179
+
[Writing Idiomatic Python - Jeff Knupp]:https://jeffknupp.com/writing-idiomatic-python-ebook/
[Nate Batchelder: Loop like a native]:https://www.youtube.com/watch?time_continue=14&v=EnSu9hHGq5o
179
-
[Improve Your Python: Jeff Knupp: Yield & Generator Explained]:https://jeffknupp.com/blog/2013/04/07/improve-your-python-yield-and-generators-explained/
180
-
[Improve Your Python: Jeff Knupp: Decorator Explained]:https://jeffknupp.com/blog/2013/11/29/improve-your-python-decorators-explained/
181
-
[Simeon Franklin's higher order function]:http://simeonfranklin.com/blog/2013/jun/17/higher-order-functions-python/
182
-
[BIDS: Python Bootcamp: Higher order functions]:https://www.youtube.com/watch?v=ob797BA49ZQ
183
-
184
-
[Brandon Rhode's Pandas From The Groud Up]:https://www.youtube.com/watch?v=5JnMutdy6Fw
[A Dramatic Tour through Python’s Data Visualization Landscape (including ggplot and Altair)]:https://dansaber.wordpress.com/2016/10/02/a-dramatic-tour-through-pythons-data-visualization-landscape-including-ggplot-and-altair/
199
204
200
-
[Objected Oriented Programming For Scientist]:http://tjelvarolsson.com/blog/object-oriented-programming-for-scientists/
[Simeon Franklin's higher order function]:http://simeonfranklin.com/blog/2013/jun/17/higher-order-functions-python/
210
+
[BIDS: Python Bootcamp: Higher order functions]:https://www.youtube.com/watch?v=ob797BA49ZQ
211
+
[Improve Your Python: Jeff Knupp: Yield & Generator Explained]:https://jeffknupp.com/blog/2013/04/07/improve-your-python-yield-and-generators-explained/
212
+
[Improve Your Python: Jeff Knupp: Decorator Explained]:https://jeffknupp.com/blog/2013/11/29/improve-your-python-decorators-explained/
213
+
[Improve Your Python: Jeff Knupp: Context Manager]:https://jeffknupp.com/blog/2016/03/07/improve-your-python-the-with-statement-and-context-managers/
[Writing A Command-Line Tool In Python]:http://nvie.com/posts/writing-a-cli-in-python-in-under-60-seconds/
214
233
215
-
[Using cookiecutter to set up a project]:http://tjelvarolsson.com/blog/using-cookiecutter-a-passive-code-generator/
216
-
[Creating a clean Pytyon development environment]:http://tjelvarolsson.com/blog/begginers-guide-creating-clean-python-development-environments/
217
-
[How to generate beautiful technical documentation]:http://tjelvarolsson.com/blog/how-to-generate-beautiful-technical-documentation/
218
-
[Five steps to add the bling factor your Python package]:http://tjelvarolsson.com/blog/five-steps-to-add-the-bling-factor-to-your-python-package/
234
+
[Computational Biology: Using Cookiecutter To Set Up A Project]:http://tjelvarolsson.com/blog/using-cookiecutter-a-passive-code-generator/
235
+
[Computational Biology: Creating A Clean Pytyon Development Environment]:http://tjelvarolsson.com/blog/begginers-guide-creating-clean-python-development-environments/
236
+
[Computational Biology: How To Generate Beautiful Technical Documentation]:http://tjelvarolsson.com/blog/how-to-generate-beautiful-technical-documentation/
237
+
[Computational Biology: Five Steps To Add The Bling Factor Your Python Package]:http://tjelvarolsson.com/blog/five-steps-to-add-the-bling-factor-to-your-python-package/
219
238
220
-
[Improve Your Python: Jeff Knupp: Context Manager]:https://www.jeffknupp.com/blog/2016/03/07/improve-your-python-the-with-statement-and-context-managers/
0 commit comments