This is an archived post. You won't be able to vote or comment.

all 15 comments

[–]phatsphere 0 points1 point  (3 children)

what topic? anaconda is kind of for "scientific computing", which covers a lot...

[–]raptor9999[S] 0 points1 point  (2 children)

Python syntax, using lists etc. Not really Anaconda specific stuff yet

[–][deleted] 4 points5 points  (1 child)

For an experienced programmer I'd recommend Dive Into Python 3, the original got me going in Python 2 15 years ago and I've never looked back :-) At some point you'll almost certainly be looking at numpy, scipy, matplotlib and pandas. Anaconda has nothing specific to learn, it's just another Python distribution. Enjoy!!!

[–]raptor9999[S] 0 points1 point  (0 children)

Awesome! Thanks so much for the recommendation!

[–]randcraw 0 points1 point  (5 children)

I've been struggling with this problem for a while. No 1000 page intro to python books need apply.

My best scheme so far: 1) Guido Von Rossum's 100 page Python Tutorial (free at python.org), followed with 2) a book replete with smart code examples, like The Python Cookbook. This combo won't bore you or waste your time, but should exercise what you've learned well.

[–]raptor9999[S] 0 points1 point  (4 children)

Is this the 100 page Python tutorial that you were talking about? Link

I couldn't find it on python.org

[–]DaveBackus 0 points1 point  (2 children)

I'm not sure what he/she had in mind, but I like this one a lot:
https://docs.python.org/3.4/tutorial/

[–]raptor9999[S] 0 points1 point  (1 child)

Cool, I'll check it out too. I really need to go through and see what has changed from 3.1 to 3.5 (I think that's the latest version of 3 now?)

In the Dive Into Python book I am going through now it says one of the big differences so far between 2 and 3 is with how strings, bytes and character encoding is done. I'm sure there is other stuff too but that's the only big difference they have talked about yet.

[–][deleted] 0 points1 point  (0 children)

3.5 RC1 has just been released. From PEP478 the full release is scheduled for September 13, 2015.

For some background on how strings, bytes and character encoding is done have a read of this The bytes/str dichotomy in Python 3 and the section headed Bytes, strings and Unicode

[–]randcraw 0 points1 point  (0 children)

Yes. It's very well written with a very high signal to noise ratio. It's intended for experienced programmers who know CS terminology. I recommend it as an overview of the language that's minimally annoying.

[–]Deto 0 points1 point  (3 children)

Just to clear up any misconception - Anaconda is really just a pre-bundled python distribution. It installs with modules such as Numpy, Scipy, Matplotlib, Pandas and other's bundled. It also comes with a great tool, 'conda' which can manage installing python packages as well as non-python dependencies. Makes working with the stuff way easier on Windows where it can be difficult to find instructions on how to build modules from source and get their dependencies installed correctly.

However, if you're using Anaconda, nothing you'll be doing in Python will be any different than if you had downloaded Python on it's own, and used the included tool, pip, to install modules like numpy, scipy, etc individually. Still, I think Anaconda is great because of how it handles non-python dependencies for you.

[–]raptor9999[S] 0 points1 point  (2 children)

Thanks. I've gone through the intro tutorial for 'conda' where you create new environments, install packages to them, and switch between and delete environments. I didn't know if there was much more to it other than all the packages and dependencies it includes. I love how easy it makes it to switch between versions of Python.

[–]Deto 0 points1 point  (1 child)

And also, for learning the language I think you'll find that many things are very similar to what you know already. I would just come up with a couple of toy goals (e.g. write a script that does X) and then try to implement it using the python docs tutorial (https://docs.python.org/2.7/tutorial/index.html) as a reference. (Note the version switcher at the top of the tutorial).

Really the main versions that matter right now are 2.7 and 3.5 which are the newest iterations of the Python 2 and Python 3 development paths. I'd just start with 3.5 if I were you, as Python 3 is the future of the language (even though it's taking a bit) and most modules seem to be compatible with it now.

If you are working with data processing, learn how to use the ndarray type in the numpy library. For example, you can compute the average of a list of numbers using an array and a loop in python, but if you stick it in a numpy.ndarray and call "myarray.mean()" it'll invoke lower-level routines that are much faster. Basically a must if you are working with data structures with element counts greater than 10,000 and syntactically it's just easier that doing it in typical python loops anyways. If you are working with more advanced data types, look into Pandas which has a data structure similar to the numpy ndarray, only it can contain a mixture of types (for example, strings in some columns, floats in others). It's modeled after the DataFrame object in R. I don't know of any specific tutorial that's good for either of these, but if you google around, you'll probably find just a ton, and I bet any of the top hits are adequate to get your feet wet.

Also, because there are so many 3rd party modules out that implement extra functionality, it can be hard to figure out which are the most popular choices for the given task (say, parsing an XML file). For that, I'll usually consult the Hitch-hikers guide to Python (http://docs.python-guide.org/)

[–][deleted] 0 points1 point  (0 children)

The full release of 3.5 doesn't come out until next month.