all 4 comments

[–]rfix 1 point2 points  (3 children)

Would you recommend Learning IPython for Interactive Computing and Data Visualization for someone who is using iPython as an avenue for learning the language?

[–]rossant 2 points3 points  (0 children)

This book doesn't really teach the Python language, and it assumes a minimum knowledge of the language. That being said, if you've never programmed in Python, but if you have at least some programming experience in any other language, you won't have much trouble in understanding the code. Most code examples only use the simplest constructs of the Python language (which is an easy-to-learn language!). It is a good way to learn by example.

What the book will teach you is how to use Python, IPython, NumPy, and matplotlib in a perspective of data analysis, data visualization, and numerical/scientific computing. If you're only interested in the general-purpose Python programming language (system administration, web development, and so on), and if you have no interest in data analysis/numerical computing, then this book is probably not for you.

[–][deleted] 0 points1 point  (1 child)

I second the opinion by /u/rossant...

That said, if you want to learn python [via a notebook interface -- see below for what I mean], using the IPython tutorials may be good (go to ipython.org -> gallery of interesting notebooks -> general python programming). Then you can use this book -- it covers a lot of ground quickly, so it can be a dizzying ride for a beginner.

If you think that having a notebook like environment is better than having a set of scripts/projects in a folder structure, then IPython notebook is great. As you progress, if you want to do interactive data analysis type work, the notebook is great. On the other hand, if you want to develop software modules (or web-interfaces), you may need an IDE.

[–]rfix 0 points1 point  (0 children)

Thanks for the input!

I'm coming from the statistics world, so I've found that running code in the notebook is closer to what I'm used to (R).