First Steps in Scientific Programming
Patricio F. Ortiz
This book can be downloaded and read in Apple Books on your Mac or iOS device.
This book was conceived as a quick yet rich guide for anyone starting to program in (physical) sciences. Through the years, the author has found out that undergrads, graduate students and post-docs sooner or later face the task of having to do some programming to help their research. Science and research are at the forefront of knowledge, which means that on many occasions there are no computational tools to deal with problems faces. Hence, the only path is to learn how to do it, do it quickly and do it efficiently. In a high percentage of the cases, young scientists have exposure to one computer language only, barely touching anything more advanced than the "Hello world". Today's reality is that people in a research environment have to learn to code for parallel super-machines or even programming for resources on the Cloud. Most of those systems are base on Unix-derived operating systems (mostly Linux).
This book covers issues of programming in a generic way, not tied to any particular language because once people learn the principles of programming, then what language is used becomes a secondary issue. Concepts which deal with how computers work are covered, like byte order, and internal representation. And, of course, what tools are at the user's disposal to tackle from simple to highly complex tasks. Issues particularly useful in the scientific context are covered, like text code, performance enhancers, code scalability, debugging, working with remote machines, working with time, coordinate systems, and tips on data processing.
What's New in Version 1.1
minor corrections, added email and affiliation