57 comments

[ 2.7 ms ] story [ 123 ms ] thread
The real deal is either you become a creator or a consumer. Apple’s (original[0]) ethos is giving more to creators - so naturally everything is around making the most advanced techniques accessible (think desktop publishing and lotus, now Swift and SwiftUI).

0 Somehow it’s currently twisted into a supply and demand narrative, missing the real why

Apple's ethos of giving more to creators was because they were focused on the niche markets that would spend good money for good products. By the late 90s, creators were their primary users so the survival of Apple meant catering to them even if it meant playing nicely with Microsoft and Adobe. Once they got a whiff of the mass market, it took them until 2019-ish to realize they had lost something.

Apple's modern identity is a lifestyle brand cosplaying as a luxury brand. Creator ("Pro"), to modern Apple, means YouTube, TikTok, podcasts, etc... All the people who might use their very expensive, but not unreasonably so hardware to visibly flaunt their taste over the slightly-less-wealthy Android/Windows plebs. Think high-res-cameras-in-the-iPhone-with-no-high-speed-data-port kind of "Pro" So, they equate Pro to a set of apps and not an ecosystem for enabling those apps, whereas before, they needed that ecosystem for their survival (the Carbon era).

Well Tim, this is the future you asked for. You sold devices aimed at families that can't write software. You redefined mobile development as "Xcode or bust" and pushed everyone serious about making money onto the web. You let the great Unix guts of MacOS go rotten and fallow in the shadow of modern GNU systems, and you built a bunch of protocols that aren't the least bit interoperable, leading to a future where nobody wants to build on your platform. Worst of all, you accelerated the commodification of computing and now watch idly as millions of impressionable teens scroll for hours a day on TikTok.

I reckon Tim made his bed, now it's time to sleep in it.

When your products are targeted at the privileged and actively sabotage creativity with pay walls and locked down environments - what did you expect? Big corps are propped up by patents, copyrights and all other forms of intellectual property rights. If we strip those we will have competing companies tomorrow.
Just like we didn't have proper steam locomotives until the patents expired.
>By 2030, the world is expected to be short of around 82.5 million coders — already, 87% of organizations struggle to find the coding staff they require.

GitHub Copilot to the rescue! jk but you know the usual economy; invest more into education and motivating young people to go into "coding". And invest into improving the efficiency of programmers who are already working.

Copilot will cause deaths. Bad staff will rely completely on it when it works and not understand why, push stuff out and it will do "unexpected" things in their eyes, but it will be too late for the dead.
In the short term maybe but in the long term everything will be automated just like there is flight autopilot or self-driving cars which are just getting started but yet they are very good at driving. Fault tolerance mechanisms will be implemented in all automated systems.
Those are well designed systems in heavily regulated markets that go through extensive testing phases. Equating copilot with that is a mistake.
But that well designed systems are run on software. And there are security standards and compliances which they need to satisfy. I don't see a reason why something like GitHub Copilot wouldn't be subject to security standards and compliances.
It's not theoretically impossible, yes. It's going to happen at the same time as when requirement gathering is going to be perfect and doable by a computer. In practice, I see this happening, at the same time as AGI, because it's the same problem. As of today, copilot, FSD, and the like are just smoke and mirrors, pretending to be something much more capable than they actually are. This deception is what makes them so dangerous.
It’s crazy. My wife and I don’t have kids so we have limited interaction with them (mostly nieces and nephews), but there’s just seemingly no interest in how things work. They look at computers and phones as media devices and occasionally tools. Not things to understand, just use.
I think Disney and Apple ruined an entire generation of engineers with their whole "magic" spiel.
worse, a microsoft windows setup screen told me "sit back while we do our magic" .. word for word. hint- I code on linux for a reason
Having a(n otherwise brilliant) 16 year old ask me how to attach a file to an email the other day really fucked me up.

It's bad out there.

Is this really a huge surprise though? 16 years old nowadays just doesn’t use email like we did growing up. A bunch of other chat services has replaced it. I don’t think I used email aggressively either until college.
...you just made me realize I missed something.

They don't know the paperclip.

I need to add a text label to a few CRUD apps, brb

My daughter is about 3 and her hand symbol for a phone is a flat open hand against the ear. Most people who grew up with landlines would put their thumb and pinky out (corded phone).
I had a class of 20somethings in an intro to Python class and had to explain what folders and directories were. They had only used cloud storage and didn’t really have paths. Explaining that the path “c:\users\foo” wasn’t on everyone’s computer made me realize that people don’t organize documents and files.
Most computing devices people commonly use these days aggressively try to obfuscate away file and directory management so it doesn't surprise me that people lack this knowledge. Even Windows I have to turn a lot of default knobs to get it to show me the real paths and other popular platforms are clearly still worse in this regard.

This is by design of course. If it's extremely hard to get at the files and manipulate them they'll end up on the cloud, and eventually people will forget local storage is even a thing.

Why should a 16 year old know how to attach an email? I’m sure the only exposure to that kind of thing is whatever learning software their school uses, if any.

When I was that age the only thing I used an email for was logging into games or aim. I never had the need to send emails just create logins.

Is this really a current kids generation issue though? I don’t think our or the previous generation was any more curious than them. Minus my friends who are engineers, I don’t think most of them know how anything works either.
When I was younger there were no cell phones but everyone chatted (AOL/AIM) which meant they had to have some exposure to a computer. Now phones are ubiquitous, it would be interesting what percentage of high school students use a (desktop/laptop) computer regularly. I bet its less than the 90s which is sad. Something about being in front of a keyboard and mouse seems so much more open and inspiring than staring at your phone.
Didn't combustion engines and electronics go though the same cycles?
Not to worry. When I was young I had no idea about how rotary dial phones worked (still don't, frankly) or FM or AM radio, despite my radar technician flatmates trying to tell me about it. And lots of other things.

But I did learn about lots of other things - for example I can write in assembly language for half a dozen different processors, and I know how to make a Gram stain for diagnosing bacteria. You learn what you need when you need it.

The industry is in a really weird place right now. The metro station in my city for a long time now has been filled with ads from coding bootcamps that saying things "we will teach you javascript in two weeks and hire you on the spot for {very large amount of money}!" and I don't even think it's clickbait. The quality of software worldwide has been going down so much as companies lower their hiring bar more and more as a desperate attempt to fill their positions that I can't imagine this will end well.
day of reckoning is coming once unemployment rate goes up to 5-6%
Supply and demand, like the article said, but maybe on the demand side instead. People may be asking if it's possible to do things in a way that does not require coding at all. Not no-code, more like no-computer. World ran on humans filling out paper forms up until recently.
I think one of the biggest issues with the solution world in IT is that there's a total flood of people with no actionable technical understanding driving the design and decision making processes.

Bill Gates was a developer and Jobs and Woz were engineers (albeit from now legacy disciplines) and they also were solution and business minded. Decisions and actions were driven back then by people who actually did the work, learned the dynamics, and drove innovation. Companies were lean, and the people that did interviews were people working on the lines. The landscape was far more simple back then without over-complex concepts like Cloud Hosting, Font End/Back-End, oAuth, TFA, APIs, etc... Things moved quickly because code was light and simple, because pushing updates didn't involve complex CI environments and 20 different vendor supplied products, and VPNs, and Zero Trust infrastructure.

The process of creating and implementing IT solutions was more simple in the past because non technical employees didn't gum up the technical works, while eating up project budgets (paycheck-wise). Now, non-technical leadership is likely the biggest barrier to innovation, and they collect the biggest checks within IT companies -- People who are responsible for technical decisions and innovation that don't have technical backgrounds and have avoided learning impacts and nuances of technical solution design and development are toxic to the innovation process, solution design, and problem solving within IT solutions.

Now the people leading and driving decision making in companies are MBAs, Human Psychology Majors, Fund Raisers and from many other non-it backgrounds. It manifests gaps in the real IT world with solutions that totally miss the mark.

Developers that do advanced level programming are hired and paid top dollar to work out spaghetti code to fix errors on an already flawed and dysfunctional concept that was designed loosely based on user-driven feedback and complaints, rather than being driven by visionary minds that are aware of nuances and effects of changes. Low Code and No code product makers struggle to keep up with being compatible with all the different competing languages and configurations, so much that they really can't innovate their own eco-systems as well, and it seems like everyone is in a state of just tweaking things until we get through the rough patches until someone develops something new and simple to disrupt all of the over-complex madness.

Things aren't fully FUBARED yet, but we've reached a point where genuine IT developers and designers are totally flustered and frustrated by doing ineffective work daily, and the cost of innovation is far too high for creative and innovative (startup) Internet-Based operations. It's not until developers go back to simplifying the art of development, and lowering the entry point for learning that things will change. Creating a new framework or language is like posting on Twitter, it simply won't trend, because there is just far too much noise and chatter on too many channels.

When an employer asks me to complete a coding test I usually flat out ghost them, because it's usually just a bunch of questions that another company compiled without any relevance to the role and it was enlisted by someone who couldn't answer the questions themselves even if they tried. It's simple laziness, and it's condescending (to me) when I've listed 10 sites I developed from scratch on my resume that I could happily dissect with them as full project plans.

I'm tired of irrelevant interview discussions with non-technical employers, they illustrate to me that the company wants a development work horse to ride, not a team member to join other talented team members. The worst is getting a big job offer and then showing up to find out that your team lacks the ability to contribute, the pay check in those cases is untenable, and your work/life balance also gets thrown out the window.

Hire experienced an...

Why not donate a large amount of old but not obsolete hardware to facilitate learning using open source languages and frameworks, with practical projects that let people see results via publishing their own work as code or as a product, or even make some money through patreon or stripe or whatever, rather than locking people to an isolated system where their endeavours are leeched by an app store and resources of 'lucky enough' schools and participants drained and chained in order to make this happen?
There are enough developers to meet demands, Tim just doesn't want to pay them or train them himself.

Tim wants more of a supply of developers to lower their wages, not because Apple can't find developers anywhere. They're out there, Apple just has to train and pay.

The capitalists always have a surprised Pikachu face whenever they find out that their pressure they put on society and their pressures applied to workers at every level results in them running out of customers and employees.

Might I suggest that Apple offer a paid (as in, decent living wage pay) apprenticeship program to create their own in-house developer pipeline? Have they tried that yet?

People can't work for Apple if they can't afford to learn the skills required to do so.

Apple could lobby the government to increase investment in public education and reduce or eliminate tuition. They could lobby the government to solve the student loan and school affordability crisis.

People won't work for Apple if Apple only offers a 40+ hour per week stressful pressure cooker environment. Maybe be more flexible and hire more part time developers or implement a 4-day work week to attract talent? Try getting rid of tech bro hustle culture and break glass ceilings that people still encounter?

Women leave tech at a much higher rate than men. Wonder why that is? [1]

People also leave the workforce if there is insufficient child care and paid leave provided for new parents, but I don't see any companies lobbying for guaranteed paid leave.

People can't work at all if they're dying from poor national healthcare policy, pandemic denialism, and conspiracy theories that are sourced from directly from those capitalists who are crying for labor supply. Sorry, Tim, maybe you should talk to your capitalist buddies who own Fox News and OANN about their propaganda machine that spread misinformation about masks and vaccines.

Corporations don't even realize how much detaching healthcare from employment and implementing a universal system would help them in the long run, they're too short-term-focused on using healthcare as a method to hold their employees hostage.

Tim is CEO of the largest company in the world and can make a difference in all these ways, but I highly doubt he will do so in a way that's anywhere near progressive. CEOs don't know how much a banana costs and don't understand the real challenges that typical people face. They don't know what it's like to grow up in a home where their parents are completely absent because they're working two jobs to put food on the table.

Tim needs educated employees for his corporate machine but doesn't advocate for any of the measures to reduce wealth inequality that would lift everyone up and result in an overall more educated society.

[1] https://dataprot.net/statistics/women-in-tech-statistics/

It’s funny, Apple apparently “can’t find enough developers” yet any time I’ve applied, I haven’t gotten so much as a call back. Like most (all?) companies, 99.9% of resumes go straight into the trash.
That’s a pet peeve of mine: large companies have the worst recruiting systems.

Between bad application software and convoluted interview routines, the large corporations never move fast on hiring.

Amazon makes you memorize their cult literature and relate your entire body of work to it just to get past a simple technical screen.

I consistently get the most human and responsive answers from startups and other small companies.

I don’t have any answers but remembered a fact that seemed relevant here. Men leave nursing at a much higher rate than women[1]. I’m not sure if it’s just a law of large numbers thing here, discrimination against women in tech/men in nursing, or a natural dissatisfaction at being a minority in your profession but the correlation is interesting in and of itself.

[1] https://pubmed.ncbi.nlm.nih.gov/19691656/

says the company demanding employees to come back into corporate buildings.
There is no shortage of devs.

Companies should be more concerned about toxic gatekeeping leetcode culture, fixing the hiring process, and being honest about the positions they need filled. Most devs never have to invert a binary tree in their career (although it might be fun to do after hours), so why is it even an interview question?

Additionally, a lot of companies go into interviews unprepared. I remember one interview where I was asked to code on a shared screen, but the keyboard and mouse were broken. The interviewers were completely checked out, spending half the time on their phones.

Another time, I was emailed a Word document with the coding question. The doc had some kind of macro that would phone home when you opened it. The only reason I noticed is because I opened it in Open Office on my Linux machine.

If you do that to a candidate right at the beginning, why would you think they'd want to work for you?

Isn't Leetcode process is working as intended?

You won't want to work with someone that does Leetcode (since you described the process as toxic), and I prefer to work with someone that knows their DS&A and space/time complexity.

I'd say it is working as intended.

I don't want to work with someone who doesn't know basic DS&A too.

But why care about this stuff for basic JSON shifting positions? Accenture asked me to solve a leetcode hard, I closed the web page.

On top of that, these interviews don't really represent what your actual problem solving skills are. I know plenty of smart people who chose not to interview for big n simply because of the interview process.

There is a middle ground where we can go from "I don't know anything about DS&A" to "lets invent the next approximate algorithm for this scheduling problem we have".

Even for basic JSON shifting, low effort high gain in performance matters. Do you want to work with someone that doesn't know to use a hashmap instead of nested for loop just for a simple memory vs space tradeoff?

Software engineering is complex enough, and code reviews aren't foolproof way of making sure you aren't screwing up, and nobody has time for detailed code review anyway. You end up have to trust the coder most of the time. You have to trust the coder is competent, smart, and responsible enough and not just "not my job" mentality.

Yes but leetcode test beyond the performance implications of data structures. They require you to practice those kind of problems.

Counter point: Performance is mostly irrelevant for like 90% of companies in this day and age. Even iterating through a million items is quite fast.

Exactly.

Just because someone doesn't want to waste their time studying up for irrelevant leetcode problems doesn't mean they don't know DS&A, either.

It more important to know when and why to use a certain DS to solve a real world problem (along w/ associated algos), since most people are doing application level development work, which means most people are using abstractions of DS&As, rather than implementing them from scratch.

If I needed to implement a DS&A from scratch, it wouldn't be from memory. I would consult the CLRS book and make customizations from there.

I believe the reason leetcode interviews have lasted so long is because FAANG engineers won't abandon them. By gatekeeping the interview process and making the barrier to entry so high, they can artificially inflate their salaries and bonuses by claiming scarcity of talent.

I think if a lot of these companies did a reassessment of their staffing, they would realize they've been overpaying many of these engineers for jobs that talented non-leetcoders could do for half the salary/bonus.

If you really want to know where a dev stands in terms of ability, assign them an open-ended project with a mostly open-ended timeline. Only consider candidates who complete the project and have a working solution, then consider things like

1. Did they unit test their code? 2. Did they use source control and share back a link to their repo? 3. Did they create a flexible, scalable solution?

etc.

And for a bonus: Schedule a pair-coding session with the strongest candidates. Throw out some requirement changes that will require changes to their code. How would you do X differently? Then code it with them.

That will give you an idea of how well they work with others.

I know the above sounds time consuming, but I am guessing that 70% of the candidates for a position will get washed out when they can't complete even a basic solution.

When theres lot of competition, the problems being asked get progressively harder and more obscure, so that they no longer test your actual understanding of DSA, but how much leetcode you have grinded.

Many times interviewers dont have time to come up with new questions, and just end up asking a more obscure question.

so this selects for people who do more leetcode than people who write more practical code.

I dont know the solution to this either.

(Maybe where you live, the competition can be less and you can get away with good DSA fundamentals, here it's not like that.)

Agreed.

If you hire a leetcoder, you get a leetcoder.

Sometimes I wonder if you just end up hiring someone who will spend over half their time on the job grinding away at LC, rather than doing the boring, mundane day-to-day work. You would almost have to make LC a job in itself to make it through the next LC interview...

It does get the LC website and the CTCI people paid, though.

There literally are “professional leetcoders”. I was one of them, and I know other friends/colleagues who were/are too.

Consider a dull boring low paying cost center job at a non-tech company that leaves you a lot of free time. You can either use that free time to go above and beyond your call of duty and chase promotions and fancy titles, albeit with trivial pay raises. Or you can practice leetcode at work to move to a better company where the work is more interesting and the pay significantly better.

Most of my colleagues who entered my previous company around the same time as me chose the first path and got one or more promotions to Vice President or Director, etc. (this is a bank). They received trivial raises.

I chose to leetcode instead, got zero promotions (though still a lot of praise at doing my job). Then I used my leetcode skills - which were completely divorced from my day to day SWE work, to jump ship and nearly quadruple my TC. FWIW, my current work is also completely divorced from leetcode. I probably make significantly more than my former department head now, as a “mere” untitled senior SWE.

Yeah, been thinking of getting back into it again, mostly out of boredom. But I also view it as an inane and stupid task. It seems like this industry values leetcode over interviewing for breadth and depth of subject matter.

We don't do this to doctors and lawyers, or most other professions.

It’s stupid I agree. But that’s the current meta of the game, and no one of any influence seems to want to change it.

You could say homework is becoming an alternative, but that is egregious for its own reasons, and is more often in addition to leetcode, not instead of. Homework also does not scale - at least leetcode skills scale horizontally across many different companies’ interviews.

The irony is that solving leetcode is actually fun - if it wasn’t associated with the pressure and burden of deciding the fate of a potentially career and life changing interview.

No, because even the dumbest of CRUD-app developers cargo-cults this process, there is no escaping it.
I used to hate leetcode. But now i think leetcode is great. Prepare for one job and pass all interviews. Leetcode has made job hopping so much more easier.
Yup, so many people are missing out on this crucial fact. Thankfully I realized this many years ago, and enjoy nice salary because of it.

Just let people who don't want to Leetcode be merry on their way, less competition for us for sure.

I do a lot of interviews lately, I see the writing on the wall. Skilled developers understand they have leverage. One developer turned down a 300k job offer, which was the highest I have EVER personally offered, so I reached out to him to ask why.

He told me he'd be happy with 80k remote working in a nice area where he could afford a large house, white picket fence, and have a life with 3 kids. He would not compromise on his quality of life.

A whole generation has gotten screwed and victim blamed for it (https://www.cnbc.com/2022/07/15/millennials-are-to-blame-for...), and the ones with leverage are out for blood.

I can imagine the millenials and zoomers without anything want to just burn the system down.

tons of remote jobs in usa that offer > 300k
If you can offer 300k, then surely you can offer 80k for remote?
>By 2030, the world is expected to be short of around 82.5 million coders — already, 87% of organizations struggle to find the coding staff they require.

Oh no! Think of all the millions of Saas tools that won't be built! Think of all the micro-transactions in games that won't get made! My groceries will still be stuck at 15 minute deliveries and will never reach the coveted 10 minutes!

:)

Finding the people who can code is one thing, inventing a device that causes most peoples attention span to reset every 30 seconds is another thing. A lot of people would switch to coding compared to other 21st century jobs but they are inhibited by a lack of deep concentration.
I wonder how true this is for SRE positions. I feel like those are more rare.
I wish him the best but... support for these initiatives evaporate as soon as the developer job market cools down.

Bootcamps are usually the first to go. Then CS enrollment drops off a cliff. Then school programs to build software engineering skills are eliminated and their funding allocated elsewhere (perhaps towards after school programs to boost standardized testing scores)

And then in 5-10 we again ask ourselves "Why aren't there enough developers????"

The whole thing is very "Bull-whip"-ish