Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Books Programming

New Book Describes 'Bluffing' Programmers in Silicon Valley (theguardian.com) 292

Long-time Slashdot reader Martin S. pointed us to this an excerpt from the new book Live Work Work Work Die: A Journey into the Savage Heart of Silicon Valley by Portland-based investigator reporter Corey Pein.

The author shares what he realized at a job recruitment fair seeking Java Legends, Python Badasses, Hadoop Heroes, "and other gratingly childish classifications describing various programming specialities." I wasn't the only one bluffing my way through the tech scene. Everyone was doing it, even the much-sought-after engineering talent. I was struck by how many developers were, like myself, not really programmers, but rather this, that and the other. A great number of tech ninjas were not exactly black belts when it came to the actual onerous work of computer programming. So many of the complex, discrete tasks involved in the creation of a website or an app had been automated that it was no longer necessary to possess knowledge of software mechanics. The coder's work was rarely a craft. The apps ran on an assembly line, built with "open-source", off-the-shelf components. The most important computer commands for the ninja to master were copy and paste...

[M]any programmers who had "made it" in Silicon Valley were scrambling to promote themselves from coder to "founder". There wasn't necessarily more money to be had running a startup, and the increase in status was marginal unless one's startup attracted major investment and the right kind of press coverage. It's because the programmers knew that their own ladder to prosperity was on fire and disintegrating fast. They knew that well-paid programming jobs would also soon turn to smoke and ash, as the proliferation of learn-to-code courses around the world lowered the market value of their skills, and as advances in artificial intelligence allowed for computers to take over more of the mundane work of producing software. The programmers also knew that the fastest way to win that promotion to founder was to find some new domain that hadn't yet been automated. Every tech industry campaign designed to spur investment in the Next Big Thing -- at that time, it was the "sharing economy" -- concealed a larger programme for the transformation of society, always in a direction that favoured the investor and executive classes.

"I wasn't just changing careers and jumping on the 'learn to code' bandwagon," he writes at one point. "I was being steadily indoctrinated in a specious ideology."
This discussion has been archived. No new comments can be posted.

New Book Describes 'Bluffing' Programmers in Silicon Valley

Comments Filter:
  • by Anonymous Coward on Saturday April 28, 2018 @10:40PM (#56522045)

    Older generations called this kind of fraud "fake it 'til you make it."

    • by Z00L00K ( 682162 ) on Saturday April 28, 2018 @11:26PM (#56522141) Homepage Journal

      It's not really faking it completely but a matter of code re-use.

      Code re-use is fine if you know the code, but introducing security issues if you use the wrong code.

      To write good code you need to understand the problem it shall solve. The code itself may not be efficient or use the optimal features offered but if it really solves the problem without issues from the black box perspective then you can use someone more skilled to optimize it. This is the main problem in most cases - people are either coders without knowing the business they code for or they know the business but are unable to make decent code and just produce shitty powerpoints and excel sheets. Find someone that can do both and you'd get a great boost for the company.

      • by Anonymous Coward

        Oh bs. Code reuse is not the issue, most programmers are outright frauds.

        This is certainly not a new problem, I regularly interview people with 20+ years experience who cannot tell me how things work under the hood.

        The issue is kids these days basically have point and click development experiences and never learn how to build things from the ground up.

        If you program C/C++ you had better be able to understand the asm for the architecture you target, if you program in a high level interpreted language then yo

        • by gbjbaanb ( 229885 ) on Sunday April 29, 2018 @02:46AM (#56522405)

          That's not strictly true, you don't need to go down that low to be good at what you do, but you do still need to understand what it is doing, and why.

          If you don't, you end up with stupidity like the ASP.NET programmers who built their identity system to use strings as primary DB keys, or the .NET programmers who created an array class and called it List (yes, Lists in .NET are arrays under the hood, with array-style performance).

          this kind of nonsense makes it next to impossible to get things done properly, how many systems are built with entity framework gobbling up masses of CPU and DB time because the coders didn't want to use SQL when they could write C# code for everything (I'm still surprised they don't have a C# engine to create client side javascript!)

          I think the problem has been the "crack it out quick" attitude to programming where everything is thrown away after a few years for the new cool tech. As a result, everybody ends up reinventing everything over and over and nobody gets good at it. Net result: programming becomes a low-skill job plugging blocks of code together from tutorials and examples, and its no wonder bosses now consider programmers to be low skill workers deserving of lower pay. All the best guys have gone and become architects instead.

          • You don't understand the point of an ORM do you? I'd suggest reading why they exist. EF isn't perfect (and there are at least two mainstream alternatives) but it exists for other reasons than developers being too "lazy" to have code full of SQL strings. There's plenty of old .NET code with that if you're desperate to work that way but I wouldn't recommend it.

            • I do understand it, and I know they are bloated and slow. the real main point of them is so everyone can pretend their DB access looks like their middle-tier programming language.

              I use Dapper these days, though I still use EF as its easy (yup, I'm lazy too), Dapper gives the benefits of ORM ease-of-use plus speed of native SQL. And, when it comes to some complex queries, actually works, unlike EF Core (which is what took me to dapper in the first place an outer join EF query with multiple where clauses simp

            • by goose-incarnated ( 1145029 ) on Sunday April 29, 2018 @01:34PM (#56524475) Journal

              You don't understand the point of an ORM do you? I'd suggest reading why they exist

              They exist because programmers value code design more than data design. ORMs are the poster-child for square-peg-round-hole solutions, which is why all ORMs choose one of three different ways of squashing hierarchical data into a relational form, all of which are crappy.

              If the devs of the system (the ones choosing to use an ORM) had any competence at all they'd design their database first because in any application that uses a database the database is the most important bit, not the OO-ness or Functional-ness of the design.

              Over the last few decades I've seen programs in a system come and go; a component here gets rewritten, a component there gets rewritten, but you know what? They all have to work with the same damn data.

              You can more easily switch out your code for new code with new design in a new language, than you can switch change the database structure. So explain to me why it is that you think the database should be mangled to fit your OO code rather than mangling your OO code to fit the database?

          • by cheekyboy ( 598084 ) on Sunday April 29, 2018 @04:19AM (#56522605) Homepage Journal

            Stick to the one thing for 10-15years

            Often all this new shit doesnt do jack different to the old shit, its not faster, its not better.

            Every dick wants to be famous so make another damn library/tool with his own fancy name and feature, instead of enhancing an existing product.

            • amen to that.

              Or kids who can't hack the main stuff, suddenly discover the cool new, and then they can pretend they're "learning" it, and when the going gets tough (as it always does) they can declare the tech to be pants and move to another.

              hence we had so many people on the bandwagon for functional programming, then dumped it for ruby on rails, then dumped that for Node.js, not sure what they're on at currently, probably back to asp.net.

          • by Greyfox ( 87712 )
            How much code do you have to reuse before you're not really programming anymore? When I started in this business, it was reasonably possible that you could end up on a project that didn't particularly have much (or any) of an operating system. They taught you assembly language and the process by which the system boots up, but I think if I were to ask most of the programmers where I work, they wouldn't be able to explain how all that works. Or technical details about processes -- how to effectively create an
            • by djinn6 ( 1868030 )

              It really feels like if you know what you're doing it should be possible to build a team of actually good programmers and put everyone else out of business by actually meeting your deliverables, but no one has yet. I wonder why that is.

              You mean Amazon, Google, Facebook and the like? People may not always like what they do, but they manage to get things done and make plenty of money in the process. The problem for a lot of other businesses is not having a way to identify and promote actually good programmers. In your example, you could've spent 10 minutes fixing their query and saved them days of headache, but how much recognition will you actually get? Where is your motivation to help them?

        • by Junta ( 36770 )

          It's not a "kids these days" sort of issue, it's *always* been the case that shameless, baseless self-promotion wins out over sincere skill without the self-promotion, because the people who control the money generally understand boasting more than they understand the technology. Yes it can happen that baseless boasts can be called out over time by a large enough mass of feedback from competent peers, but it takes a *lot* to overcome the tendency for them to have faith in the boasts.

          It does correlate stron

    • Re: (Score:2, Informative)

      by Anonymous Coward

      Older generations called this kind of fraud "fake it 'til you make it."

      In the bad old days we had a hell of a lot of ridiculous restriction

      We must somehow made our programs to run successfully inside a RAM that was 48KB in size (yes, 48KB, not 48MB or 48GB), on a CPU with a clock speed of 1.023 MHz

      Because of it, we had to FAKE a lot of things --- such as, updating the users, at least once every 2 seconds or so, when calculations (there was no spreadsheet yet back then) might take minutes

      Nowadays with GBs or memory and GHz of clock speed, with multicore CPUs, if the programme

      • by molarmass192 ( 608071 ) on Sunday April 29, 2018 @01:15AM (#56522359) Homepage Journal
        These restrictions is a large part of what makes Arduino programming "fun". If you don't plan out your memory usage, you're gonna run out of it. I cringe when I see 8MB web pages of bloated "throw in everything including the kitchen sink and the neighbor's car". Unfortunately, the careful and cautious way is a dying in favor of the throw 3rd party code at it until it does something. Of course, I don't have time to review it but I'm sure everybody else has peer reviewed it for flaws and exploits line by line.
        • by AmiMoJo ( 196126 ) on Sunday April 29, 2018 @04:15AM (#56522597) Homepage Journal

          Unfortunately, the careful and cautious way is a dying in favor of the throw 3rd party code at it until it does something.

          Of course. What is the business case for making it efficient? Those massive frameworks are cached by the browser and run on the client's system, so cost you nothing and save you time to market. Efficient costs money with no real benefit to the business.

          If we want to fix this, we need to make bloat have an associated cost somehow.

          • Re: (Score:2, Interesting)

            by Anonymous Coward

            Unfortunately, the careful and cautious way is a dying in favor of the throw 3rd party code at it until it does something.

            Of course. What is the business case for making it efficient? Those massive frameworks are cached by the browser and run on the client's system, so cost you nothing and save you time to market. Efficient costs money with no real benefit to the business.

            If we want to fix this, we need to make bloat have an associated cost somehow.

            Because, latency of a request is the most important factor for getting users to continue using a service. Its more important than anything that comes from product management, the design dept or the executive suite (which is surprising). Its gotten so bad that I have seen companies miss out on 10 figures a year in revenue because of bloated software with poor latency. Meanwhile, they want to run an A/B test on if the pink background makes more money than the green one (turns out it doesn't fucking matter)

          • My company is dealing with the result of this mentality right now. We released the web app to the customer without performance testing and doing several majorly inefficient things to meet deadlines. Once real load was put on the application by users with non-ideal hardware and browsers, the app was infuriatingly slow. Suddenly our standard sub-40 hour workweek became a 50+ hour workweek for months while we fixed all the inefficient code and design issues.

            So, while you're right that getting to market and opt

            • by AmiMoJo ( 196126 )

              I didn't say it's the correct way to go, just the way that most companies go. I get frustrated with premature product release too.

      • In the bad old days we had a hell of a lot of ridiculous restriction We must somehow made our programs to run successfully inside a RAM that was 48KB in size (yes, 48KB, not 48MB or 48GB), on a CPU with a clock speed of 1.023 MHz

        We still have them. In fact some of the systems I've progrmmed hve been more resource limited than the gloriously spacious 32KiB memory of the BBC model B. Take the PIC12F or 10F series. A glorious 64 bytes of RAM, max clock speed of 16MHz, but not unusual to run it 32kHz.

    • and all these modern coders forget old lessons, and make shit stuff, just look at instagram windows app, what a load of garbage shit, that us old fuckers could code in 2-3 weeks.

      Instagram - your app sucks, cookie cutter coders suck, no refinement, coolness. Just cheap ass shit, with limited usefulness.

      Just like most of commercial software thats new - quick shit.

      Oh and its obvious if your an Indian faking it, you havent worked in 100 companies at the age of 29.

      • by Junta ( 36770 )

        Here's another problem, if faced with a skilled team that says "this will take 6 months to do right" and a more naive team that says "oh, we can slap that together in a month", management goes with the latter. Then the security compromises occur, then the application fails due to pulling in an unvetted dependency update live into production. When the project grows to handling thousands instead of dozens of users and it starts mysteriously folding over and the dev team is at a loss, well ithe choice has be

  • by wierd_w ( 1375923 ) on Saturday April 28, 2018 @10:58PM (#56522075)

    Many of these languages have an interactive interpreter. I know for a fact that Python does.

    So, since job-fairs are an all day thing, and setup is already a thing for them-- set up a booth with like 4 computers at it, and an admin station. The 4 terminals have an interactive session with the interpreter of choice. Every 20min or so, have a challenge for "Solve this problem" (needs to be easy and already solved in general. Programmers hate being pimped without pay. They dont mind tests of skill, but hate being pimped. Something like "sort this array, while picking out all the prime numbers" or something.) and see who steps up. The ones that step up have confidence they can solve the problem, and you can quickly see who can do the work and who can't.

    The ones that solve it, and solve it to your satisfaction, you offer a nice gig to.

  • than spending weeks interviewing "good" candidates for an opening, selecting a couple and hiring them as contractors, then finding out they are less than unqualified to do the job they were hired for.

    I've seen it a few times, Java "experts", Microsoft "experts" with years of experience on their resumes, but completely useless in coding, deployment or anything other than buying stuff from the break room vending machines.

    That being said, I've also seen projects costing hundreds of thousands of dollars, with y

    • Re:Nothing worse (Score:4, Insightful)

      by Anonymous Coward on Saturday April 28, 2018 @11:34PM (#56522157)

      The moment you said "contractors", and you have lost any sane developer. Keep swimming, its not a fish.

      • Re: (Score:2, Informative)

        by Anonymous Coward

        I agree with this. I consider myself to be a good programmer and I would never go into contractor game.

        I also wonder, how does it take you weeks to interview someone and you still can't figure out if the person can't code? I could probably see that in 15 minutes in a pair coding session.

        Also, Oracle, SAP, IBM... I would never buy from them, nor use their products. I have used plenty of IBM products and they suck big time. They make software development 100 times harder than it could be. Their technical supp

        • It's weeks to interview multiple different candidates before deciding on 1 or 2 of them. Not weeks per person.

    • Re: (Score:3, Insightful)

      by Anonymous Coward

      That being said, I've also seen projects costing hundreds of thousands of dollars, with years of delays from companies like Oracle, Sun, SAP, and many other "vendors"

      Software development is a hard thing to do well, despite the general thinking of technology becoming cheaper over time, and like health care the quality of the goods and services received can sometimes be difficult to ascertain. However, people who don't respect developers and the problems we solve are very often the same ones who continually frustrate themselves by trying to cheap out, hiring outsourced contractors, and then tearing their hair out when sub par results are delivered, if anything is even del

    • As part of your interview process, don't you have candidates code a solution to a problem on a whiteboard? I've interviewed lots of "good" candidates (on paper) too, but they crashed and burned when challenged with a coding exercise. As a result, we didn't make them job offers.
  • I'm not a great coder but good enough to get done what clients want done. If I'm not sure or don't think I can do it, I tell them. I think they appreciate the honesty. I don't work in a tech-hub, startups or anything like that so I'm not under the same expectations and pressures that others may be.
  • OK, so yes, I know plenty of programmers who do fake it. But stitching together components isn't "fake" programming.

    Back in the day, we had to write our own code to loop through an XML file, looking for nuggets. Now, we just use an XML serializer. Back then, we had to write our own routines to send TCP/IP messages back and forth. Now we just use a library.

    I love it! I hated having to make my own bricks before I could build a house. Now, I can get down to the business of writing the functionality I want, ins

    • Re: (Score:2, Insightful)

      by Anonymous Coward

      But, I suspect you could write the component if you had to. That makes you a very different user of that component than someone who just knows it as a magic black box.

      Because of this, you understand the component better and have real knowledge of its strengths and limitations. People blindly using components with only a cursory idea of their internal operation often cause major performance problems. They rarely recognize when it is time to write their own to overcome a limitation (or even that it is possibl

      • You're right on all counts. A person who knows how the innards work, is better than someone who doesn't, all else being equal. Still, today's world is so specialized that no one can possibly learn it all. I've never built a processor, as you have, but I still have been able to build a DNA matching algorithm for a major DNA lab.

        I would argue that anyone who can skillfully use off-the-shelf components can also learn how to build components, if they are required to.

    • 1, 'Back in the Day' there was no XML, XMl was not very long ago.
      2, its a parser, a serialiser is pretty much the opposite (unless this weeks fashion has redefined that.. anything is possible).
      3, 'Back then' we didnt have TCP stacks...

      But, actually I agree with you. I can only assume the author thinks there are lots of fake plumbers because they dont cast their own toilet bowels from raw clay, and use pre-build fittings and pipes! That car mechanics start from raw steel scrap and a file.. And that you need

  • by Anonymous Coward

    And a rather small part at that, albeit a very visible and vocal one full of the proverbial prima donas. However, much of the rest of the tech business, or at least the people working in it, are not like that. It's small groups of developers working in other industries that would not typically be considered technology. There are software developers working for insurance companies, banks, hedge funds, oil and gas exploration or extraction firms, national defense and many hundreds and thousands of other small

  • This is the reason I wish programming didn't pay so much....the field is better when it's mostly populated by people who enjoy programming.
  • by Njovich ( 553857 ) on Sunday April 29, 2018 @04:35AM (#56522641)

    They knew that well-paid programming jobs would also soon turn to smoke and ash, as the proliferation of learn-to-code courses around the world lowered the market value of their skills, and as advances in artificial intelligence allowed for computers to take over more of the mundane work of producing software.

    Kind of hard to take this article serious after saying gibberish like this. I would say most good programmers know that neither learn-to-code courses nor AI are going to make a dent in their income any time soon.

  • As a non-programmer Arduino and libraries are my friends
  • by Escogido ( 884359 ) on Sunday April 29, 2018 @05:59AM (#56522777)

    there is a huge shortage of decent programmers. I have personally witnessed more than one phone "interview" that went like "have you done this? what about this? do you know what this is? um, can you start Monday?" (120K-ish salary range)

    partly because there are way more people who got their stupid ideas funded than good coders willing to stain their resume with that. partly because if you are funded, and cannot do all the required coding solo, here's your conundrum:

    - top level hackers can afford to be really picky, so on one hand it's hard to get them interested, and if you could get that, they often want some ownership of the project. the plus side is that they are happy to work for lots of equity if they have faith in the idea, but that can be a huge "if".

    - "good but not exceptional" senior engineers aren't usually going to be super happy, as they often have spouses and children and mortgages, so they'd favor job security over exciting ideas and startup lottery.

    - that leaves you with fresh-out-of-college folks, which are really really a mixed bunch. some are actually already senior level of understanding without the experience, some are absolutely useless, with varying degrees in between, and there's no easy way to tell which is which early.

    so the not-so-scrupulous folks realized what's going on, and launched multiple coding boot camps programmes, to essentially trick both the students into believing they can become a coder in a month or two, and also the prospective employers that said students are useful. so far it's been working, to a degree, in part because in such companies coding skill evaluation process is broken. but one can only hide their lack of value add for so long, even if they do manage to bluff their way into a job.

  • Duh! (Score:4, Insightful)

    by quonset ( 4839537 ) on Sunday April 29, 2018 @06:20AM (#56522817)

    All one had to do was look at the lousy state of software and web sites today to see this is true. It's quite obvious little to no thought is given on how to make something work such that one doesn't have to jump through hoops.

    I have many times said the most perfect word processing program ever developed was WordPefect 5.1 for DOS. Ones productivity was astonishing. It just worked.

    Now we have the bloated behemoth Word which does its utmost to get in the way of you doing your work. The only way to get it to function is to turn large portions of its "features" off, and even then it still insists on doing something other than what you told it to do.

    Then we have the abomination of Windows 10, which is nothing but Clippy on 10X steroids. It is patently obvious the people who program this steaming pile have never heard of simplicity. Who in their right mind would think having to "search" for something is more efficient than going directly to it? I would ask the question if these people wander around stores "searching" for what they're looking for, but then I realize that's how their entire life is run. They search for everything online rather than going directly to the source. It's no wonder they complain about not having time to things. They're always searching.

    Web sites are another area where these people have no clue what they're doing. Anything that might be useful is hidden behind dropdown menus, flyouts, popup bubbles and intriately designed mazes of clicks needed to get to where you want to go. When someone clicks on a line of products, they shouldn't be harassed about what part of the product line they want to look at. Give them the information and let the user go where they want.

    This rant could go on, but this article explains clearly why we have regressed when it comes to software and web design. Instead of making things simple and easy to use, using the one or two brain cells they have, programmers and web designers let the software do what it wants without considering, should it be done like this?

  • by swb ( 14022 ) on Sunday April 29, 2018 @06:48AM (#56522857)

    The tech industry has a ton of churn -- there's some technological advancement, but there's an awful lot of new products turned out simply to keep customers buying new licenses and paying for upgrades.

    This relentless and mostly phony newness means a lot of people have little experience with current products. People fake because they have no choice. The good ones understand the general technologies and problems they're meant to solve and can generally get up to speed quickly, while the bad ones are good at faking it but don't really know what they're doing. Telling the difference from the outside is impossible.

    Sales people make it worse, promoting people as "experts" in specific products or implementations because the people have experience with a related product and "they're all the same". This burns out the people with good adaption skills.

  • by DaMattster ( 977781 ) on Sunday April 29, 2018 @07:39AM (#56522979)

    From the summary, it sounds like a lot of programmers and software engineers are trying to develop the next big thing so that they can literally beg for money from the elite class and one day, hopefully, become a member of the aforementioned. It's sad how the middle class has been utterly decimated in the United States that some of us are willing to beg for scraps from the wealthy. I used to work in IT but I've aged out and am now back in school to learn automotive technology so that I can do something other than being a security guard. Currently, the only work I have been able to find has been in the unglamorous security field.

    I am learning some really good new skills in the automotive program that I am in but I hate this one class called "Professionalism in the Shop." I can summarize the entire class in one succinct phrase, "Learn how to appeal to, and communicate with, Mr. Doctor, Mr. Lawyer, or Mr. Wealthy-man." Basically, the class says that we are supposed to kiss their ass so they keep coming back to the Audi, BMW, Mercedes, Volvo, or Cadillac dealership. It feels a lot like begging for money on behalf of my employer (of which very little of it I will see) and nothing like professionalism. Professionalism is doing the job right the first time, not jerking the customer off. Professionalism is not begging for a 5 star review for a few measly extra bucks but doing absolute top quality work. I guess the upshot is that this class will be the easiest 4.0 that I've ever seen.

    There is something fundamentally wrong when the wealthy elite have basically demanded that we beg them for every little scrap. I can understand the importance of polite and professional interaction but this prevalent expectation that we bend over backwards for them crosses a line with me. I still suck it up because I have to but it chafes my ass to basically validate the wealthy man.

  • In 70's I worked with two people who had a natural talent for computer science algorithms .vs. coding syntax. In the 90's while at COLUMBIA I worked with only a couple of true computer scientists out of 30 students. I've met 1 genius who programmed, spoke 13 languages, ex-CIA, wrote SWIFT and spoke fluent assembly complete with animated characters.

    According to the Bluff Book, everyone else without natural talent fakes it. In the undiluted definition of computer science, genetics roulette and intellectual d

Every successful person has had failures but repeated failure is no guarantee of eventual success.

Working...