A PhD Examined: Digital Hygiene
How I Learned to Keep My Digital Life Organized Through Grad School
Given that most of the work I did in grad school (and still do at my job) involves me using a computer, it was important for me to set up my digital work environment for efficiency and clarity. These principles of “digital hygiene” that I came up with didn’t come all at once. Some things I had to learn the hard way and some things I figured out through trial and error or came across them by luck.
Regardless of how I came by these ideas, they all share the same purpose: streamlining my environment and removing distractions. An organized digital work space leads to a clear mental space, therefore less stress. An efficient way of navigating the digital world lets me focus on the things that really matter without worrying about everyday details. Organization also means I’m less likely to lose work or be unable to find an important document when I need it. Most importantly, good digital hygiene gives me a feeling of control over the chaos of information and documents we all have to manage these days.
As usual, all these principles are opinionated and represent what worked/works best for me. Your mileage may vary.
Uncluttered Desktop
A sight that I always found horrifying (and one that’s unfortunately all too common) is a desktop so full of shortcuts that you can hardly see the wallpaper behind them. This type of setup completely misunderstands the metaphor of “shortcut”. The purpose of a shortcut is to give you quick access to a program/folder you use often. At any one point, this only applies to a handful of things. The trap most people fall into, I think, is that they never delete old shortcuts they created. This leads to them keeping around shortcuts that are no longer needed.
What I learned to do at first is to regularly revisit the shortcuts on my desktop and remove anything that points to a program that:
- I no longer use often or need quick access to
- I uninstalled from my system
- I replaced with a better alternative
When I followed this principle correctly, my desktop had maximum utility: it gave me quick access to the things I needed without being the cluttered, distracting nightmare that is a screen full of shortcut icons.
Eventually, I started relying on pinning frequent items to my taskbar rather than creating shortcuts for them. After getting a Macbook, I also learned about launchers and realized I could very quickly launch my apps or find my files by typing into the launcher rather than clicking on a shortcut. Launchers exist on all major operating systems: MacOS comes equipped with Spotlight by default but you can also use . On Windows seems to get a lot of good reviews, and on Linux I use (but there’s a whole host of alternatives too).
With launchers I relied less and less on my desktop. These days I don’t really have much use for it. I tried using desktop widgets for a while, where I would put weather information or sticky notes or RAM/CPU usage on the desktop. Eventually, I moved all the things I need to the taskbar and the only use I have for my desktop right now is to show me a pretty picture while I decide which app I need to launch.
File System Organization
Grad school required me to manage a lot of files. I had to keep track of articles I read, forms that needed to be filled and submitted, presentation slides I created, articles I had written, lecture materials, homework assignments, programs I had written,… It was very tempting to put everything into one giant folder (maybe “Documents” or “Grad School”) and rely on file search to find my files. But I often found myself forgetting the file name I was searching for and wasn’t sure where I had put it.
The natural way that occurred to me during my master’s was to arrange my files by topic. In other words, all the articles I read went into one directory, all my coursework into another, my work on publications into yet a third, and so on… This worked really well for me and I carried it over and improved it for my PhD files. I created sub-directories. So the directory that contained my references was divided into separate topic sub-directories, for example.
This made it very easy for me to quickly find the files I was looking for because I always knew where to look for them. It also took away any decision effort on my part when creating a new file. I knew exactly where the new file belonged and where I needed to save it. I still use this kind of organization for my work files as it has been tremendously helpful.
This is not the only way to organize your files. Another popular way that I came across later (but never used) is David Allen’s method. This requires you to create a directory for each letter of the alphabet and then inside each directory create sub-directories for each letter as well. So your sub-directory names would look like AA, AB, AC, …., ZZ. And you would put your files in the appropriate sub-directory depending on the topic they belong to or their author’s name, etc… This method is too involved for my taste and I feel like it creates confusion about what directory a particular file was saved in, but I know that some people can use it very successfully.
Fuzzy Search
When the number of files I saved became large, it still took some time to find a particular file I was looking for. That was when I came across and the concept of fuzzy search. This tool and others like it let you enter the vaguest search terms (sometimes even a few letters) and will generate results that contain these letters (not necessarily in the order you entered them) so you can quickly find a file using the bare minimum details about its name and location. What’s even better is that fzf is cross-platform and is made so it can easily interact with other tools (especially useful if you use other Unix tools a lot).
In the same vein, when I started using Emacs, I came across which lets you switch contexts to a particular project you’re working on then allows you to fuzzy search for files in that project’s scope only. This was especially useful when I was working on multiple projects during my PhD.
Neither one of these tools might be right for you, but I think you should keep the concept of fuzzy search in mind and find a similar tool that integrates with your favorite file browser/text editor/… as it can make your life a lot easier.
Internet Browsers
For the longest time I had the terrible habit of keeping many browser tabs open. Every time I needed to search for something new or go to a new site, I would open an additional tab in my browser. I gradually realized that this is a very bad habit to get into for several reasons:
- It’s a burden on system resources (especially RAM)
- It stressed me out to see so many tabs open. It felt like having my physical desktop cluttered with papers and notebooks.
- My browser session became “precious” as it carried too much information on what I wanted to work on. If that session crashed and I lost my tabs, it would set me back quite a bit.
There are many solutions to this problem these days. The one I’m partial too is just good discipline: as soon as I’m done working on something, I close the tabs related to it. If I came across an interesting article or website, I don’t keep a tab open for it: I save it to my bookmarks and check it later. Many browsers nowadays will even let you group your tabs by topic and save the tab groups for later.
Another bad Internet habit I had was password reuse. I used the same password for multiple accounts because I didn’t want to have to remember too many passwords. I eventually found out about password managers. These are software tools that store encrypted versions of your passwords for multiple sites. They get encrypted and decrypted with a password that you provide. This way, you only have to memorize one password but can have a different password for each account you use. This is far more secure because if one of your accounts gets compromised, the attacker can’t use this password to compromise any other account. A good password manager is usually cross-platform and comes with a browser extension that can automatically fill in the user name and password appropriate to the site you’re on. Some modern browsers have even started having their own built-in password manager. The particular one I use is .
Backup/Revision Control
It was very important for me to keep regular backups of my work to prevent accidental data loss. I also needed to keep track of different ideas I attempted at work and to be able to go back to the way things were if a new idea didn’t pan out. One solution of course was to name my files: work_v1.txt
, work_v2.txt
, work_final_final.txt
,… but I lost track of such files very quickly. The solution to both dilemmas was in an idea given to me by a friend: use revision control software.
Revision control is most heavily used by software engineers and programmers to keep track of the different versions and features of the software they’re developing. It turns out to be quite good at keeping track of regular files as well. When I started using such a tool, I used it as both a time machine (to go back to earlier versions of files) and as a way to back up my files. Because it kept track of every change, it could easily keep the multiple copies of my work in sync without me having to track things manually.
Revision control exists to some degree on most cloud storage services but tends to be limited to how far you can go back in time with your changes. There are also revision control programs that you can install locally for privacy and long-term tracking of your files. I use a program called for this purpose. Some of the main terms it uses (and many revision control programs use similar terminology) are:
- Repository (often shortened to repo): that’s the container in which git keeps track of all the changes to your files. It usually corresponds to a directory/folder on your operating system.
- Commit: you can keep making changes to your files but nothing will be tracked as a different “version” until you commit your changes to the repo. You’re also encouraged to add a commit message, briefly describing the changes you made so you can easily find this version later.
- Pull/push: these are used when you’re working with a repo stored somewhere else (common for teams working together on the same project). After you commit your changes you can push them to a remote repo. When you start your work and want to make sure you have the most up-to-date version of your files, you pull the versions from the remote repo. In my case, the remote repo was an encrypted copy of my local one stored on the cloud as a backup.
This was my typical git workflow (I’m showing how the commands would look on a Unix machine, so anything after ‘#’ is a comment for humans not a command):
git pull # Get the latest version of files from my backup
# Do my day’s work and change many files
# …
git add -A # Add all changed files to the list of changes to be committed
# commit my changes with a helpful message:
git commit -m “I changed file1 and file2 to implement a new idea”
git push # Push my changes to the remote repo so they get backed up.
More information on git can be found in among many others.
In addition to the command line interface to git, I also used a graphical interface called gitk
(that ships with git) that allowed me to see the history of my commits and restore any version of my files that I liked. Here’s an example of part of the history of my PhD files repo:
Using this method to track my files has helped me numerous times. One example of that happened when I was just learning Python. I had used an engineering software called Matlab to do some programming for my research work. The problem with Matlab is that it requires a very expensive license. At the time, I got access to it through my university but I wanted to make sure I retained access to working files after I graduated. When I learned Python, I found out that it has a free library called NumPy that provides most of the functionality of Matlab, so I decided to convert my files to that library instead. Because I was new to Python, I made several mistakes on the way. Many times during that conversion process, I would find out that most of my work for the day was going down the wrong path and had made things worse than they were before. It was very simple for me to use git to return my files to a “known good” state and work from there.
Concluding Thoughts
Grad school work involves creating and managing a lot of digital content. It was very important for me to maintain good digital habits to ensure that my digital life was well organized and backed up. This reduced my stress levels considerably and helped me focus on research work without worrying too much about organizational details. I highly encourage you to adopt similar habits and see how much they improve your workflow.
Articles in This Series
- A PhD Examined: Introduction
- A PhD Examined: Social Aspects
- A PhD Examined: Technical Aspects
- A PhD Examined: Logistical Aspects
- A PhD Examined: Beyond Grad School
- A PhD Examined: Mental Health
- A PhD Examined: Being Intentional
- A PhD Examined: The Research Lab
- A PhD Examined: Advisor and Mentor Relationships
- A PhD Examined: Academia vs. Industry
- A PhD Examined: Changing Countries
- A PhD Examined: Social Life
- A PhD Examined: Digital Hygiene
- A PhD Examined: Reference Management Software
- A PhD Examined: Keeping a Personal Wiki
- A PhD Examined: LaTeX
- A PhD Examined: Scripting
- A PhD Examined: Time Tracking
- A PhD Examined: Workflows
- A PhD Examined: Class Projects
- A PhD Examined: Academic Articles
- A PhD Examined: Task Management
- A PhD Examined: Internships
- A PhD Examined: The Job Hunt
- A PhD Examined: Taking Good Habits to Work
- A PhD Examined: Conclusion