Hacker News new | ask | show | jobs
by hanginghyena 3548 days ago
Another old geezer here (43!); had a good run in my twenties and wound up in technical management a few years ago.

A couple of tips:

- The "hands on" technical skills that launched your career have capped (top salary) and declining value

- If you take time to learn / think about how the underlying technology works (vs. just cut / paste / edit code), you can master related new technologies faster than the average bear.

- It is also worth noting that technical challenges tend to repeat every couple of generations; the software developer community is operating within the same set of fundamental constraints (coder time, CPU speed, network, data, etc.), the main thing that changes is which constraint matters. And they repeat: at some point, CPU will be the constraint again and all ninja coder tricks of my twenties will matter again.

- Architecture, process design, and people herding skills only grow with time; 80% of my value as a manager consists of making unnecessary work go away (without drama). I am much better at using these skills at 42 than I was at 24.

- If you ever see an opportunity to build a side project that could turn into a business, take it. Even if you don't replace your income, this gives you additional control over the direction of your late career and skills you acquire. Note that I said side project and not startup; the intent to get more control over your direction without walking away from your day job and associated income / benefits.

1 comments

I'm 38, and I now find myself being coaxed into management. I was away from the Valley for about a decade and returned 4 years ago. My career has basically continued from where I left it despite not knowing most of the hot technologies when I returned. I simply learned them, and avoided the fads. Experience definitely helps you sidestep cargo cult development, spinning your wheels and wasting company time.

I've worked with many junior devs over the years and I can see two axes along which engineers develop: those who know/learn actual computer science and software design (the math, software patterns, etc.) and those who don't; those who learn new technologies, and those who don't. If you're in both of the "don't" categories, your career stalls after about 4-5 years.

Learning processes rather than technologies is very valuable, because processes produce things. Technologies are just the building blocks. I've seen too many developers who are one-trick ponies. They build the same systems over and over, only changing what technologies they use. "Sure, I can build you an MVC content management system in PHP!" -> "Sure, I can build you an MVC CMS in Rails!" -> "Sure, I can build you an MVC CMS in Node.js!" Those developers don't age well.

Also, like you mentioned, I highly recommend trying your hand at entrepreneurship. If you have enough process skills, you can eventually handle designing and pushing a product. You might feel uncomfortable moving away from your vim window into the meeting room, but that's where the greater rewards are. And those 20-somethings are going to help you do that.

"You might feel uncomfortable moving away from your vim window into the meeting room, but that's where the greater rewards are"

Greater financial rewards, maybe. But not necessarily greater intellectual or emotional rewards. Not everyone's cut out for or enjoys management or running a business.

There are people who just love getting their hands dirty in tech and hate meetings, power point presentations, kissing up to and hobnobbing with upper management, making up budgets and writing reports, herding cats, giving pep talks, dealing with HR issues, and the rest of the things that managers often have to do to be "successful".

I'm happiest when I can just go nose down working on interesting technical problems, when I'm collaborating with other engineers on the same, or mentoring junior engineers, with all the corporate BS taken care of by my manager.

"Not everyone's cut out for or enjoys management or running a business."

That type of thinking will do you in. If you can take technical resources and produce a functioning system, then you're cut out for management. The people problems you'll encounter are largely irrelevant. Learning your charges' quirks, dislikes and styles is like learning a new language or API.

And if you believe in Alan Turing's compelling philosophical argument that people are just fleshbound Universal Turing Machines, then it's easy to carry over from development to management. You just end up putting a fleshy, slower, intelligent computational layer between you and the dumb, fast calculators you normally solve problems with. Program the people to program the machines. Abstraction is a core concept in development.

At some point you'll see that you can create bigger things by commanding a team or department. A single person rarely ever makes a huge contribution on their own.