As soon as the CTO loses touch with some part of the code base, that's when the middle managers start introducing unnecessary complexity into projects. Technical middle managers will always create more complexity to give themselves more work and more responsibilities. They will do it subconsciously and compulsively.
There aren't many engineers today who care about code quality or even know what that means. I'm disappointed by what this industry is turning into. There is no pride in efficiency anymore.
Most managers within tech companies today don't have a clue what good software development looks like; they think that if they use TypeScript as a programming language, Agile as a methodology and Jira as a project management tool, that the product will turn out great for sure; but it's not the case.
Tech monopolies can allow even the worst tech managers and engineers to thrive professionally. No one ever gets reprimanded for unnecessarily increasing the project complexity even though it will cost the company millions a few years from now (in a large part due to the need to hire more engineers to manage the complexity).
WhatsApp could handle 200 million users with only 50 employees; it's proof that you don't need many employees to deliver quality. Keeping complexity under control is a better strategy than just hiring more people.
>> "The Bible of Software Engineering", because "everybody quotes it, some people read it, and a few people go by it"
Exactly my point; everyone will complain about complexity being the biggest problem in software development (everyone agrees about this); and yet these same people will keep making decisions that will increase complexity within their own projects (for example):
- To use Jira instead of Trello.
- 100% code coverage in tests instead of well targeted integration/functional tests.
- Hire more people instead of focusing on improving internal practices and coding style.
I've worked for at least one company that had 100% unit AND integration test coverage of every line of code across all projects. It took about 3 days for an engineer to rename a single property in one of the API endpoints because of the time it took to get all the tests passing again. Most of them were useless and added no value to the project.
In my role as tech manager, I've been called incompetent, stupid, short-sighted, biased, insane, greedy, vindictive, just about every epithet in the book.
This is normal. If you're ever promoted into management, you'll be, too.
As a lawyer, I know for a fact that a lot of legal work is not complicated enough to require a law degree, but it does because otherwise lawyers would make substantially less money.
There’s a giant gap in the legal market where there are poor people who need simple services and they aren’t getting them because there are no lawyers who can afford to work that cheap and pay off their loans, or the lawyers are doing the work pro bono, which is generous, but why don’t we just let people who aren’t lawyers do more of this clerical work?
1) H1Bs are known to be abused by US companies. A much better system, rather than a lottery, would be one based on bidding: Where basically those willing to pay the highest salary "win". You could just as easily say the status-quo for H1s is anti-immigrant: they are held captive by their employer unless someone else can hire them; they have to leave the country a few days after their employment ends, all while working for less than other equally skilled workers.
2) As the article states, tech companies grossly overstate the so-called tech skill shortage, and furthermore, this alleged demand just showing up in worker's wages. If there was indeed a shortage as vast as they claim, wages would be higher.
3) Many people are being sold on these careers not for the love of computers and technology, but for the potential earnings. But those potential earnings will shrink once you have an influx of cheap talent in the labor market. So if you tell people "You should take on this debt and learn to code because the jobs are high paying" you're essentially repeating the same "go to college so you can get a good job" scam the baby boomers pushed on millennials.
Some younger HNers may not remember this, but in the aftermath of the dotcom crash of 2001, interest in these sorts of "learn to code" efforts evaporated, with people being actively discouraged from learning to code because software was going the way of textiles. If there's another downturn, and tech is impacted, you should expect a repeat. Regardless, those student loans will still be due.
A Google search shows Google has about 40K software engineers, while the USA has about 18M software engineers. This means Google hires about 0.2% (i.e. 0.002) of the software labor force.
This means that Google only captures 0.2% of the benefit from increasing the labor pool. 99.8% of the dollar benefit goes to other people -- some of who are competitors even!
Further, Oracle hires a lot more software engineers, but Oracle is notorious for its profit motive and bad image while Google tries (in name at least) to be altruistic. Is Oracle spending as much as Google on STEM? How about IBM, SAP, etc? If the math works out for Google, it should doubly work out for companies employing more software engineers.
This is a theory that seems like it can be true (and make you seem smart at cocktail parties), but the math doesn't seem to add up.
It's true there are plenty of other self-interested reasons for these companies to fund CS education: PR, getting new devs trained on their toolchain (my college CS classes were in the Gates Building, and friendly Microsoft evangelists brought pizza and free copies of visual studio to my freshman intro CS class), and growing the tech industry overall when they control and monetize the underlying platforms.
But then, there is also the much more mundane explanation that these charitable contributions are a drop in the bucket compared to these companies' overall budgets, that they are run by human beings who see themselves as doing good and who are predisposed to think CS is a great path to a good future.
Anecdotally, I haven't met any coding bootcamp graduates that have managed to get software jobs at FAANGs. I'm sure this is because my experience is anecdotal, and that there actually is a steady supply of bootcamp grads that are getting jobs at these companies. But my point is that even with an accelerated program designed to retrain adults to have the skills they need for these positions, the supply will probably not increase to a point where salaries are significantly effected. This especially true when you consider the number of previously non-technical companies that are hiring software engineers at incredible rates to meet expected software development demand in the coming decade.
That's because the FAANGs already have stacks of resumes from Stanford, Caltech, MIT etc. Part of the diversity issue (academic and demographic) comes from the fact that they rarely recruit outside their comfort zone of 5-10 schools.
But what's the answer, protectionism and railing against STEM education? Yes software developers will be bitter about lower wages, but in the long term that means more people with skills and jobs, more people of color, more people from poor backgrounds who come from families who never made more than $20,000 in their life.
Let's not be so selfish, there are plenty of ways to outshine a General Assembly bootcamp grad with no degree... You just aren't going to do be able to do it by building websites for $200,000/yr anymore.
Also, FA_NG (left out Apple) doesn't sell anything other than surveillance and ads, and the mainstream use case of AR is superimposing dog ears on a selfie, what motivation is there for CS students to push the boundaries of their learning?
Plus, you really don't need to go to Stanford, MIT, etc. to get a high paying job. If I wanted to maximize my wealth ASAP, I'd go to my state school, major in CS and math/econ, graduate in 3 years debt free and then go into finance/tech. I'd like to hope that the people going to Stanford are doing it for more than just a 6 figure salary.
- A CS major at a state school in North Dakota doesn't go as far as one from say, the Cali state system.
- A CS and Math/Econ double major in 3 years? How many people do that and have a GPA that isn't toilet-adjacent?
- 'then go into finance/tech': If by 'finance' you mean IB/PE/HF, those firms don't recruit at state schools unless it's in a major metropolitan area or has a history of hiring alums. If you think you'll get into IB by just submitting an online application like the rest of the world, then good luck.
Same for FAANG and the other companies that offer big salaries to fresh grads. They aren't exactly flocking to the SUNYs to pick up CS grads.
Fair, but honestly I don't think FAANG companies put a lot of weight on school past the top 10 ranked. I don't think your average hiring manager is going care about the difference between Bing and NDSU.
> A CS and Math/Econ double major in 3 years? How many people do that and have a GPA that isn't toilet-adjacent?
Don't sleep. Study a lot. Keep in mind we're talking state school here. Double/triple majors are a lot easier at Bing than at Harvard. If you come in with AP credit it's definitely doable.
> 'then go into finance/tech': If by 'finance' you mean IB/PE/HF, those firms don't recruit at state schools unless it's in a major metropolitan area or has a history of hiring alums. If you think you'll get into IB by just submitting an online application like the rest of the world, then good luck.
Okay, sure, finance might take a bit more finesse (although outside the big firms I bet it's a lot easier). But tech is generally more focused on general hiring pipelines.
> Same for FAANG and the other companies that offer big salaries to fresh grads. They aren't exactly flocking to the SUNYs to pick up CS grads.
I actually know quite a few people at SUNYs that have FAANG internships. Especially Stony Brook. Not unbelievable that they'd get a decent offer out of school.
Honestly? Not really. If you're willing to devote enough time to slavishly going over leetcode questions and apply to enough places, you can get a nice offer, especially for college students who can get their foot in the door via internships. For better or worse, tech job applications are a very standardized, simple system.
Who cares about their interests? If it helps people get educated and improve their lot?
It seems to me that the complaint begins and ends with the assumption that if something is good for a big corporation then it must be bad for society at large, and vice versa.
Education time is finite. If you focus on some specific you may miss out on general or a different specific.
(Reminds me of a database course focused on Microsoft tooling... half the technologies now dead.)
As someone who did this, it was very hard to do and took a great deal of both hard work and luck. I’m surprised that it’s dismissed in a single sentence.
Just knowing html is no longer an option but I can see where knowing the basics in programming is enough to create an assembly line type of programming workforce.
Prior to the industrial revolution, Craftsmen were the norm. With the advent of automation products are created that best the best craftsmen of old and do it at speeds that no craftsmen can match.
There will always be room for the best but we are heading towards a future where low skills will dominate. AI is the big subject now but as most AI expert know AI is very specialized. Generally, it can't match what a five-year-old can do but it's excellent at doing one thing very well. Combine current AI and low skill programmers and you have the workforce of the future. It will be cheap and fast. But we can't get to this future until the workforce is trained.
Going forward, the tech giants will be looking for competent techies not necessarily the best of the best but they have to have a competent group to choose from.
Infotech workers get paid very well now because demand is high relative to supply. Increase supply and pay is bound to fall. The tech companies know this and are doing all they can to increase supply.
If you think companies are doing the world a favor. Don't! Companies are doing their best to survive one more day and create a future where they thrive.
1) Google and Facebook represent only a very small and very elite slice of the developer market. This bizarre focus on what happens at the top 0.5% of the market has a distorting effect. The rest of the market is ignored in this analysis.
2) No mention of dollars spent on training vs. dollar return in labor savings. If Google spends $1 billion on education over 20 years which provides a labor savings of $500 million then they are losing out. The article speculates that there will be a net profit on labor savings but provides no data or evidence to back it up.
3) Developer salaries may actually be inflated. In which case it's only natural that many people would try to get into the market, either by participating in MOOCs, getting a computer science degree, being self-taught, etc. The article assumes it's exploitative to help people break into this market, because the MOOC companies operate at a profit and it might reduce developer salaries overall. But people are going to find their way into the market on way or another. Even if we got rid of all the MOOCs and all the tech education initiatives talented people are going to flock to these industries.
4) Article ignores positive effects. Lower developer costs mean smaller companies or less-than-rich individuals can hire talented developers to build a new service or start a new company. Developers might be paid 10%-20% less, but we would also end up with more developers total. The net benefit to the labor market as a whole would be positive.
Also, I wonder whether it will matter much to supply. How many CS grads are actually being churned out? I heard it hasn't changed all that much. And people leave the profession too, either they don't like it or they can't hack it.
I somewhat liken it to sports. It's not that easy to like programming if you didn't like it as a kid. Sure, you can learn to kick a ball around when you're an adult, but you're not likely to have time, and the best opportunities to learn and progress will have passed. (OTOH your body won't start failing you as a coder in your 30s.) That's not to say you can't, I'm sure a bunch of late bloomers will appear if I left it at that, just that you tend to know that coding is the kind of thing you like when you're quite young.
So the undiscovered pool of talent is probably quite small. We can give more kids who don't have access to a computer some gear and some intro, particularly in poor countries. But there's cultural and legal issues with tapping that pool. With advanced societies, probably a lot of kids who are going to like coding will already have been exposed.
I find it pretty astonishing that ChromeOS (installed on Chromebooks) for example is so widespread in US schools. This is a 'cloud-based' operating system that that tracks everything you do. To properly use ChromeOS requires you sign-in with a GMail account. Now your personal details are tied to all your activity in the OS (a guest account gives you limited functionality only).
Even if that activity data is detached from your account and "anonymised" (a pretty meaningless phrase), this is still means Google captures and saves (and presumably aggregates) the data of millions of US students that they can interrogate and dissect in ways that even they probably don't yet know.
Why does the tech community accept this?
The kids forced to use ChromeOS don't even have a choice in the matter. It's the adults who decided for them. Online tracking is so normalised now, large parts of the tech community rush to Google's defence. (Does a giant multi-billion dollar corporation need your defence?) It's a pretty depressing state of affairs and shows how little the tech community actually cares for privacy.
You really think they don't? They might go for a slightly different angle, like the ease of centrally managing your deployment or whatever, but the gist of it is that they want a device that can be made to act against the best interests and expectations of the end-user.
What value do Masters and PhDs (in CS) have in the current market?
I feel very similarly here: yeah there is a case to be made that this is a "long con" of trying to saturate a labor market with fresh talent, but if you want to prove that, really, I need to see leaked internal letters and strategy presentations that indicate that someone at Google or Microsoft is consciously trying to change the labor market. Because it could also just be that Google has a lot of programmers who think programming is easy to learn and incredibly powerful as a modern-world skill, and so they have a lot of people pushing for educational initiatives. You can't tell the difference between those by the outside act of supporting the educational initiatives but only by looking at the internal communications.
For what it's worth, if that is Google/Microsoft/Apple/Amazon's strategy, it is likely to be very difficult and enterprisey in ways that they likely don't want to be -- all at least pay lip service to some high-minded ideals of innovation and revolution, no? But if you're looking for those "black swan" successes, you face the problem that achievement is not normal but log-normal: it depends on the multiplication of independent factors, and not their summation. Coding bootcamps and mass coding education only target one of those factors, but without the rest you don't have a highly performant individual. Like, if that's their goal, one would imagine them also having "emotional intelligence bootcamps" and "how to take conscientious personal ownership of the work you do bootcamps" and so forth to try to increase the number of people who have several of these skills, not to fixate on just one of them when those other ones will set a maximum capacity for the employee.