Hello again! I got your message last week, and was excited to hear that you’re thinking of studying programming — maybe even making a career out of it. I can just barely remember my own first steps, when I stared up at the immense wall of theory, languages, and design patterns. There were layers and layers to peel back, like Feynman’s onion. Back then the layers were the databases, networking, and desktop front-end that made a client-server application. Today it’s the cloud on one side and a tangle of JavaScript frameworks on the other. (The more things change, the more they stay the same!)

The craft of computer programming has been very good to me. I don’t have all the answers — and some of my wisdom is probably just foolish luck in disguise. But I’ve learned a few lessons, some more painfully than others. Maybe some of it can be useful to you now.

Here’s what I know to be true.

Time is on your side

When you’re a beginner, you often look at the vast world of computer science and wonder how you’ll ever develop true, deep expertise. Yes, you can learn, but how can anyone learn everything in a field that’s growing so relentlessly, expanding with new ideas day by day?

What you don’t realize yet is that time is not on obstacle, but an equalizer. Senior programmers are also looking at new developments and today’s trend-setting languages. They’re wondering how they can keep up with new technology, how they can prevent their best skills from becoming obsolete, and what to do when their hard-won knowledge becomes stale.

Every programmer who still cares about the craft is juggling current-day work with the need to acquire new skills.

#education #personal-development #careers #programming #data science

Letter to a Young Programmer
1.10 GEEK