
Exploratory computing with Python - MichaelAO
http://mbakker7.github.io/exploratory_computing_with_python/
======
danso
I love the title and spirit of this book and completely agree with this
sentiment:

> _Lots of books are written on scientific computing, but very few deal with
> the much more common exploratory computing (a term coined by Fernando
> Perez), which represents daily tasks of many scientists and engineers that
> try to solve problems but are not computer scientists. This set of Notebooks
> is written for scientists and engineers who want to use Python programming
> for exploratory computing, scripting, data analysis, and visualization.
> Python makes many of these programming tasks quick and easy and, probably
> most importantly, fun._

It's been awhile since I've worked as an applications developer, but I love
spending 30min a day just trying things out, even if the code is trivial. The
other day I mirrored NASA's astronauts page and started writing some code to
parse its "yearbook" of astronauts because I thought it'd be interesting to
analyze their professional paths, e.g. civilian vs. military, engineering
degree versus...well, actually almost all of them have some kind of
engineering degree. Today I spent most of the early morning and noon writing R
scripts to visualize the USGS earthquake data...I initially wanted to look at
the surge of recent earthquakes in Oklahoma (the causes of which have more or
less been isolated to increased fracking activity), but spent a lot of time
looking at other anomalies...mostly, other spikes of earthquake activity that
I had forgotten about. Admittedly, about 80% of my time has been struggling
with R, but even that has led to some nice side roads...I finally opened up
Hadley Wickham's book ggplot2, which I had avoided in favor of "cookbook" type
references...but reading his book has been a joy...learning about the theory
and "grammar" of visualization has helped me a lot in terms of how to think in
general as a programmer...nevermind learning how to use ggplot2 effectively.

I think the fundamentals of computer science are absolutely necessary to
teach...I just wonder why so many of the exercises have to be about moving a
pixelated robot around or rewriting hypothetical tic-tac-toe scenarios when
there's so many accessible, real-world things to explore computationally.

Edit: though as a criticism, unless the book is meant to have an epic sweep of
content...I don't think it needs to cover object-oriented programming. Don't
get me wrong, OOP is a great mindset in the right software engineering
situation...but nothing kills the momentum of exploring with code than, "Time
to design some classes and interfaces!" I have folders of dead code written in
efforts to model legislative activity as OOP hierarchy...maybe it helped
increase the sophistication in which I approach data problems...but these
days, I get so much more done writing functional...or at least _working_ code,
and putting off design considerations until much later in a project.

