149 comments

[ 3.7 ms ] story [ 241 ms ] thread
The prisoners dilemma shows that everyone is incentivized against unions. Unions however, would solve this. You just need a mechanism to stop union cronyism.
Unions should be mandatory in any organization which has an HR department, regardless of whether its internal or outsourced.
This is an interesting idea, but I think you need to clarify what "HR department" means here. Because companies will just get around this by calling HR something else, and I don't think it's practical for any serious company with employees to not have someone doing HR-adjacent duties.
I'd leave that for the lawmakers and courts, not an expert. Same goes for the definition of "unions".

The point is HR is always acting in the interest of the company first (if you're surprised, you're probably young and work at a tech megacorp) and if the interests of employees are aligned with these (again, usually the case at tech megacorps), all is fine and dandy. Unions are needed when those interests start to diverge as individual employees have basically zero negotiating power and it's in the interest of the company to exploit that to the maximum legally achievable level - pure game theory.

IOW I see the perfect union as an HR-but-for-employees department. Real unions are obviously broken by individuals exploiting unions they're part of.

Clearly we just need an “HR on the side of the union” that manages the union member adversarially. :P
> You just need a mechanism to stop union cronyism

How?

More democracy in the leadership of the union.
How are workers incentivized against unions? From my perspective there's little downside.
Do you know much about the history of unions in the US and the monsters many of them became?
Unions have the same issues most organizations have, the same opportunity for dysfunction that all forms of hierarchy imply. Meanwhile the lack of collective leverage poses a real problem for my individual compensation—I'm not about to try to outstrip my coworkers in efforts to get compensated, life is too short for that ratfuckery.
(comment deleted)
> Meanwhile the lack of collective leverage poses a real problem for my individual compensation

Aren't Silicon Valley programmers in the top 1% for total household income?

People on HN give me the impression that graduates with no experience get paid six figures and it's considered poverty level.

> People on HN give me the impression that graduates with no experience get paid six figures and it's considered poverty level.

If you think anything in this thread is implying salaried tech workers are trying to pass themselves off as poor I probably can't communicate with you on any level. I apologize for whatever rhetoric I used.

That sounds like this dismissing spaceflight based on the recent failures of Boeing. Some implementations can fail, that does not invalidate the entire idea.
I'm not dismissing anything, I'm pointing out the history of unions in the US and the reasons for the backlash behind them.

And I'm not anti-union, any group has the right to organize for any purpose in free societies. Even libertarians like Ron Paul are pro-union.

Closure of office, or branch, and possibly opportunity to never work with this company or in this industry thats not a little downside.

Of course its technically illegal, but reality could be harsh.

That's not a problem with unions. That's a problem with the capture of labour regulation by greedy capitalists. It's just another manifestation of enclosure. Don't blame the symptoms for the problem.
Can't agree. Thats a real problem related to unions and we can't ignore it. We live in a real world. Its that simple.
> there's little downside

Top performers may be concerned about having their wings clipped. Hollywood is a good counter-example. But American auto unions, for example, created the precedent of a rush to mediocrity. (The politics of many American union organisers may also gives someone earning a top Silicon Valley wage pause.)

Unions represent employees, not candidates. I don't see how ageism in the hiring pipeline would be fixed by unions.
Unions "represent" employees, and represent the union itself.
Plenty of places the norm is for unions to be broad and represent members, whether currently employed or not. Some places they'll actively investigate employers thought to engage in actions hostile to their members.
In some European countries luckly we get to enjoy them in tech.

However there are plenty of workarounds employed by companies anyway.

I'm a 35 year old software developer, and I'm painfully aware that I'll face it, sooner or later, and working my ass off to build professional network, skills and experience that will set me apart and keep me marketable.

However, I don't think this ageism is unfair, at least in my case. I already feel that I'm not as fast as I was in my 20s; I'll probably be even slower on my feet and harder to adapt and learn in my 40s. If I don't acquire meaningful and provable (two different, both equally important components) experience and wisdom, then not just the perception by hiring managers, but my objective value as a professional will decline.

> I already feel that I'm not as fast as I was in my 20s;

I’ve also observed this but there’s another way to frame it - you’re doing a lot less thrashing around. Instead of brute force testing 5 approaches to a problem, experience allows you to narrow it down to 1 or 2.

This. I’m able to thought experiment out many solutions and only need to implement test 1 or 2.
Note that not all experience transfers along with acquiring new skills. E.g. I haven't used any tricks for building table based HTML layouts in a while. This process happens everywhere to some extent, but it happens especially often in fields where tech advances quickly, like in IT. I guess that's the core of the issue?
I'm 41. Traditionally, as you got older you had more demands on your time, but you could offset that with experience which made you faster and better. I don't know if I'm slower than I was in my 20's, but I definitely know that I spend a lot less time developing my skills outside of work than I did back then. I have two kids, a house that needs fixing, and a million other things to do.

I wonder if part of the reason so many IC's go in to management is simply that "how do you handle a team conflict" has a more evergreen answer than "how do you do some random task in X framework, describe the cost of different approaches in big-O notation, and do it fast". Or, of course, you've had 20 years to build up your network of professional friends and you all get each other the nicer jobs.

> I spend a lot less time developing my skills outside of work

As someone that can see retirement on the horizon... screw that. When the work day is done, I close the laptop lid and eschew technology. If I am not getting paid to develop any skills, then I am on my time. I've never known a heart surgeon that practices on his kitchen table in his free time. I'm not going to practice standing up some k8s stack in my free time.

Unfortunately we're all running not to be in the forefront but not to be left behind.

You can well believe that when VR is disseminated, surgeons will practice at home.

A family member is a doctor and spends a great deal of time on continuous professional development (mostly reading journals to stay up to date on new approaches and best practices).

I assume as he gets closer to retirement the ROI for this effort will diminish.

Unfortunately this is not an option everyone can avail of since we are, by the design of our society, in competition with our peers for necessities like housing and healthcare. I might not want to spend my evenings learning NextJS (also wtf is up with Vercel and vendor lock-in? Why the hell does anyone use this?) but my peers may.
A good thing about having kids is that you become a decent manager. In my case with 4 kids tou have to improve those skills and is useful in professional life.
I agree. Experience is improves many tasks, from system administration to architecture. I'd say the latter is almost impossible without extensive experience.

Nitpick: the complexity of a task rarely changes.

Older data scientist; let's call it 20+ career years and I started late.

I can look at a situation and usually almost instantly see the right approach. Couldn't do that when I was earlier in my career; at least not with the same level of confidence (which is supported by my results working in practice).

I can mentor my team-mates to be able to do the same. Work with me for a few months and your skills will certainly improve. I can spot errors in thinking as well as errors in code; correcting the errors in a person's thought, in how they approach a problem, can have profound results fast.

In what sense?

Fast picking up new things?

Fast pumping out keystrokes?

Fast because you're spending 14 hours instead of 8 per day?

Fast trying something and then ditching it away?

Fast because you don't consider the long term consequences?

Fast because you can focus and you're not distracted by career, politics, and administration?

(comment deleted)
I believe most ageism in hiring is not really anything to do with how good you are, or how fast you are, it's to do with young people having fewer things tying them down (e.g. young kids or aging parents) and being more available to work harder for the company. Mothers in particular have been on the wrong end of this for years.
It really is just this. And “fast” is mostly a function of “willing to work 10+ hours a day”.

My manager once told me we were going to turn down a very capable software engineer candidate because he was older and probably just going to try to pivot into a management role. I was disgusted but didn’t speak up.

Frankly, I do see a certain form of nepotism at play in some places as well. Let’s just say we don’t have the most diverse tech workforce.

46 here... while I'm certainly slower than in my 20s, I'm also much more relevant, which in my professional context is absolutely valuable.

Considering age alone is unfair.

Chances that you are not even slower. With age we experience time differently - some things perceives faster others slower.
> I'll probably be even slower on my feet and harder to adapt and learn in my 40s.

My experience is the following: you have a lot less time to learn, indeed.

But the huge problem rather is that you have seen a lot of programming ideas getting in and out of fashion, so that you smell the bullshit in the trend that gets in fashion (and is paid well) much better than the younger folks. This way, in your mind you become more annoyed having to learn bullshit things.

Also, a huge problem is that, because you have seen a lot more things, you often really know better how things could be architected better, but you can't convince less experienced managers and colleagues of this, so you become more and more cynical.

> I'll probably be even slower on my feet and harder to adapt and learn in my 40s.

I'm in my 50s, and in my current job, I've arguably adapted faster than the 20-30 somethings. As for learning, I've probably learnt more in this industry in the last 10 years, than in the previous 10. But that's the tech world for you. More people enter, more technology appears, more stuff to learn or at least be aware of.

A couple of related things I would suggest after 30+ yrs in this industry:

Try and become an expert in one thing.

That one thing should be a 'basic' thing, not something built on top of that. Such as core languages, or how cryptography works, or networking stacks. Never become an expert in a 'framework' if you can help it. They disappear as quick as they appear.

I'm 38 and technically a manager, and the young guys I am interviewing leave me with an ambivalent taste.

On one hand, I as a manager am filled with dread, as very few of them are interested in technology the way everyone in my generation of IT workers was. They know their narrow stack and are frustratingly incurious about anything else. They reach the edge of their competence and just... stop.

On the other hand, I know that if I keep my skills sharp, I can easily downshift into an IC and even keep my salary, because the competition is just nonexistent.

> because the competition is just nonexistent.

Only if the hiring org can tell the difference

They can, if they have millennials or xers doing technical interviews.
Are you hiring for a specific req? What country?
Data engineers, and Russia.
(comment deleted)
Good luck. The U.S. market is kind of the opposite, hard to find a job these days even if you're good.
It will be a lot more productive to work your ass off to build capital to say goodbye to the rat race in your 40s...
I’m 36 and am better than I’ve ever been. Especially with the LLM thing going on (and paired up with the elixir stack) I don’t have enough time to build all the things I want.

I am also a technical interviewer from time to time for a recruitment platform and see a lot of people and often see people stick to their own little niche and not learning anything outside of it (especially with Java tbh). Like they’re not even following the advancements in the Java language, not to mention their “3 years kubernetes experience” where they didn’t even bother to learn the basic primitives.

I don’t know, I find it weird to stop learning

But one naturally acquires experience and wisdom working in the industry. Very few people would trade their wisdom for a faster brain. Usually, the daydream goes "if only I could go back in time with the wisdom I have now", not the other way.
> I already feel that I'm not as fast as I was in my 20s;

I'm turning out 10x better products though, and I can anticipate and avoid many classes of problem I couldn't back then.

I am a better and more productive engineer at 45 than I was at 25.

I will turn 64 this year. Started programming in 1974, employed since 1979. I never moved into management for long, I don’t like it.

If you want to stay employable master the fundamentals. Despite all the surface churn software development changed very little during my career. I still use Unix (Linux), vi (vim), SQL, and C-family languages every day. And I use lots of newer stuff too.

Don’t focus on frameworks or other fads and fashions. You may have to learn them but don’t think “React developer” describes a long-term skill you can rest on.

Make as many friends and contacts as you can at places you work. Not just fellow nerds — I have contacts who run companies, work as CFOs and logistics managers, have senior positions at Silicon Valley companies, banks, government. A good network of people who respect you will prove invaluable. Treat your work colleagues like gold, help them get jobs, stay in touch.

I don’t have the energy of a 20-something anymore, I can’t work 16 hours on pizza and beer like I used to. But I don’t need to burn so hot, I usually already know how to solve the problem because I’ve seen it ten times already.

I know I'm ancient for saying this but....

""" led managers to prioritise digital natives for open roles, believing they are more adaptable than Gen Xers """

I'm an old millenial and there's truth to the joke that we have to help our parents AND our kids fix their printers. I have found the complete lack of fundamental computer skills in younger candidates ("what is a directory? Why would I ever need the terminal?") to be a challenge.

Same. Used to be able to tell old people to go ask a kid to troubleshoot their e-mail software, but it seems to stop at my generation.
Anecdotally, I don’t think anyone who isn’t interested in computers has ever had an easy time setting up a printer.
I haven't had issues using a printer from my mac in about 25 years. I haven't tried from Windows, but I still needed to find and download a driver when I last tried from linux.
Same here. My Mac and iPhone find my WiFi printer with ease. The only issues I have are printer related, WiFi disconnects and waking on sleep.
Ubuntu has worked out of the box with every printer I've thrown at it since 2008 or so when I switched to Ubuntu. Literally tens of disparate printers from all manner of expensive laser printers to cheap no name ink jets. Both using USB and network interface.
It’s been less than 25 years, but I haven’t had issues printing from a Linux desktop in a long while. It’s as smooth as my apple devices
I brought a black-and-white laser printer 20 years ago and, much like you, I haven't had a single problem since.

My parents, in the meantime, have probably gone through 6 or 7 printers. For a truly cursed printing experience, here's my advice:

* First of all, make sure it's an inkjet. They give the best colour print quality, you see.

* Second, always be on the look out for a good deal. Why buy a $400 printer when you can buy a $50 one? As far as you know it'll be junk in 2-3 years anyway.

* Third, get a wifi printer that doesn't have a screen, and make sure your wifi router doesn't support WPS. If the printer comes with an app, make sure it no longer works on your dated smartphone. Install the printer at the absolute edge of your wifi coverage.

* Fourth, make sure it's a multifunction printer/scanner/copier, and always install the manufacturer's full suite of software. You want to be able to access all the features, don't you?

Just follow these simple steps and before you know it, you'll have empathy with the many people who say printers suck.

I haven’t used a printer in ages but I just got a Brother laser printer last month. I plugged it in and pressed the wifi button on the printer, then I pressed the WPS button on the router and it connected. The printer then instantly showed up in the printer list on my MacBook.

I don’t know how it works and I didn’t need to. It just worked. Optionally I could have also plugged the printer in with a usb cable which I assume also just works.

The miracle of mDNS and how it pissed off a bunch of Active Directory admins.
Brother laser printers are such a sublimely simple experience. Quite honestly a contender for the best piece of computing-adjacent technology I have ever owned.
I think I the same Laser Printer The Brother HL-L23600W. Windows? No problem. Chrombeook? No problem. Mac mini? No problem. Rocky Linux 9. Problem. I added the driver using the GUI, it finds it. I send a print job and sits there pretty doing nothing. No even a print queue is displayed. I re-installed the driver several times without luck. I tried cups. No dice. I believe the origin of open source was a guy wanted to code a printer driver for his own system and the printer company gave him the code and said: "go for it". Because they did not have time for that. So no, HL-L23600W The Brother laser printer it won't 'just work' for Rocky Linux 9 kernel 5.14.0-162.18.1.el9_1.x86_64 The only gadget that I own that just works is my Nintendo Switch.
Perhaps so, but nonetheless the chronology of this hassle can be divided into two eras: our own ("USB") and that horrific prior era (LPT1:, COM1:, COM2:, ...)
Kids in our time used to sit in front of computers, nowadays they are glued to their phones and phones have neither printers nor directories... (don't 'well, actually' please)
You’re explaining why the kids are bad at computers… I agree.
(comment deleted)
I think the “printers” nor “directories” is a red herring.

The problem is that computers could be configured. There were commands and scripts that you could run to fix things. So basically there was something to troubleshoot. You learns how to figure things out.

Phones today have almost no configurations, and there are no scripts or commands to run to fix things that might be broken.

There’s absolutely nothing for kids to learn other than switching it off and on again.

> Phones today have almost no configurations

My friends’ kids are plenty hacky on their phones. Not in an 80s sense. But in the configurations, with knowing various apps and websites through which to uniquely interact with the world, et cetera.

Yeah exactly. They know how individual websites and apps work, but have very little insight into how the actual device and OS works. The browser is the OS, basically.
> have very little insight into how the actual device and OS works. The browser is the OS, basically

As many of us have little clue how the hardware works, at the fundamental level, today. I am analogising the hacking we’re being nostalgic about with this higher-level hacking they’re doing today.

It’s still hacking, and it’s incredibly sophisticated. It’s just that the layer that was at the forefront decades prior is no longer today. Someone has to maintain it, but it’s not where most opportunity is.

This is a recent view of mine. But LLMs have set a cap on the relative value of pulling up a terminal.

That’s the same for basically everything. There’s a bit of writing that highlights how modern life is so complex that no one actually knows the full process of how a modern mass produced pencil is made. It’s just millions of people in their own bubble working on the little piece of the supply chain they understand.
Sure, because you've been limited to a high degree. Apple showed the world you can treat your customers like thick headed babies and they'll be thankful. Android is following suit. Slowly eroding the freedom we once had and the invitation to do more than the default.

Look at this, for example https://developer.android.com/about/versions/10/behavior-cha...

Why? Let me handle permissions. Don't choose, for me, whether I can chew steak or not.

End of the day, we're trained to be idiots. School teaches us nothing. Products treat us like babies, strengthening idiocy. I mean, if a device breaks, we call the service guy and don't try and repair it ourselves, right? Because "changing a battery is life threatening. It must be outlawed." (- Apple) People are convinced, by ads and media campaigns, that all this is good. People are convinced they are using luxury devices.

I'm struggling to think of a reaction besides "what a textbook case of Stockholm Syndrome."

We certainly agree that there has been an erosion of computer skills among the younger generation(s) raised on appliance-like computing devices. No argument there. This is a loss. Full stop.

Where we might differ is the question of whether or not this is a good thing in the larger context. The fact that everybody had to become subject matter experts in personal computing just to be effective with a personal computer in the 1980s and 1990s was a byproduct of the fact that personal computing was incredibly buggy and user-unfriendly for multiple decades. If everything in life was as balky as computers were, we'd never get anything done as a freaking human race. How many f'ing hours did we waste as a human race just getting printer drivers to install?

I mean, think about all the hours you spent just getting printers to work and PCs to connect to the internet back in the day. It was rewarding in its own way, and it led to careers for many of us.

Now imagine if everything was like that. Imagine if you couldn't use your car, the HVAC system in your house, or kitchen appliances effectively without hundreds of ours of ad-hoc experience gained through troubleshooting.

For those that want to get their hands dirty, there's Linux and craploads of free development tools even on Mac and Linux. And for those that don't give a crap, computing devices function pretty well as appliances these days.

I agree completely. I'm in my 40s and, at this point, on this topic, I feel like Cypher in the Matrix. Plug me back in and I don't want to understand any of this shit anymore.
I want to understand it but only when I am making something that requires me to understand it

I don't want to understand it when I just want to like, print out my car insurance card or do some mundane life task

My more cynical take is that Apple fans have lives and they don't live for computers, as I do.

They want the PC (a 'smart' 'phone') to get out of their way, and if it doesn't work, they'll just go do something normal people do, like a platonic dinner party or a drinking party.

> normal people do, like a platonic dinner party or a drinking party.

Hopefully more food pictures & selfies will emerge

I think configured is a red herring.

Computers were and are an abstracting interface to functionality. Historically the abstraction was frequently leaking and the user had to make various adjustments.

It could be argued the nowadays the leaking has been reduced to an extent that users can fully embrace the abstraction. That is not quite right, counter examples include "after two years of browsing my computer became slow, need a new one" and "I can't use that website, it is full of popup adverts".

> Phones today have almost no configurations, and there are no scripts or commands to run to fix things that might be broken.

I agree. To put it in somewhat starker terms, it might be your device, but we have rapidly eliminated ownership of the devices. It's not even all the War on General Purpose Computing; there's so many factors here: an expectation that apps/os just work/are simple, need for security sandboxing, and most of all imo the shift of more computing/resources into the cloud. Connected services where the app is a thin-client to far off systems, that's a huge shift away from the ownership model of computing we briefly had.

It's hard for me to imagine what exactly might trigger a resurgence of the Personal Computing model. But computing, for the time being, is no longer ours, no longer humanities; it's heart has effervesced up into the cloud.

Also compare opportunities to open things up and see how they work... 80s, 90s, now...
It’s not the end of the world though. My parents (who only knew how to use a TV) could and did learn how to use a computer. My kid (who only knows how to use a phone) can definitely learn how to use a computer. These aren’t mystical devices that only (current) 30-55 year olds will ever know how to use.
> complete lack of fundamental computer skills in younger candidates

Outside elite software engineering, as in writing papers engineering, isn’t this becoming more an art than a skill with LLMs?

No because your boss still wants you to do some report in Google Docs (and no they can't use that neither) or work with a spreadsheet in Excel, or how to print a pdf etc
> your boss still wants you to do some report in Google Docs (and no they can't use that neither) or work with a spreadsheet in Excel, or how to print a pdf

This is in a different category from printer debugging or launching a terminal.

Yes but Gen-Z struggle with those simpler tasks as well
> Gen-Z struggle with those simpler tasks

Not in my experience. I’m sure every generation has its winners and duds. Just saying Gen Z’s winners (by being better networked) seem to have a skillset uniquely honed at X’s weaknesses, much as Millenials seemed almost uniquely crafted to compete against their Boomer counterparts (by being more efficient).

Generally these stereotypes about various generations are highly questionable (as any stereotypes, of course). My nickname includes my birth year, so I'm even older than you, but I still grew up with computers and know more about them than many of the kids whose parents put an iPhone/iPad in their hands as soon as they could hold it...
I think there was a sweet spot when your home computer didn’t have internet. You’d “use” the computer and there would be very little to do other than snoop around, fiddle with settings and try to make it do something interesting. When my computer is internetless today it’s useless. It was the same then but somehow I spent hours fiddling with it. It was the same for even less curious people. If you got a CD with some software and it wasn’t working right you had to just fiddle with it until it did. You couldn’t google the answer. You learn a lot through trial and error.
There is a disturbing number of young software engineers who have never installed or used Linux, and who don’t want to learn Python or Powershell for their job.

They stick to what they know (usually C# or Typescript) and they have problems if they need to use a new tool or language.

(comment deleted)
When I was in the University most people didn't know and didn't wanted to learn how to do that, and a couple of buddies and me helped the rest of folks with those needs.

We were in an EE/Telco degree where we had to program in different languages and configure plenty of different software, so knowing to solve that kind of problems are relevant in the kind of work they were going to do in the future.

The reality of that is how most of people are (or were?) in those degrees as a mere formality to get a good paying job, and interests are a secondary matter.

This is the same story that I lived in the late 90's. My buddies and I would install every different distro, run through LFS build and that has turned into a very niche embedded systems expertise that is exactly where the industry is now. Every system has linux, qnx, or android. The university was so small that when we went to the IT department to "register" our computers for the network that the IT guys were excited that we were running linux.
That is nothing new. I've met and worked with plenty of old software engineers who learnt C++ 30 years ago and don't want to learn anything new (not even modern C++) for their job.
Yes and they didn't even "learn" C++ 98 or 2003 very well! Templates are a mystery to them.
Thank god. ;D

Also, you don't need anything other than C++. >:D It's the one lang that can do it ALL! But not taking the time to learn C++11+ is demeritable.

Most juniors where I work spend their days delivering nothing and telling me how shit everything is and how they already know everything and if they could just use some other language or framework they’d be productive.After all that, go generate a bunch of crap with copilot that never comes close to landing in production and most other mid and senior engineers just quietly do their work for them.

Some of these people are in their 40s and are new to the industry. Not just picking in "younger" people here. Just a different attitude. I think the barrier of entry is just getting higher as we have to know a lot more these days.

A few times I've had to push juniors into new languages by having them do something very simple in a system that was written in a language they haven't learned, and the result was they found it easier than expected.

At least for juniors, I'm pretty sure the problem for a lot of them is they remember how much effort went into learning their first programming language and are assuming the second one will be just as much effort. They haven't realized how much of that effort went into general concepts that do translate to other languages, making it easier to learn more.

> At least for juniors, I'm pretty sure the problem for a lot of them is they remember how much effort went into learning their first programming language and are assuming the second one will be just as much effort. They haven't realized how much of that effort went into general concepts that do translate to other languages, making it easier to learn more.

Programming languages have become ecosystems/biotopes. In this sense, learning another programming languages is about thinking how things are done in (often subtly) different ways in the other programming language, learning about the whole culture surrounding the other programming language, etc. There aren't so many transferable principles.

Because many programmers are not willing to put this effort into transferring into a different language, so much bad code is written by programmers who "never properly learned the way of thinking in this language/framework" and thus write, say, "idiomatic Java code" in C++ or "idiomatic Go code" in JavaScript.

You're having trouble thinking at the level I'm talking about: variables, conditionals, loops, functions, etc.

All of these were new concepts to us at some point. I'm talking about people who are new enough to easily remember the effort that went into learning those basic concepts on top of learning the syntax for their first language.

> You're having trouble thinking at the level I'm talking about: variables, conditionals, loops, functions, etc.

Exactly my point: just to give some examples concerning your keywords:

- In many cases, for loops (with an index) became unidiomatic. Instead foreach or range-based loops became the idiomatic way

- In C#, for many cases, the idiomatic way is to use LINQ. The old style to write LINQ queries was to use query expressions, but it became out of fashion. Now, you typically use the method-based query syntax instead.

- conditionals: there actually do exist programmers who argue that if expressions are code smell when you do object-oriented programming (google "ifless programming" or "anti-if programming"), since the idiomatic way in (class-based) object-oriented programming when what should happen depends on some state is to write a method. This thought has not become mainstream, though. On the other hand: for a related reason in Smalltalk, a programming language that takes object-oriented programming much more seriously than most other languages, there exists no "if" as part of the language; see for example https://www.quora.com/If-if-is-an-object-in-Smalltalk-how-is...

- functions: functions now often have become stateful (coroutines, methods, polymethods, closures, ...). On the other side, there exist programmers (often from functional programming) who argue that functions as they exist in imperative languages are not "pure enough".

You're still thinking at too high a level. I'm talking about "what is a function", not "all the ways functions can be used".
If you do consider "what is a function?" not to be a not quite subtle question, you end up with something that basically everybody knows who paid a little bit of attention in the 7th grade math classes.
And this just reinforces what I'm talking about: People who have done this for a while have forgotten what it was like.

I was a teacher's assistant in introductory programming classes for several years in college and I assure you people new to programming do have to put in effort for all the basic things I listed above, not just functions.

Agree with this.

I had to teach Excel to apprentices when they joined - just because they are digital natives, doesn’t mean they can actually use business tools.

For what it's worth, I have spent much of the last several years undoing someone's untested pile of garbage in Excel and making clean, tested, code with reproducible results in DBT.....
> just because they are digital natives, doesn’t mean they can actually use business tools.

As I explained in https://news.ycombinator.com/item?id=39789906 "digital natives" refers to the fact that this is the first generation for which (rather consistently available) internet was something that they grew up with from very early childhood on, i.e. they "never saw the 'old world without consistently available internet' in their life".

So, quite by definition, it does not imply that digitial natives can use common business tools.

Reaching 50 and I would agree, it isn't as bad in Germany, because despite all issues, there are more positions open than people looking for jobs.
The median age in Germany is 44.9 years, that also helps somewhat.
Notably absent from the article is that younger workers tend to be cheaper.

I didn't find the article particularly insightful. And ageism isn't a new phenomenon

How does this square with the other phenomenon we’ve all seen where new (usually younger) hires get larger compensation packages than existing employees relying on raises? If young people are actually cheaper, why do they come in making more money than the veterans already there? Not sure how both can be true.
because you are comparing different groups? new younger people are cheaper than new older people. existing employees have friction against leaving so employers can pay less to retain.

retention isn't new hiring.

53 year old here, almost 40 years experience developing professional software (yes, I was one of those kids) .. all I can tell you the one bit of advice that has ALWAYS helped me through this situation, and I've faced it multiple times:

Do not stop learning. Ever.

Seriously. Just because you graduated with a piece of paper doesn't mean you can stop studying. This is a fatal mistake.

Study the things that will make it easier and more effective for you to exchange with others.

Your diploma isn't worth a THING until you've actually delivered something - a product or service - to the world, which someone, somewhere is willing to pay for.

Until you've actually exchanged something with the world, you are of little use to it.

That is a cold hard fact, which you can either resist or embrace.

That sense of entitlement you might feel? That is what you need to work on. There is no such thing as a free lunch.

I don't know. It feels like the digital age will die with the advent of AI. People keep casting doubt. But, that's purely out of a place of ego. When you work with those tools. When you build tools on top of those tools. When you follow the research. When you notice the rate of advancement. Then, it becomes blind faith to think AI is not the twilight of digital work for humans.

Effectively no one is debugging assembly. But, I'm supposed to be convinced "someone will need to be there when things break"? Come on. There are millions in the field worldwide.

What you say is true, from my own experience as well. That said, it feels like a career change is in order simply to be able to continue to provide 10 years from now (There's another 30+ years I need to work before they let me die).

We had those feelings when DOS came along to replace Unix. Then we had that feeling when we had to choose Windows over OS/2. Then we had the same feeling when the Internet came along - it was going to DOOM programming everywhere. Then we had that feeling when AOL dumped its users on the Internet. Then we had that feeling when Google rose, and all the Web 2.0 came along to make everyones' dreams of a free and open Internet dystopian and decrepit.

You can't use AI if you can't talk to AI, and you can't talk to AI if you don't understand things the way that AI does. AI is us. Just like the Internet was/is/will always be.

In 10 years time when nobody programs any more, what will train the AI? The dog that was put there to stop us touching the computer? ;)

> AI is us

In case you hadn’t noticed, “us” is the competition. But the machine “us” can be made arbitrarily faster and cheaper than us, for what is converging on a similar technical skillset.

AI is nothing without us. Sure, it has a big set of training data now - but just how far do you think this will recurse before the knowledge becomes useless?

I'm not convinced AI is anything other than just another grep. A fancy one, for sure, but still its only as good as the data you give it. As has been the case with computers since the very beginning.

Of course, some AI-pro head will come along and tell me why I'm wrong, but the proof is in the pudding.

If nobody is coding any more, how will AI learn how to code? Is AI the ultimate stagnation of technology? It really could be, you know.

As it stands right now, I'm seeing junior programmers who cannot get AI to do things, whereas I can get AI to do things better than a junior programmer. But thats only because of my experience and knowledge. AI can be made to function really, really well as a junior dev - but only for as long as there are really good datasets from real human developers out there to work with. If the kids don't keep learning to program, that dataset is going to stagnate...

> But the machine “us” can be made arbitrarily faster and cheaper than us, for what is converging on a similar technical skillset.

Reading less marketing pitches from these AI companies is good for your sanity. :-D

How to find the time? Meeting heavy companies as an engineering manager, after a certain age you want to relax after 7p and weekends and not work on a side project

The only ways to learn:

  1) quit and study or work on side projects with savings, risking resume gap and forever unemployability as an Old

  2) work hard at current role to sneak into useful projects, ignoring management responsibilities and other priorities at current co

  3) work at night and weekends on personal projects and research
All hideous options if you ask me.
Cost/price is another key aspect that is not prominently present in the article but is a key decision driver. The assumption on the employer side is that younger folks will work for lower salaries AND can be developed to the companies needs whereas someone with 10-20 years of experience is automatically “more expensive” and has to adapt. Now there is a catch: even IF an experienced candidate would work for a lower salary, e.g. if they don’t have exactly the matching skillset and need time to learn, the employer may see this as an indication/admission of a lack of competency and decide against that candidate. It’s a tough challenge and often a lot of irrationality seems to be involved.
Boomer or wageslavery :thinking:
After decades of picking up new technical skills as needed I have confidence in my ability to learn new things so I don't waste my time learning any technology for which I don't have an immediate need. Most employers, not all, seem to primarily focus their hiring decisions on 'what do you know' versus 'what have you done'. Naturally, that negates the primary advantage that more experienced workers will have.
We Gen-Xers are the original digital natives. I grew up with early 8-bit computers, moving to 16-bit, 32-bit and 64-bit. My original 286/386 PCs got tinkered so much I didn't bother putting the case cover back on.

My desk was a mess of serial cables, MIDI cables, speaker and headphone cables. My "Internet" was dialed through manual Hayes modem commands and later required starting Trumpet Winsock. I spent hours squeezing 10K out of my DOS low memory for games or Win 3.1.

I had to partition my multiple drives, get more HDD space using Stacker and worry about FAT16/FAT32. I had to worry about 16-bit compatibility in Windows and DirectX minor versions.

Now some jerk comes and tells me I can't use some slow and ridiculous browser-based software?

Gimme a break. My teenager can't sneeze without checking how to do it on YouTube.

> We Gen-Xers are the original digital natives.

I had this kind of discussion with people who make good money managing digitalization projects.

Under the term "digitalization" (somewhat confusingly) companies understand "make (often service) X available via the internet". Similarly "digital" means "connected to the internet" (i.e. punchcards are not digital :-) ). This is a different usage of these terms than in engineering, but this usage is rather consistent.

The term "natives" in "digital natives" refers to the fact that this is the first generation for which (rather consistently available) internet was something that they grew up with from very early childhood on, i.e. they "never saw the 'old world without consistently available internet' in their life". Whether this is bad or worse for work can be discussed endlessly ... ;-)

In this sense/usage, from my gut feeling I would thus argue that "digital natives" refers to "from late Gen Y on".

These articles almost always include evidence to suggest that ageism is categorically "bad business", and every time I'm left wondering why older workers aren't taking advantage of this apparent industry blindspot to build their own powerhouse companies?

Being in a series of small startups for most of my career I haven't done a lot of hiring, but I've always aimed for people with more experience than me, so they tend to be older. And man, good software developers with 20+ years of experience are _so_ good that it's hard to imagine anyone passing them up.

The invisible hand of the market is way to "ineffective" and random for these "if so, why don't just ...".
From what I have seen, many workplaces these days, seem to be attempts to recreate the college experience (I went to a very rigid tech school, that did its best to recreate a work environment, so it wasn't a big deal, for me to enter the workforce). Not sure that's the best thing to do, but a lot of folks are making a lot of money, so I guess I'm just out of touch.

In Ye Olde Days, most companies were run by folks in their fifties. These people (the good ones, anyway) knew that they had to have the energy, enthusiasm, and creativity of youth, but were also quite aware of the need for structure, stability and confidence that only comes with experience.

Since older folks had the money and power, younger ones were forced to work with them. Now that youth has the money and power, it seems as if they don't feel the need to have older folks around.

You've sneaked in a premise that they are not starting their own companies. As a counter-example, there are many 40+ year old people were laid off in the video games industry in recent years, who have since founded their own companies. They attract good talent, offer good working conditions (often remote), and attract funding much faster than the usual new company in this space. So in that sense, they are quite robust and formidable. Another way to say this is that they are in auspicious circumstances to build powerhouses in a blind spot.
As a GenXer, the issue is that there really isn't very many good GenXers - software was so new there just aren't many 20+ years of experience software developers, and then there were so many bad ideas floating around for so long, the subset of those developers that are actually good beyond the abilities of people with 10-15 years of experience is small.

I mean, when I started, there was maybe 100k "computer programmers" in the US. Now there are millions.

I chopped ten years of highly relevant experience off my resume and the response rate to job applications improved vastly.
I have the same policy. I list maximum of ten recent years on my resume and leave the other 20 off. When a past role “ages out” I just delete it. In this environment it’s at best a neutral signal, at worst it counts against you. I took all dates and years off mine too, so you can’t guess how old I am by knowing my university graduation year.
“Malleable” is a funny way of spelling “cheaper”.
> “Malleable” is a funny way of spelling “cheaper”.

“Malleable” rather means “has no strong opinions (often based on existing knowledge) on how things should be done, and is thus a lot more docile tp managers”.

"setting up a printer"

Ahavi/bonjour, mDNS, multicast, cups.d settings -- oof. Setting up a printer to run well on a network is actually a very frustrating task and will fail in surprising ways.

Huh. I have to say as a Gen Xer that it's hard to find articles that celebrate cool stuff we do or did, or even ones that condemn us for the mistakes of our generation. Instead we get these "Let's pity the poor confused Gen Xers" bits. Meanwhile you can't throw a stone without hitting a meme that mocks millennials.

Back in the day I thought GenX was all about rebellion, absurdism, and a laugh-behind-your-hand-while-you-take-the-check anti-corporate stance. That's still working for me and I'm having the time of my life learning or dying because that _is_ life.

Anyway get off my lawn, I have to go ask an AI how to manage people.

In my little internet sphere, the only time I see genx mentioned is by genx themselves, and it's to complain about how easy everyone else has it, how weak everyone else is, and most of all, how badass genx was/is. It seems you're becoming the new boomers.
Well that behavior is both stupid and contagious ;)
I’m biased (Gen X) but I think Gen X has had the most interesting computer technology progression of everyone living today. We started with 8-bit computers like the C64, Apple II, Atari, moved on to 16-bit and DOS, moved on to the 32-bit triad of Windows, Mac, and Linux, on to 64-bit architectures, went from 2400 BBSs to 9600 and beyond, transitioned from dialup Internet with PPP to backbone-connected networking in college, just catching ISDN, DSL, and cable modems as young adults, now enjoying cloud services and hosted VMs, were steeped in assembly language, then BASIC, then pascal, C, C++, got to work with higher and higher level languages and frameworks, and are now witnessing a transformation to AI prompt driven development.

What is Gen Z’s “technology progression” look like? iPhone6->iPhone X->iPhone 13->iPhone 15->and on and on… yawn. Development-wise it’s varying versions of Xcode and/or js frameworks, I guess, and now on to AI prompts. I feel like they missed out on so much!

The interesting thing to me is that there is ageism in the title of the article and no one seems to notice. That makes me think that ageism is a deep seeded and very prevalent problem.

The phrase "had to learn or die" has an implicit assumption that Gen X may have trouble adjusting to new technology.