Where notebooks stop
Almost every course teaches you inside a notebook. Almost every job eventually puts you on a machine that has no notebook, no graphical interface and no mouse: a server, a container, a continuous-integration runner. The gap between those two worlds ends more early careers than any missing algorithm.
The good news is that the gap is small and closes in a fortnight.
Twenty commands cover most of it
cd ls pwd cat less head tail grep find wc sort uniq cut sed awk chmod ssh scp curl tar, plus df and du when a disk fills and ps/kill when something will not stop.
The reason these are worth learning is that they compose. A single line answers a question that would otherwise be a twenty-minute script:
grep ERROR app.log | awk '{print $5}' | sort | uniq -c | sort -rn | headRead it right to left: find the error lines, take the fifth field, sort them together, count each distinct value, sort those counts descending, show the top ten. That is the most common diagnostic in operational work and it runs on a log file of any size that fits on disk.
Two habits make the shell survivable. Keep a plain text file of commands you had to look up: after two months you will stop consulting it, and the writing is what made that happen. And run history | grep <word> to find what you did last Tuesday, because you did not remember it either.
Environments, and why “it works on my machine”
Python’s default behaviour installs packages globally, so two projects fight over one version of a library and eventually somebody’s code stops running. The fix takes ten seconds:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
pip freeze > requirements.txtuv is a newer, much faster, free tool that does the same thing and is worth adopting. Whichever you use, the rule is that a project states its dependencies in a file that is committed, and a stranger can reproduce your environment from that file alone. If they cannot, your portfolio project does not run for the reviewer, and a project that does not run is not evidence.
Containers, in one page
A container packages your code with its operating-system dependencies so it behaves identically wherever it runs. A complete, useful Dockerfile:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "main.py"]Two commands run it: docker build -t myapp . then docker run myapp. That is most of what a junior needs. Docker Desktop is free for personal use and small companies; Podman and Colima are free alternatives with no licence conditions at all.
SSH, briefly
Generate a key once with ssh-keygen -t ed25519, put the public half on the server and on GitHub, and never type a password again. The private key never leaves your machine and never goes in a repository: a leaked key is an incident, and scanners find them within minutes of a public commit.
The free tier, and the bill that surprises people
You can do all of this at no cost. Cloud providers have free tiers; Oracle Cloud and Google Cloud both offer small always-free virtual machines, GitHub Actions gives free minutes on public repositories, and Colab and Kaggle give free GPU hours that are enough to train real models at small scale. A second-hand laptop running Linux, or WSL on Windows, is a complete environment.
The bills that catch people are not compute-hours spent doing work. They are resources that bill for existing:
- A managed database left running: a small one is roughly $15 to $60 a month, forever, whether or not anything connects to it.
- A NAT gateway, which many tutorials create silently: about $30 a month plus data charges.
- Egress (data leaving the cloud) charged per gigabyte, which is how a “small” export becomes a real number.
- A GPU instance you stopped using but did not terminate. At a few dollars an hour, a forgotten weekend is a few hundred dollars.
Two defences, both free and both taking five minutes. Set a billing alert and a budget on the day you create the account, before you create anything else. And prefer things that scale to zero (serverless functions, object storage, a container that runs on a schedule) over anything that runs continuously.
The limitation
None of this is intellectually difficult and all of it is unfamiliar, which is a worse problem, because unfamiliarity feels like inability. Expect two weeks of looking things up constantly. That is the normal cost, not a signal about you.
Every lesson here is open. Your progress is recorded once you pass the AI at Work exam.
Check your understanding
A learner follows a tutorial, deploys a small demo, uses it twice, and receives a $94 bill the next month despite almost no traffic. What is the most likely explanation?
Pick the one you would defend. Your answer stays private.
Stuck on something?Ask Rukmini, your AI tutor