By Madeleine Pramoedya, Intern at Zero One Group (ZOG)
ZOG recently launched its Intern Blog Series, highlighting the experiences of summer interns in various divisions. In this series, interns discuss what they have learned and how ZOG is preparing them for the working world.
My name is Madeleine Pramoedya, and I am an intern in the technology division of Zero One Group.
This is the beginning of a series of posts in which I will share my journey as I work through Zero One’s internship programme.
This programme focuses on developing IT skills from what makes a good engineer, to scientific computing and statistics working up to big data.
Although I do not have a background in IT (as I am currently a biochemistry major at Imperial College London), I have realised that a strong knowledge in the foundations of IT and computer science is becoming more and more relevant in this generation regardless of the field.
In addition, as my degree only covers very minimal content on IT, I believe this programme will introduce me to relevant skills which I can utilise in the science field as well as the IT field.
During the first week, I completed half of MIT’s Missing Semester lectures covering the shell, shell tools & scripting, editors (specifically Vim), data wrangling and the command line environment. Since I am new to using Bash (Bourne Again SHell) and working in the terminal environment, this week mostly consisted of working through the course exercises to get familiar with doing so.
A lot of this involved committing to memory the most basic Bash commands and operators such as:
Vim & Text Editors
After getting used to these and other commands and operators in Bash I was able to apply them in Bash scripts. To edit these scripts I learned how to use the Vim text editor which is incredibly versatile as different key combinations result in different commands. This includes moving the cursor by using the h, j, k and l keys on the home row to move left, down, up, down and right respectively.
I can imagine once one gets used to the different command combinations, they can save immense amounts of time since you wouldn’t even need to move your mouse to navigate in a file.
Vim also has three different modes — normal, insert and visual. Typing commands occurs in normal mode whereas inserting / editing text falls under insert mode. Visual mode allows you to highlight blocks of the script.
Customisation & Dotfiles
Now that I knew the basics I was able to really make this space my own by adding plugins or introducing different key combinations and even changing the look of Vim and the terminal itself. These changes can be made by accessing the dotfiles for Vim (~/.vimrc) or Bash (~/.bash_profile).
First, I changed a few basic things in Vim like turning syntax highlighting on and turning the audible bell off because it can get quite irritating after a while. I also added a plugin from GitHub that allows the searching of files using the key combination <c-p> or CtrlP. For Bash, I customised my shell prompt by setting $PSI and using the tput and setaf commands to change the text colour. I also included some aliases using the alias command which can be useful to correct typos such as dc when you meant to write cd for example.
To ensure that my dotfiles have a backup I created a new folder called dotfiles in my home directory (using mkdir) and set up version control. I made dotfiles the current directory (cd) and made it into a git repository (using git init) and proceeded to move my dotfiles from the home directory into the new dotfiles folder (mv command). I then committed the files (using git commit). To keep the files in the repository updated I also added a symlink to sync my dotfiles directory with my home directory (using ln -s). I now have a new dotfiles directory on GitHub!
As a university student studying biochemistry, at a glance, there may not be many similarities between what I’m learning through this course and my studies.
However, the use of computing in biochemical research has actually become increasingly prevalent.
Many of my professors at Imperial College have discussed the use of computing in bioinformatics to compare different genetic codes which is now a whole field in itself. Also, it’s very beneficial to be able to create your own programmes which can make research in the lab easier and faster. Just looking on GitHub there are a lot of interesting repositories under the bioinformatics tag which has software for all kinds of projects from cell type identification to detection of somatic mutations.
Sneak peek of Maddie’s Zero One Journey Part 2
The next part of my blog series will cover version control and cryptography. I will be exploring the use of git as a version control system as well as my journey in experimenting with GPG and asymmetric cryptography to encrypt and decrypt messages!