Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"After a while, more and more, you’ll find yourself in moments of awe, stunned by the size and fragility of it all; the mountains of work and talent and creativity and foresight and intelligence and luck that went into it. And you’ll reach for the word “magic” because you won’t know how else to describe it and then you lean back and smile, wondering how someone could not."

I guess I wish I felt like that about programming. But more and more, I feel like this:

"You are an expert in all these technologies, and that’s a good thing, because that expertise let you spend only six hours figuring out what went wrong, as opposed to losing your job. You now have one extra little fact to tuck away in the millions of little facts you have to memorize because so many of the programs you depend on are written by dicks and idiots."

-- https://www.stilldrinking.org/programming-sucks



The longer I am in this profession (and it's been over 20 years) the less I see my peers as "dicks and idiots" but more as victims of the same broken game. I work with very smart people, to be honest. It's the technology and the employers and the culture of development that's the problem.

Retiring sounds good right about now.


Retiring sounds good right about now.

I'm with you. If I had another skill, I'd give up computers entirely. Maybe have a smartphone, and that's it. But only for limited use.

I wish I could build things with my hands, or play an instrument, or just be good at something else, and let the tech world pass me by. I used to love technology because it was fun and interesting. It's no longer either of those things.


For almost exactly the same reasons as discussed above, I'm in the process of trying to move from software development to medicine. I'm currently a pre-hospital medical practitioner and work part-time in that field. My pay averages over the last year averages between 1/20th to 1/25th (0.05 to 0.04 times) my hourly pay as a software development consultant.

I'm now trying to decide whether I should attempt a medical degree to become a doctor. It will take ~7 years, a lot of unpaid study and work during that time, and after 10 years, if I'm lucky enough to become a consultant hospital doctor, I'll still be paid less than I am now, both per hour and per annum. As I'm in my late 30's with a mortgage and family who are dependent on me, it's a big, big commitment and risk to take.

Still, I vastly prefer my time spent with my pre-hospital medical colleagues and with patients to that which I spend working in software. I get an incredible amount of "life satisfaction", or whatever you might call the sentiment, for this part of my professional life - the only other time that comes close is my time in the military.


>I'm now trying to decide whether I should attempt a medical degree to become a doctor

Have you reviewed how much sleep deprivation would be involved in the path towards being a doctor? It differs depending on the path, but middle-age and lack of sleep may be very hard (source: have multiple surgeons in my near circle). But it is very specific to the path you pick, of course.

I am currently trying to see if I can find a niche in healthcare, away from my software manager job, but am taking it slowly. For me, the 7 years of school are impossible, so no doctor for me. This comment is not meant to be in any way discouraging, and it may be presumptuous of me, as you have perhaps spoken to multiple doctors in the field interesting to you.

The feeling of tipping the needle towards keeping someone alive is incomparable, best wishes with your path transition, whatever it ends up being.


> Have you reviewed how much sleep deprivation would be involved in the path towards being a doctor? It differs depending on the path, but middle-age and lack of sleep may be very hard (source: have multiple surgeons in my near circle). But it is very specific to the path you pick, of course.

Yes, I have. My first career (maybe employment path) was as an enlisted soldier. It took some modification of sleeping patterns to go from probably the laziest teenager you can imagine to an NCO at age 18.

In Ireland, where I live, all junior doctors work absurd hours and call shifts. Theoretically, they all opt out of the EU working time directive. As a long-standing proponent of labour rights and as one of the few prospective doctors who may not require a salary to fund legal action, it would be my intention to go through the (even without free-out-of-hours-labour) ridiculously exploitative process on my own, and fight for EU-backed terms for myself as a test-case for my future colleagues.

Of course, even many doctors consider the "crucible of fire" an essential part of becoming a doctor, so it would be an uphill battle that would only affect a precedent in one tiny country (Ireland).

I have no interest in becoming a martyr. I also have no interest in becoming a doctor. I have an interest in being able to provide the highest level of pre-hospital trauma and medical care to patients in distress.

In Ireland, that means becoming a doctor. Unfortunately, becoming a doctor who works reasonable hours might require becoming a martyr.

>I am currently trying to see if I can find a niche in healthcare, away from my software manager job, but am taking it slowly. For me, the 7 years of school are impossible, so no doctor for me. This comment is not meant to be in any way discouraging, and it may be presumptuous of me, as you have perhaps spoken to multiple doctors in the field interesting to you.

I didn't in any way read your comment as contradictory. In fact, this is almost exactly how I how felt. At some point in the last five years, I became aware that all my military first aid certs were out of date, and began my training as an EMT. Once I passed all the tests (which involved a lot more study and testing than any CS degree exam I ever took), I began to volunteer.

As an EMT, which at least in Ireland is 1/100th of a medicine degree, I became involved in more critical care cases in my first year than a junior doctor might see. Due to the SAR nature of my role, there is unfortunately a high likelihood of exposure to death, but every experience is a learning experience.

However, if your goal is to help people in acute distress, then becoming an EMT (or even lessor qualification) who can act as an immediate cardiac first responder is a great option.

> The feeling of tipping the needle towards keeping someone alive is incomparable, best wishes with your path transition, whatever it ends up being.

This is such a truism that I feel huge parts of the healthcare system relies on it. It's certainly true for me. I honestly feel it would be true for many others if they could see the direct benefit of their efforts.

I am aware that this is an absurdly long and rambling response to your comment - I reckon that I’m probably struggling in the same position as you. If you want to DM me, please do - I’m very open to feedback.


I enjoyed reading your comment, contemplating over our similarities and differences. I also got some experience as an EMT, and a military medic before that.

My latest foray before the current re-attempt, I was only able to secure part-time EMT positions, (volunteer with pay), but to get to a position with a regular schedule that would fit my other obligations would require going to more school than I could do at the time.

Whenever one talks about medicine / patient care with fellow practitioners, it is also fascinating to note how different we all are and that the field can accommodate many, of those willing to pay the price.

EMT to the general populace was not something for me, I found dealing with families in distress more emotionally draining than any unconscious patient, regardless of their state. So what would work for me, it appears, is either work removed from patient family interaction, or medical systems work, whatever it may be (innovation, tech collaboration with surgeons, etc. They are starting to use 3d modeling side-by-side during surgery now, etc)

Yes, the family is probably in the worst stress of their life, and, if you have the luxury, one aims to include them in your care protocol, attempting to at least assess their level of distress so they don't suicide or collapse in the next 24 hours, but you also have a huge ticking clock for the primary patient...


Respect. You are not one to shy away from tough decisions.


Why are we pretending they are not gonna all be jacked up on Adderall?


Because real life isn't like a YouTube video.


You think real life is not full of a bunch of Adderral/Vyvanse abusers in these knowledge industries?


Users, not abusers


I’m thinking of going back to school for Biology, but not sure. Have been thinking about it for a few years (getting older, seeing people around falling ill, and now the pandemic). Ultimately in Bioinformatics or Genomics. At least I can still utilize my technology knowledge than start from 0.

Also, the pay is less than a normal software developer.


I am extremely empathetic with you on the decision you have to make.

I am well aware that software developers on the whole have much better than average remuneration, so it's understandable that positions in other fields will attract lesser pay. However, another point which I didn't labour above (because I'm not sure if it's universal or in my own country only) is that student and junior doctors are expected to work absurd hours, often double the 48 hour per average week limit set by the EU Working Time Directive.

I'm currently (as in right now taking a break from) studying for the HPAT standardised test in my country in preparation for applying for medicine in the coming academic year. Although it's not particularly complex, I'm aware that if I had spent the time that I dedicated to my EMT qualification and now the HPAT, I probably could have added hundreds of thousands to my annual income as opposed to a decade of ~€15 ph labour.

This isn't so much a reply to you at this point as a lament about medical care is undervalued. I'm a competent software developer at best.


Larger bioinformatics groups often hire software developers with no biology credentials (just interest in the area)

Check out the uni job boards.


Yes thats true. You don’t need a degree to work in a field - one of the amazing perks of being a software developer


what are some of the more promising biotech companies? most of what I've seen is genomics with CRUD apps, sloppy python code, and untidy excel sheets.


I know it's the biggest cliche in the world, but the grass isn't always greener on the other side. Lots of musicians wish they had a skill that let them sit at a desk all day and get a stable paycheck.

Not saying you have to keep working in tech forever, but I don't think it's objectively stopped being fun and interesting.


I think the “trick” is to find a fulfilling non computer based hobby


I agree. I don't do side projects, I do BJJ and ride motorcycles. Those things keep me from getting burned out on coding.


My rule about side projects is that I only work on them until they stop being fun. I'm ok using my free time to try out a new language or something, but once I'm tracking down bugs I just stop. I'm not doing that for free.


Will trading work?


Absolutely. Every friend I talk to, from central bankers to dramaturgs, has regrets about the career they chose. It generally breaks down into where they are on the spectrum from (a) they wish their job was more creative to (b) they wish they had more money to live comfortably. I know almost no-one who is content that they've found a happy medium, and the few that do have done so through blind luck.


An alternate perspective to this is. The great line of thought, that you are meant to 'follow your passion' and discover your true calling. There is a job mean for you and you just need to find it.

I disagree with this and feel this thinking makes peoples lives miserable thinking they're somehow wasting their lives and makes people take plunges in life that they later regret.

I feel there is space for an attitude that, to learn a craft you need to toil and master it with deep dedication and practice. Mastery, will bring with it naturally that joy that we seek.

I think if people consider their craft as bigger than themselves, with an attitude of humility and learning they will get the happiness and satisfaction of building things. Rather than seeking a job that's somehow obliged to give you that happiness juice..


There's a blog post from a CS Professor that I stumbled across a bit ago - Find The Hard Work You're Willing To Do - http://www.cs.uni.edu/%7Ewallingf/blog/archives/monthly/2018...

Its short, only a few short paragraphs - but it has one key piece that I've found myself oft quoting to people:

> Maybe this is what people mean when they tell us to "find our passion", but that phrase seems pretty abstract to me. Maybe instead we should encourage people to find the hard problems they like to work on. Which problems do you want to keep working on, even when they turn out to be harder than you expected? Which kinds of frustration do you enjoy, or at least are willing to endure while you figure things out? Answers to these very practical questions might help you find a place where you can build an interesting and rewarding life.

> I realize that "Find your passion" makes for a more compelling motivational poster than "What hard problems do you enjoy working on?" (and even that's a lot better than "What kind of pain are you willing to endure?"), but it might give some people a more realistic way to approach finding their life's work.

--

I enjoy software development - and I do so because I enjoy solving those problems. To me, software development is like being paid to solve sudoku puzzles all day long (and yes, I watch cracking the cryptic from time to time)... well, at least when I'm not in meetings.

One of the important skills that I now realize that the dreaded math classes that I disliked (integrations and eigenvectors - ugh) was about the skill of continuing to solve the problem rather than giving up (and searching for the answer). Yes, there's a place for people who go to the back of the book or Stack Overflow for the solution - but many haven't learned the hard skill of continuing to solve the problem when its not easy.


This resonates and I would add, on the theme of managing complexity higher up in this sub thread, it’s rewarding to reduce entropy locally. Like, yes the complexity is overwhelming and a significant, even singular challenge — and also the individuals in the weeds have an opportunity to use creative means to subdue it to degree that is material to the sustainable success of their team, group, department, start up, etc..


Great link. As someone who burned out on a first career for exactly the reason stated, this is advice that I wish I’d received when younger, and the advice I’ll give my kids when they’re old enough.

Trying to progress in your chosen craft when you find the actual challenge to be sheer tedium is deeply demoralising and can affect other aspects of your life. In my case it lead to feelings of helplessness and pointlessness.

Such a great link - states the problem succinctly and provides an excellent heuristic. Thanks for sharing.


I also try to look at software development as some sort of brain jogging or solving puzzles because I actually tend to neither care about the actual product nor do I care for hyped up new technology.


That link deserves a top-level post.


I've tossed it in the submit page. It was submitted once before, but didn't gain any traction then.

As an aside, it is interesting looking at the history of other submissions from the same author - https://news.ycombinator.com/from?site=uni.edu


I gave it an updoot, so here's hoping for better this time.


Could not agree more! Same goes for marriage actually!

Thinking that life would have been better with someone else, is just an escape for the mind which makes people miserable!

The secret is to roll up your sleeves, and put in the work!


True but beware, sometimes no matter how much is put into it’s simply a bad match. Also struggling with a bad match is a learning experience in humility but one is not to force themselves for a lifetime in a situation they don’t enjoy at all.


These ideas are from the book "be so good they can't ignore you" cal newport


If you haven't watched Soul yet this is essentially the plot.


It's not that I have regret--I'm ridiculously well paid compared to other laborers, even if I'm still underpaid compared to the value I deliver--it's that I just can't stand the personalities and practices in this field, and I'm still in the (b) side of that spectrum.

Though that will change soon thanks to a fantastic liquidity event.

I'm looking forward to leaving this industry in a couple of months and living comfortably on my low- to mid-seven figure exit.


Yes, and I think the problem is more: "What I am doing sucks the soul out of my life so bad that I'd be willing to do anything else."


This is true. One of the best musicians I know. A trained classical guitarist with decades of professional playing.

Just became a real estate agent.


Play with electronics. Do embedded. Those go strongly together. Maybe you'll rediscover the love you had 20 years ago. Instead of giving up on the field do the opposite and go down the rabbit hole, maybe you'll like it there instead.


A lot of people seem to just create YouTube videos of their woodworking skills. Building drawers, cabinets, anything. They just drone away at it, but because it’s so visual, and you get a cacophony of random noises, that it makes for a good YouTube candidate.

Maybe you can segue into that?

Or maybe you can build and test drones. And the noise from the spinning propellers adds to the mystique of robotics development.


Peopleware, Mythical Man Month, Five Dysfunctions of a Team, and similar classic texts were all written decades ago.

It's been over forty years and many organisations haven't learned a damn thing from it. I don't blame developers for it, there are no dicks and idiots involved here.

Read one of those books now and it will still feel like an epiphany.


You are very correct.

I think they all have weak spots but any one of those will indeed illuminate one on how broken pretty much every place is. I’d like to try working at bridgewater where there are less games played.

One thing I’ve noticed is pretty much nowhere wants to acknowledge and act on employees emotions (for better or worse).

I love this comment https://news.ycombinator.com/item?id=16603929

And this article is pretty good:

http://hbswk.hbs.edu/archive/5289.html


> victims of the same broken game. I work with very smart people, to be honest.

Couldn't agree more. I'm an SDE1.5 at best, working with a guy that's probably a 3.5. Writes code that's way over my head sometimes, and always well-tested and elegant.

Lately I've been helping him by debugging issues in eg tsconfig and various JS build fuckery, and it's been both a relief and a surprise that even really brilliant people struggle with a lot of the same stuff I do. It's not (just) that I'm stupid and unintuitive – the tools are too, even for experienced engineers.


Of course they are. They are written by people and often become standard because of good marketing instead of merit.

However, I still find satisfaction in learning new things, trying to be better each day, overcoming new and more challenging problems and solving riddles in a nicer and more elegant way. I fail in all these things, too, of course - but it does give me a sense of purpose. And I don't appreciate any tool that comes my way, I'm picky that way. I love Python for its stdlib, React for its declarative nature, C for its simplicity... and avoid dealing with the JS build system of the month as much as I can. Enough to understand, but I try not to lose too much time and mental energy on them.

That said, if I didn't enjoy programming, I would be happy to move to management or even leave the industry to become a carpenter. I think that as long as you do something meaningful and also help other people (so that you can live off it), it doesn't matter much what that thing is.


> That said, if I didn't enjoy programming, I would be happy to move to management

would you go for project management in particular or are there other paths?


I've never worked at a company which took titles seriously, let alone fractional title levels; what on earth do those mean?


I’m 20 years in as well... I think it’s still fun... it’s just a game of fixing things... the other game about how people interact is not as fun but still kinda interesting... game on old friend


"it’s just a game of fixing things"

25+ years in, I get little joy/fun from constantly 'fixing things' that shouldn't have needed fixing (or nearly as much fixing) had people planned ahead, or communicated, or tested, or just listened to the people they'd hired that do these things (plan/communicate/test/etc).


35+ years in and I am grateful every day that I do what I love. It is fun to make things tick.


> Retiring sounds good right about now.

My personal plan, instead of retiring, is to work on inventing solutions to the issues plaguing large and complex software projects. One of my primary sub-goals under this mission, is to create a new programming language that'll handle complexity excellently, while also making it hard for a programmer to write bugs in it (strong static type system, deep static analysis, thorough linting, some kind of automatic proofing or verification, paradigms that make writing bugs less likely, paradigms that handle modularization and complexity gracefully, etc).

Overall, when there are big problems in the world (poverty, human rights abuses, climate change, bad software), I want to try to use my skills and abilities toward solving those problems, rather throwing my hands in the air, and giving into hopelessness.


>> create a new programming language

The problems with software engineering aren't technical. They are organizational, political, and cultural.


with respect i think it's a combination. business demands value delivery and features on a constant basis, and programmers are constantly layering crap over crap in order to deliver. nobody stops and says "hey, wait a second - let's pause, and figure out how we're going to invest now to make the changes you're asking for easier in the future." programmers need to learn to identify when this is happening (a technical skill) and demand change, and product needs to learn to listen and understand the consequences of not heeding this advice. because after 5 - 10 years of 100 different people working on a given system, the complexity becomes unmanageable, and the business grinds to a halt. and then heads start to roll. and yet the people demanding the new features now are never going to have suffer the consequences, because they'll be off to another venture in 5 - 10 years.


That's exactly right in some cases.

You are describing one set of organizational and cultural problems with software engineering that can only be solved through a cultural and political approach

Other organizations and cultures have different sets of problems.


Agreed. A new language will not solve garbage in, garbage out problems. A lot of times even when a BA tries to untangle the mess of business practices by carefully documenting it and proving that a better way exists, some stakeholders can still find it challenging adapting to a well intended change.


How so? The job situation for good developers has never been better. We can make salaries that would have seemed unthinkable two decades ago while working from home and doing something we enjoy.


This has not been my experience. It seems that it's a young person's game, and us older folks are not particularly encouraged to participate. Frankly, I've been stunned by the way in which I was treated, in the short period of time I spent looking for work, after leaving my last company.

Thankfully, I am not required to work, and have been having the best time I could imagine, since giving up on working for others. Instead, I work with people for free, on projects that I think are constructive and give back to society.

I am working from home, doing something that I enjoy tremendously. I'm doing the best work of my life. I just got done refactoring a fairly large backend that I wrote a couple of years ago, and am actually thrilled at the quality (and quantity) of my work. It's driving the application that I'm developing. I wasn't satisfied with some of the popular offerings, and had already written the backend as an exercise, so I used that, instead. It just needed a bit of tweaking to fit the new application.

I love programming and system design. I'm really good at it. I write code every single day of my life (My GH profile is solid green, and it's not "gamed"[0]).

It's just that I found others are not interested in working with me. It hurt, as I had spent my entire career, working on teams, but I rubbed some dirt on it and walked it off. In the aggregate, I'm actually glad that I went through that.

[0] https://github.com/ChrisMarshallNY#github-stuff


I think it's more hostile than you imagine. I'm quite young and can't even breaj into the industry with a job. I also am not bad. I do well in my interviews (I can feel it and they tell me too), I work on a variety of things and have side projects, I've done well at an internship, etc. It's a mess right now. I'm far from the only one my age struggling this way.

Had I not tried the self employment route I'd probably have starved to death or had to work at a gas station and then starved. I wasn't really ready for it either but that was the option. I live and breath programming and absolutely love it. I have since I was in my early teens. At this point though it's looking more and more like I'll have to do something else to get by. I actually always did want to be able to work on my own projects, but if I have to work in other fields then that will likely be the end of it. I won't be able to make enough to do anything but work.

I think it's just a hostile field in general at this point.


Man, I really feel for you. I am at the other end of the meat grinder, and am fortunate enough to have choices.

The industry is crazy competitive, right now. This is because of all the money to be made.

This has been both a blessing, and a curse.

One of the big reasons that I am not in a hurry to shack up with some company, is that it can easily make a joy into a horror show.

I would suggest that you learn discipline and structure, just on principle (since the industry doesn’t seem to value it). At least, you will be happy with the work you do, and that is worth more than you can imagine.


Companies look for expertise in older software engineers.

They want senior level to help them maintain legacy systems or lead the upgrade to latest tech stack.

If backend is your specialty, market oneself as expert in backed solutions using latest stack. The fundamental CS principles never change. Learn the basics of cloud, containers, orchestration, micro services, and inform recruiters about experiences delivering solutions in latest stack.

The recruiters will be rushing to your profile and demanding interview slots.

Good luck.


Actually, frontend is my strength. I've written (and shipped) dozens of apps. I'm quite good at "closing" the app development process. I've been shipping (as opposed to just "coding") applications for over thirty years.

The backend was just a more challenging project. I won't go into all the reasons that I wrote it, but it works a charm. A dedicated backend engineer could probably do better (actually a dedicated backend team. I'm fairly productive). I'm just glad I have a use for it. I was assuming it would never be used. I wrote it on a lark. Took seven months, but it was fun. I do stuff like that. A number of years ago, I taught myself to program Android, but decided I didn't like it, and never followed through.

As far as recruiters...They do rush to my profile. I have a lot of nice buzzwords.

As soon as they find out how old I am, though, the call suddenly has "connection problems," and I never hear from them again.

I've taken to making sure that my age is clear upfront, just to save time. It's amusing how quickly they start discouraging me. They start by lowballing me, and when I make it clear that I would have no problem working for low wages (I do it for fun, and I don't really need the work), they start trying to find other reasons I wouldn't want the job.

Like I said, I bailed on the rat race. It was just making me grumpy.


> I do it for fun, and I don't really need the work

Have you considered that this might cause you to be perceived as a hobbyist?


> Have you considered that this might cause you to be perceived as a hobbyist?

I don't care. If anyone perceives me as such, then they are just another person that didn't bother to click on the link, and find out more about me. I'm not particularly interested in working with folks like that. I don't hide a thing. Maybe the [0] thing is confusing, so I'll do it inline, this time: https://stackoverflow.com/story/chrismarshall

It's all out there, for anyone that wants to find out. I guess that it's a sign of the times, that no one is willing to do that. I was a manager for a couple of decades, and would have killed for that kind of information. I can't even image hiring an employee, based only on a short schoolboy test.

Of course, that cuts both ways. People may look at my code and articles, and decide they don’t want to work with me, but at least they are making an informed decision.


I don't mean a hobbyist in terms of your level of competence. I mean that employers might see your motivation for employment as the pursuit of a hobby -- that is, they cannot rely on you to respond to economic carrots and sticks.


Again, I don't care. One look at my portfolio will show you dozens of "hobby" projects that knock a lot of commercial, paid, shipping products into a cocked hat. I'm a Craftsman. I always have been.

I worked for 27 years, for one of the most conservative Japanese corporations in the world, and had a position of ultimate trust. If you know anything at all about this kind of corporation, then you know what that means. I strongly suspect that it would be very, very difficult to find anyone as Honorable, Reliable and Dependable as I am.

The entire tech scene is built around hiring ADHD kids, paying them sick money, and keeping them for 18 months. There's a vast industry, based around providing cultural and technical infrastructure to support this. The fact that you need to test applicants with leetcode says it all. There's no Trust, no Integrity, no Honor, and no Loyalty.

That goes for both corporations and employees. Everyone is out for their own goals; damn the company, the employee, or the team; let alone the customer (who are treated as product, these days).

I am a person of tremendous personal Integrity. Word is Bond. That goes as much for free, open-source efforts, as it does for paid ones. I have an enormous, years-long portfolio of very, very high-quality code, dozens of articles on Medium and my own sites, going into great detail about my personal philosophies and processes, and a decade of checkin history.

If no corporation values that, then that's OK with me. I know some folks that can't afford to hire me, but value my Integrity.

And, as far as "carrots and sticks," they have these new-fangled things called "contracts." I hear they work fairly well.


There definitely is ageism in tech. However, there are ways to minimize impact.

Become an expert in latest tech stack and experience in delivering solutions to clients. These positions are extremely difficult to fill, so recruiters are more open to older software engineers.

Open the door to yourself by expanding opportunities, vendor companies, contracts, freelance, start your own company, etc. There are so many problems in software and so few high performance engineers, globally.

Sometimes, you may be the only person in the world with that specific tech stack and experiences. Demonstrate the solutions and many companies will have to bring you on board, FE or contract at least.

For most companies, the age thing isn’t the issue. It’s that older software engineers have stagnated and won’t be able to keep pace. When you demonstrate high performance and solution delivery, age becomes less of an issue.


> When you demonstrate high performance and solution delivery, age becomes less of an issue.

Never even comes up. Like I said, I've been doing this for a loooooong time. I have a massive open-source portfolio[0]. Much of it is days (or minutes) old. I've been surfing the leading edge for my whole career.

No one ever even looks at it. I've learned that if they give me a binary tree test, I might as well just end the process. They want kids straight out of college.

In one case, I was approached for an ObjC job. I sent them links to several repos (shipping apps that they could build, run, and test) that used ObjC.

They completely ignored it, and gave me a 50-line binary tree test in Swift. They also dinged me for using quality coding/documentation techniques.

I did OK, but not great. I generally do mediocre at leetcode. I spend exactly 0.0 hours, practicing it.

It really isn't my imagination. It's real. I have a Facebook "friend," that is a young man. Nice guy. We get along great. We don't mix, too often, as we travel in different circles, but neither of us has any problems with the other.

His profile background is a desert scene with "SHUT THE FUCK UP, BOOMER" over it, in big text.

If it was "SHUT THE FUCK UP B***H" or "SHUT THE FUCK UP N*****R", he would be [rightly] excoriated and shunned by his appalled friends.

But as long as it's oldies, he's actually cheered on.

This is the current environment that those of us "of a certain age" have to deal with.

Kicking back at older folks has been something that has been going on for thousands of years.

The difference, in my opinion, is that companies are now often run by twenty-something CEOs. In the "old days," the companies were run by older folks, and there was always a cultural structure in place, that ensured that youthful exuberance and rebellion would be tempered by experience, age, and meticulousness. It was enforced by fiat; sometimes, to a fault. I think that we need to have a hybrid; not one over the other. Most of the teams I worked on, had a great mix.

Nowadays, no one wants "Grandpa" saying annoying things like "I have found that I can't rely on system garbage collection, because of the memory and performance hit; especially in threaded applications."

So, the solution is simple. Don't hire oldies. You'll be selling the company before the system goes pear-shaped, anyway, so...win/win.

In my case, I like to design and implement software architectures that are supposed to last for many years, and have significant effects on the lives of vulnerable people, so I don't do a slapdash job. That's basically heresy, in today's world. Some time ago, I read a comment that basically went "If you do not get physically sick, looking at the code in your MVP, you are spending too much time, worried about code quality." That's kind of a "zeitgeist," right there. The very fact that I could pick up a project that I wrote on a lark, two years ago, blow the dust off, give it a couple of tweaks (actually, it was a refactoring that took a couple of weeks. Bit more than "tweaks," but I was adding additional functionality; not fixing deficits), and use it as the backend for a fairly advanced app, shows that the way I do things has merit.

[0] https://stackoverflow.com/story/chrismarshall


My plan to minimize ageism is straight forward. Continuous improvement in latest tech stack. Demonstrate delivering solutions. Regularly interview with recruiters for positions at or above my level.

When the full time offers slows down, I’ll take on vendor and contract positions. When the contract positions slow down, I’ll start my own vendor or consulting company. I’ll hire younger sales and product people to be the face of the company.

I always look for solutions to problems, implement the solutions and make adjustments when needed. This is the kind of solution oriented mindset that helps get offers and land clients.

There are so many software engineering problems and so few people that can deliver the solutions. There’s no real competition, younger or older. There are enough to go around for everyone.

Good luck to you.


> Good luck to you.

Not necessary. I'm living the dream, right now. I worked for many years, to get to where I am now.

The fact that I'm not valued, simply as a function of my age (I'm 58, BTW), is annoying; a bit hurtful, but not crippling, at all.

As a matter of fact (not theory -fact), I'm more productive that I've ever been in my life, I learn more quickly, and more holistically, than I ever have, I use tools more effectively than I ever have, and I am enjoying what I do, more than I ever have.

There's the most positive thing that ol' Freddy once said: "That which does not kill me, makes me stronger."

I had to go through the rejection and humiliation to reinforce and realize my own sense of confidence and self-reliance.

I can tell you that the folks I'm working with right now, are basically pinching themselves.


I don't mean to sound rude, but what age are you right now?



That is kinda amusing.

On the other hand, someone telling other people how to handle ageism should definitely be prepared for such a question.

Conditional on the person I replied to's comments, if he/she is 60 I can perform a particular probability update, if they are 20 then I'll perform another probability update.

tl;dr : if you tell people how to handle aging, your own age becomes relevant.


There is ageism in tech, it’s very real and people have to plan for it. It’s not as old as people think it is. It’s way lower than official retirement age.

It’s like any other problem, there are solution options. Some people switch to management. But ageism affects management too.

Focusing on the age doesn’t help I any matter. Age is simply proxy for stagnation to most people. The common euphemism is you can’t teach old dog new tricks.

Focus of solving problems and delivering solutions utilizing latest tech stack and design patterns. Effectively demonstrate these dynamic abilities and open the doors to opportunities.


That's true but that is to offset the really negative aspects. How many places never let dev's actually design systems that stand up to scrutiny because the execs don't care if BS is pumped out because as long as the business floats then it doesn't matter.

Then the code base becomes a mass of spaghetti that at this point the revolving door of devs have to both figure out and keep alive in ever increasingly stressful situations until they either burn out or move on for greener pastures perpetuating that cycle.

So far in my career the split is 60:30:10 places who don't care about actual engineering and run their business on crap, those who recognized things are biting them but the amount of inertia you need to counteract things and rebuild is huge and then the very fine percentage of places that actually have a good culture around engineering.

The first is horrible because you're a fungible asset and the job is miserable the second is better but still bad because at this point they do see you as valuable but you're going to be spending your time digging them out of a grave and then the third is just a magical experience where you're valued and the codebase isn't constantly a light breeze away from collapsing.

The majority of the industry is in position 1 and I guess we'll see if it ever makes it to 2 or 3.

Worth noting that I made high salaries and could work from home in every case but it would be correct to say I continue to enjoy programming in spite of the industry.

I also don't think it's a coincidence that companies who are in group 3 are typically leagues ahead of 1 and 2.


The other problem is that there's factors in a company other than, strictly, its engineering culture. I could get a good job, in a good engineering culture, working in adtech, but as long as I have a choice I'd rather not.

The place I work instead can charitably be described as "a victim of regulatory capture," but at least I'm working in a business that I believe has a legitimate reason to exist.


How old are you now? Or what age group are you in now?

It seems like businesses want the expertise of a 20+ veteran, but want to hire 18 year olds, so they can pay them less, and dangle silly trinkets like free cafeteria food in front of them.

Oh and, why is it taking so long to work on it?


A good salary motivates people temporarily or if they are in dire need for money. In the long term, it's far from enough.


I've been programming for about 40 years. Had ups and downs. But I mostly worked on creating new products (not always purely software). Also been on my own for the most part. In the end. I love it and I hate it. I love it because it let me express myself and it is a great feeling when you see others using your products. I hate it because there is always way too much non creative work and general BS around but that's life.

But generally I enjoy it and are not planning retirement. Will just maybe work less.


After being an entrepreneur and an independent contractor most of my career (I'm 62), and now finding myself working for a company "rolling up" a bunch of software companies, I will say that the state of employment seems to have gone downhill drastically over my lifetime.


Could you expand a bit on this? Do you mean the quality of the people in employment has gone downhill or do you mean that equality of life for employees has reduced? Less job security, poorer working conditions etc?


The latter. All the things you say, plus inexpert management, ridiculous legalese in employment matters, lack of respect for employees, poor hiring practices, etc.


> Retiring sounds good right about now.

I tried that. After 6 weeks of watching TV I restarted my business and went back to work. Retirement is a living death.


Maybe the problem is that you spent it watching TV?


Seriously, I was between jobs for a while and it was the best time I've had in ages. I could (and would) do random projects that struck my fancy all the time, go out, see friends, write, design things... It was much more productive than a job, and I was constantly doing things with the parts of technology that don't suck.


> Seriously, I was between jobs for a while and it was the best time I've had in ages.

I guess that depends on your financial situation. When I've been between jobs it has always stressed me out. I haven't been in a situation where I was worried about making rent or buying food, but I was worried about finding a new job.


That's true, I live in a country where you can live luxuriously on $2k/mo.


Watching TV is a living death. Retirement is what you make of it.


Hey, thanks for sharing this. Mind expanding? I'm curious to hear what you had planned going into retirement and what you seek going back to work. Are you right back to the same as you were right before "retiring"? Knowing how your first round of retirement went, what would you have done differently in the years/decades leading up to it?


What I discovered is that a life without purpose is not a life. The fun is in having worthwhile goals and striving to reach them.

Being passively entertained, bleh. It's also why I have a very limited appetite for "see the world" traveling. I can only look for so long, then I need to be doing something with a purpose.

I've seen what happens when people retire. They suddenly get old and lose their vitality. They become boring people.

My plan is to work until they carry me out in a box.


This guy planted an entire forest by himself, probably did more for the world thank most of us ever will:

https://metro.co.uk/2018/08/08/man-turned-desert-forest-plan....


I tried it.

I figured out I can make a few dollars a minute sitting in front of a computer screen or I can make 0 dollars a minute sitting in front of a computer screen. Those are my two choices.

The choice is pretty clear.


You could also make 0 dollars a minute standing on a surf board, hiking in a national park or reading a book. There are a lot of things in life that are more interesting than computers.


I've done skiing. Go up, shoosh down. Go up, shoosh down. Go up, shoosh down. It doesn't take too long before I'm off to the lodge to go drinking. And I love alpine views as much as anyone.

(When I was a kid, I'd ski until utter exhaustion and could barely walk. But things don't work like that for the adult me.)


If skiing is not your thing, find something else. Almost anything you could possibly do is better than watching TV.


"You could"

But I didn't. I tried. It didn't happen.

I have to face facts, I might just be a worker bee.


>It's the technology and the employers and the culture of development that's the problem.

Classic "it is the other people" cope out. We all are willing participants in building that mountain of mostly garbage, and there is still huge civilization progress enabled by it.


> It's the technology and the employers and the culture of development that's the problem.

What is it about those things that you find to be the problem?

Genuinely asking.


i can take a whack -

no one works as a team anymore. everyone gets their project, and they sometimes chat about it, but the whole group dynamic has been lost. this is huge. it almost guarantees that someone is pissed off because they dont have a voice. and that at least two developers are working at cross purposes. that someone is off diligently working on their piece without a real understanding of where it fits in.

in the absence of group coordination, there generally is little or no technical management to prop up the group. requirements are dumped on engineering without the valuable back and forth about what makes sense (and how or why)

no one tests anymore. we've all decided that those 8 units that the cicd runs on every commit is somehow adequate. alot of places dont even try to triage bugs anymore or even keep information in tickets so that someone down the line might figure it out

no one plans anymore. there is no more grand arc of the project. we just do what we can get done this sprint, and pick up a little work for the next one.

no one reads anymore. technical design discourse used to be the most important thing to do. now if you write up a draft, no one really wants to read or discuss it beyond grammar corrections

same for reviews - i've been at organizations where every PR was a chance to really get into the design choices and the tradoffs. now you're lucky to get some useless style comments

the scope is radically reduced. what used to be a glorious exercise in world building is now reduced to a choice of which large modules to use and the application of just enough glue to stick them together.

no one feels responsible anymore. the project is a mess. i've got my part and I'm doing the best I can.


> no one works as a team anymore. everyone gets their project

One complaint I have about some agile implementations is that it takes away individual ownership and reduces larger problems to a series of less interesting choices. I agree with a lot of your other points though.


- Culture of development People rarely know, even in ballpark what is performance of application until it is too late. We operate so high in abstraction that stuff mostly work by accident and people do not bother about putting daily server restart as a fix to bug. Technologies that are clearly bad are still widely used and teach at universities. Testing is either offloaded to manual QA testers or gamed by unit testing getters and setters. Architecture is decided by astronauts that not written line of code in a decade or by overhyped Junior watching conference talk.

- Employers Once the application is shipped to the production team is moved to a new project or contract is terminated. Day after said release you have a legacy system that over time will just get worse. Maintenance even in big tech companies is a problem (Google). Employers would either drive a hype train and re-write their systems every year or reject any attempt to modernize legacy app. Rarely companies invest into giving time and opportunities for people to learn new things. And finally Dead Sea effect combined with Price's Law lead to some truly dysfunctional teams.


Examples of stuff that bites?

-Companies that don't know how to recognize valuable work, so they only track output.

-Cult of the hero.

-Places where learning is not part of the job, both in terms of technologies and in terms of business (as it turns out, people still learn, the bad way).

-Focus on individual performance but demands of teamwork.

-And of course, all the kinds of abusive relationship, work edition.


I think change would be good. After 30 years software I have a very strong craving to do something totally different. I never got really settled into the corporate life so I am pretty exhausted with it now. Programming would probably be still fun in a different context.


I'm 25 years in, give or take, and I still find myself amazed people want to pay me money to do this. I do find it romantic. The whole thing.


Retirement sounds amazing.

What really gets me is my employers hiring engineers for $500k per seat and they can memorize their way through Leetcode interviews but can't even structure small programs in a modular, easy to understand way, and when it comes to larger pieces of software, it's complete chaos.


Working with Clojure/Script is fun.


I've been wrangling software bytes for a while and I am pragmatic about the business.

Software engineering is extremely difficult. High performance engineers are rare and valuable. Some times, they become jaded and burn out.

This is my career and my craft, so I'm inclined to ride the waves and trends in software engineering. Negotiate for above average salary while maintaining my tech stack and producing at above average output.

Most people don't understand what it takes to develop and deploy software solutions. They only see the unicorns like Google, Facebook, and think software engineers are common. They don't see the vast swaths of land of failed software startups and dreams and incompetence in software engineering.

Most people in software engineering doesn't know or comprehend basic data structures and algorithms, which form basis for all software solutions at scale. Yet, they are filled into dev position slots by HR/management and asked to develop complex systems.

To have long term career in software engineering is like any other trade. Observe how the game is played, learn to play the game and play the game right.

A software engineer with basic skill stack and right long term view can ride the software wave for decades, just by understanding basic CS principles and utilizing them to develop solutions. Switch jobs regularly and negotiate hard for salary and levels.


> Switch jobs regularly and negotiate hard for salary and levels.

I’ve been at my current role for almost 7 years. It doesn’t pay nearly what I could be making elsewhere. I’ve interviewed and been offered better money, but it means giving up the kind of work I do now for something less interesting.

I’ve turned down those offers and stuck where I am, even though it means less money. As my wife told me when we were talking about this: This is the work that you’re going to be doing every day, and that has to be worth it.

That said, there is a cost to my career sticking here instead of moving around.


There’s a phrase I heard while back, I don’t live to work, I work to live.

High performance software engineers negotiate for higher salary and the type of work environment and type of projects. They work to live by taking control over their salary and project assignments.

Sometimes, they have to work on less interesting projects. They deliver solutions. At the same time, they regularly have conversations on other more interesting projects. Make sure they line up more interesting projects in the roadmap.

There’s more risk in stagnating position than taking control and regularly switching jobs for higher salary and more interesting projects.

There are significantly more software engineering problems than people that can deliver solutions. High performance software engineers can have their cake and eat it too.


> because so many of the programs you depend on are written by dicks and idiots

Out of all the problems with programming as a job, this is around the bottom of my list.


I'm working on an app that calls other internal services inside our company, one of them is a call to update an account balance. We were running into this issue where we were getting a 504 Gateway Timeout on the update balance call so I eventually found the Slack room for that team and asked about it.

They ignored me for a couple weeks, but I kept asking and eventually someone answered and said yeah you'll get the 504 Gateway Timeout if you try to update the account balance to the same value that it already has.

OK, that makes sense to you? What if there was an actual gateway timeout?

You would also get a 504 Gateway Timeout in that case.

They apparently have no plans to modify this service's behavior.

I let it go, I just moved on with my life. I did not find myself awed or stunned with the mountains of work and talent and creativity and foresight and intelligence and luck that went into it.


I can guarantee you that 5 other teams rely on that specific behavior and don't have the will/independence ("budget") to implement that change if the api was fixed. Not only that, but if they did make that change, their manager would instantly have a handful of directors down their throat demanding an explanation why they just added work to their teams that are busy with Feature Work (TM).


don't have the will/independence ("budget") to implement that change

So, dicks and idiot middle managers. I think you made his point.


No. This is such a small issue who honestly cares if it gets fixed? I guarantee you this is not the most important thing anyone involved could be working on. Too many perfectionists on this website.


"We were running into this issue where we were getting a 504 Gateway Timeout on the update balance call so I eventually found the Slack room for that team and asked about it. They ignored me for a couple weeks,...."

Someone could have documented this and/or simply answered a damn question instead of wasting weeks of opportunity cost. Too many dicks and idiots on that website, it seems.

"who honestly cares if it gets fixed" - everyone that comes after this and has to deal with it and waste weeks of their life trying to pry some required nugget of info from a passive aggressive group of maintainers of stuff which actively ignores industry standards?


Put yourself in the shoes of the team who was asked to fix this. They probably have a dozen feature requests, two dozen support tickets, and now this guy wants this bug fixed because it does t follow a standard and he had a hard time understanding it. Yes, that is a real issue, and in the ideal world it would be fixed along with every other issue on the list, but in the real world it is unlikely to ever be important enough to deprioritize the other important issues I imagine this team faces. At the end of the day, some bugs are just better to live with.


again, part of the problem was lack of communication and documentation. waiting 2 weeks to be told "fuck off" (in essence) is shitty all around.. it's not JUST that a (stupid) bug exists, it's how it was handled in this case, and, apparently, how they choose to handle it going forward, affecting who knows how many more people/teams in the next few years, and how many more weeks of wasted time. And if this team handles this sort of thing this way, how much more time is being wasted and projects delayed? This is at least as much a communication problem as it is a technical one.

And yeah, I can put myself in those shoes, as I've been on both sides of this. Treating newcomers in your communication channel (slack, etc) with the same level of urgency YOU would want (or need) when you ask for help from some other team is a bare minimum.


I agree that the devs were needlessly uncommunicative, but I disagree that the right decision is necessarily to fix the bug. I think it’s perfectly reasonable to leave the bug as it is, even if it miffs some devs on hacker news.


This is a total failure to follow any sort of standard.

A 504 is a gateway timeout due to the server failing to complete the action, hell, a 400-level for "you fucked up" would be preferable.


4xx would be what you want anyway, no?


What you described:

  let x = 2 // runs
  x = 3;    // runs
  x = 3;    // runtime error, you made a mistake
No, I'd want a balance update to succeed. Even if it's to the same value that it already had.


Or at least return a "no change" message, and not a failure result in the 400s or 500s.


I don't think it's clear from the OC that even if they weren't using the wrong HTTP response they would want an update to succeed if it is the same value, at which point 409 could be a reasonable response code.


2XX level is for the action succeeding. 4XX level is for the action failing due to the user. 5XX level is for the action failing due to the service/code/infra.

In the real world, updating your balance to the same number should be a 200, however in some weird financial world, it may be a 400 because you may not be allowed to set the same balance due to some financial rule. A 500 is a terrible choice unless setting the balance caused an error at your code/infrastructure level.


304 would be fitting.


Nobody competent wants to spend extra time and work dealing with junior level mistakes. If the basic stuff can't be done right, then the complex stuff definitely isn't done right. Little issues like this cause ripple effects and now guaranteed you've got incorrect behavior in other parts of the system because of this broken API. It's a time suck all around.


The person who brought up the story mentioned account balances. Someone will definitely care when a latent combination of bugs is triggered and the company loses money because of it. See Knight capital and the more recent Citi debacles.


...And once you walk a bit in their shoes, you realize they're equally pressured. In the end, they are neither dicks nor assholes, they're just clever enough to see that corporate words have no meaning, and maybe they turned a bit cynical because of it. And certainly, if their own boss is bullshitting them and their reports can read their bullshit, why should they be the ones taking the hit?

A shitty environment can't foster good work relations.


Yeah, I'm sure there are valid reasons for why it behaves the way it does and there have been staff reductions in the last few months. The point is that it is pretty typical to spend huge amounts of time figuring out why things work they way they do, and it turns out to be some minor detail that isn't going to help you be a better programmer, it is just work that needs to be done to keep things from falling apart. It isn't very romantic.


Too real.


Similarly a colleague just told me yesterday about a data vendor who is sending data over on a almost nightly basis. They changed the process/format - without notifying anyone - and things broke.

End users of my colleague's application were now saying they were seeing inactive client data coming up in their app, and it was causing confusion.

During the time trying to figure out the new behavior, the main client finally got something in writing about "here's how it works" from the data vendor...

* Rule 1...

* Rule 2...

* Rule 3: If a client record has not had any data updated, we will only send over the client name and header info, but no additional data records will be sent over.

* Rule 4....

* Rule 5: If a client record is no longer active in the system (for example, has been deleted), we will only send over the client name and header info, but no additional data records will be sent over.

Questioning back to the original data provider - if we get a client name and header info, but no additional data records - what does that mean? Does it mean the client is inactive/deleted, or simply that they've had no data change since yesterday?

Absolutely no coherent response, and I doubt there will be one. The defense of "no no, we have to keep stupid behaviour around because people rely on it!" doesn't even stand - this change came about in the last couple weeks, after having worked this way for more than a year.

It's both maddening and frightening how fragile so much daily data exchange is.


Oh man, we had a connection with an API recently where if you sent it some incorrect data it would just hang. No errors, no closing of the connection. Just hang. And ofc they don't offer a heartbeat over that channel.

That would still be fine... if the data was static. But it's not - and changes are communicated; but not to the relevant tech teams.


Awe and contempt are basically the same feeling, but with the charge flipped. The author is amazed that it works to the degree that it does, you're amazed a how things don't work the way you want them to.

Such is the power of framing, I guess.


I used to get emotional like this about programming, both the awe and the contempt depending on circumstances. Now, after 30 years, it's just work. I don't really feel anything about it. And that's kind of the way everything is. Nothing is new or exciting. I wake up, work, do household stuff, eat, go to bed. That's life. Not interesting, not depressing, just neutral.


>Not interesting, not depressing, just neutral.

The absence of feelings sounds exactly like depression.


Depression is a bit more complex than that though. You can be emotionally neutral if you're just not strongly affected by what you're doing, it's probably the default state if you've done something for a while. I'm emotionally neutral when I brush my teeth.


True, let me rephrase what I meant then, if everything, day in, day out, feels emotionally neutral, that's very depressive sounding.


Yeah for sure. Anhedonia (no longer enjoying things you used to) is a strongly associated symptom. Of course it could just be a rut and you need to shake up your routine, introduce some variety, but that's matter of severity rather than category.


But it doesn't seem that way. I'm not unhappy, or suicidal, or gloomy about the future. I just don't find that anything really feels "new" and therefore nothing really seems exciting. It's like if I got that cliche question "what are you passionate about" in an interview, my answer would be "nothing."


I think it's fair to not be passionate about programming. As long as you have some sort of creative/passion outlet.


> As long as you have some sort of creative/passion outlet

I used to feel that I did, when I was younger. Not really these days. But I'm not sad about it.


Ma, the passion police is at the door again.


you have 24h to present evidence of sufficient artistic hobbies to your local station.


Don't you have the feeling you want something exciting?


I'll put it this way, I have no real burning desire to do anything that I haven't already done.


Oh yeah, life goes on, long after the thrill of living is gone.


The glass is half full.


So all the difficulties in engineering are due to "dicks" and "idiots", unlike like the author who is presumably the only clever person in the entire industry. Here is an example of one thing I actually don't like about this profession: too many emotionally stunted egomaniacs.


To be fair, it's actually a pretty entertaining article, and if you haven't read it, it's definitely worth taking the time for it.


Write more code - solve fewer problems.

Engineers solve problems. We use our expertise to take stressful and difficult problems and reduce them into simpler ones. You cut through bureaucracy and a healthy amount of talky bullshit to solve problems. The better you are at this, the more you're rewarded as an engineer. But this is a taxing process.

Writing code is creative. You find your own problems, and solve the ones you want to solve. If you don't want to solve something, you let it fester - or nurture it - as you wish.

Take a look at Racket. Read a book about Lisp games programming. Find an old C64 and learn some BASIC. Check out PICO-8. Or see Inigo's SDF website and try out some shadertoy. Ignore practicality, or focus only on your individual practicality.

Engineering is a discipline and that makes it tiring over time. You don't always have to be improving something.


> Read a book about Lisp games programming

Any recommendations?


https://nostarch.com/lisp.htm

Land of Lisp by Conrad Barski. I picked it up in a humble bundle for a couple of bucks and really enjoyed it. It was unabashedly nerdy and fun, and I really liked being exposed to that again.


I don't know about most people but devs should have their own personal knowledge management system ( do it on any tool, notion, evernote..) but it's an absolute must. These facts you talk about are fleeting and in the moment the revelations of the learnings seem so clear, but 4 weeks and all the little details go out the window. Save all your little Linux command pipe chains. Config values that worked and few sentences of caution to your future self of what to do and not to do. Otherwise you're just going to make the same mistakes in an years time...


Can I get a raise of hands for folks who think "Dream Machines" is the #1 book on software? How about for those who believe that Engelbart's Augmenting Human Intellect is a driving force for humanity? And that software is a radical embodiment of that all? I think we can get a modest show of hands; I've seen enough confirming points of view from about. (Would that I have a memex to highlight all the mentions I've seen, all the other endorsements!)

Elsewhere I've talked a bit about whether we are romantically engaged in software development. Or whether we are justifying ourselves, merely up to fun.

And I think this comment hones in a lot on what the real chase of this all is, on where we can be radically romantic & hopeful & builders of enduring meaning. It's good advice, for just trying to get better. But this act of enhancing ourselves, learning, cobbling together pools of wisdom: it's the meta-act, it's what software development enables, for software & for other areas. A push for excellence. Software both requires us to improve ourselves, to learn, but it's also a tool for learning, for augmenting ourselves, for becoming more than what limited things we might otherwise be constrained to develop into.

Working not just with but on personal information systems, is, in my view, a nearly sacrosanct act. I see developers like Karli Coss[1] as vanguards of humanity, a bringer about of higher orders & new ranks of human development, via software. Don't merely just use a knowledge management system, develop them! This is the core point, the core enablement of software, and it's not automation or products or ai that has ultimate relevance: it's this human development, this getting better at getting better. Invest yourself into knowledge management systems, build them to further reaches. Pick up really good open source tools like Foam (built as a vscode extension!) & build plugins, expand, grow! Excel! Keep expanding the reach that your mind can travel, by actively engaging yourself in building better bicycles of the mind.

[1] https://github.com/karlicoss

[2] https://github.com/foambubble/foam


I've felt both ways at different times. Both are true. The fact that anything ever works is part of the magic.


Even the smartest programmer will eventually fail to understand every detail and implication of a system due to cognitive load limits, and thus bugs.

Which is why languages that feature less cognitive load to understand (such as functional immutable languages) are a better direction for tomorrow’s code.

If a function called from your known scope cannot modify anything you pass to it, that’s an entire class of bugs made impossible to create.


I feel both, depending on how my day is going. They're both true.


Most programmers are not idiots, and whatever degree they are dicks, little of the dickish behavior is directed towards leaving traps for future developers.

That poor code gets written is due mostly due to the constraints (both technical and non technical) around writing code.

As a further aside, I've never been in fear of losing my job if I couldn't solve a bug. If you have been (for any other reason than the fact that not solving the bug would be an existential threat to your employer), then may I suggest finding a better employer?


Or this:

“Find creative ways around standards, limits, laws, processes, morals, etc. so I can make a quick buck and pass you some table scraps”


Or worse than table scraps: pieces of paper that may be worth something someday if you keep working hard enough.


I just treat startup equity as a lottery ticket: but, I find the work itself interesting and would be programming even if it wasn’t my career.


Try buying some FDs on the stock market for an actual lottery ticket that might pay better than startup equity ever will.


The system and forces that make this table scrap arrangement possible are the same forces that generally drive the salaries and perks of tech workers much higher than the average for other professions. It's healthy to be cynical but it's also important to look at the overall balance of power of the social classes. The 9% versus 90% makes more sense than the 99%


Yes but if you go from 99% to 90% you increase your number of enemies 10x.


That’s my favorite essay of all time, and an incredibly accurate.




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

Search: