The Bare Essentials
There
are certain indispensable tools of the working scientist. Most of the
software available on the market is not designed for the scientist, and
the choice is even more sparse for the practicing physicist.
Since
some of the most versatile and powerful software has a steep learning
curve, it is important to choose the right tools early in life when the
gray matter is still fresh, preferably in graduate school or sooner.
Common
tools include a good scientific typesetting package to prepare
manuscripts and high-quality documents/proposals, a bibliography
program to keep a database of references, a vector drawing program for
making figures, and a scientific spreadsheet with publication quality
graphing package.
Other useful software
packages include data fitting and analysis software, symbolic
manipulator, compiler for scientific languages such as C, a
presentation program for giving talks, etc. The various packages that I
recommend are based on years of experience using a variety of packages.
Your tastes may differ, so feel free to disagree with me!
Essential Software
At minimum, all physicists should have the
following tools.
High Quality Scientific Document
Preparation
Aside
from actually doing research, the typical scientist spends a large
fraction of time writing. This includes proposals, papers, and reports.
I can not stress enough the importance of getting a package that can do
everything. While MS Word can be cajoled into doing a lot of things, no
piece of software can typeset a piece of physics more beautifully than
LaTeX.
While LaTeX has a steep learning
curve, it literally can do everything. It typesets beautiful equations,
places figures in the right place, makes references and citations
simple (even when cutting and pasting large chunks of a document), and
never crashes. I found dealing with my 500-page single-spaced book
project in LaTeX easier than writing a 30 page proposal using MS Word.
A nice bonus is that many LaTeX distributions are free and all physics
journals accept articles typeset in LaTeX.
What You Need
To
use LaTeX, you need a text editor to create the document and a
distribution of LaTeX to compile it. In a sense, the document that you
create in a text editor is like a computer program, and LaTeX is like a
compiler.
In my opinion, the best
distribution of LaTeX is MiKTeX. I use WinEdt as a text editor because
it works seamlessly with MikTeX. It runs MiKTeX at the click of a
button, and opens a window with the typeset document. Also with the
click of a button, it converts documents to pdf format. The downside is
that WinEdt is shareware and it costs $40 to register, $30 if you are a
student. But I find it worth the price.
A
free alternative is TeXnic Center, which users tell me is as good as
WinEdt. Note that MiKTeX is a huge package that would take forever to
download. I therefore recommend that you download the small version of
MiKTeX. If you use a package that is not part of the distribution,
MiKTeX will automatically download what it needs on the fly (assuming,
of course, you have internet access and select this option).
Eventually, you'll end up getting everything you need.
So, you will need:
MiKTeX
and
WinEdt
or TeXnic Center
Beginners may find Michelle Krummel's YouTube tutorial on using LaTeX useful.
Reference Databases
Reference
databases are a big headache. The beauty of LaTeX is that it can call a
reference from a database stored in a .bib file. While you can use a
text editor to directly enter references into the database, there are
several available reference managers that make it much easier.
I
formerly used Endnote, but find the high price prohibitive. So, I now
use a little program called JabRef, which is specifically designed to
be used with Latex; and, it is free. Best of all, it does not have many
bells and whistles, but does everything that a LaTeX user needs.
Download: JabRef
|
Vector Drawing Program
A
vector drawing program is used to draw figures, and is the electronic
version of a pencil/pen. "Vector" refers to the way the images are
stored. Lines are characterized by the line type and endpoints. Other
object types are similarly encoded to save memory. In contrast, a bit
map stores all of the dots that define a line - all details that you do
not need to know to run the software.
Being able to
export drawings in encapsulated postscript (.eps) format or .pdf is
essential. While MikTeX is compatible with several formats, I recommend
using eps (or pdf) for figures.
I continue to use Corel
Draw, but have not purchased a new version for quite some time. Adobe
Illustrator is another good package. But, these commercial products are
very expensive. I recently found a free vector drawing program called
Inkscape. Based on my casual tests, I find it to be very powerful, and
perhaps easier to use than Corel Draw. It's about 33MB, so takes a
while to download.
Download: Inkscape
Publication Quality Graphing
Publication
quality graphing software is one of the most important tools because it
brings to life experimental data and theoretical results - the things
that physicists produce.
By far, my favorite piece of
software is Origin. It has built in data analysis functions such as
least squares fitting, image analysis capabilities, and a scientific
spreadsheet that allows for columns to be calculated using a huge
number of advanced functions. It even has a built in C compiler with
all of the NAG
functions included. My favorite feature is that I can define very
complicated functions using C, and compile them into Origin. So, my
special functions are built in so I can use them in analyzing data or
doing calculations as easily as sines and cosines. I find Origin
indispensable for both theoretical and experimental work.
The downside is that Origin is pricey. On the positive
side, the student version is $50.
Download: Origin
Symbolic Manipulation
I
like to do all analytical calculations by hand. Sometimes, however,
things get so messy that it becomes essential to use a symbolic
manipulator (SM). Mathematica is the king of SMs, but I resent the
yearly license fee. On the plus side, the student version never
expires. Another package that I like is MathCad, which is used more by
engineers, but the academic version is relatively inexpensive and the
license does not expire. I also have had students who loved Maple.
Before
Mathematica came on the scene, Macsyma ruled. More recently, it has
been reincarnated into a software package called Maxima; and it's free!
Download: Maxima
Programming
I
fell in love with Python many years ago now and still think it's great
though I don't code much anymore. It is a programming language that is
run easily from an interpreter window, meaning that you can combine
modules that you have written (without having to compile them) as
easily as in MatLab. There are so many packages available for Python
that will let you manipulate matrices, solve differential equations,
find roots, etc. However, I still find Origin useful for analyzing data
and making the prettiest of plots very easily.
Python is free, as are most of the useful
modules that you will ever need. While you can download Python and
write code in any text editor, I like to use an Integrated Development
Environment (IDE) because it corrects program errors while you type,
and in the end, this avoids many headaches.
There
are many powerful IDEs out there, many of them free. However, the ones
that are the most flexible and in the long run may be the most
desirable, are often hard to configure the first time. Since you want
to start programming right away, I recommend WinPython for windows
users. Another advantage is that it runs off of your drive rather
than being installed by windows. I keep mine in Dropbox so it
appears on all my computers without having to load it on each one.
Download (free version recommended): WinPython
Download (not needed if you use Canopy): Python
|