Slashdot Mirror


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

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."

15 of 292 comments (clear)

  1. Re: older generations already had a term for this by Z00L00K · · Score: 5, Insightful

    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.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  2. Re:Nothing worse by Anonymous Coward · · Score: 4, Insightful

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

  3. Re:Nothing worse by Anonymous Coward · · Score: 3, Insightful

    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 delivered at all. Conscientiousness, humility and respect get you much further in this business than hubris, arrogance and haste.

  4. Re:Bigger building blocks by Anonymous Coward · · Score: 2, Insightful

    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 possible), often don't know just how easy that is, and frequently pull in massive modules for the sake of minor functions.

    My education including designing a microprocessor from logic gates, building it in a lab, programming in a diverse array of languages from assembly up, writing an assembler, and writing a compiler.

    In the work world, I've written an OS, drivers, a C standard library, a compiler, several interpreters, database engines, etc. When I use these things, I understand them at a level that makes my code better. If you don't think you could write something like that, you are probably just a script kiddie and have no business architecting major applications.

  5. Seems about right. Constantly learning, studying by raymorris · · Score: 5, Insightful

    That seems about right to me.

    I have a lot of weaknesses. My people skills suck, I'm scrawny, I'm arrogant. I'm also generally known as a really good programmer and people ask me how/why I'm so much better at my job than everyone else in the room. (There are a lot of things I'm not good at, but I'm good at my job, so say everyone I've worked with.)

    I think one major difference is that I'm always studying, intentionally working to improve, every day. I've been doing that for twenty years.

    I've worked with people who have "20 years of experience"; they've done the same job, in the same way, for 20 years. Their first month on the job they read the first half of "Databases for Dummies" and that's what they've been doing for 20 years. They never read the second half, and use Oracle database 18.0 exactly the same way they used Oracle Database 2.0 - and it was wrong 20 years ago too. So it's not just experience, it's 20 years of learning, getting better, every day. That's 7,305 days of improvement.

  6. Re: older generations already had a term for this by Anonymous Coward · · Score: 2, Insightful

    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 you better have pulled apart the interpreter you often use to understand how it works.

    Otherwise all you get is a bunch of code sloppily taped together by someone who cannot really tell you how or why it works or more importantly how it may break or why it is broken.

  7. Re: older generations already had a term for this by gbjbaanb · · Score: 4, Insightful

    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.

  8. Re: ... A job fair can easily test this competency by wierd_w · · Score: 4, Insightful

    Again, the quality applicant and the code monkey both have something the fakers do not-- Actual comprehension of what a program is, and how to create one.

    As Bill points out, this is not the final exam. This is the "Oh, I see you do actually know how to program-- show me more" portion of the process. This is the part that HR drones are not capable of performing, due to Dunning-Krueger. Those that are actually, REALLY competent will do more than just satisfy the requirements of the challenge, they will provide actually working solutions to the challenge that properly validate their input, and return proper error states if the input is invalid, etc-- You can learn a LOT about a potential hire by observing their work. *THAT* is what this is really about. The triviality of the problem is a necessity, because you ***DON'T*** try to get free solutions out of people.

    I realize that may be difficult for you to comprehend, but you *DON'T* do that. The job fair is to let people know that you have a position available, and try to curry interest in people to apply. A successful pre-screening is confidence building, and helps the potential hire to feel that your company is actually interested in actually hiring somebody, and not just fucking off in the booth, to cover for "failing to find somebody" and then "Getting yet another H1B". It gives them a chance to show you what they can do. That is what it is for, and what it does. It also excludes the fakers that this article is about-- The ones that can talk a good talk, but could not program a simple boolean check condition if their life depended on it.

    If it were not for the time constraints of a job fair (usually only 2 days, and in that time you need to try and pre-screen as many as possible), I would suggest a tiered challenge, with progressively harder challenges, where you hand out resumes to the ones that make it to the top 3 brackets, but that is not the way the world works.

  9. Re:older generations already had a term for this by tlhIngan · · Score: 2, Insightful

    b) No computer ever ran at 1.023 MHz. It was either a nice multiple of 1Mhz or maybe a multiple of 3.579545Mhz (ie. using the TV output circuit's color clock crystal to drive the CPU).

    Well, it could be used to drive the TV output circuit, OR, it was used because it's a stupidly cheap high speed crystal. You have to remember except for a few frequencies, most crystals would have to be specially cut for the desired frequency. This occurs even today, where most oscillators are either 32.768kHz (real time clock), 12MHz (USB 1.1/2.0 interfaces), 19MHz, or 27MHz. Or the two TV frequencies (3.58 and 4.43MHz).

    But back then, before we had the influx of many devices with standardized frequencies, there were only a few standard crystals - mostly related to TV or radio frequencies. And custom-cut crystals were expensive, so you generally wanted crystals that could be ordered trivially easy, which meant limiting yourself to bog standard TV or radio IF crystals.

    Another crystal was 4.43361875 MHz - this was used in PAL countries and divided into as well.

    People grew very adept at multiplying and dividing the frequencies - the IBM PC's 4.77MHz was derived from the 3.58MHz crystal (even IBM couldn't get away from bog-standard crystals) - at a ratio of 4/3.

  10. im sick of reinventors and new frameworks by cheekyboy · · Score: 3, Insightful

    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.

    --
    Liberty freedom are no1, not dicks in suits.
  11. Learn to code courses by Njovich · · Score: 4, Insightful

    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.

  12. Duh! by quonset · · Score: 3, Insightful

    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?

  13. Comment removed by account_deleted · · Score: 5, Insightful

    Comment removed based on user account deletion

  14. Re:Most "Professional programmers" are useless. by gweihir · · Score: 2, Insightful

    I think that is a misinterpretation of the facts. Old(er) coders that are incompetent are just much more obvious and usually are also limited to technologies that have gotten old as well. Hence the 90% old coders that can actually not hack it and never really could get sacked at some time and cannot find a new job with their limited and outdated skills. The 10% that are good at it do not need to worry though. Who worries there is their employers when these people approach retirement age.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  15. Re: older generations already had a term for this by goose-incarnated · · Score: 5, Insightful

    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?

    --
    I'm a minority race. Save your vitriol for white people.