Chapter 7 of 18

Movement 5 — Coding is how you learn to take a problem apart

Let me be honest about something, because you'll find out anyway and I'd rather you heard it here.

You're probably not going to write much code at work.

I asked this room on day one. Press one if you think you'll be typing code in your job. Press two if you think you won't. Most of the room pressed two, and I told them I agree with you.

You'll use it to write code. You'll use it to audit code. And most of the time that coding experience is what gives you the judgment to do the auditing. Typing isn't the job any more.

So why learn it? If you're never going to type it, why spend six months on it?

Two reasons, and the first one is unglamorous. You have to pass the interview, and the interview still has coding in it. The market is going to be full of people who refuse to learn coding, who refuse to have strong fundamentals, and who with a little bit of the tooling want to apply for the same role you're applying for. To filter out the unqualified ones, they'll most likely still ask for a coding challenge. That challenge isn't about typing. It's the cheapest test anybody has for whether you understand what you're describing.

The second reason has nothing to do with getting a job, and it's the one that actually matters.

Coding is the best way of learning to solve a problem.

Genuinely. You have a big problem. You decompose the big problem. You have small libraries. Inside the libraries, small classes. Inside the classes, methods, and all of them are solving different problems. Then you connect them until they add up to the big thing.

Do that for six months and something moves in your head. You're building algorithm in your mind. You start doing it to problems that aren't software. You look for the seam. You stop being frightened of things that are simply large.

That's what you're actually buying. The syntax is only how it gets delivered.

Think of a problem in your life right now that feels too big. Can you name its three parts?

If you named them, you already have the instinct and this program will sharpen it. If you couldn't, that's the thing arriving, and it arrives through Java whether or not you ever type Java again after the interview.