step 31 / 32 · 5 min
What gets better after the first job
The gap between a junior and a senior engineer is not typing speed or knowing more syntax. It is worth knowing what actually changes.
The shift
| Junior | Senior |
|---|---|
| Given a task, completes it | Given a problem, finds the task |
| Writes code that works | Writes code that stays workable |
| Asks how | Asks whether it should be built |
| Optimises their own output | Improves the team's |
| Learns the tools | Knows the trade behind each one |
Notice that most of the right column is about scope and judgement rather than about knowledge.
What compounds
Fundamentals. Data structures, how a database behaves, how a network behaves, how a system fails. These have been useful for forty years and will be useful for forty more.
Debugging. The one skill that transfers to every language, framework and system, including ones that do not exist yet.
Writing. Design documents, incident reviews, pull request descriptions. An engineer who can explain a trade in writing has influence beyond the code they personally write.
Reading code. Most work is in code somebody else wrote.
What does not
The specific framework, the specific cloud provider, the specific build tool. Worth learning well enough to be effective and not worth an identity. They will be replaced, and someone whose skill was the framework is starting again while someone whose skill was the fundamentals is reading a new manual.
On learning
Depth beats breadth early. Knowing one language well teaches you what to look for in the next; knowing six shallowly teaches you six syntaxes.
Build something complete rather than following tutorials. A tutorial hands you the decisions, which are the part worth practising. A finished project, including the deployment and the unglamorous parts, teaches more than ten half finished ones.
Interviews, briefly
Placement rounds test a narrow slice: data structures, a few standard patterns, some system design, and whether you can think out loud while being watched.
That slice is trainable and is not the same as the job, which is worth knowing in both directions. Practise it deliberately, and do not conclude from a rejection that you cannot do the work, or from an offer that you are finished learning.
A reasonable first year
Ship something small in week one. Ask far more than feels comfortable. Read the code around you. Write down what confused you. Volunteer for the unglamorous task, because that is where the system's real behaviour is visible. Take on call seriously, because nothing teaches how a system actually works like being responsible when it does not.