Hacker News new | ask | show | jobs
by ef4 4859 days ago
Your attitude is common, but mistaken. It's another version of "the grass is always greener". Whether you're working on a self-driving car or implementing Microsoft Word 2014, the fundamentally hard parts are actually the same.

The self-driving car might sound sexier if you've never done something like that, but once you've learned the basics of how control loops work and the quirks of realtime operating systems, that's about it for novelty. What you'll actually spend your time on is the same old stuff: managing complexity. Debugging, testing, designing APIs, designing user interfaces, integrating disparate module, etc. You may actually find that it's more soul-crushing than a basic CRUD app, because in a safety critical project you'll probably have less autonomy, more oversight/bureaucracy, and a much slower pace.

The fundamentally hard part of any software project is complexity. It's easy to let even the simplest project spiral into unmanageable complexity, and it's deeply challenging work to prevent that. That's the meat of what any good software engineer does.

There's a better way to word your original question: in what kind of organization should I be writing software? That has a far bigger impact than the problem domain on your happiness, level of challenge, and autonomy.

2 comments

I think there is an exception to this for people that work on programming languages -- there the best programs written.

In my spare time I have never had more fun programming then writing interpreters for scheme, prolog, and smalltalk. It would be amazing to get paid to work on tomorrows languages!

This is not really true.