Hacker News new | comments | show | ask | jobs | submit login
Over 30? Too Old for Tech Jobs in China (bloomberg.com)
306 points by Apocryphon 4 months ago | hide | past | web | favorite | 230 comments



Ethics aside I wonder if it’s a good for efficiency. I mean, sure they can work the young guys harder, but is the work they are getting good?

I know I prefer to hire people with experience because they deliver better work, faster. Part of that comes from managing their work/life balance better, but maturity in general have almost no downsides in the thinking business. Older workers are typically better at analyzing situations and also at telling me truths that they think I don’t want to hear, which is immensely valuable in decision making.

Not that you’ll want only experience. A balanced work force is the best in my opinion. Get your experienced staff to mentor your hires fresh out of school, and they’ll teach each other.

I know ageism is a thing in tech, and probably especially in startups which is mostly people in their twenties, but wasn’t there recently an article on how the most successful startups are actually started by someone aged 35-45?

I wonder if the Chinese ageism is because China is approaching tech as a factory line? Which would be a radically different approach than we have in Scandinavia, where we want our engineers to be well educated and capable of self-management and teamwork.


> sure they can work the young guys harder,

If you are NOT a good manager, that is all that you care about.

Did you fail to plan the rest release? Developers will do extra hours.

Did you miss understood the requirements? Developers will fix it with extra hours.

Did you decide to use the wrong technology for the project? Developers will work extra hours.

A company that hires only people that does what is told and stays longer hours have incompetent management.

> I wonder if it’s a good for efficiency.

Companies that value diversity (age, gender, nationality, etc.) are the ones looking for that high-quality output that makes products work in the long term.

Sweden is as successful as China when it comes to software, even that there are orders of magnitude of the difference of population. The main reason is the respect for family and employees. Even that Sweden also is far from perfect.


>Companies that value diversity (age, gender, nationality, etc.) are the ones looking for that high-quality output that makes products work in the long term.

What’s the evidence behind this assertion?


I think this is actually stated in the reverse, based on my experience. Companies that value high-quality output generally tend to become more diverse as they grow. There are obvious places this falls on its face. I used to manage plenty diverse global team of engineers (China, India, Brazil, Mexico, US, and a few in the UK) but that doesn't mean diversity was a cornerstone of our culture. Our CIO just wanted to cut expenses and do as much as possible in low cost locations. Software quality was predictably mediocre, not because there weren't some good engineers but because the short view was valued far more than the long view, and every dev cycle was a series of compromises followed by releases that were series of P0 emergencies.


> I used to manage plenty diverse global team of engineers

To have Chinese engineers in China, Brazilian in Brazil and Mexicans in Mexico is NOT diversity. That is the contrary of diversity. That is to have homogeneous teams.

I have worked for companies in Stockholm that have people from India, Canada, Australia, Sweden, Spain, Ukraine, Poland, ... working together in the same office. That is diversity. All of them were had the same range of salaries and expectations. Of course, it was not fairytale perfect. But it was quite good.

Externalizing costs to a low-cost country has nothing to do with diversity, as I understand it.


> To have Chinese engineers in China, Brazilian in Brazil and Mexicans in Mexico is NOT diversity. That is the contrary of diversity. That is to have homogeneous teams.

I'm curious what definition of Diversity you're using that a team of people from all over the world doesn't qualify.


They're saying that if you have one team that's all Mexican and another team that's all Chinese, neither of these teams are diverse. Your company might have diversity if you look at the employees as a whole, but segregation is not part of what diversity is supposed to mean.


Ethnicity is not the only measure of diversity. To boil diversity down to one metric like that is missing the point.


You're right, but I think it's still important to consider. If I had a team of engineers that were from diverse cultures, but all happened to be male, I would feel that lack of (gender) diversity would still be a fair criticism. It's not boiling it down to one metric, it's pointing out that there's an important metric that might have been missed.


I didn't boil down diversity to one metric. I was responding to this:

> I'm curious what definition of Diversity you're using that a team of people from all over the world doesn't qualify.

What you wrote would work better as a response to that than to what I wrote.


Yea i echo this - genuinely different backgrounds, influences on business processes and styles as it pertains to the company is discountes as not diverse because of where they are pgysically located.

Like an office in sf with all genders and colors represented is diverse...even tho they are all impacted by being im sf and sf culture


So my global, remote team isn't diverse... because they're remote? The shared office doesn't matter IMO.


I believe it boils down to how often they all interact with each other. If they're all part of one team, and are regularly interacting, that's one thing, but if they're all kind of self-contained units that don't interact with each other normally, that's not that diverse.


I should have been clear. People across these teams were working together on projects, so in that context it meets your bar (as far as I'm concerned). That said, when I started at Google there were 7 countries represented in my initial team of 15 people, which is an entirely different situation.


Googling to me suggests its not as well studied as it could be; there are papers out there (eg: https://www.theseus.fi/bitstream/handle/10024/63581/Thesisxx... and https://www.sciencedirect.com/science/article/pii/S221256711...) but I'm not seeing anything with a lot of solid data out there (though this probably is a hard subject to quantify in such terms).

Intuitively though this position makes sense to me that, as long as the various issues surrounding natural human tribalism are managed, diversity is generally helpful -- as each "tribe" may offer a unique perspective towards problems and solutions.

Having said that, a lot of articles on "ageism in tech" more or less seem to focus on cultures of work that promote "long hours" for long hours sake, over something more balanced (and, in the end, productive and efficient). There's plenty of evidence out there that shows how wrong-headed of an approach "long hours" cultures are, this is not hard information to look up.


> may offer a unique perspective towards problems and solutions

This is my impression on why diversity generally works well. Unique perspectives and experiences often generate more original and creative approaches to some problem which in turn is much more valuable. Additionally, and especially for FAANGs, having the organizational awareness of a diverse set of perspectives allows you to create solutions that are broad and can adequately meet the inherent diversity in the world.

People often want to look at software engineering as this super technical line of work, but in practice it really isn't. How, What, and Why to engineer something varies significantly. Everyone will probably have a different approach to solving a problem. More diversity means a greater net to catch which one might be the most optimal.

Plus, you might want to create services or apps that specifically target a need. I would honestly question how well an app for women might be if is made by all men. I would question how well a app for rural living might be if it was made by people who only lived in a city. I would question how well an app designed for use in America might be for use in Africa. There are cultural differences and use differences, needs and wants, infrastructure, etc.

It would be assumed a highly diverse team would be much more suited to trying to solve those problems. And I would also believe that a highly diverse team would be the result of authentic merit based system anyways.


There is no evidence for this (I am not saying whether or not this could be empirically verified, I have no clue), but it is politically incorrect, especially on this website, to claim anything otherwise


here is a nice piece of article about that: https://www.scientificamerican.com/article/how-diversity-mak...


Maybe software for international markets. But there's a lot of software produced in China for the huge domestic market. I doubt Sweden has the same software output as China.


Per capita, I'm pretty sure Sweden has a higher output.


There are dozens of us, dozens!

Judging by any Stockholm coffee shop as well we’re all programmers, so the math checks out.


Per capita they are also the largest arms dealers in the world. Per capita doesn't say much about a country overall.


It's the only argument that makes sense for disparate population sizes.

The US and UK (and less so Germany, France, Israel and Japan) produce a sizable majority of software products, especially at an enterprise level. At a per capita level, that gap is even larger with China; and countries like Sweden and Norway become top players.


It’s a meaningless comparison, the median Swedish/Norwegian citizen is far more educated, wealthy, and capable of producing software than the median Chinese citizen.

China’s per capita software production is dragged down by its massive rural population, many of whom have never even owned a computer other than a smartphone. If you don’t account for that, then obviously wealthier/more urbanized countries will have higher per capita production.


China is 55% urban. Its had a massive urban influx, and in fact the largest growth area in population is urban.

However 1 in 5 are 'migrant workers' with no fixed address. I'd guess they are the least educated demographic.


> It's the only argument that makes sense for disparate population sizes.

Or you accept that a comparison simply can't be made and don't make the argument in the first place.


Incorrect.


Many management issues you mention are not cut and dry. The fact is early stages of a product development tends to be experimentation and fast iteration. Experienced, heavy hitters don’t work well in this situation, they are great when the product has matured and you need stability and need to fix the last 10% of the issues. Hiring new grads who can code certainly helps in man many situations, but not all.


It's exactly about the company i currently work. They're just adding more and more developers.


>A company that hires only people that does what is told and stays longer hours have incompetent management.

Only when quality of end product / developer hapiness is concerned.

Which, lip service aside, are not metrics that managers are usually measured buy.

Do they bring in profit?


Sounds like the TSB way to manage things :-P


I have received results from BGI (Beijing Genomics Institute), which is the biggest genomics company in the world by now which does a lot of genome sequencing and assembly on demand.

They employ a massive amount of undergrad and postgrad students to do their work with a high turnover, complete with living areas right next to the building, since that's cheaper than having people with experience.

>BGI in Shenzhen has a staff of nearly 2700: scientists, lab workers and clerks. The average age is 27, and the atmosphere is university/YWCA/science club. Two-thirds of the employees live in sex-segregated dormitories near the BGI building [...]

>Some geneticists have raised an eyebrow at BGI: noting this army of young and often not formally qualified workers

Source: https://www.smh.com.au/technology/chinese-genome-mappers-bgi...

Somewhat mirrored in the Glassdoor reviews: https://www.glassdoor.com.au/Reviews/BGI-Shenzhen-Reviews-E5...

This is noticeable from the results I've received, as in the quality being all over the shop. Sometimes the results are documented nicely, sometimes there's no documentation. Sometimes a different genome assembler was used, but it's not in the documentation. Sometimes it's really good, sometimes it's complete crap. We've stopped doing business with them as it's simply not reliable.


> >BGI in Shenzhen has a staff of nearly 2700: scientists, lab workers and clerks. The average age is 27, and the atmosphere is university/YWCA/science club. Two-thirds of the employees live in sex-segregated dormitories near the BGI building [...]

Sounds like a nightmare.


Makes me glad I ordered prenatal genetic test for my daughter from Roche (Harmony) and not BGI (Nifty).


I believe it’s simply easier to manipulate younger devs into taking lower salaries, in general. So the tech companies (and apparently in China as well), reinforce this ageism.


> I believe it’s simply easier to manipulate younger devs into taking lower salaries

I agree with this, but just wanted to add how interesting it is that it occurs in a country ostensibly run by a system which is ostensibly about the power of labour.


Isn't this rampant on US as well though?

E.G. shallow perks as ping-pong table, snacks, videogame, beers in the office but totally disfunctional management and work-life balance.

Using the latest shiny tech just because it makes it easier to target these groups and replace the burned out ones.

I see this happening a lot on finance and consulting jobs outside of tech too:

- Offer a reasonable salary for interns/trainees (not reasonable relative to the responsibilities though)

- Promise a huge corporate salary with benefits for the ones that are able to remain more than x years

- Burn all of them out, working overtime, abusing from young inexperienced people

- Promote a couple from dozens of people to serve as an example of successful cases

- Fire or continue abusing the rest

- Rinse and repeat

In the end you acquired a couple of indoctrinated corporate zombies as well as years of cheap hours from the other ones.

Just take a look at every year's trainee program and the mind washing process from banks and corporate consultancies. Do the candidates really believe that the company needs so many trainees each year? The turnover is a feature, not a bug...

Edit: Just noticed my point is not related to your argument, and I actually agree with you.


Replying to ataturk, who make a comment that is accurate (it doesn't deserve to be flagged, and I've 'vouched' for it), yet missed something:

> Communism is not about the "power of labor." Communism is about taking the individual and beating him into the mud until they are a bloody pulp, unable and unwilling to ever resist again.

Yes, that's why I used the word 'ostensibly'. As in they're not even paying lip service to the supposed goal.


Please don't vouch for ideological rant comments; they're off topic here and break the site guidelines every which way. And please don't use HN for ideological battle in general.

https://news.ycombinator.com/newsguidelines.html


I've been on HN for 10 years and am familiar with the guidelines. I don't think "communism directly killed a bunch of people" is much of an ideology as a fact (some sources argue it was 64 rather than 100M people). But I won't reply to s73v3r_ since you've asked me not to.


In that case you know that the value of this site is intellectual curiosity. There's no intellectual curiosity in people bludgeoning each other re 100M vs. 64M mass murders for the umpteenth time on an internet forum. Ditto for "communism vs. capitalism". This simply isn't a medium where anything new can be done with it.

Because it's all so predictable, it's all off topic here. If this is what you want to do, you'll need to do it elsewhere. That's a plural "you", not just you personally.


> There's no intellectual curiosity in people bludgeoning each other re 100M vs. 64M mass murders for the umpteenth time on an internet forum

People aren't arguing each other re 100M vs. 64M mass murders - that's the different sources just for communist uprisings. The same doesn't exist for capitalism because the introduction of capitalism does not coincide with mass murder.

> If this is what you want to do, you'll need to do it elsewhere. That's a plural "you", not just you personally.

Understood. Better yet, can we simply just ban advocates for communism, nazism, genocide, etc?


They're an insignifcant part of the problem compared to people who invoke these labels rhetorically and want to argue about them.


Their comment was not accurate, and that's why it was flagged and downvoted. In many areas, you could say the exact same thing about capitalism.


That's a ridiculous comparison, and probably a better example of a comment worth flagging. Capitalism has many faults, but hasn't directly led to the deaths of 100M people.


I would beg to differ on that. Capitalism has brought us many, many harmful things. Oil companies using might to muscle into developing countries, polluting them, and not doing anything to clean up, for one.

If you're going to blame the deaths of 100 million people on Communism, you have to attribute to Capitalism the same deaths caused by companies flouting the law, releasing dangerous products, and market based providing of services. Communism isn't to blame when someone dies because they can't afford healthcare.


I think you would be very, very surprised at the quality, quantity and cost of engineering talent in China. This sort of ageism is awful but there's no doubt that China is still very much coming online with its engineering workforce. Moreso than in the West landing a good engineering job can be like winning the lottery. It's a prestigious title that can deliver more than just money... heck, in some regions engineers are more desirable than doctors when it comes to marriage. Combine this with significant state support and a huge internal and competitive market and it'll produce a ready, eager and willing workforce. This is all part of the master plan of the CPC to produce a viable middle class and a consumer-driven economy.


Do you refer to just software engineers being more desirable than doctors for marriage in some regions, or all kinds of engineers?

I thought that the bar to enter the engineering profession overall (except in some areas of software development) is still lower than medical. Wondering what the current situation in China is.


In my experience, the real desirability in China lies in getting engineering jobs for the popular, growing tech companies (just like in the US). There are millions of engineering jobs in IT departments all over the country that are undervalued and paid minimally.


Also doctors presumably have professional lives lasting more than eight years.


Well if that's the case Tech companies in China are going to have to learn to adapt, and start hiring older people considering the coming steep decline in the working age population of China. Millions of people are going to be vanishing out of the work force, because of the imbalance that was created by the one child policy. In 2018 alone China's workforce decline is expected by nearly 4 millions people, and this trend will only continue.

https://imgur.com/a/KC2LtLR


I know that without engineers over 30 Amazon Google Facebook etc. would have imploded by now


It's the eternal September with some members of the younger generation.


I don't know about the startup study you're thinking of, but I've seen studies that suggest the main difference between under 30 and over 30 in the workplace is that the over 30 crowd simply spend less effort. That is to say, they both output the same amount, but the older folks don't spin their wheels as much. I'm not sure how much of this is experience at a task, since I'd expect a more experienced worker to need less effort at a given task, and how much of this is physiological. My personal experience is that 20 somethings waste a lot of time on shit that doesn't matter in general, but, again, that could just be that I've wasted enough of my own time to have a better sense as to what's wasted energy.

Where it gets murky for me, is that by 30, the majority of brain matter is now grey, which is great if you're dealing with things that don't change quickly, cause grey matter is smoking fast, but not so good for fast moving areas like tech, because it's not as plastic. I could see a slight argument for ageism in tech, for this reason, but I've been doing it so long, that I'm finally starting to see history repeat itself, and it's really easy to see past the hype of most 'new' technologies, given that they're often just repackaging of some idea from a decade ago, and it's a big mistake not to have someone on the team who can recognize these trends.

Personally I really think it's a mistake in general to avoid diversity though. There are so many diverse tasks in software, that you really need people who are happy doing different things. Also getting different viewpoints and concerns can really round out a product, and can make finding bugs easier.


I guess if you have well-behaved and disciplined people below 30 things might work in favor of them, but the majority of developers I meet in daily life refuse to grow up any time before their 30s. Long days? Sure. Get the product shipped within spec and on time? If they don't get distracted.

But that might only be problem in the West.


Just imagine the sheer difference in size, there are millions every year finishing their higher education in china, chinese cities are bigger than scandinavian countries. When you have this many people labor is cheaper and you have more employees in the big companies. The way og managing people in scandinavia simply cannot happen there. It is like the only thing that can manage such big companies are policies and the chain of command. So for example i imagine if you told your managers to tell their sub-managers to hire senior staff all you would get is higher salaries because people get to where they are not based on merit but because how good they are at politics. So then the only rational choice would be to get naive young people who will believe what the boss say without questioning and cost less.


There are plenty of big companies outside of China that are both big and don't follow military practices for management. You scale big companies like you scale anything: you break down the problem into smaller subproblems and solve those.

You make it sound like only way to scale is by having a dictatorship and a strong chain of command. Historically the more power the peons had, as long as they didn't completely disregard the chain of command, the stronger the organization was.

Also, despite China having 1 billion people, you don't need 1 billion employees to turn a profit. Even the biggest Chinese companies, outside of state owned ones (which have different, more social, objectives) aren't much bigger than other big companies worldwide.


> Ethics aside I wonder if it’s a good for efficiency. I mean, sure they can work the young guys harder, but is the work they are getting good?

Especially with software, which is a creative business. Your first hour of a day is probably a lot more productive than your 12th. That last hour might even be counterproductive, when you create bugs and extra complication that needs to be sorted out later.


Personally, I definitely worked longer hours when I was younger, and was generally more available on weekends, evenings, etc. Now, I'm substantially more productive during the hours I do work. Overall, I'd say my output has increased and improved in quality, but ad hoc, after hours requests (nights, weekends when I'd have dropped what I'm doing to take care of them) take longer.


> Not that you’ll want only experience. A balanced work force is the best in my opinion.

Can confirm. I(college student) work in small remote product development lab with a guy in his 30s and one in his 70s. The rest of the team is 1,000 miles away in San Diego. It’s beeen one of the best learning experiences I’ve had. And they pay generously on to :)


>Ethics aside I wonder if it’s a good for efficiency. I mean, sure they can work the young guys harder, but is the work they are getting good?

That would matter if their success was tied to the quality of the work -- not just rushing it to market, promoting it, and so on.

Which is not usually the case, either in China or here...


A friend of mine was trying to upskill himself and learn AI/ML. He had 10+years in IT and well paid . But on approaching his manager, the upskilling request was denied.

The manager said that he could "gather a bunch graduates" to build an AI/ML platform. There was no need to experiment and bet on someone with that much salary and experience.

So, I somehow feel ageism in tech is the result of everyone thinking tech is easy to build. A 15+years JAVA guy has similar output to say 5-6 years or for some extreme managers even 2-3 years.


I’m slightly over 40. Recently, I’ve been interviewing, and almost all of the focus has been on how I solve their ‘coding challenge’. Few questions about software engineering practices, algorithms or data structures, about how to approach challenging problems, make trade offs, or ship software.

It all comes down to if I can solve a problem like “Given an NxM matrix of integer strings, print true if any row, column, or diagnonal contains only palindromic numbers that can be written as the sum of consecutive squares.“ Oh, and on some random guy’s laptop, with a panel of 4 people watching me type as they sit in silence, and with 20 minutes remaining.

When I look back at all of my career successes (leading engineering teams through 10 successful commercial products, 4 startups, 3 acquisitions, millions of users, etc.), coding was hardly important.

I guess it’s time to retire.


Fist, I don't want to work with a group of people who have only been selected by their ability to solve stupid, meaningless puzzles. That's something you do in college, which I hated.

Second, once you get past a minimum level of intelligence a lot of success in software development is based on motivation. It's hard to be motivated by a made-up problem where all your hard work is going to be thrown away and not used by anyone for anything, and my first step in solving it is to involuntarily roll my eyes and groan. That starts the project off on a bad foot to begin with.


I take offense on the "stupid, meaningless puzzles". I don't agree with their use in interviews, but that's needless bashing.

You not liking them doesn't make them stupid.


Different people like different kinds of puzzles. I like Fermi-type problems, which at least at one time, it seemed like everyone on the internet liked to bash. It may be they are no longer bashed because interviewers abandoned them.

I once posted a puzzle on a different website that boiled down to "why did I choose this particular non-round number" with some context, and eventually someone got it, but some people got very angry at me.

The trouble is that a lot of puzzles reduce to "can you follow a particular convoluted path to a solution" and if you don't, you are being judged unworthy for being dissimilar in your thinking and not necessarily for your sheer brainpower.

That's why I prefer puzzles that nobody has solved, but those have two obvious problems - either (a) they are too hard to solve, or (b) once solved, they appear to be too easy. Either way, you can't use them as tests.

It's natural to like tests that you are good at and other people are not, and to hate tests that other people are good at and you are not. So, people are always going to take offense at tests.


Seeing whether someone can code has to be part of the recipe. It's surprising how many candidates can't demonstrate basic coding ability. The coding component is better if it requires the candidate to ask questions about what is required, where they can demonstrate their thought process and approach to the problem at hand. Anything that requires more than 15 minutes on a whiteboard is probably overkill. Brainteasers and the like are mostly a waste of time.


> “Given an NxM matrix of integer strings, print true if any row, column, or diagnonal contains only palindromic numbers that can be written as the sum of consecutive squares.“

Ok, but this is not really a puzzle. It looks like a rather trivial exercise just to see if you can write nested loops. I guess an average software engineer shouldn't have problems with this. Or I am missing something.


Well, I failed this one and similar problems going on 5-6 times now.

I don’t know why I can’t do it. I freeze up with analysis paralysis, or stage fright, or something. Maybe it’s because I have no clue what they’re looking for, and I’m so used to simplifying problems based on business cases and stakeholder feedback. Maybe it’s because I’m always thinking about production-grade code (I do try to avoid nested loops!). Maybe because I assume that the problem requires a specialized data structure, and so try to invent it on the spot. Or, it could be that I am old-school and like to solve problems on paper first before coding.

You may not believe me, but I code everyday. At every job I’ve held, I’ve been complimented as one of the best programmers. So, maybe I’ve only ever worked with C-grade developers? But, I’ve worked with 100s of people. How can that be?

But, let’s say that I really do suck at coding. Are all my other attributes, skills, and experiences valueless? Seems like such a waste.

Years ago, relatively early in my career, I went into management. But, I only did it for 2 years before going technical again. It just didn’t make sense at that time. Senior developers then made more than managers, and I enjoyed building things. Now, I really regret that decision.

Anyway ... I clearly can’t get a job. Anyone have any career ideas for a washed up software engineer?


There are definitely companies out there that don't follow the Cracking the Code Interview/Hacker Rank formula.

This is an interesting list that has been posted here before:

- https://github.com/poteto/hiring-without-whiteboards

But if you want to work somewhere firmly in the whiteboard club - do regular practice on hackerrank and leetcode. Many interviewers will draw their questions directly from those sites (and some others, I'm sure).

(Personally, I honestly feel those exercises have improved my coding, so there's that too.)


What resources are you using to find jobs and where geographically are you looking for jobs? I started looking a couple of weeks ago and found AngelList to be a lot better than Hacker news job postings, YMMV.

I thought it was kind of silly but have you tried practicing on hackerrank or leetcode for the coding tests? Hackerrank feels pretty brittle but a lot of companies use it for timed screening so good to get a feel for the platform's ability to lose all your work in a non pressure situation, leetcode has very useful discussions about user supplied solutions.


Hey Afpx,

You're not alone. I recently went thru this myself and wrote up my experiences here: http://fuzzyblog.io/blog/jobhound/2018/04/24/ten-things-i-le...

I hope that helps.


Sitting here, in your chair, you can definitely do this no problem, right? So find a group of people who will simulate the interview environment for you.

Also, there are strategies for managing the time problem. 20 minutes is a bit fast for understand => ask questions => implement => test on this problem. But you can organize the code so that if you run out of time it's still clear you knew how to solve the problem and can code your way out of a wet paper bag. E.g., I would pass an answer that got everything correct but didn't get around to implementing isPalindrome() or isSoCS() before the 20 minutes was up, especially if the candidate could give a ~1 minute description of how to implement those functions. (I would also give more than 20 minutes.)


I interviewed at a place that started by having me do a HackerRank test online, and complimented me on my code and comments. Then the in person interview ended with a coding test involving a much simpler problem which I assume I failed, from my perspective due to the pressure of limited time and people talking at me. It's hard for me to figure out what was going on, unless they basically thought they were testing to see if I cheated on the first test.

However, I haven't experienced repeated failure of a consistent type, so I'm not particularly motivated to worry about this sort of thing. I do know that different companies have radically different processes, so if someone tells you "you're not a good fit" it may be completely true and not a negative judgement at all (even if that's how they mean it).

It so happens that I got my undergraduate degree about ten years later than is typical, and thus I can pass for someone that much younger than me, at present. So in an interview, it is tempting for me to give away my age by reminiscing about computing in the 80s, and that could have caused me to be rejected a couple times but I will never know for sure...


We use questions like this (actually, significantly simpler - basically, can you drive a loop and an array) as a screener test to see if you actually write a trivial program. If you succeed, it's a chance to add constraints and talk about how data structures and algorithms would change given these changes, or how it could be more optimal, etc.

But a surprising number of applicants fail to pass a simple coding test, not even getting a naive solution.


There exist people who can't code in an interview, period. Now, you might react to this with doubt that they are employable. But the reason such people exist is because interviews that do not require even trivial coding exist, and thus they are hired and proceed to code just fine in their actual job.

One thing that really helps with perspective, whichever side of an interview you are usually on, is to have seen how radically differently different companies do things.

That doesn't necessarily mean that you should change your practices, but diversity in behavior exists because there are niches that can be exploited and trade-offs to doing so.


Solve it with a For loop and it's immediate interview fail. The solutions should be optimal. /S


...because our architect forbids use of for loops. One killed his pappy.


> Oh, and on some random guy’s laptop, with a panel of 4 people watching me type as they sit in silence, and with 20 minutes remaining.

That part, to me, is worse then the question. Are you exaggerating, or did the panel really just sit there and watch you? If so, can you say which company so people know to avoid?


isn't this what most companies do?


The difference is between companies who want to use technology to really gain influence in the world (Amazon, Alibaba etc) and companies that just try to get by creating some fluff so the next paid version of their product keeps customers paying.

The first kind of company will not underestimate certain workloads and pays experts very high salaries. The second company really doesn't need to succeed technology wise, so they use the cheapest way possible to create their fluff.

And one tip that always applies: Never tell your manager about your ambitions. Never! A middle manager is certainly someone who is more about the fluff+constant pay type of person, a rent seeker. He doesn't like people showing true effort and actually gaining leverage for raises and maybe even take over his position. Especially the last point is very important to him. For him his position is the most valuable thing in the world so it is natural from his point of view that everybody below him wants to steal it from him. And it's also not totally wrong since he probably got his position just in this way. So even if you work for Amazon who really want to compete for AI leadership don't tell your manager. Maybe talk with HR or do it in private, and then apply for another team when you got the skills.


I believe your 'one tip that always applies' is horrible advice. And if this is the mentality someone approaches management it doesn't surprise me they have bad relationships.

For me I'm open and direct with managers. I've had some good ones and bad ones. Id say 70/30 ratio in favour of good. And when a manger is bad the adage plays true, 'People do not leave bad companies, they leave bad bosses'.


If you showed the ability to steal his position, that means he made a good hire which means he's going to move up himself. So why would he care if you had ambitions on his position or not? All the better if you did. Your working harder makes him look good.


Really good question! I also find this part quite illogical myself. My current believe (but no evidence whatsoever) is that:

a) He doesn't want to move up. The higher you get the more visible lack of skill and ambition becomes as well.

b) “It is not enough [for him] merely to win; others must lose.” ― Gore Vidal

Sorry, that's all I got about this question.


Wouldn't he also have to learn a lot of advanced mathematics? I'd imagine the bunch of graduates in this case would be math majors. Obviously I don't know the specific requirements of your organisation, but this re-skilling might take up to five years ( if the requirements were R&D focused... Maybe the situation is different if it's more about applying pre-existing sofware. )


Does ML really need advanced maths? I think you're under-estimating how the fundamentals are pretty simple really. What we were previously lacking was raw processing power to get good results.


You would be surprised how the devil always emerges in the details when you move to real applications from academic exercises and datasets.

I definitely use a lot of statistics daily. I do not need to compute integrals by hand or construct formal proofs, but a lot of intuition is necessary.

Statistics is very tricky by the way. It is so easy to have incorrect assumptions and totally misapply the methods. Also another problem with ML in general is that if you make an error you very often do not notice it. The methods will usually work a bit worse but they will still kinda work.

Just yesterday I discovered a tricky feedback loop that corrupted my data for several weeks.


> Statistics is very tricky by the way.

I think this why HR hire computer engineers instead of statisticians when it comes to ML.


At least half of my colleagues have degrees in mathematics.


Yes, it does, especially if your going to put a model in production for anything critical ex: self driving cars, healthcare. Understanding the math is what allows you to properly understand what is going on, how to improve, debug, etc. A person who only knows how to use a library/framework will be limited.


Who said anything about him using it for health care or self driving cars?

The vast majority of applications for AI/ML can be done with libraries, just like the vast majority of programmers doesn't need to understand how to make a compiler or even how memory works. It just helps.


The vast majority of programmers do need to understand boolean algebra though. Likewise, you do need to understand matrix algebra and statistics to do any AI/ML beyond a color-by-numbers problem.

At some point you need to explain why something works.


Matrix algebra and statistics are taught in high school, or at least were when I was young.

A random 40 y/o programmer might be rusty on it, but it's not going to take very long to pick it all up again.

And if you've done any game programming even just for fun, you probably know quite a bit of that already.


There are plenty of ML problems that requires nothing more than being able to pick up something of the complexity of Bayes theorem. Yes, there are also ML problems that require far more. But you can't say much about the math requirements without knowing what kind of problems they'd be working on.


I'm pretty sure I can have the same output as a chess grand master, even though I haven't played it in decades.


> But on approaching his manager, the upskilling request was denied.

Bad way to go about it anyways. The best way is to change companies if possible (granted, one will have to put in their own time to learn or do it quietly at their current job). If the company is good about intra-company movement, it might be possible to do this within the company, but often the companies that can do this come off as too large to have the flexibility one needs to really dive in as opposed to getting lost in the fray (you'll feel like you're a junior all over again). Unfortunately, mobility is the antithesis of stability.


> he could "gather a bunch graduates" to build an AI/ML platform

I would claim that the more general and reusable the tool ("AI platform") is, the more experience is needed to build it.


> A 15+years JAVA guy has similar output to say 5-6 years or for some extreme managers even 2-3 years.

I'd expect the output to be logarithmic.


Somewhere along the line you learn it's better to write a couple lines of shell script than 20,000 lines of Java.


Something tells me you just read the latest XKCD.


It's not like overengineering is a new trend that emerged a few years ago.


I totally understand where that's coming from. A guy doing the same tasks/processes for 15+ years will get less and less from additional experience.

However, he will not do exactly the same thing. For instance a 10+ years guy might realize that instead of investigating a topic for 3 workdays, he can ask the colleague from another team he worked with 2 years ago, and get the answer in 20 mins. His processes will change a lot, so his output can increase exponentially even. Of course it's limited by his intelligence, i.e. his ability to learn from his experience. And it's likely to happen in steps. So a quite smooth line for a few months, then an aha-moment where he bumps his output drastically, then another smooth line.


Define output. Once you get to a certain level of competence, you can easily produce lines of codes, so if that's your metric then the output plateaus after some years.

A developer can only type so much each day, after all.


I took the word from the parent comment. But I assumed it to mean whatever the employer gets (or wants to get) from the worker.


In late 2015 (maybe early 2016), I was interviewed by the engineering manager of a 20-to-50-person tech company for a iOS engineer role in Hong Kong. I answered all tech questions well. But when I heard his last question, I knew I would not get this job. The last question is "how old are you?". I hesitated but still told him "35". He did not say anything. I know it is illegal in the US. But I was not in the US.


Only slightly related...well OT as heck: VP of Sales at a tech company in San Jose was interviewing me for a field technical management job. The final question he asked was "Do you play golf?" I answered truthfully "No" and thought to myself, that is illegal as hell but it looks like I'm not getting the job. He replied "Learn!".


There’s nothing illegal about only hiring people who like to play golf. (Unless you think that’s a proxy for being white or male or Protestant.)


Under US labor law, facially non-discriminatory policies can be the basis of a discrimination suit if they have a disparate impact on protected classes. If there is a disparate impact, the employer must show a valid business reason for the requirement.


That's the rub about the seemingly innocent golf question. What if someone has a physical handicap that prevents them from playing golf but in no way affects their ability to perform the duties of the job they are interviewing for?


Huh? Where is golf status a protected class?


Because of the handicap.


Hah. Good one. I just lol'd at work.


That is quite legal in the US. Discrimination from age 40 is illegal. Firing every employee at age 39 (Logan's Run!) is totally within the law.


Many startups are exempt from even that. The Federal Age Discrimination in Employment Act applies to companies with 20 or more employees. Some states have stricter rules (5 employees or more for the California Fair Employment and Housing Act).


Companies here are so litigation-averse that they’d never fire someone outright for being too old. They have an entire department (HR) to help build a solid, believable paper trail for firing them for “performance issues”.


> The Age Discrimination in Employment Act of 1967 (ADEA) protects certain applicants and employees 40 years of age and older from discrimination on the basis of age in hiring, promotion, discharge, compensation, or terms, conditions or privileges of employment.

Are you maybe referring to a different federal law?


I'm no lawyer, but couldn't one allege that policy has a disparate impact on older workers?


Hong Kong is not China


Hong Kong is most definitely China. [1]

[1] https://en.wikipedia.org/wiki/Transfer_of_sovereignty_over_H...


Hong Kong is most definitely not China. [1]

[1] https://en.wikipedia.org/wiki/One_country,_two_systems


Even your link says "one country" :)


The key was "two systems" which I think is the more relevant part to the article ;)


They've reneged on many aspects of that since handover.


Granted, but put quite simply, I have residency in HK but still need a visa to visit mainland China.

Also the capital controls are entirely different. It's naive to say they are the same country when they are demonstrably different in terms of culture and laws - despite their many similarities.


Will be in future.


Yes it's already a part of China. However like Taiwan, the culture is different. While HK shares a lot of traits with the mainland, it's culturally still closer to the West. That said things change over time.


Then Hong Kong will no longer be Hong Kong.


its only slowing being invaded by china

:)


In OP's case it looks pretty Chinar to me.


I spoke to a friend (recent college grad) about expectations about work. He said that pre-marriage, he expected to work every day, as many hours a day as possible to build up his skill set. As he acquired more skills and responsibilities, he expected that he was going to do less coding and more managing others to code. A lot of the challenge of software development is not in the actual coding itself but rather in architecting the infrastructure and processes that make a product successful. He expected that by the time he hit 30, he would be working a more reasonable 9-5 because he would be in a administrative/managerial position.

Culturally, China is about fitting in. It's a difficult place to live if you're older and single, if you're married with no children, etc. This grates against Western values. Starting a tech job (i.e. programming/coding) over 30 is not the norm so it is avoided.


It's weird given that genius aside, most programmers I know only became good around 30 :)


As a programmer approaching 30 I can confirm this for me. I am horrified that a company would prefer the long hours / low quality output of my earlier years compared to my current fewer hours / more thinking / higher quality output. I can only hope that I will improve a bit more as I cross over 30.

Who knows, perhaps I will immediately plateau and never learn or improve after 30 ;)


A lot of non-programmers simply can't discern the difference in output of a senior dev and a junior one. Like I recently realized, junior devs can appear massively productive because they can copy another part of the system and simply modify it. The output looks the same, but without that code made by someone with much more experience, they'd be lost.

If I'm brutally honest with myself, I used to think I was a lot better than I was.

I could fix any bug, I could add loads of new functionality. I was great.

What I wasn't appreciating was that the senior devs had set up an architecture for me to succeed. They'd laid out the code and made the loads of small decisions born of experience that meant I was basically coding with training wheels. I could simply look at how they'd done it and use the same technique. I didn't have to make any decisions, nor was I aware of the decisions they'd made.

What I've seen since is where someone's employed graduates to build something from scratch, those systems are a real mess. They literally code themselves into corners. Adding new functionality becomes harder and harder until they quit and the client has to call in the big boys.

I remember chatting to a senior contract game dev a year or two ago at a meetup, he was complaining that he never got to make a game. He always got called in at the end to optimise the game and do the best he could to fix the stupid architecture decisions the cheap, disposable, inexperienced game devs they'd used to make the game had made.


I can remember my first project as a junior front end dev watching the Architect setup the system for us. I never really appreciated him at first because we were doing a majority of the day to day work. Now that I am getting more mature I can appreciate the environments and standards he setup a lot more. Even things like continuous deployment tools, automated builds and the like help productivity tremendously.


EDIT: Big boys was a bad choice of phrase. I meant experienced developers, doesn't matter if they're a man or a woman.

Stupid edit lock.


I'm 49, still working, still learning new stuff all the time. You can't assume that someday you'll stop learning and start being productive. There is always something new to learn. Always. The next project is going to have new concepts that you haven't seen before. I still charge for it all. If the project requires a certain new technology, I'm not hiring someone new just for that project. I'll learn the new concepts, and then do the project.

The technology world is so rich with concepts now that you could spend your whole lifetime learning and never accomplishing anything. So why should I pay to learn something that only this project requires? Every project will have something new, therefore I can never make money? No, the cost of learning is built into every project. That's the way it is. Software development is not plumbing or carpentry. It's different, and learning is part of the cost of doing any project no matter how old or experienced the engineers are.


i applaud your nerve. the audacity of billing. i wish i felt more confident about that. that's great.

i feel that it's easier to bill for something like time spent learning the customer's unique (-ly confusing) data model, or for figuring out the product's requirements (since the company has little to no documentation of that).

OTOH, i feel less confident charging for time i spend learning about the vagaries and unexpected behavior of the android platform since "i'm supposed to know that" (and also since those problems are the android platform's responsibility)

i find the balance hard to strike sometimes. i compromise a lot.


Right now the industries are begging for programmers.

Companies from the US literally hire me to work remotely from my bedroom in France because they can't find somebody with the skill they need at the price they can pay. All of them are either taken or too expensive.

The situation is unlikely to change: the need for software is constantly increasing, but the rate we produce new developers and the quality of them is not following as quickly.

So get audacious. You are on the best side of the fence right now.


thank you for the encouraging words.


I'm 30 and feel like I've been in decline for at least 6 years. I used to be open to new ideas and techniques; now I'm so confident I know what works that I usually can't even bring myself to consider the alternatives. I used to be able to hold the whole system in my head and change things fearlessly; now I rely on the types to do that for me and check in an embarrassingly high number of errors whenever I try to work in Python (a language I used to be very productive in).

Perhaps our industry moves so fast that experience genuinely is a net negative?


Hahaha. At 30-32 I felt I was getting old.

Looking back I believe the reason was there is a subtle physical slowdown between late 20's early 30's, you are indeed slightly past your physical prime.

Then I hit 40 and felt young again.

But really, one shouldn't feel they are mentally slowing down at 30 or even 39. If that's the case you might need to check environment or what you are doing or some external factors.


> now I rely on the types to do that for me and check in an embarrassingly high number of errors whenever I try to work in Python

But you can write type hints in Python and get your tooling to tell you when something is wrong.

Personally I got mypy as a pre-commit hook, and vscode run it on each save, making my code lighting up like a xmas tree if I mess up.


Sounds really weird. If you know what works then you know you need something new sometimes. Never used a NoSQL database but I know when it's time to start using one. I might not, as some younger people would, default to MongoDB.

Also checking in errors seems a bit weird. Are you sure you are still motivated in what you do?


Yeah, that ressonates with my thinking as well: it's around 30 for engineers at least cause it takes a couple of years to get your head around the business and then another couple of years to acquire the expertise.


I wonder how much of discrimination is based on demographics. Surely there is a large bulge in young engineers as the tech industry only became cool in about the last 10 years. There are at least 2-3 times as many 30 year old software engineers as there are 40 year old software engineers. I doubt that when Millennials are in their 40s the industry will have expanded as fast as it has been to make them a minority.

The culture shift is the other element I’m curious about. Software engineering becoming cool means that the industry is not just dorky men who were always into computers and electronics. Someone with the social skills to become an engineering manager might be resistant to hiring someone with the social skills that are stereotypical of those dorky men who were here first.


I think cool tech stretches farther back than that. Sure us Gen X engineers didn't have the Internet growing up, but we had Star Trek, Star Wars, the space shuttle, arcades, Apple II's, etc to inspire us to become engineers. And don't forget the Internet bubble of the late 90's; that surely would have brought a lot of fresh faces into tech.


Yes, it was the dot com bubble when being a tech person was cool. Before that, we were dorks.


Dorks until there was money in being a dork than dork isn't dork anymore, it's cool.

When the money goes away it will probably go back to being plain old dorks and here we'll still be dorking along.


Many (not all) tech companies in China expect people to work 9-9-6 (9am to 9pm, 6 days per week).

Most professional people in China over 30 are married, and many have a child. It's tough to raise a child if you spend 30% of your time sleeping, 45% at the office, 10% commuting, and 10% doing chores/admin.

Also, people under 30 are more likely to over-estimate the value of their stock option package, so will also, on average, work for less.


You can also take it as a "the disease is its own cure" situation:

Overpopulation => Ageism => Overworked people => Less children => Less overpopulation

That "one child policy" was the solution. People should get it in their damn heads that they don't really want more economic growth for their country at all costs, as this will decrease their quality of life by getting them overworked to death.

It's 2018... nobody should work more than 4-6 hrs a day, that the fucking reason we invented all this technology and economic machinery!


> It's 2018... nobody should work more than 4-6 hrs a day

While 996 is too much, 4-6 hrs work per day is too few for a developing country, which by definition needs a lot of more development.


I would hardly call China a developing country.


This reasoning only holds for densely populated and preferably small countries. As soon as a country gets larger and less densely populated cost of infrastructure per capita rises very quickly.


So? Encourage regional independence (to have lots of small countries), and discourage "middle of nowhere" places by not paying from gov money the maintenance and construction of its infrastructure.

Mega-infrastructure monstruosities like highways from Canada to Mexico, or roads and trains from Siberia to Europe, or country wide highways in China are a total waste of resources.

With >50% of work becoming "remote friendly", we'd care less about transport costs going up, and local production could also increase even in less competitive areas.

We keep optimizing for "global productivity" or "global growth" etc. while none of it makes us as individuals happier! Humans are LOCAL in their nature, globalizing stuff beyond a certain point massively decreases quality of life everywhere except a few "hub places".


Exactly this. There’s nothing special here, just a new generation that will learn a hard lesson.


It's tough to raise a child if you spend 30% of your time sleeping, 45% at the office, 10% commuting, and 10% doing chores/admin.

Not if your spouse has enough time. This is less common in the West nowadays, but it was common in the past, e.g. fathers in the US in '65 reported fewer than 3h/week on child care and only 4h/week on household chores: http://www.pewresearch.org/fact-tank/2017/06/15/fathers-day-...


We're talking about China, though. Among urban Chinese people I know, it's more common that grandparents take care of the child (perhaps back in the home village), than it is for only one spouse to work outside the home.


The other spouse doesn't have to stay at home, just not work so many hours. But I was talking in the abstract, I don't know any software developers living in China.


Yes. That's doable for some families in Beijing. But probably a minority.


The way some of these companies are solving this problem is by hiring old engineers here in the states. I went to give a talk at the Silicon Valley office of a very large Chinese company that you've heard of, and almost everyone in the room was over 30 (and Chinese). The few white guys in the room were mostly over 40 (probably over 50 even).

There was one woman, who was a young Chinese lady, and no one of any other color. This was in a group of about 100 engineers.

Oh and at the end they offered me a job. I was 38 at the time.


I hate the use of discrimination in things like this because it's not discrimination by any means of the word. Discrimination would be saying, "I do not want to hire older people, because I don't like older people." When you do not end up hiring older people because they disproportionately have characteristics that you do not want (or lack characteristics you do want) that is not discrimination.

For instance at the most basic level older individuals are going to have experience as well as a better understanding of their own value (high) and the value of equity options (low). They're going to generally want substantially more real compensation. We could debate how much experience should translate into, in a dollar amount, but for companies that prioritize labor costs, it makes little sense to hire older workers.

For instance IBM is the poster child here. At one time they had one of the highest median ages in tech, but they've been completely reshaping their company in a way that has resulted in numerous and ongoing age discrimination lawsuits, but I don't think it has anything to do with that. They've started hiring younger, firing older, and now the plurality of their workforce resides in India. They clearly are prioritizing the very quantifiable labor costs over the more difficult to quantify labor skill. This is not discrimination.


> They're going to generally want substantially more real compensation.

Can we always assume that's true? What if I'm a middle aged person who is interested in trying out a startup?

It seems like such a waste of potential talent by not bieng upfront with canidates on your hirring practices.


I'd think definitely not. But these things will be true in most cases. So what that means is that even if a company is completely and absolutely open and invested in being as upfront and inviting to each and every single applicant, you'd still expect to see an employee base that has some groups overrepresented and some groups underrepresented.


Not only in China, after a while it appears the only way is either management, architecture (as synonym for management in many companies) or just go freelancing if wanting to stay technical.


Which is also shown in titles at many companies. If you can be a senior programmer/consultant/whatever with 5-6 years of experience, the only way in your 30s is becoming a manager.

I just noticed that for Data Scientists (one of the more en-vogue jobs at the moment). You start as Data Scientist after University and can have a Senior Data Scientist role with 5-6 years of experience. All those that have more experience (of which there are a lot, most of the jobs aren't that novel) have to go into a manager role, even if it's just for the title without any additional repsonsibility. Or accept that with 20 years of experience you don't get paid more than someone at the end of their 20s.


The problem with accepting to get paid as such, is that you also have to find someone willing to pay you.

Which many don't, because they know 30+ aren't easy to fool with equity and "live our dream" kind of stuff, and they also have other priorities in life besides 24h coding.

So it is easier just to get cheaper naive devs out of university.


I predict the age limited hiring trend will foster a larger freelance market.


Young techies type faster, remember quicker, and have better eyesight. Older techies use experience to design systems that reduce the need for fast typing, top memory, and top eyesight.


I wonder how much of this article was written by Bloomberg chasing clicks from those of us who are older than 30 and work in the tech industry who want to preserve our status.


Well they do need people to read their articles so that will have been a factor. But it doesn't make the story false.


This is good news for us in the whole supposed Bay Area / China rivalry. Young people are stupid. Old programers are very wise. (I am 25).


I'm an old programmer (almost 50). I completely disagree with you.

Young people are very, very smart. I hate old programmers that think they have an edge over young people. I've worked with kids who could be my children, and they are mature and smart and hardworking. Once young people hit about 10 years experience, they are as good as anyone with 25 years experience, because most of the first 10 years isn't as relevant anymore.

Sure, I bring some maturity to the table, and a bunch of war stories. I also believe I know how to program to avoid most bugs, so I take pride in having very low-defect, excellent code. But it is daunting competing against someone who could be your daughter and who can compete neck-and-neck with me.


Most of the young people I work with are quicker witted than I am (I'm 50). However, I have an edge over most of them (IMHO). I have good work habits. I'm organised at work (though hopeless at home). I have good communication skills (strengthened by years of practice). I have compassion for my coworkers, having experienced the same things they are going through. I understand very well what my strengths are and I know how to lean on my comrades when I need to. Most importantly, when writing code, I have judgement based on experience (not blog posts), I don't freak out when someone changes my code, and I don't panic when we make mistakes. Finally I know how to hedge poor management decisions to limit downside without materially impacting productivity.

Also, I don't know about you, but I'm still learning important new things even at my age (and experience level). I don't see an end in sight, so either I'm a very slow learner, or there is more than 10 years worth of things to learn/experience.


I have a few coworkers who are in their 20s and are very mature, have good work habits, are patient and smart. I'm constantly impressed with what they bring to the table considering they're this young. Not sure if this is a larger company thing, but yes they exist and it almost feels like its a new generation of kids that grew up wasting less time.


Don't get confused between talent and experience. Experience is the thing you wish you had just after you got it. Talent is kind of like the container for experience. It governs how much you can use and how fast you can acquire it.


Smart isn't the same thing as wise. Wisdom is smart combined with experience/knowledge. Smart says implicitly defined variables is cool. Wisdom says it's a bad idea because you tried it when you were young and smart and now know the unanticipated consequences.

There's an awful lot about good software engineering that is not taught in any CS program I've heard of. This information is acquired via time in the trenches and older folks on the team mentoring you.

An example is that certain kinds bugs tend to emanate a characteristic smell. Experienced programmers can discern those smells and hone in on its source a lot faster. Certain kinds of code also have a bad smell, even if they work correctly, that experience will detect.


Old is also not the same as wise. There are plenty of young fools in the world. Many of them become old fools.

What you're saying is absolutely true, but these generalizations are not useful. The distributions are too wide. Individuals from either group frequently surpass each other.

Another confounding factor is that age does not equal experience, either. I was taught software engineering as part of my EE degree. That was exciting, as I'd never before met anybody who knew anything about software development. After graduating, I became a full-time software developer. After 5 years in industry, I felt I wasn't learning enough anymore and went back to school for a grad degree.

I was shocked by how good some CS students were when I started teaching. Unlike me, by second-year university, some of them already had years of practice, mentorship and formal training. Having a focus on software and a knowledgable parent meant they got to learn at 14 some things I didn't learn until I was 22.

(I learned plenty of other things. In fact, I'm probably the only person in the computer graphics lab that knows how semiconductor doping works. Though, I can't say that comes up often. That experience is perhaps not so valuable to my current role.)


I know many people like that, but they tend to be the minority, don't they?


Absolutely. I just don't think omarforgotpwd's stereotypes about the young are a good counter to stereotypes about the old. Its not a victory to replace one prejudice with another.


I'm 37 and have yet to meet a "younger" programmer who could get anywhere near me. I know plenty of older (40+) coders who are much better than I am.

EDIT: a lot of this is due to being location constrained (well, me wife is, and she makes more than I can make in the Valley) so I can't go and work with brilliant teams in Amsterdam/Berlin/London/USA.

It's down to the pool being bigger (development pays well so career chasers do it) and survivor bias for old developers. The "bad" younger people either get found out our talk their way into management, or they find a niche and becoming unmissable in their company (and can never leave).

I'm right at the lower bounds of people who learnt their craft on the 8-bits coding pretty close to the metal.


> It's down to the pool being bigger (development pays well so career chasers do it) and survivor bias for old developers. The "bad" younger people either get found out our talk their way into management, or they find a niche and becoming unmissable in their company (and can never leave).

I think it's more because of motivation to become a programmer. A few decades ago (or even until maybe 10 years ago), programming wasn't that prestigious, you only did it with an honest interest in tech. Tech today is what Investment Banking and Law was a decade ago, the way to make a lot of money quickly in a fancy job. That will lead to many people going into it that are highly intelligent (and therefore able to produce code) but not motivated to produce output that will function well even after they left the company.


Code is costly, high maintenance, and it has high cognitive overhead. When possible one should avoid writing code.

But if you do decide to write it, not wasting time on shit that’s not going to work anyway can be much more valuable than code per se. Lacking experience, junior devs often try to boil the ocean where a cup of tea would be better.


because most of the first 10 years isn't as relevant anymore

Maybe in JavaScript-land. But in C/C++, major databases, Unix at scale... laughably mistaken.


If you still write C++ like it's 2001, you're doing it very wrong.


The experience of structuring programs in the large, mapping domain knowledge onto classes etc is all still just as valid. And don’t forget: there are plenty of codebases older than that that are still being actively maintained and developed.


Sure, but asking somebody who only knows C++98 (or even pre-STL C++) to write modern C++ is pretty much like asking them to write Java. It's like learning a new language.


Agreed, but that first 10 years of experience is still valuable and that person will be up to speed with C++14 or 17 very quickly.

In my experience C++ people are eager to adopt new features of the language... I don’t think I’ve ever met one clinging stubbornly to pre-STL days...


Even with custom allocators, this is old but may still be relevant: https://www.reddit.com/r/gamedev/comments/25cdar/im_a_ps4_xb...


On Windows, STL is often too slow:

https://github.com/Const-me/CollectionMicrobench/


Unfortunately many are still doing it like it's 1993.

https://www.reddit.com/r/cpp/comments/8evtgy/why_is_modern_c...


Sometimes you don't get the choice. My C++ compiler is saddled with a pre-98 standard lib with everything exposed outside of the (non-existent) std namespace. Templates and exceptions are disabled. No STL, No RAII. Can't code like it's 2017 when you're doing it 1980's style.


Having worked in the embedded space, I know that pain all too well.


On the whole, I agree. This trend will severely hinder the ability of companies engaging in this practice and somehow they won't know it. On the surface, to the people engaging in it they see it as a win. Over time though, they'll build experience eventually come to realise they've placed an incredible stealth tax on themselves.

That said, I wouldn't go so far as to say young people are stupid. I'd be more inclined to say that it takes a long time to get enough experience. When I was much younger, I vastly underestimated the value of this experience. Over time, I've come to see it as critical.


huh


Where the hell do software engineers go who quit in their 30s? It's obviously a thing that happens, given the average age in the industry. But I really have no idea what happens to them afterwards. If I were to leave software, I'd have no idea what to do next. Anybody who has access to LinkedIn analytics or something have any insight?


We are all still programming. The ratio of young engineers to old engineers can be completely attributed to growth in the field. The number of engineers doubles every five years. So, it should come as no surprise that less than 25% of engineers are over 30. Once you get to 40+, it drops to 6%. Again, not surprising given a 5 year doubling time.

Uncle Bob blogged about this in 2014. http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html


Huh. That totally makes sense.

In fact I wonder if this whole article could be attributed equally. Certainly china's tech sector has experienced even faster growth. The person in the story central to the article was probably just caught having an affair or something.


Not to mention that people over 40 in China grew up in a much poorer and more rural country than today's China. They probably had correspondingly less chance to learn modern job skills, so are probably even less employable than first world 40-year-olds.


Can it though? This should be easy to prove simply by stating the totals by age instead (that are supposedly growing each year very fast), which has to be possible if we are confident in ratios. Is there any source for this?


Hi! Software engineer here, who left in his 30s. Mostly do a mix of product management and project management (for software companies) now. I still code, but at home as a hobby, and it’s by far my best work (code I’m most proud of). I’d love to go back to coding for a living but 1. Job market realities are contrary to that and 2. Most companies do not offer an upward career track as an individual engineer.


I’m planning on flipping burgers when my Logan’s Developer Run ends.


As a Chinese it is a bit of surreal to see this event discussed here, because the story has already been too old (pun intended) on Chinese network. The whole "too old for tech jobs" is now moot, at least for ZTE employees, since the whole company may not exist anymore due to the American sanction. Now if you search for 中兴, the Chinese name of ZTE, all you find will be discussions about how China will fare in the upcoming trade war, and how China could have its own semiconductor industry.


Can you summarize specifically why the sanctions would force ZTE to shut down? Thanks in advance.


ZTE imports most of its chips from the United States and its allies. Without these chips, it cannot manufacture the majority of its products. Its future is now unknown, and the stocks have stopped being traded.


Not only that, but in China, tech companies are blatantly sexist:

http://laorencha.blogspot.com/2018/04/in-china-tech-companie...


This is really strange for me. I’m working on a product, and if I ever get funding and go out and recruit I will only seek out people over thirty. At least not under 25. I’m 33 and I’d be looking for older, more experienced people who can plan, write and deliver features. There is a ton of time between 9 and 5 for an experienced, focused developer to bust out lots of code before they have to go to their families. I’m not sure why anyone would want a team of 20 year olds when you can have a team of 30 or 40 year old people. In my experience, younger people are not only less experienced, but they’re also less socially and emotionally mature, and generally less stable.


And as the education tools become better and better (Youtube videos, free online CS classes made by the best teachers in the world, high quality open source projects) I am afraid this trend is going to continue.


Tech workers over there work themselves to exhaustion. 9AM to 10PM is the standard. I would guess older people wouldn't sign on that. That's why companies hire and overwork younger engineers.


I would be curious to have the opinion of the community on a related topic:

I am a 29yo European software developer with 4 years of experience working in Switzerland, with both startups and big companies.

My partner can't find a job in our current country but she has offers in China (Guangzhou) and England (London).

What do you think would be more valuable for me career-wise? Does it make sense to invest the energy learning the Chinese language and customs?


Depends on what you want to do with your career. If you want to go to China and work, even a little, jump on it.

In terms of a "classic Western career", ie money and status, go to London. Brexit might still be uncertain, but the job market is hot.


I've been learning Chinese off an on for a few years. It will take about 3-5 years of intense study to get to a level of Chinese where you can work in Chinese.

I'm actually interested in moving to China myself, but I'm not finding many offers in my field. Apparently I'm also too old according to this article (31). But it would be only for a few years anyway.

She might find a job in China where she speaks English. For learning Chinese you have to be really motivated.


Since you're coming from the EEA, I'd be hesitant to take up employment in London before the Brexit negotiations are done, mostly because that uncertainty may cause a lot of emotional stress.


If you're optimising for "emotional stress", London still wins over China, for someone who speaks English and not Mandarin, and is comfortable in Western culture.

The government has made pretty strongly phrased guarantees for EU nationals arriving before 29 March 2019. Sure, it's not the best time to plan to put down roots permanently, but nobody who just wants to work for a few years should be discouraged by Brexit at this point.


If you know any experienced engineers in China who need jobs, send me an email.


This is the right response. Upvoted.


Playing the devil’s advocate here:

Most of the commenters seem to ignore the fact that experience is not necessarily a good thing.

A person who has 10+ years of experience (be it programming, business or anything else that this person has done before) under their belt is likely to have their own opinions about how things are done. They will either suggest their own ideas (which may be incompatible with the rest of the team’s view and engage in arguments that distract the management’s attention from other issues) or, on the contrary, if they had a bad experience suggesting their own ideas, be apathetic and do their job mechanically adding little to the group’s discussion.

Also, if a person has been doing their job for many years, the employer can have a more or less definite idea of what kind of output they can expect from him or her. Sure, a person with a 10-year experience has a lower chance of being a non-performer, but you also have a much lower chance of discovering a rising star.


> A person who has 10+ years of experience ... is likely to have their own opinions about how things are done

Yes, and that's why you want to hire them. That's the whole point of having experience.


> A person who has 10+ years of experience (be it programming, business or anything else that this person has done before) under their belt is likely to have their own opinions about how things are done. They will either suggest their own ideas (which may be incompatible with the rest of the team’s view and engage in arguments that distract the management’s attention from other issues)

I sure hope so. Unless you're hiring for ditch digging or some other menial position, experience is essential because that person will likely have a better understanding of how to approach problems across various domains. Granted, different positions do have different requirements for expertise.

> or, on the contrary, if they had a bad experience suggesting their own ideas, be apathetic and do their job mechanically adding little to the group’s discussion.

This could be a legitimate complaint, but I don't see how a novice know-it-all would behave any better.

> Also, if a person has been doing their job for many years, the employer can have a more or less definite idea of what kind of output they can expect from him or her.

I don't see a downside to that.

> Sure, a person with a 10-year experience has a lower chance of being a non-performer, but you also have a much lower chance of discovering a rising star.

Ah, the chance of missing out on that low cost programming ninja. No matter how good the rising star could be, if you need someone with experience, you're better off hiring someone with experience. If you're hiring for a junior position, sure, take a chance.


The number of programmers who leave the ranks after age 30 is staggering. Some go to management, some leave for another career type, some are fired. For whatever reason, there's a sharp decline after the 20s and it only accelerates. Programmers retiring from the job at the normal age is a rarity. (It didn't used to be this way.)


The only reason they can put that over, is because they can afford to do this. Chinese tech companies pays salary that is very much top-notch competitive, that they can afford to act like investment banks in US, where they only attract most young and talented, burn them out, then find the replacements.


I would much rather have engineers that are over 30. Wisdom, sometimes comes with life and age. To solve problems, which is what really programming is all about, the wisdom not to over engineering it, not to over see tiny details, not to under estimate difficulties, not to follow the hype with stupid shiny new tech every 2 - 3 year.

They may not write as much code, they may be more reading and thoughtful rather then rushing it and start hacking. But they write much more quality code.

I wish I could start my start up someday, then I would actually want to hire age 30+.


I think you need both. Experienced engineers to teach the new people and serve as an example, and young engineers to keep up with the times, have more dynamism and, eventually, have a good next generation of experienced people.


Agreed.


After 30 you are indeed not good any more, because you are no longer so naive and easy to exploit, that's it.


Are there a lot of people over there with 20 years experience, as compared to the number of the people that have entered the market in the last 3-5 years? I'm thinking 20 years ago the tech market was pretty small.


If true, it seems like it would be a good opportunity for Chinese companies to hire some experienced engineers at a discount.


How will this play out as the workforce ages? Will Chinese employers engage with older tech workers more effectively than their U.S. counterparts? Or will they continue to be ageist and complain loudly about a talent gap?

https://www.theatlantic.com/magazine/archive/2016/06/chinas-...


You cant make 40 year olds slave away all night to build your stupid hotdog app, which supposedly is going to make you all millionaires. That's the problem...


If that's true, it's the fault of everyone in their 20s who did jack shit in their youth to protect their future selves. Unions, guilds, worker protection laws. That sorta stuff.

But it's Communist China, so perhaps not.


This is for “jobs”, “worker” “emploee”. Nobody cares about “Entrepreneur”’s age.




Applications are open for YC Winter 2019

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

Search: