I mean, come at it from the other direction: Why are there so many software engineers who are not successful CEOs? My God, they have the secrets of for loops, S-expressions, they know about vim---and yet they aren't running Pfizer? Why not?
I mean, come at it from the other direction: Why are there so many software engineers who are not successful CEOs? My God, they have the secrets of for loops, S-expressions, they know about vim---and yet they aren't running Pfizer? Why not?
Interestingly, you might be wrong. There's a continuing push to get people in the industry who can code for startups wanting to disrupt the space. You'd probably be the lawyer who can code and any lawyer-adjacent tech company would love you.
When we think "programming", we think FAANG but in the real world, there are thousands of places that need basic code slung.
As a lawyer who can code (years of experience as a professional software developer and years of experience as a practicing attorney) let me assure you, this is not the case. There just isn’t that much overlap, despite the common wisdom that such a thing should exist, it’s very hard to actually find.
Also, not everything outside of faang is ‘basic code’ - there’s a whole wide world out there!
Consider two broad but otherwise generally viewed as unrelated (however, not mutually exclusive) skillsets: A and B. Lots of people are great at A and lots of people are great at B, but the intersection of the two is generally small (perhaps "law" and "programming" could be reasonably argued as examples of A and B here). There are large numbers of people employed doing A, and similarly for B, often quite successfully in both cases.
Now, there's some much smaller set of individuals who have a reasonable grasp of both skillsets A and B. Recall that they're not mutually exclusive (are any skillsets, really?), just not often seen together. It seems that this set of people would be uniquely positioned to potentially provide immense value over the perhaps small (but even more marginally serviced) field of needs where A and B intersect. The value here isn't in the individual's capability for A or B in isolation, but in what they can provide where A and B cross.
I realise the above is a big generalization and perhaps hugely oversimplified, but it's interesting to think about the different, seemingly unrelated skillsets where there may be great potential from some cross-pollination of ideas to bear new fruit. I do think that "programming" in general, perhaps in some form not as it's conventionally understood today, is becoming somewhat of a new literacy, at least to the extent that there seem to be countless existing businesses or fields of inquiry that could benefit from programmers who are also experts in their traditional domains. However, one could also come up with lots of different examples for A and B above, which may not even include programming at all.
I think in software (and CS in general) this advice is especially valuable because software and computing is the glue that can connect and materialize ideas into something that seems tangible. It's also something that's often approachable by an individual and doesn't always require a mountain of capital to achieve.
[0] https://www.lesswrong.com/posts/XvN2QQpKTuEzgkZHY/being-the-...
https://techcrunch.com/2020/07/19/the-dual-phd-problem-of-to...
Being able to natively express and review logic related to some legal software would be useful indeed, but honestly your team will need someone good at gathering requirements from non-technical folks either way and my guess would be that a lawyer that can vaguely code would likely be retained as an expert in the field but offered compensation like an entry-level to mid- developer by a startup.
I think that SMEs are great to have on the team, and I'd happily jump at the chance to contract with one that's got some vague coding experience as well - but I'd contract that out to pick their brains specifically on their specialty rather than try and shoe-horn them into a dev role. If I found a lawyer that had returned to development full time that's a different jazz - but you also need to keep in mind if the now-lawyer that used to be a developer actually wants to go back to full time development.
No we do not. Some of us do
No, we do not.
In my experience disrupting spaces it's easier to find software engineers that are open minded when working with other professionals. Not like, super easy, most of the SWEs I've worked with can't do it, even on embedded when working with EEs... but open minded SWEs are out there, albeit usually more expensive or with good pay and job security by working on a less-softwarey company than "Big Tech".
Not just "basic code". There are thousands of companies doing just as challenging work than FAANGs do. There's innovation happening all over the place.
There's probably a place nearby that needs a basic developer for writing
No, most of them don't, because most of them aren't themselves working at the apex.
The people working at the apex fall for the Apex Fallacy, including the ones that think they don't but think that the whole field tends to.
There are 10 CEO level people mentioned.
Woz could certainly get a job at Apple. He's clearly brilliant and capable.
Larry & Sergey could definitely get jobs at Google. They were PhD CS students at Stanford (how on Earth is that "unqualified" to you?).
Zuckerberg could get a job at Facebook. He obviously wrote a lot of Facebook's early code.
Gates & Allen allegedly didn't do much actual coding themselves but they certainly understood it. I imagine Jobs, Bezos and Jack Ma also understood coding even if they didn't do any themselves. I don't know anything about Ma Huateng.
I doubt any of them could drop in to a high level coding role and be productive, but they could all do intern or junior level stuff. Code isn't that hard that you need to be a special snowflake to do it.
Have you seen Facebook's early code? It's very much "Early 2000s PHP spaghetti written by undergrad on a caffeine bender at 3 am". Facebook succeeded because of catching lightning in a bottle at the right place/time, and sure, later engineers built it to scale, but let's not kid ourselves that it was due to Zuck's coding genius.
What? Gates & Allen similarly wrote "a lot of early code". Gates also acted as a Chief Software Architect in his final days at Microsoft.
[1] https://en.wikipedia.org/wiki/TRS-80_Model_100#ROM_firmware
I mean, plenty of very capable people are filtered out of Google and go on to do great things. It is bound to happen when you receive hundreds of applications and hire one person.
I don't know if they wouldn't get hired, I mean it's not like those companies never hire straight out of college, they obviously do, so expertise is not an absolute requirement. But they probably couldn't be hired as drop-in experienced SE's. Half their tech stacks are on technology that didn't even exist when they last touched code.
All of these CEO's are famous for their excellent early talent acquisition of software engineers. Microsoft and Apple for leveraging those engineers to initiate a new digital world, and Facebook and Google for attracting (and motivating) the worlds best to achieve global domination.
I mean if we reanimated Big Al Einstein today and he had a blind interview for a tenure track physics position at Princeton Physics dept he would probably fail. The field has changed too much although with months of prep he'd be able to catch up, the same as L & S could for SWE interviews.
That's exactly what I said in my first post - "I doubt any of them could drop in to a high level coding role and be productive, but they could all do intern or junior level stuff."
I mean there are Yale JDs that fail the bar exam but no one would claim that the average Yale JD couldn't get hired as a Big Law associate or judicial clerk.
They would definitely get a phone screen based on their resumes, but there is a good chance they wouldn't even make it to the virtual onsite round. It's not like the interviewers would use their products or look at their code or dissertation or whatever.
The "average Yale JD" would not get hired as a judicial clerk. Competition for clerkships is fierce, and generally only the top students get them. Any judge would probably take a "top" Yale JD, but unless the judge is a Yale graduate they'll all pass on the "average Yale JD," in favor of a better-performing graduate from another law school (usually their own).
> But ultimately, should Google have hired me? Yes, absolutely yes. I am often a dick, I am often difficult
If any of the interviewers got a whiff of that, it could have easily torpedoed the interview loop.
> Homebrew, which was used by 90% of Google's engineers at the time of his interview
This is definitely not true.
At any rate, the point is that a guy who used software used by a large portion of Google's engineering team because it was superior to the in-house solution could not get a job at Google because he failed to answer a programming question in the specific manner the interviewer wanted for a type of problem he would never actually encounter on the job. And in that vein, Sergie and Larry would similarly have difficulty getting hired at Google because other than their original algorithm, which Google has not used in over a decade, they have no modern or recent software experience and would likely fail all of the programming interviews.
It's hard to put everything in a build system like blaze but if you do, I think the outcome is superior to Homebrew.
Google is a linux shop, and you were generally not allowed to even keep the source code in your notebook.
Do you seriously believe that they couldn't come up with something better than mediocre package manager?
The real question is: knowing Google's track record of almost complete failure for the past few years, why would you believe in Google?
Google is run by the engineers. You don't get to blame the MBAs for its failures.
What are your sources?
His post also makes him sound like a dick (which he admits). Google has a “no jerks” policy that a lot of people take seriously.
Many stanford phds fail the interview process. I'm not speculating. Others have suggested this says more about the interview process than the person in question. They might be right. But here we are.
At the same time, I think the coding interviews generally are harder than what's needed to do the job well, just because there're so many job applicants so the bar gets unnecessarily high? And people who fail the interviews can still be really bright. (Also, some people get nervous and fail mostly related to that. I wonder how to avoid that happening)
Zuckerberg, on the other hand, partly coded a CRUD PHP app before moving on to executive stuff. He would probably not pass a Facebook interview without several years of intense preparation.
Brin and Page fall in between those two. They at least have several years of academic coding and their early Google work.
Yes, they're all very smart, but that's not enough to get into most FANG software engineering jobs.
That doesn't mean he could do leetcode problems.
Hell, the type of attitudes and personality that made these folks good at what they did would probably be liabilities from some the interview process.
Almost certainly true, but would they pass the coding interview?
I'm not clear why/if this is controversial. I thought it was well established that interviews are tough from both ends and that they suffer heavily from Goodhart's law.
1) At least a year or two of experience at another programming job, 2) MONTHS of time studying whiteboarding, and maybe 3) A few good referrals.
I know, because I'm 34 and I have 9 years of enterprise experience. I'm trying to get into Big Tech right now (I've interviewed with Google and Amazon and I'm about to do Facebook). I'm lucky though that I have an undergrad science degree from Stanford, so I have at least some credibility in that world and many of my former peers are in that space.
The only really hard part is finding the will to study leetcode problems for hours.
I have all sorts of thoughts on the subconscious motivations behind the whiteboard grind. It's sort of a hazing ritual. Or, like so many things in America, a class filter initially designed to not be a class filter: rich people can afford to study for months for free. Poor people can't.
But ultimately, it's helpful to think of it as a game. Either play it or don't. There's no point in trying to resist it if my goal is ultimately to succeed personally. I keep getting rejected from Big Tech, but local firms are THROWING job offers at me just for being a decent, experienced programmer. I don't have much to complain about, other than the fact that I'd sort of like to make $400k for a little while and then drop out of society for a year or two.
And I think the large majority of people realize leetcode != software engineering ability. They're just trading off a low false positive rate for a high false negative rate. My wife has also been spending months studying for the LSAT. It's really quite similar except I can work as programmer without formal credentials.
I think whiteboarding problems can be silly but....
If you are applying to these jobs you either just graduated, in which case you just spent 4 years finding time to jump through all the hoops the professors gave you, surely you can find another 3 months to become an expert on whiteboarding problems.
Or you're a professional software developer. And the number of professional software developers who are good enough to work at Google or Amazon, live in the U.S. and are "poor" is a vanishingly small number.
Studying algorithms is HUGELY IMPORTANT. They say they "just want to see how you think." That's a lie. Big Tech interviews are like a whiteboarding final exam, and you need to shoot for an A.
Study leetcode. Study resources like interviewcake.com or Cracking the Coding Interview, and take practice interviews at interviewing.io.
Good luck, and feel free to hit me up for advice.
I probably wouldn't make 400k in my first FAANG job. More like 250k to 350k on the higher end if I were really lucky.
for a new grad in a non-CS STEM subject, do you suggest I spend this summer doing a no-name internship, study algorithms, or both?
No offense but I laugh at this thought. Because most people don't realize what they are actually capable of-- they'd rather make excuses.
Excuses are easier to make than to sit down, intensely study, and build projects, in a public library, while living in a tent.
And, I think a lot of people in the "special snowflake" mentality are afraid to recognize that a lot of poor people choose to be poor-- and even glorify it: much like the "gloating over/glorifying victimhood" movement.
As someone who has spent almost a year living in a tent while studying technology, I beg to differ.
I studied for free for several months, a few times, while living in a tent & in a cabin without running water/electricity. It simply requires a strategy to find: internet access, free food, low cost showers, relatively safe tent space near a town/city, etc.
About 8 years ago I stopped working in entry level Marketing ($14/hr) to live in a tent (so as not to have to pay rent) and learn web design. It helped my get my first jobs.
It's a long story-- after a few months, went back to work in digital marketing. Later, lived in a tent again to study web app dev. After dropping out of grad school (lived off loans while living in shack without water & electricity), lived in relative's living room in SF Bay area for 1-2 months while applying to jobs, and landed first programming job.
There's nothing wrong with living in a tent, on a couch, etc-- whether rich or poor.
Living poor didn't stop me-- the willpower to put in the work to actively learn (actively i.e. keeping journals of notes & building projects) is more important than having a place to live.
Anyone can live in a tent and eat food from a food bank for a few months, and shower at a community center, while learning. (Assuming they don't have kids to take care of. If they have kids before getting their career skills together, well... that's just poor planning)
Strategies involved: Motivational thinking. Motivational music. Cultivating positive thought processes. A strong belief in the economics data (bureau of labor statistics). And a strong belief that studying web dev will result in a job, assuming a person is organized, studies, and creates a relevant portfolio with projects.
__________
Note: I have relatives who are currently quite poor, and have been as long as I've known them.
Their problem as I see it?
They refer to themselves as "Poor people" instead of "People who refuse to apply to jobs" or "People who refuse to research economically relevant skills and then build said skills in an organized manner".
The reality is that being poor or not poor IS in their control. And they choose to be poor. Why? Because they choose not to do the alternative: work towards a strategy resulting in not being poor.
I've counseled a cousin who is about my age. He prefers to wake up in the evening, smoke cannabis, stay up all night, and occasionally work manual labor jobs during the day. At age 30-ish. Yet is intelligent. Just chooses to prioritize instant gratification.
It's not either or: 1) people should take more accountability for their own lives, but at the same time, 2) it should be easier to raise yourself up if you're less fortunate.
If you're willing to overcome the obstacles you can accomplish nearly anything. I'm just in favor of fewer obstacles.
But this statement:
>" it should be easier "
applies to literally everything in existence :P
challenges are good-- they result in growth.
I don't think any of them became engineers. One of them ran a catering business, for instance, which is more in line with his background.
Is that growth?
What makes you think that they should become engineers? Just because they're brilliant they're supposed to work in engineering?
Oh boy, here we go again.
Smart people can afford not to study for months. 'Stupid' people can't. Shall I, as a 'stupid' person complain about that?
It depends on what you mean by "serious". Software development is very much a free-for-all as far as backgrounds go. It attracts people from all disciplines. There are NO CREDENTIALS needed to be called a "software engineer", and it will remain this way for the foreseeable future. Every organization that develops software has its own rules and standards for how they staff their teams, usually these rules are flexible to almost non-existent. They hire based on whether they think someone can do the work based on some loose evaluation criteria.
But, yeah, a mid-to-late career-changer with a successful business background as highly paid executive is going to raise eyebrows if they go after some software development job-- not because of technical chops (assuming they still got it), but more "wtf are you thinking?" considerations. These people would normally just self-fund their own software projects, or partner with someone in exchange for having some fund with code (it happens).
CEO demographics vary wildly. The article just cherry-picks the top ten market cap companies, which today, happen to dominated by software companies. Most of the CEO's have been SE's? So what? That means almost nothing. Are these 10 companies supposed to be profoundly representative of the world of work in some way?
In the USA, maybe that's true.
In Canada, for instance, there are legal requirements to being able to call yourself an Engineer.
That's why "Software Developer" is used.
https://careers.microsoft.com/us/en/job/958535/Software-Engi...
Likely the company wants to use the same language in US as well as in Canada. Noone I know in Canada is called Software Engineer, we all refer to ourselves as Software Developer.
FWIW the UK has a similar thing for traditional Engineer roles. Nobody is legally permitted to call themselves a "tradtional" Engineer (such as Civil, Aerospace, Aeronautical, etc.) without, typically, at minimum a bachelor's degree or equivalent vocational training in that discipline. These are deemed "protected" roles but they are very specific - i.e. there needs to be some kind of auhtoritative body that wards the title(s). "Software Engineer" has no such protection. Generic/non-descript "Engineer" isn't protected. There are plenty of "Software Engineer" roles and it's entirely feasible to be hired as a SWE before you even get any higher education at all. Most of my previous roles have officially been documented as "(Junior/Senior/Lead/etc) Software Engineer" on my contract(s) of employment.
I do know some people who have the title software engineer and they had to do like a whole ceremony where they swore an oath and got a ring and stuff.
They also have real-world legal rights and obligations that it grants them. For instance they can put their stamp on a structural drawing. Because they studied that stuff.
It does seem silly to have real-world building architecture requirements for a Software Engineer but that's where we're at.
Anyways, Software Developer (or even "Product Developer") is a much more common term in Canada as a result. No one wants to tangle with provincial regulations over a job title.
I'm a bit baffled on the fact that they can stamp things they aren't formally trained in. That's a surprise.
I had assumed they had some baseline level of training in different areas because a Software Engineer I know stamped an architecture drawing for a shed he was building. Granted a shed isn't a high risk building but still it's surprising he can do that if he's untrained.
Also does the ring really have nothing to do with it? My understanding is you earn the ring at the same time as the ability to call yourself a professional engineer. Maybe the ring itself isn't necessary but it's symbolically related for sure. Am I wrong?
Professional Engineer is a protected title in Canada. Is that what you’re thinking of?
I'm mixing between EGBC (Engineers and Geoscientists British Columbia) and PEO (Professional Engineers Ontario) in links below, but feel free to contact your local engineering licensing body to check if your titles hold up. There is a bunch of weird language through out. Who knows, you may qualify.
From [1]: "In British Columbia, anyone who practises software engineering, or who uses the title “software engineer” (or a similar title that implies that they are a software engineer, like “firmware engineer”, “mobile app engineer”, etc.), must be registered with Engineers and Geoscientists BC."
There is a lot more in [1] including, "Not all software development constitutes software engineering." and "... many individuals who develop software probably do not actually engage in software engineering..."
Someone linked to a Microsoft job using the word engineer in Canada, which seems strange since Microsoft already learned about the protected use of the word "engineer" in Canada in 2001 [2].
Professional Engineers Ontario says, "On July 25, 2002 Microsoft Canada announced that they will continue to use the term 'engineer' as part of the Microsoft Certified Systems Engineer (MCSE) designation."[3]
> Professional Engineer is a protected title in Canada. Is that what you’re thinking of?
I think "engineer" is protected too. I think job titles that contain "engineer" can only be used by those who are registered professional engineers.
From [4], "Can someone call themselves an Engineer/Professional Engineer or P.Eng if they don’t have a licence?
The term Engineer/Professional Engineer/P.Eng. can only be used by those that have been granted a licence by PEO, under the authority of the Professional Engineers Act. The title “Engineer” is restricted to Ontario licence holders under s. 40(2)(a.1) of the Act."
[1] https://www.egbc.ca/Registration/Individual-Registrants/How-...
[2] https://www.canadianconsultingengineer.com/engineering/micro...
[3] https://www.peo.on.ca/public-protection/complaints-and-illeg...
[4] https://www.peo.on.ca/public-protection/complaints-and-illeg...
If you have already a CS degree and you spend a couple months refreshing your memory, you would be amazed what codebases you can touch.
Although NL might be a place where there isn't a lot of programming market, I'd be willing to bet the resume needs a bit of work.
A necessary precondition for showing that something new & innovative is worth doing is usually to do it. It's not a sufficient condition though: you also need the risk tolerance to work on things new & innovative that may not work; you need the deep understanding of your problem to understand what the solution looks like; you need the location & social connections to access capital and hire real software engineers to scale your solution; and you need the judgment to hire the right people to fill in your skillset gaps. That's why most software engineers aren't off founding billion dollar companies.
Note that this applies to other founder-led enterprises. Fred Koch was a hell of a chemist before Koch Industries became a huge conglomerate. Warren Buffett studied under one of the greatest value investors (Benjamin Graham) on Wall Street. Carnegie started as a telegrapher and railroad superintendent before becoming a steel magnate. You need that operational experience and domain knowledge before founding a world-changing company.
Because there is no c-suite.stackexchange.com for them to cut-and-paste their corporate directives from.
Mick Napier who founded and runs The Annoyance where many famous comedians studied over the years, comedians who Second City would claim as graduates of their program like Tina Fey and Chris Farley, said they he doesn't like clamming taking the credit for successful graduates unless he also takes the credit for all the unsuccessful.
That has always stuck with me.
Because programming is too much fun.
Because there are many more software engineering jobs in the world than CEO jobs.
> Almost none of them could get a job as a software engineer at their own company, if they had to, because they would be completely unqualified.
Which probably reflects more that the hiring process is broken, than that these people couldn't contribute to a business writing code.
The real problem is that, in addition to writing code, they would also start identifying business opportunities and new ways to improve processes and increase revenues and cut costs, threatening the perceived job security of the people in management above them.
I don't see why it would be surprising that tech companies benefit from technical founders. When I see MBA/finance run companies my first thought is that they are almost certainly a finance, contracting, or marketing business even if on the outside they are a consumer product, mining, or manufacturing firm.
Many mature businesses benefit from a financial viewpoint as CEO as there are no major innovations or risks to be done that can't be reasoned about on a spreadsheet. Tech has been on the other end of that spectrum for the last few decades.
Because you can essentially hop in and fix something, even if your other engineers are but stuck. Plus knowing that you can personally increase your wealth by 6 million dollars with a couple of good lines of code doesn't hurt.
Yes, there are exceptions to the rule. Especially in fields whose core business isn't software.
But in general it helps for founders to be able to, you know, actually build the thing they are trying to sell. I think that's all there is to it.
You'd be surprised...
Maybe they turn into the engineer who can extract water, if only for reasons of path-dependency. And in a world where water-extraction is a valuable industry, that path-dependent contingency will result in them maybe starting a valuable water-extraction engineering firm. But it's not that nailing up drywall as a kid made them uniquely qualified. It's that they were industrious and smart and had sufficient fortune and whatever else. Which is good, all that stuff is good.
The problem with nails is that they walk out over time. Secondarily, they can become "squeaky" when used in floors.