Computing · does it appeal?
Can you say exactly what you mean?
Fourteen questions about software you already use — autocomplete, the queue for tickets, the password rules, the thing that breaks on results day. None of them are about careers, and none need any Maths beyond what you already have. What they have in common is that the interesting part is not what the machine does but what somebody had to decide before it could do anything at all.
Answers are still being checked. 0 of 14 answers are verified and shown below. Verified here means the answer has been checked against a specification, a standard or the documentation of the thing in question, and cites it. A lot of these have no single right answer at all — they are design decisions, where two systems you use every day chose differently and both were reasonable — so those stay questions however long this page is up. That is worth saying plainly, because this is the field where a confident wrong explanation is easiest to write and hardest to catch: it sounds exactly like the right one, and nothing on your screen contradicts it.
On your phone
How does autocomplete know the word before you have finished typing it?
It is not reading your mind and it is not looking the word up in a dictionary. Guess what it would need to have counted, and you have most of it.
Answer being checked against the primary text before it goes up.
What answering it involves. Prediction from what has happened before, which is the whole idea behind an enormous amount of modern software. Working out what would have to be counted, and whose typing it was counted from, gets you to a real question about your own phone that most adults have never asked.
Why does an app work offline for some things and not others?
You can read old messages on a train with no signal and you cannot send one. Both feel like the same app doing the same thing.
Answer being checked against the primary text before it goes up.
What answering it involves. What is on your device and what is somewhere else, which is the single most useful distinction in this field and is invisible until somebody points at it. Once you can see where a thing actually lives, half of what software does stops being mysterious and becomes a question about who has the only copy.
Why do you sometimes see two messages arrive in the wrong order?
They were sent in one order and shown in another. Nothing is broken, which is the part worth understanding.
Answer being checked against the primary text before it goes up.
What answering it involves. There is no single clock. Two things that happened on two devices have no guaranteed order until somebody decides one, and deciding it is a design choice with consequences. This is the idea that separates people who find distributed systems obvious from people who find them maddening, and you can meet it in a group chat.
Clearing the cache fixes it. What did you actually delete?
Everybody has been told to do this and almost nobody is told what it removes, or why removing it helps rather than losing something.
Answer being checked against the primary text before it goes up.
What answering it involves. A copy kept nearby to save fetching the real thing, and the price of keeping it: it can be out of date. Every fast system you use is making that trade somewhere, and recognising it in the wild — a stale price, an old profile picture — is a small permanent upgrade to how you read software.
Instructions and ambiguity
Write down how to make tea for someone who has never seen tea. Where do they go wrong?
Do it properly, hand it to somebody, and make them follow it exactly as written. It is funnier and more instructive than it sounds.
Answer being checked against the primary text before it goes up.
What answering it involves. Everything you left out because it was obvious. A machine has no obvious, so the skill being tested is noticing your own assumptions — and it is the skill, more than any amount of syntax, that decides whether programming feels satisfying or infuriating.
"Sort these names alphabetically." What do you do about capitals, accents, and one that starts with a number?
Alphabetical order is a thing everybody agrees on until you write down the rule and find three cases nobody agreed on at all.
Answer being checked against the primary text before it goes up.
What answering it involves. A rule that sounded complete was not, and somebody has to decide the leftovers. Real systems get this wrong constantly — names sorted so a whole country's surnames land in the wrong half of a list — and noticing the edge before it ships is most of what care means here.
What is the exact rule for a leap year, and why is it not simply every four years?
Most people know a rule. Fewer know the exception, and almost nobody knows the exception to the exception, which is the one that actually matters.
Answer being checked against the primary text before it goes up.
What answering it involves. A rule with layered exceptions, small enough to hold in your head, that has to be stated exactly or it is wrong on specific days. If writing it out carefully appeals, that reaction is the field. If it feels like pedantry, that is a real result — and this rule has broken real software on a real date more than once.
When lots of people use it
Two people buy the last ticket at the same instant. What should happen, and what usually does?
Everyone assumes somebody just gets there first. "At the same instant" is where the interesting version of this question lives.
Answer being checked against the primary text before it goes up.
What answering it involves. Correctness under simultaneity. Software that is perfectly correct for one person can be wrong for two, and the fix is not to be faster — it is to decide what "first" even means. This is the question that separates a program that works from a system that works.
Why do websites fall over at exactly the moment everybody wants them?
Results day, ticket release, a sale. The site was fine yesterday, and it is the same site.
Answer being checked against the primary text before it goes up.
What answering it involves. Load is a property of the system, not of the code. Everything has a limit somewhere and it is rarely where you would look first — and finding the one part that gives way, rather than making everything faster, is the shape of the whole job.
Your program works on ten names. Why might it be unusable on ten million?
Not ten thousand times slower. Possibly a great deal worse than that, and the reason is in what you wrote rather than in the computer.
Answer being checked against the primary text before it goes up.
What answering it involves. That how work grows with size is a property you can reason about before running anything. It is the one genuinely mathematical idea on this page, it needs no formula to meet, and it is the difference between guessing at performance and knowing.
Why is undo hard?
It is one of the most ordinary buttons on a screen, and building it properly is harder than building most of what it undoes.
Answer being checked against the primary text before it goes up.
What answering it involves. What has to be remembered, and for how long. Working out what a system must keep in order to go backwards forces you to notice everything it is quietly keeping already — and "what is being stored, and who can see it" is a question worth carrying out of this page and into the rest of your life.
Who can see what
A site makes you put a symbol in your password. Does that actually help?
The rule is everywhere and it is not obviously the rule that would help most. Work out what it is defending against and you can judge it yourself.
Answer being checked against the primary text before it goes up.
What answering it involves. Reasoning about an attacker rather than about a user — asking what somebody trying to break this would actually do, and whether the rule makes that harder. Security is mostly this move, and it applies well beyond software.
A website is hacked. Why does it matter that you used the same password somewhere else?
The other site was not hacked. It is still in trouble, and the reason is worth knowing before it happens rather than after.
Answer being checked against the primary text before it goes up.
What answering it involves. Consequences that cross a boundary. Systems that look separate are joined by the person using them, and tracing what an attacker gains from one place into another is exactly how anyone doing this work thinks.
How does a shop's website charge your card without ever knowing your card number?
It sounds impossible, or like a lie. It is neither, and the arrangement that makes it work is one of the more elegant things in ordinary software.
Answer being checked against the primary text before it goes up.
What answering it involves. Deliberately not being given something you do not need. Designing so that the risky information never arrives is a different move from guarding it carefully once it has, and it is the better one — which is a lesson about arrangements rather than about code.
What these have in common. Notice what these have in common. In almost every one, the hard part is not making something work. It is noticing the case you had not thought of — the second person, the empty list, the name that breaks the rule — and deciding what should happen then. Everything else is typing. If finding those cases feels like nitpicking rather than like the interesting bit, that is genuinely useful to know now rather than in your second year.
Whether it is you
| Worth a closer look if… | Probably not, if… |
|---|---|
|
|
Am I already late?
Almost certainly not, and the answer depends on where you are standing rather than on how much you have done.
| If you are in | Then |
|---|---|
| Class 10 | Nothing to prepare, and one belief worth correcting now. Computing is not closed to you if you do not take science. The BCA route generally asks for a Class 12 pass and names no subject at all, so Commerce and Arts students are eligible for it — check the exam pages, where the eligibility is quoted from the documents themselves. Mathematics still matters for the other half of this field, the B.Sc. and the data-heavy work, so take it if you can; but not taking it does not shut you out the way it does in engineering. |
| Class 11 | The cheapest possible test, and it costs nothing: try to build something small and finish it. Not a course, not a certificate — something you actually wanted to exist. Whether the stuck parts are interesting or merely miserable tells you more than any amount of reading, and unlike every other field on this site you can run that experiment today with a borrowed laptop. |
| Class 12 | Not late in the slightest, and this is the field where that is most true. Almost all the non-engineering doors here are decided on board marks or a common university test rather than on a dedicated entrance, so the boards are what you are already doing. If you are aiming at the four-year engineering route instead, that is the engineering page and it has its own exams and its own timing. |
Books, none of them preparation
The cheapest way to find out whether any of this interests you. None of these are preparation material, none will help you pass anything, and not one of them requires a computer to read.
| Book | Author | Why this one |
|---|---|---|
| Code: The Hidden Language of Computer Hardware and Software | Charles Petzold | Builds a computer from a torch, a wire and a battery, one honest step at a time, with nothing skipped. If a single book on this list makes the machine stop being magic, it is this one. |
| Algorithms to Live By | Brian Christian and Tom Griffiths | Computer science ideas applied to ordinary decisions — when to stop looking, how to sort a wardrobe. The best test on this list of whether the thinking appeals even if the machine does not, and it is readable well below Class 10. |
| The Pragmatic Programmer | Andrew Hunt and David Thomas | What the work is like as a craft rather than as a syllabus. Read it for the argument that most of the job is judgement, which is not how the subject is usually sold. |
| The Soul of a New Machine | Tracy Kidder | A team building a computer against an impossible deadline, written in 1981 and still the truest thing about what this work costs the people doing it. Read it for the half the industry does not advertise. |
| Weapons of Math Destruction | Cathy O'Neil | What goes wrong when software decides things about people — who gets a loan, who gets a job. It belongs on this list because this is the field most likely to hand a twenty-three-year-old that power without anybody mentioning it. |
| Hackers | Steven Levy | Where the culture came from, and useful for what it gets wrong as well as right: it is a portrait of a world that was much narrower than it thought it was. |
If that held your attention: where this field actually leads →
If you read these and started arguing with the question — but what if two people do it at once, what happens if the name has an apostrophe in it — that is worth paying attention to, and it is the whole aptitude. If you read them and felt nothing, that is just as useful and it cost you four minutes. Neither reaction is the right one.