Over 30? Too Old for Tech Jobs in China
bloomberg.com
bloomberg.com
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.
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.
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.
Or you accept that a comparison simply can't be made and don't make the argument in the first place.
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.
However 1 in 5 are 'migrant workers' with no fixed address. I'd guess they are the least educated demographic.
Judging by any Stockholm coffee shop as well we’re all programmers, so the math checks out.
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?
What’s the evidence behind this assertion?
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.
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.
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.
I'm curious what definition of Diversity you're using that a team of people from all over the world doesn't qualify.
> 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.
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
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.
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.
> 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.
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.
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.
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?
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.
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.
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.
Sounds like a nightmare.
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.
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...
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 :)
But that might only be problem in the West.
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.
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'd expect the output to be logarithmic.
A developer can only type so much each day, after all.
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.
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.
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.
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'.
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.
At some point you need to explain why something works.
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.
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.
I think this why HR hire computer engineers instead of statisticians when it comes to ML.
I would claim that the more general and reusable the tool ("AI platform") is, the more experience is needed to build it.
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.
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.
You not liking them doesn't make them stupid.
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.
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.
But a surprising number of applicants fail to pass a simple coding test, not even getting a naive solution.
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.
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?
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.)
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...
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.
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.)
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.
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?
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.
[1] https://en.wikipedia.org/wiki/Transfer_of_sovereignty_over_H...
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.
:)
Are you maybe referring to a different federal law?
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.
Who knows, perhaps I will immediately plateau and never learn or improve after 30 ;)
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.
Stupid edit lock.
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 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.
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.
Perhaps our industry moves so fast that experience genuinely is a net negative?
Also checking in errors seems a bit weird. Are you sure you are still motivated in what you do?
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.
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.
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.
When the money goes away it will probably go back to being plain old dorks and here we'll still be dorking along.
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.
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-...
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!
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".
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.
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.
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.
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 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.
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.
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.
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.
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.
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.)
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.
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.
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.
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.
Maybe in JavaScript-land. But in C/C++, major databases, Unix at scale... laughably mistaken.
https://www.reddit.com/r/cpp/comments/8evtgy/why_is_modern_c...
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...
Uncle Bob blogged about this in 2014. http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html
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.
http://laorencha.blogspot.com/2018/04/in-china-tech-companie...
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?
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.
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.
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.
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.
Yes, and that's why you want to hire them. That's the whole point of having experience.
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.
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+.
https://www.theatlantic.com/magazine/archive/2016/06/chinas-...
But it's Communist China, so perhaps not.