Before you start
- The companion lesson The Biology a Coder Needs pairs well with this one, but is not required.
- Any term new? The Glossary has it.
Learning objectives
By the end of this lesson you will be able to: recognise the core computing vocabulary a biologist needs, understand where the analysis work actually happens, and make sense of common tools-and-setup words before you touch a keyboard.
The computing side feels like a wall mostly because of unfamiliar words, not because the ideas are hard. If you can follow a lab protocol, you can follow code. Here's the whole mental model, built from one analogy you already live by.
A script is a lab protocol
A script is just a list of precise steps, written down, that the computer follows exactly in order - exactly like a bench protocol. The difference: the computer never gets tired, never skips a step, and runs it on a million samples in seconds. # add reagent in code is just "add reagent" in a protocol.
The core vocabulary
| Code / script | A written set of exact instructions for the computer - your protocol, in a language the machine follows. |
| Programming language | The language you write instructions in. Python and R are the two you'll use - pick like you'd pick a lab technique for a job. |
| Run / execute | Telling the computer to actually carry out your script - pressing "go" on the protocol. |
| Variable | A labelled container for a value, like a tube with a name on it. gc = 41.2 stores 41.2 under the name gc. |
| Function | A reusable mini-protocol you can run any time with different inputs - like a standard assay you apply to any sample. |
| Loop | "Do this step for every item." Instead of pipetting 96 wells by hand, you write the instruction once and it repeats. |
Why loops are the moment it clicks
A genome has millions of letters; an experiment has thousands of genes. You will never process them by hand. A loop lets you describe an action once and have it applied to everything - the same leap as going from one manual reaction to a 384-well plate. This is where coding starts saving you real time.
Where the work happens
| Terminal / command line | A text-based way to give the computer direct instructions by typing. It looks bare, but it's just the "bench" most bioinformatics tools are operated from. |
| File / plain text | Your data lives in files. Most bioinformatics files are plain text - readable letters and numbers, not a locked format like a Word doc. You can open and inspect them directly. |
| File format | An agreed way of arranging data in a file (FASTA for sequences, CSV for tables). Like a standardized sample-labelling scheme everyone follows. |
| Notebook | A document (like Jupyter or Colab) that mixes code, results, and notes - your lab notebook, but the experiments are analyses that run right inside it. |
The tools-and-setup words
| Package / library | A pre-made toolkit someone else wrote that you install and reuse - like ordering a ready-made assay kit instead of making every reagent yourself. |
| Install | Adding a tool or package to your computer so you can use it. A one-time setup step. |
| Environment | A self-contained workspace holding a specific set of tools, so one project's setup never disturbs another's. Like keeping separate, labelled kits for separate experiments. |
| Bug / error | Something the computer couldn't do as written - usually a small mistake, not a disaster. The error message tells you where to look. Debugging is normal, constant, and not a sign of failure. |
| GitHub | An online home for code and projects - part backup, part portfolio, part shared lab notebook the world can see. Where you'll showcase finished work. |
The mindset shift that helps most
In the wet lab, a failed experiment can cost days and reagents. In code, "failure" is cheap - you run it, get an error, fix one line, run again, in seconds. So experiment freely. Breaking things costs nothing and teaches you fast. The red error text isn't judgment; it's just the computer telling you exactly what it needs.
You're ready for the keyboard
Scripts are protocols, functions are reusable assays, loops do a step to everything, the terminal is the bench, and packages are ready-made kits. That's the whole conceptual map. There's only one thing left to do in the Introduction - stop reading about code and write some. Next lesson, you'll run your very first lines of Python, right in your browser.
