Book description
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.
Publisher resources
Table of contents
- Foreword
- Preface
- I. Getting Started
- 1. Introduction to the Command Line
- 2. Programming Blastoff with Python
- 3. Essential Containers
- 4. Flow Control and Logic
- 5. Operating with Functions
- 6. Classes and Objects
- II. Getting It Done
- 7. Analysis and Visualization
- 8. Regular Expressions
- 9. NumPy: Thinking in Arrays
- 10. Storing Data: Files and HDF5
- 11. Important Data Structures in Physics
- 12. Performing in Parallel
- 13. Deploying Software
- III. Getting It Right
- 14. Building Pipelines and Software
-
15. Local Version Control
- What Is Version Control?
- Getting Started with Git
-
Local Version Control with Git
- Creating a Local Repository (git init)
- Staging Files (git add)
- Checking the Status of Your Local Copy (git status)
- Saving a Snapshot (git commit)
- git log: Viewing the History
- Viewing the Differences (git diff)
- Unstaging or Reverting a File (git reset)
- Discard Revisions (git revert)
- Listing, Creating, and Deleting Branches (git branch)
- Switching Between Branches (git checkout)
- Merging Branches (git merge)
- Dealing with Conflicts
- Version Conrol Wrap-Up
-
16. Remote Version Control
- Repository Hosting (github.com)
- Creating a Repository on GitHub
- Declaring a Remote (git remote)
- Sending Commits to Remote Repositories (git push)
- Downloading a Repository (git clone)
- Fetching the Contents of a Remote (git fetch)
- Merging the Contents of a Remote (git merge)
- Pull = Fetch and Merge (git pull)
- Conflicts
- Resolving Conflicts
- Remote Version Control Wrap-up
- 17. Debugging
- 18. Testing
- IV. Getting It Out There
- 19. Documentation
- 20. Publication
- 21. Collaboration
- 22. Licenses, Ownership, and Copyright
- 23. Further Musings on Computational Physics
- Glossary
- Bibliography
- Index
Product information
- Title: Effective Computation in Physics
- Author(s):
- Release date: June 2015
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781491901533
You might also like
book
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …
book
Head First Design Patterns, 2nd Edition
You know you don’t want to reinvent the wheel, so you look to design patterns—the lessons …
book
Fluent Python, 2nd Edition
Python’s simplicity lets you become productive quickly, but often this means you aren’t using everything it …
book
Software Engineering at Google
Today, software engineers need to know not only how to program effectively but also how to …