Hacker News new | past | comments | ask | show | jobs | submit login

Some people thrive on "solving puzzles", which is sort of what engineering is.

For better or worse, there are an infinite number of puzzles to solve.




The troubling thing, at least for me, is that as I get older I realize that most puzzles one encounters as a software engineer are related to non-problems.

When I was fresh out of college I would jump at any such puzzle that was presented to me and would not sleep until I had solved it. I never stopped to think about the larger picture where that puzzle was embedded in, and if it actually required solving or if a more pragmatic solution was at hand and would lead to the same outcome.

Now that I have some years of experience in the industry, I realize that 80% of the "puzzles" I face at work are bullshit. They are usually complicated situations generated by organic and uncontrolled growth in codebase complexity that lead to horrible scenarios requiring a lot of brain power to solve. The thing is, if things had been more properly thought out, those situations would have not occurred in the first place, because the code would have a lot more sound architecture. But because it was allowed to grow without thought and refactoring, it now offers many "puzzles" that the younger people in the team don't even question at a more fundamental level.

Sorry for the cynicism but it's honestly the way I feel about most of the work I do these days. Too much in terms of stability, maintainability and soundness is sacrificed for performance and for pushing things out the door asap.


After the first two paragraphs i was deeply convinced that you were questioning the products those puzzles were part of, not just the way those puzzles got in there.

The cynic in me likes to widen the scope one step further, then those figurative 80% are the fraction of software created that is basically "twitter for pets" (or some transitive dependency thereof, technologically or via business). It's easy to focus on one of the many exciting puzzles hidden inside a "twitter for pets", but if you take a step back (and yes, that's one of the perils of age), well, twitter for pets.


> They are usually complicated situations generated by organic and uncontrolled growth in codebase complexity that lead to horrible scenarios requiring a lot of brain power to solve.

Agreed. The deeper I get into the software field, the more it feels like choreography.


Every line of code added needs to be maintained and makes adding future code more difficult. As our job is to build software, we are too eager to increase technical debt without knowing it. Always ask "how can we avoid building it?"

When you realize it really does need to be built and it is the highest priority, think about how it can be built while keeping cruft down. You can still be fast while keeping the codebase clean but it requires constant refactoring and review and a common understanding between team members.


That's pretty much my personal approach to writing code (with special devotion to the "how can we avoid building it" part). I wish everyone I worked with had the same attitude.


Yes, I'm not old but I am easily distracted when I'm having to solve problems created by the imperfection of human minds and aren't part of "the universe", by nature.

Of course, as I type this, I come to the shaking realisation that Humans are also a component of the Universe. I need to reevaluate my emotions.


> Now that I have some years of experience in the industry, I realize that 80% of the "puzzles" I face at work are bullshit.

Amen, brother. Just four years of work experience here, but I can totally confirm that. The actual product is built in a week, then it's multiple months of "this department over there needs a special case implemented pronto".


I've been having a lot of frustrating conversations with my father the last several months around these issues. He is far from an intellectual and holds the 'protestant work ethic' in high regard. He is retiring in the next few months and work to him has always been this crappy thing he does every day to allow him do the things he loves (gardening, farming, camping, construction projects on his property).

I have never looked at work that way and I even quit my last job partially due to moral qualms I had helping a company I didn't believe in. He seems to think all I want is money, but that is the third priority for me following challenging work and contributing to a company that makes the world better. My father has never been all about money, but he never would have gone to work for anything but money.

He was even offered to interview for his boss's boss's job last year (C-suite in a conglomerate), but turned them down because he was over the rat race. Anecdotally, they told him they would 'overlook his lack of an MBA since he had 30+ years of experience' to which he replied 'that's good, since I don't even have an undergraduate degree.' So I suppose it's never been about money, so much as what the money enables him to do outside of work.

He continues to urge me to take a job, any job and just be happy with what any manager does to me as long as I get a paycheck. He was baffled when I quit a decent job to be unemployed. I can see his points and I often wonder if I am doing it wrong. He purchased a home in his late 20's after getting married, had 5 kids, very involved with his church, and has always had personal projects he spent his weekends working on. Even if I didn't go to college, those things would still be out of reach for me.

I wonder if my generation has just been instilled with different values or have we just been prevented from having the fruits of our values (homes, kids, etc)? Are we (I) just trying to fill the void because the truly wonderful things in life are more out of reach than they were for the Boomers? I really wonder how my father would fare if he was born in the same generation as me.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: