Short version of this post: I wrote a book called The Unix Workbench as an introduction to research programming. You can buy the book on Leanpub (pay what you want including free) or you can read the book online.
A thousand research programmers are born every day when they realize that some goal that they would like to accomplish with a computer can not be achieved by using Excel alone. Suddenly they’re thrown into the overwhelming world of programming, groping their way through Google searches and fighting with their apathetic computer. Eventually, hopefully, they find a foothold - some tiny system or process that they can use, understand, and manipulate.
I would like to direct students to these footholds as quickly as possible but I’m usually unsatisfied with the resources that are available - especially for getting started. After teaching many students I started to identify a baseline of computing skills that I believe research programmers should have. The collection of those skills became the basis of my new book: The Unix Workbench.
I have several goals in writing this book. First I wanted to provide this material with a linear and understandable narrative and a logical path from casual computer user to budding research programmer. The book is licensed CC0 meaning that anybody can modify, adapt, and share the book however they would like. The source files for the book are hosted on GitHub and the book teaches readers how to use Git and GitHub, so I’m interested in interacting with readers of the book through GitHub. There have been countless times when I wished that I could reach into a textbook to change something or to add a note, so I hope that this book will empower readers to do that. Ultimately I set out to write the introductory book that I would have wanted when I was learning how to use the command line.