More physicists today are taking on the role of software developer as part of their research, but software development isnâ??t always easy or obvious, even for physicists. This practical book teaches essential software development skills to help you automate and accomplish nearly any aspect of research in a physics-based field. Written by two PhDs in nuclear engineering, this book includes practical examples drawn from a working knowledge of physics concepts. Youâ??ll learn how to use the Python programming language to perform everything from collecting and analyzing data to building software and publishing your results. In four parts, this book
I'll start with the bad. The mix of UNIX tools and python is poorly thought out. sed and friends are great, but it is counterintuitive to use them with python. There should have been a section on command line (subprocess) usage in python. Rakefiles should have been mentioned. The focus is a bit diffuse at times, the numpy exposition is shorter and less readable than others (including the docs). All the non-python aspects are highly suspect, and should be mostly ignored. In particular, the usage of *nix tools makes for very inefficient work in light of pandas being introduced as well. The debugging section is limited. No mention of provenance tracking, with snakemake or others.
Now the good: - Sets are covered in a way which doesn't just make them seem like an afterthought - Great introduction to HDF5 and KDTrees - Some neat examples all around - Good coverage of decorators
I wouldn't recommend this as a first or even a fifth book on Python or working with scientific software. It is probably not a regrettable read, however, because it is short and some parts are OK.
Does what I want—introduce me to python—but is poorly put-together, error-ridden, and confusing. You can tell the authors do physics, because they don't understand that being "colloquial" and "down-to-earth" is condescending pedagogy, and they think that the limit of sin(1/x) as x goes to zero is zero. I don't think they know at all how teaching works. But for grad students and PhDs this is mostly just a disappointment and annoyance, since we're smart enough to figure out what we need.
If you are new to python programmer you will definetely benifit from this book, I have been using python for more than a few years and I still have learned a few new concepts from the book ! The book starts with how can you use the shell, covers most important python topic and finishes up with how to test and deploy your python packages.
Tries to do too many things and ultimately does them all poorly. It varies between condescendingly simplistic (why do we test?), uselessly high level (the Object-Oriented and Deployment chapters), and impenetrably unclear (the chapter on parallelism).