Computers and Code
If you are a computational physicist, or your potential research involves something to do with computers (and coding), there are some things you should consider when purchasing any new tech device:
WHAT TO CONSIDER:
Type of Computer/Software: Mac vs Windows? MacOS vs Linux vs Ubuntu? Your type of research may determine what computer will be best suited for it. Your own personal preference is of course important, but some types of research may be much easier on a particular setup. Ask your research advisor for their input!
Space/Memory: Knowing how much space your computer should have so you don't have to delete files constantly for the next few years is very important. Memory will impact how quickly your computer does certain operations. Research on a slow computer with not enough space is no fun. However, this can be expensive depending on the type of computer you buy.
Organization and File Storage: Keeping your computer organized is key to success, especially if you are dealing with large data sets. Use something like github to back up your codes and have an easier time with version control. Back up your device often to an external drive, just in case.
Currently I use a MacBook Pro (M1) with 1Tb of storage and 16 GB of RAM. Throughout my undergraduate I had a 2016 MacBook Air, which I used for 3 years or so until I upgraded to my current computer, and have had no issues with doing my research or anything else. For my research, I've always worked on a "cluster" (not my local device), which makes things much easier.
A Mac isn't necessary by any means, but it is what I've used for my entire life, so it is a personal preference. There are many other great computers that do what you need it to do, without having to pay as much. You can also find student discount codes for many companies, so you should use that while you can.
​
IF YOU JUST NEED A COMPUTER TO GET THINGS DONE, WITHOUT RESEARCH CONCERNS, THEN CONSIDER:
-
If you are commuter, make sure whatever you buy can easily be moved around with you.
-
Program compatibility: will your new computer run the programs it needs to?
-
The reviews: Do other students in your major/field have the same computer? Does it work for them?
-
Cost: If you work any job while being a student, an expensive computer is not in your budget. For just typing papers, a less expensive one will do what you need it to do.
-
Warranties and Returns: If something breaks, how easy is it for you to get it fixed? You're a student after all, and will need a working computer.
iPAD vs Pen+Paper
For lecture courses (math-based), I highly recommend getting an iPad (or other tablet) to take notes, and store everything you need in an organized way. This eliminates having to carry 5 notebooks around with you at all times. You can also record lectures while taking notes, which is a great feature to use for studying.
​
Paper and pencil is great, but sometimes it can be incredibly annoying if you need to quickly find something.
I use my iPad for:
​
-
Lecture notes and recordings
-
A second screen for my computer
-
Tutoring
-
Reading and annotating papers
A Brief Introduction to Coding...
Being able to code for both assignments (problem sets), laboratory courses, and your own research is the key to success. If there is the opportunity for you to take an introductory course (or multiple) during your undergraduate degree, definitely don't waste it!
​
The only way to become proficient in any computer language, just like becoming proficient in any other language, is by practicing every day, even if it is uncomfortable at first. Python is becoming a very versatile coding language and one that is much easier to pick up for beginners, as it "mimics" English syntax.
​
Most likely, you'll do the majority of your learning through research, where you are actively using your coding skills and applying them to your interests. It took me a long time to become comfortable with coding entirely on my own. This is not a skill that you acquire overnight... it takes practice, just like anything else.
RECOMMENDED PROGRAMS:
Anaconda: A good place to start would be to download ANACONDA for your computer. This will give you access to many different interfaces for Python and R. I prefer using Jupyter notebook for a very user-friendly interface, and markdown text options.
Mathematica: An app to be used as a calculator and graphing tool, very useful for anything with a linear algebra base (like matrices). Not the most user friendly, but when it works, it works well.
MATLAB: Another application you can use for graphing and building codes. Depending on your research, you might use either MATLAB or a python-based application, but you'll figure this out soon enough!
BITS OF ADVICE
Keep snippets of code that work. You can put functions or general structures of code that you find useful in a notes file to use as a reference. Also, write down any important directories (or file pathnames) that you may need to have in the future. If you make use of your Terminal to do work on a remote desktop, you can always save your Terminal history, and then edit it to input comments. This is especially useful if you set up a new environment, or have just started a project and need to remember steps on how to complete a task.
Always have a backup. Whether it's a backup of your entire computer or an old version of a now-updated script, you should be in the habit of saving an older version, just in case.
Keep a written record of your progress, and try to update it weekly. This could be in the form of PowerPoint slides, a Word document, etc. but it is important both for you and the people you work with to have a visual representation of the work you've done.