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

292 comments

  1. older generations already had a term for this by Anonymous Coward · · Score: 5, Interesting

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

    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: older generations already had a term for this by Anonymous Coward · · Score: 0

      Find someone that can do both and you'd get a great boost for the company.

      The people can do both are smart enough to build their own company and compete with you.

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

      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 programmers are still faking it, to tell you the truth, they are not fit to call themselves programmers

    4. Re:older generations already had a term for this by molarmass192 · · Score: 4, Interesting

      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.

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    5. Re:older generations already had a term for this by Joce640k · · Score: 0

      I can tell you're faking that knowledge:

      a) A real coder would brag about "16k RAM" (or less). 48K was much later on.

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

      --
      No sig today...
    6. Re:older generations already had a term for this by Anonymous Coward · · Score: 0
      Hello faker

      b) No computer ever ran at 1.023 MHz

      Ever tried to program the 6502?

      https://en.wikipedia.org/wiki/...

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

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

    9. Re: older generations already had a term for this by cyber-vandal · · Score: 1

      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.

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

    11. Re:older generations already had a term for this by cheekyboy · · Score: 1

      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.

      --
      Liberty freedom are no1, not dicks in suits.
    12. Re:older generations already had a term for this by AmiMoJo · · Score: 3, Informative

      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.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    13. Re:older generations already had a term for this by serviscope_minor · · Score: 1

      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.

      --
      SJW n. One who posts facts.
    14. Re:older generations already had a term for this by Anonymous Coward · · Score: 2, Interesting

      Yeah, nice talk. You could have stopped after the first sentence. The other AC is referring to the Commodore C64. The frequency has nothing to do with crystal availability but with the simple fact that everything in the C64 is synced to the TV. One clock cycle equals 8 pixels. The graphics chip and the CPU take turns accessing the RAM. The different frequencies dictated by the TV standards are the reason why the CPU in the NTSC version of the C64 runs at 1.023MHz and the PAL version at 0.985MHz.

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

      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). Its OK, if it wasn't for ppl like you, I wouldn't get paid so well to clean up your messes. Hint, you are one of the fakers an part of the problem.

    16. Re:older generations already had a term for this by Anonymous Coward · · Score: 0

      Recently, people engaging in this sort of thing were called charlatans.

    17. Re:older generations already had a term for this by 50000BTU_barbecue · · Score: 4, Informative

      "b) No computer ever ran at 1.023 MHz."

      Only the Guinness World Record highest selling single model of home computer.

      So much for "no". That's the NTSC version BTW. The VIC-20 also ran at that frequency.

      "or maybe a multiple of 3.579545Mhz"

      So why contradict yourself?

      14.31818MHz/14 = 1.022MHz. What a coinkydink!

      Hey, what about the Atari 800?

      https://en.wikipedia.org/wiki/...

      1.79MHz.

      ZX80?

      https://en.wikipedia.org/wiki/...

      3.25MHz...

      You're a poser, friend.

      --
      Mostly random stuff.
    18. Re:older generations already had a term for this by Anonymous Coward · · Score: 0

      Apparently I got a PAL C64 (when it was 20-year-old) and ran it on a SECAM TV, so it worked perfectly but the graphics were in black and white.

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

      Commodore 64 for the win. I worked for a company that made detection devices for the railroad, things like monitoring axle temperatures, reading the rail car ID tags. The original devices were made using Commodore 64 boards using software written by an employee at the one rail road company working with them.

      The company then hired some electrical engineers to design custom boards using the 68000 chips and I was hired as the only programmer. Had to rewrite all of the code which was fine because I actually had access to a C compiler. The original developer had used some system he'd pulled from a magazine that was a really bizarre pseudo assembler.

      I had the luxury of having a full 64kb burnable ROM to hold my code, though it was setup with only 1 of 4 16kb pages accessible at at time so did have to do some bank switching to use it all. Fun days.

    20. Re: older generations already had a term for this by gbjbaanb · · Score: 1

      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 simply broke EF core)

    21. Re: older generations already had a term for this by Junta · · Score: 1

      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 strongly with the flow of venture capital. Back in the late 90s, if you vaguely knew how to use microsoft frontpage and talked yourself up enough, boom you have a lucrative "webmaster" job (that's when people first started claiming "html" as a "programming language"). When the bubble burst then, the comapnies that were particularly infested with that went under and the problem became less severe, and with the resurgence of poorly vetted venture capital so too has the visibility and severity of the phenomenon increased again.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    22. Re: older generations already had a term for this by Anonymous Coward · · Score: 0

      A real coder would be talking about having 4k of core, and a 12 bit cpu. Of course, the machine code, and thus the bootstrap to start the punched tape reader loading the interpreter, was in octal.

      What's this 'PC' crap with plastic cased junk bought in a department store??

    23. Re:older generations already had a term for this by Junta · · Score: 1

      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 been made and it must be easier to fix it than scrap it and redo it the way the experienced team advocated right??

      --
      XML is like violence. If it doesn't solve the problem, use more.
    24. Re: older generations already had a term for this by Bing+Tsher+E · · Score: 1

      The PIC10F200 has 16 bytes of RAM and 256 bytes of program memory.

      It makes up for this by being totally stand-alone with a built-in clock, costing about fifteen cents in volume and coming in a 6 pin package the size of a grain of rice.

    25. Re: older generations already had a term for this by cyber-vandal · · Score: 1

      Yeah who'd want to use strongly typed objects instead of loads of strings everywhere. There's nothing stopping you using raw SQL with EF in any case.

    26. Re: older generations already had a term for this by geoskd · · Score: 1

      It makes up for this by being totally stand-alone with a built-in clock, costing about fifteen cents in volume and coming in a 6 pin package the size of a grain of rice.

      And in the grand scheme of things, it is about as useful as a grain of rice in the programming sense.

      Six pins? You've got two for power, at least one for programming, so that leaves you with 3 pins, and with so little actual compute power, the best you could really manage is to blink a few LEDs in an interesting pattern. You don't even have enough space to properly handle an I2C or serial interface on two of the pins, so what the hell are you going to do with this thing?

      --
      I wish I had a good sig, but all the good ones are copyrighted
    27. Re: older generations already had a term for this by serviscope_minor · · Score: 1

      And in the grand scheme of things, it is about as useful as a grain of rice in the programming sense.

      They're plenty useful, not for running Firefox, but for automation tasks.

      Six pins? You've got two for power,

      Yes.

      at least one for programming, so that leaves you with 3 pins

      No: the ICSP for the PIC doesn't obstruct any of the pins and you can buy them preprogrammed if you're purchasing in volume.

      and with so little actual compute power, the best you could really manage is to blink a few LEDs in an interesting pattern.

      Either there are a *lot* of people who want to blink LEDs in an interesting pattern or you're mistaken about the use.

      --
      SJW n. One who posts facts.
    28. Re: older generations already had a term for this by locketine · · Score: 2

      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 optimizing later is the correct way to go, there's a baseline level of performance the customer will demand and you must meet their expectations or you've lost your chance to win in the market. The customers put up with the issues though, primarily because we have an amazing vendor lock-in strategy, but most of our team quit as a result of the long hours fixing everything and had been telling management over and over that we needed to ensure baseline performance expectations were met.

      Btw, this wasn't the first time I've been on a team that experienced this. Last time we did not have a vendor lock-in strategy and the product died a quick death after spending millions of dollars on R&D.

      --
      Think globally but act within local variable scope.
    29. Re: older generations already had a term for this by Greyfox · · Score: 1
      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 and monitor them, that sort of thing. Hell, a lot of them probably wouldn't be able to tell you technical details about threads that they probably should know to effectively use threads in their code. But a lot of them could tell you about Javascript ecosystems that I've largely been ignoring.

      I'm thinking the bar should be at the point where you can actually make something out of all that code you're reusing. Since around 2010, I've seen a lot of projects where they look like they've assembled something that does about 70% of what the project wants. But that 70% is just what the libraries they've assembled are doing, and they're not actually capable of building the final 30%. You know, the 30% where all the differentiating business logic is. They seem to spend most of the rest of the time spinning their wheels and looking for libraries that do more of what they're trying to accomplish. In a couple of them, they also could not use the underlying libraries very well -- I remember one particular guy who was using spring and hibernate, joining two tables in Java. He'd retrieve both the tables and then try to join them manually in Java. On more than about 30,000 records, his program ran out of memory and crashed. The SQL join I wrote to test it ran in seconds on a million records. Their solution, upon seeing that, was to run their thing several time a day and hope that it didn't crash. That's the kind of thing I've been seeing on projects lately.

      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.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    30. Re: older generations already had a term for this by AmiMoJo · · Score: 1

      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.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    31. Re:older generations already had a term for this by Wraithlyn · · Score: 1

      LOL what exactly is so special about 16K RAM? https://yourlogicalfallacyis.c...

      I cut my teeth on a VIC20 (5K RAM), then later a C64 (which ran at 1.023MHz...)

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    32. Re: older generations already had a term for this by geoskd · · Score: 1

      Either there are a *lot* of people who want to blink LEDs in an interesting pattern or you're mistaken about the use.

      So what are the uses for that? I am curious what things people have put these to use for.

      Just because a manufacturer has made a lot of something doesn't make them used for much. When a fab is spinning up a plant, they often have to do several runs of small batches (10k to 100 units), and it is useful to have those runs be a very small core that is easy to verify so that they can get a very accurate idea of the number of defects per unit area. Processors make great test runs because you can write simple software that exercises all of the silicon and identifies the number of defects per 100k units. Because of this need, the manufacturer will provide the resulting parts to their customers at very low prices.

      In the end, just because PIC only charges $0.17 for them doesn't mean they actually sell very many of them, it could very easily just be a fab test run that they warehouse and sell of until they are gone.

      --
      I wish I had a good sig, but all the good ones are copyrighted
    33. Re:older generations already had a term for this by Anonymous Coward · · Score: 0

      for the younger ones, this is equivalent to finding out your favorite artist is only lip sync to somebody elses music

    34. Re: older generations already had a term for this by locketine · · Score: 1

      I'm glad to hear that you agree. I was responding to the claim that there was no cost associated with the go to market fast approach. There are real costs but inexperienced executives don't know about them.

      --
      Think globally but act within local variable scope.
    35. Re: older generations already had a term for this by djinn6 · · Score: 1

      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?

    36. Re:older generations already had a term for this by Anonymous Coward · · Score: 0

      It's still called business though. There's just so much more than programming, which you get code monkeys to do for you, and they're even happy about it too!

    37. Re:older generations already had a term for this by MSG · · Score: 1

      You're a poser, friend.

      You mean you found one of the people the article is about? They'll probably claim they were merely demonstrating the aforementioned bluffing. :)

    38. Re: older generations already had a term for this by Hognoxious · · Score: 1

      I get frustrated with premature product release too.

      I've never heard it called that before, sweetie.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    39. Re: older generations already had a term for this by serviscope_minor · · Score: 1

      So what are the uses for that? I am curious what things people have put these to use for.

      It's hard to determine because people don't advertise use of them at all. However, I know that my electric tothbrush uses an Epson 4 bit MCU of some description. It's got a status LED, basic NiMH batteryb charger and a PWM controller for an H Bridge. Braun sell a *lot* of electric toothbrushes.

      Any gadget that's smarter than a simple switch will probably have some sort of basic MCU in it. Alarm system componets, sensor interfaces, timer chip replacements, MOSFET drivers, smart TRIAC drivers and so on. Appliances will have this sort of thing built in. My Bosch stick blender has some sort of speed controller for the motor. You don't need much to deal with that.

      Here's an example of using one as a zero crossing TRIAC controller:

      http://ww1.microchip.com/downl...

      Could easily be buried inside a hotplate or some such.

      Oh and the dimers I've got in my house are definitely MCU controlled. You can communicate using a series of presses to do the setup (rising versus falling edge, minimum level and so on). Basically 3 inputs there (switch, pot and mains phase) and one output. And the dimmers are pretty cheap, so perfect for a 17 cent MCU.

      --
      SJW n. One who posts facts.
    40. 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.
    41. Re: older generations already had a term for this by Anonymous Coward · · Score: 0

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

      I don't understand your issue with this. Lists in .NET are the normal array list implementation of lists, just like the ArrayList type in Java and the vector type in C++.

    42. Re:older generations already had a term for this by Cederic · · Score: 1

      I ran out of RAM to store the source code for a program I created for the C64.

      Sadly at the time I didn't know assembler was an option.

    43. Re: older generations already had a term for this by Cederic · · Score: 1

      The future, my friend, and welcome to it indeed.

    44. Re: older generations already had a term for this by geoskd · · Score: 1

      Interesting, lets pick those apart a bit.

      It's hard to determine because people don't advertise use of them at all. However, I know that my electric toothbrush uses an Epson 4 bit MCU of some description. It's got a status LED, basic NiMH batteryb charger and a PWM controller for an H Bridge. Braun sell a *lot* of electric toothbrushes.

      To implement a NiMH or NiCD charger, you need to have an analog input, which the PIC doesn't have. You will also need to be able to store at least 32 samples at 10 bits each sample so that you can detect the charging peak and the *small* voltage drop that signals end of charge. Given that, you will have to have a separate battery management IC, and most of them come with an charge state pin that can be tied to an LED using a $0.004 FET to indicate charge status. The rest is simply a mechanical switch with the appropriate FET and resistor to drive on LED directly from the switch. Putting a uC on a toothbrush is a pointless waste of money, and the fact that it has one in it will last only until downward price pressure from cheap Chinese knockoffs that do not have a uC push the over-expensive product out of the market. I'm not saying that a uC wont be a better solution, as the battery charger chips start at around $1.50 in quantity; What I am saying is that these low end PICs are essentially useless.

      Any gadget that's smarter than a simple switch will probably have some sort of basic MCU in it. Alarm system componets, sensor interfaces, timer chip replacements, MOSFET drivers, smart TRIAC drivers and so on. Appliances will have this sort of thing built in. My Bosch stick blender has some sort of speed controller for the motor. You don't need much to deal with that.

      Alarm products can come in two varieties: Centralized control and distributed control. For a centralized control, you have "dumb" remote sensors, and a central control IC that can ready the electrical signals from multiple channels. In this case, the central IC needs to have many pins (at least one for every IO sensor attached to the system). For the decentralized controls, the individual devices need to have enough smarts to understand their addressing, but not much more. In the first case, a PIC just isn't going to cut it. In the second case, it would be cheaper to simply use any of a variety of addressable buses devices that can handle the i/o and the bus interactions. again, there is no need for a uC in the "smart" sensor, so why waste the money?

      For the blender, motor control requires a feedback mechanism that will require an analog input that the PIC can't handle.

      Here's an example of using one as a zero crossing TRIAC controller: http://ww1.microchip.com/downl... [microchip.com]

      You want a MOC3021. No need to do any programming, it is a standalone chip that does the same thing, is cheaper per unit than the micro, and has the opto-isolation built in.

      Oh and the dimers I've got in my house are definitely MCU controlled. You can communicate using a series of presses to do the setup (rising versus falling edge, minimum level and so on). Basically 3 inputs there (switch, pot and mains phase) and one output. And the dimmers are pretty cheap, so perfect for a 17 cent MCU.

      You can do the same thing with a 555 timer chip ($0.03 in large quantities), and a half dozen external passives to gate the behaviors. The trick is setting the "modes" by charging and discharging specific capacitors using the 555 to control behaviors based on timing. If you are going to sell 10M units per year (not at all unreasonable for light bulbs), then a cost difference of $0.01 per unit is $100,000 per year. For that much, it is cost effective to hire an engineer for two years to do nothing but design this one circuit. In reality it will take a competent (read as expensive) engineer about a month to design and test that circuit.

      If you want that product to do anything fancier, the PIC wont have enough horsepower for it anyway, so you need a beefier uC anyways

      --
      I wish I had a good sig, but all the good ones are copyrighted
    45. Re: older generations already had a term for this by Anonymous Coward · · Score: 0

      (I'm still surprised they don't have a C# engine to create client side javascript!)

      I can now remove a surprise from your life.

      Yeepp... it is what you think it is. (However, it is at least a compiler; not a dynamic-at-runtime thing.)

    46. Re: older generations already had a term for this by serviscope_minor · · Score: 2

      Interesting, lets pick those apart a bit.

      Oh this should be good.

      To implement a NiMH or NiCD charger, you need to have an analog input, which the PIC doesn't have.

      It's an Epson 4 bitter which you'd know if you bothreed to do anything other than rage-read my post. They have similar computational capacity to the PIC. And they're 4 bits not 8.

      To implement a NiMH or NiCD charger, you need to have an analog input, which the PIC doesn't have. You will also need to be able to store at least 32 samples at 10 bits each sample so that you can detect the charging peak and the *small* voltage drop that signals end of charge.

      Yes no one ever did a bodge job with a trickle charger. No siree. Never worked.

      Given that, you will have to have a separate battery management IC,

      Do an actual teardown yourself or simply watch one of the teardown videos on youtube. They don't have battery management ICs.

      The rest is simply a mechanical switch with the appropriate FET and resistor to drive on LED directly from the switch. Putting a uC on a toothbrush is a pointless waste of money, and the fact that it has one in it will last only until downward price pressure from cheap Chinese knockoffs that do not have a uC push the over-expensive product out of the market. I'm not saying that a uC wont be a better solution, as the battery charger chips start at around $1.50 in quantity; What I am saying is that these low end PICs are essentially useless.

      Except that's not how they're made. The uC also provides the 30 second and 2 minute timers which the device has. $0.17 is hardly enough to make the produce "over expensive".

      Alarm products can come in two varieties: Centralized control and distributed control. For a centralized control, you have "dumb" remote sensors, and a central control IC that can ready the electrical signals from multiple channels. In this case, the central IC needs to have many pins (at least one for every IO sensor attached to the system). For the decentralized controls, the individual devices need to have enough smarts to understand their addressing, but not much more. In the first case, a PIC just isn't going to cut it. In the second case, it would be cheaper to simply use any of a variety of addressable buses devices that can handle the i/o and the bus interactions. again, there is no need for a uC in the "smart" sensor, so why waste the money?

      They're 0.17. Are your bus addressable chips which can then plug to arbitrary bits of hadware (a) as cheap and (b) as quick to develop thereby reducing the time to market? A clue: no.

      For the blender, motor control requires a feedback mechanism that will require an analog input that the PIC can't handle.

      First, speed controllers don't need analogue inputs, you need timer inputs which it does have. Second, you can bodge analog in with a comparator which the 10F204 has.

      You want a MOC3021. No need to do any programming, it is a standalone chip that does the same thing, is cheaper per unit than the micro, and has the opto-isolation built in.

      First, you missspelled "more expensive". Second that IS the triac. It doesn't do anything by itself. So good job, you have a TRIAC.

      You can do the same thing with a 555 timer chip ($0.03 in large quantities), and a half dozen external passives to gate the behaviors.

      Pics or it didn't happen. Either post a circuit diagram showing how you can build a dimmer which can be switched form leading to trailing edge and calibrated using only the main button press with a 555 or you're full of crap.

      If you want that product to do anything fancier, the PIC wont have enough horsepower for it anyway, so you need a beefier uC anyways

      All you've done is demonstrate your lack of knowledge of existing products and the capabilities of various chips.

      --
      SJW n. One who posts facts.
    47. Re: older generations already had a term for this by Anonymous Coward · · Score: 0

      Yes. When I was working as a software engineer (now retired), the important thing was understanding the system you were writing code to control. We had one time where there was a shortage of programmers who knew language 'X'. There were plenty of us programmers who used language 'Y' and knew the details of how 'the system' worked (one of the most complex systems ever built).

      Management decided it would be better to teach a group of 'Y' programmers language 'X' then to hire a group of language 'Y' programmers and try to teach them how the system worked. A wise decision!

    48. Re: older generations already had a term for this by Hognoxious · · Score: 1

      Management decided it would be better to teach a group of 'Y' programmers language 'X' then to hire a group of language 'Y' programmers and try to teach them how the system worked. A wise decision!

      I wouldn't call it wise to have twice as many programmers as you need. And why retrain people if you're going to bring in new people anyway?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    49. Re:older generations already had a term for this by swillden · · Score: 1

      a) A real coder would brag about "16k RAM" (or less). 48K was much later on.

      Meh. I worked on smart card chips in the mid '90s with 256 bytes of RAM. That's right, one quarter of one kilobyte. That was working space, though -- variables; the code was in and executed from ROM or EEPROM (of which there was 8 kB and 1 kB, respectively). The call stack was in three dedicated registers, so you didn't have to waste any RAM on storing return addresses, but you were also limited to three calls deep. The guys who'd been around for a while told me about the joys of the previous chip, which had only 64 bytes of RAM, and only one stack register.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    50. Re: older generations already had a term for this by Anonymous Coward · · Score: 0

      Well now you have. Thank Slashdot for expanding your meager horizons.

    51. Re: older generations already had a term for this by ndykman · · Score: 1

      None of these are really huge problems. There really is no performance hit for strings as a primary key. If it's a candidate key, it's fine to use. And array lists are a very reasonable general implementation of a list interface.

      You can write bad queries in any language, but LINQ and Entity Framework actually does a pretty reasonable job of optimization. Besides, SQL is equally easy to abuse. And I'll take slower performance in the face of easier to maintain code. Which is a big reason ORMs do exist.

      But, since it's Microsoft, I know people will insist it is impossible that .Net is actually a reasonably well coded platform, but it is.

    52. Re: older generations already had a term for this by Anonymous Coward · · Score: 0

      And I'll take slower performance in the face of easier to maintain code. Which is a big reason ORMs do exist.

      In my experience, when the performance becomes and issue, it becomes a huge issue. Most of the time LINQ just works, but then that one time it decides a query that has been running in less than a second for the past several months is now going to take several hours. Anyway, no direct table access to public facing code, only sprocs or functions.

    53. Re: older generations already had a term for this by gbjbaanb · · Score: 1

      because an array is not a list.

      I'm a computer scientist BTW, these terms mean different things.

    54. Re: older generations already had a term for this by gbjbaanb · · Score: 1

      It is a reasonably well coded platform - but if you read Chriss Brumme's old blog, you'll see all the warts that he wishes they'd done better. But I guess hindsight is an easy thing to apply, even to your own code. (Brumme was one of the guys who wrote .NET, his blogs are freaking awesome)

      You might not noticed a perf hit from using strings, but that was never my attitude - I prefer the best system, in a "look after the pennies" approach. If it ever needs to scale up (which IMHO is more often than you think) then you're screwed because you assumed that "string keys would be fine, we'll never need to scale where they'd be noticeable"

      My biggest issue is that there's no real benefit to string - I mean the Asp.net identity code that uses them by default stores guids in them anyway (ie why not just use a guid, at least its a 128 bit number) or use an int like everything else in the asp.net EF framework.

      I'm quite old, been doing this for a while. I rem,ember when you would never ever use a string for comparisons if you had the option of an enum (or int) because computers back in the day were not as powerful and fast as they are today, so the perf hit would be noticeable very quickly. That means the perf hit is still there, but those super-fast CPUs (and RAM buses) are doing a lot of unnecessary work, just so you can use a string when an int would be quite acceptable even for the lazy programmer.

      Incidentalyl, easier to maintain code means stored procs. turn your query code into black box APIs, much easier to maintain then than hard-coding queries into code.

    55. Re: older generations already had a term for this by gbjbaanb · · Score: 1

      you mean you don't isolate your DB in its own layer via stored procedures and access them like parameterised APIs?

      Yeah, who'd want hard-coded queries written in terms of entities when you can simply call a strongly typed API.

    56. Re: older generations already had a term for this by lgw · · Score: 1

      Nah, you're using academic jargon that doesn't apply to the real world. Out here in the real world, a "list" is an array that can grow. Apologies to LISP, but that idea of a list didn't catch on - people call that a "linked list", to distinguish it from the normal sort of list.

      Hey, at least it's not called a "Plex".

      --
      Socialism: a lie told by totalitarians and believed by fools.
    57. Re: older generations already had a term for this by datavirtue · · Score: 1

      Yeah. Let it go to production. Swoop in and fix it once the shit has hit the fan--you are the hero. This is how we do.

      If I fix things ahead of time I piss people off, end up doing their job for them, and they get credit. I would rather obtain hero status and the pay/perks that go along with it.

      --
      I object to power without constructive purpose. --Spock
    58. Re: older generations already had a term for this by datavirtue · · Score: 1

      "There really is no performance hit for strings as a primary key."

      Yeah...if each string is sortable and comes immediately after the last one.

      --
      I object to power without constructive purpose. --Spock
    59. Re: older generations already had a term for this by Anonymous Coward · · Score: 0

      bravo!

    60. Re: older generations already had a term for this by gbjbaanb · · Score: 1

      out here in the real world a list can mean: an array, or a linked list, or an immutable representation of some data.

      Its pathetic. That's why we have "academic jargon", so one term means the same thing all the time. We have enough chaos without introducing more.

    61. Re: older generations already had a term for this by lgw · · Score: 1

      Well, I was going to say that most devs use Java or C#, where List means array, but I suspect that's not true any more. Javascript seems to be taking over. At least there it makes perfect sense. For example, you can grow an array by adding two arrays:

      > [1] + [2]
      12

      Naturally!

      --
      Socialism: a lie told by totalitarians and believed by fools.
    62. Re: older generations already had a term for this by cyber-vandal · · Score: 1

      You put your business logic in the database? Wow, let's party like it's 1999. Do you use lots of triggers too? Again there's nothing stopping you executing stored procs with EF if you're desperate to do it that way.

    63. Re: older generations already had a term for this by zomberi · · Score: 0

      There is c# that generates JavaScript. It was called Web Forms.

  2. fuckin millenials lol by Anonymous Coward · · Score: 0

    gotta make all this words about being a rookie

  3. This is the business way by Anonymous Coward · · Score: 0

    This is how business work. Everyone lying about their capabilities and to prospective clients about product capabilities. Its all BS.
     

  4. Bluff? by Anonymous Coward · · Score: 1, Funny

    I never bluff. I've got a big dick. I don't need to bluff.

  5. ... A job fair can easily test this competency. by wierd_w · · Score: 3, Interesting

    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.

    1. Re:... A job fair can easily test this competency. by Anonymous Coward · · Score: 1

      Then you get someone good at sorting arrays while picking out prime numbers, but potentially not much else.

      You are a lunatic.

    2. Re:... A job fair can easily test this competency. by wierd_w · · Score: 0

      AC, you are just an idiot that can't comprehend how that was a contrived example case.

      The idea is to switch it up over the course of the day, and have contrived, easily accomplished challenges. Of course, you focused exclusively on just the single suggested test case, and ran with it like you were in the Special Olympics.

      Which of us is the lunatic again? Oh, right. The one that makes inappropriate inferences and pretends they are reality.

    3. Re:... A job fair can easily test this competency. by Anonymous Coward · · Score: 0

      To be fair, the lunacy is systemic, which is why the book was written. It isn't a personal problem.

    4. Re:... A job fair can easily test this competency. by ShanghaiBill · · Score: 5, Informative

      Then you get someone good at sorting arrays while picking out prime numbers, but potentially not much else.

      The point of the test is not to identify the perfect candidate, but to filter out the clearly incompetent. If you can't sort an array and write a function to identify a prime number, I certainly would not hire you. Passing the test doesn't get you a job, but it may get you an interview ... where there will be other tests.

    5. Re:... A job fair can easily test this competency. by wierd_w · · Score: 1

      BINGO!

      (I am not even a professional programmer, but I can totally perform such a trivially easy task. The example tests basic understanding of loop construction, function construction, variable use, efficient sorting, and error correction-- especially with mixed type arrays. All of these are things any programmer SHOULD now how to do, without being overly complicated, or clearly a disguised occupational problem trying to get a free solution. Like I said, programmers hate being pimped, and will be turned off HARD by such a thing.)

      Throw in some of that budgeted employer merch that makes its way around job fairs as fun prizes regardless of who succeeds or fails [as this is a low-stakes pre-screening that is intended to be fun, and situationally appropriate with tech-heads, and most booths just hand it out anyway], and it can even be popular with the crowd.

    6. Re:... A job fair can easily test this competency. by Anonymous Coward · · Score: 0

      You'll get keyboard happy hackers: coders, not software developers. The hard part isn't writing the code.

    7. Re:... A job fair can easily test this competency. by Anonymous Coward · · Score: 0

      This is the incorrect mindset, unfortunately. But it's close!

      The skills you're hiring when you're looking for a "rockstar" developer aren't "able to recall the correct sieve method and remember how to implement a quicksort from college". At that point, you're just testing a person's ability to recall information (and to a lesser extent, apply it).

      I don't need to remember how to create a quicksort. The article is available for me on wikipedia. I don't need to know how to create a sieve of Eratosthenes, because it's on wikipedia. Long gone are the days where hoarding mass amounts of information in your brain is really an asset. Documentation of everything that's immediately searchable at anyone's fingertips make that a negligible advantage.

      What you really want to hire is someone who can 1) absorb new concepts or information quickly and 2) apply it effectively (or creatively, if they must) to solve the problem. In other words, you're looking for someone who is a quick learner and a problem solver.

      I may not remember or have even learned how to solve differential equations using Fourier transforms, but give me a reasonable amount of time and a textbook on the subject and I'll have a solution implemented in the code that does it efficiently and written in a maintainable way. That's really what the "rockstar" part of it is.

      Here's a good example: in one spot in code there was a search being run over a set of data that got various sets of data about something. It was basically using the inclusion-exclusion principle to figure out how many members there were in all three sets combined. The solution involved something like 20 lines of code. I opened up the search algorithm and added a way to search with the or operator. Now the code was faster and only 1 line of code.

      Also knew a guy once who would implement some crazy radix sort with the best sieve off the top of his head for the problem you described. But his code was shit. Turns out knowing how to regurgitate other people's ideas isn't actual engineering.

    8. Re:... A job fair can easily test this competency. by Anonymous Coward · · Score: 0

      Your testing will get you junior programmers.

      If you put up a complex test involving challenging software architecture, you might catch the interest of a software architect or senior programmer.
      Trouble is, that kind of testing tend to take more than just 10 minutes to solve, and a software architect.. at least around my parts of the world.. will not give you beyond 10 minutes just for fun. And if you require it as part of an application process, they'll apply somewhere else.

      A person who can't code won't make it, true.

      The persons which this test will catch are the ones wanting a fun challenge, a job, and to prove themselves.
      So you'll get passable junior programmers.

      If you want software architects, make the application process painless, spend the ressources needed to read their curiculum and look through their repositories to see what scale of projects they've been involved in, how their peers regard them, and conducting respectful interviews with them that regards them as a person, not a commodity.

      Of course, if you encounter persons spraying buzzwords all over the place, drop the conversation like hot irons and move on to something/someone worthwhile.

    9. Re:... A job fair can easily test this competency. by Anonymous Coward · · Score: 0

      how about having a physics degree, having more knowledge of computers and science than you, yet refusing to take ur stupid test because i think you are a jackass, and attitudes like yours and frauds like above have turned the Tech industry into a giant garbage pile.

    10. Re:... A job fair can easily test this competency. by Junta · · Score: 1

      Yeah, when we do tech interviews, we ask questions that we are certain they won't be able to answer, but want to see how they would think about the problem and what questions they ask to get more data and that they don't just fold up and say "well that's not the sort of problem I'd be thinking of" The examples aren't made up or anything, they are generally selection of real problems that were incredibly difficult that our company had faced before, that one may not think at first glance such a position would be faced with. Injecting guidance and explanations and evaluating how they react to that information.

      There are of course a few sanity checks to make sure they have at least actually done the work indicated in their resume and that they aren't lying, but this is a relatively lower priotity

      --
      XML is like violence. If it doesn't solve the problem, use more.
    11. Re:... A job fair can easily test this competency. by Anonymous Coward · · Score: 0

      I think you miss the finer point about corporatism and basic human organization. This test fails at creating guaranteed losers you can exploit for profit!

    12. Re:... A job fair can easily test this competency. by Cederic · · Score: 1

      Inability to demonstrate ability to program and uses abbreviations like 'ur' like a 12 year old that hasn't learned English? You're part of the fucking garbage pile, so fuck off and I'll hire someone that can communicate.

    13. Re:... A job fair can easily test this competency. by ShanghaiBill · · Score: 1

      how about having a physics degree, having more knowledge of computers and science than you

      Most programming has nothing to do with physical science, and there is no particular need for a programmer to know how computers work at the physical level. Ask most programmers how CMOS gates work, and they will have no idea. Those that do know are no more likely to be better programmers.

      yet refusing to take ur stupid test because i think you are a jackass

      That is another benefit of the test. In addition to filtering out the incompetent, it also filters out the prima donnas who think that demonstrating actual skills are beneath them. Those people don't make good teammates.

    14. Re:... A job fair can easily test this competency. by Tough+Love · · Score: 1

      You mean, sorting an array in O(N**2) time is trivial.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
  6. Spot on by Anonymous Coward · · Score: 1

    I happen to be working my way through the book now. So far, the author is spot on. I recall my last brief engagement in SF was bordering on nightmare. Lots of overly-earnest coders and marketing drones trying to appear like they were doing something meaningful, or at least not awful.

  7. Most "Professional programmers" are useless. by NerdENerd · · Score: 1

    I am of the opinion that at least 70, probably 80, maybe even 90 percent of professional programmers should just fuck off and do something else as they are useless at programming.

    1. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 4, Funny

      Ah yes, the good old 80:20 rule, except it's recursive for programmers.

      80% are shit, so you fire them.
      Soon you realize that 80% of the remaining 20% are also shit, so you fire them too.
      Eventually you realize that 80% of the 4% remaining after sacking the 80% of the 20% are also shit, so you fire them!

      ...

      The cycle repeats until there's just one programmer left: the person telling the joke.

      ---

      tl;dr: All programmers suck. Just ask them to review their own code from more than 3 years ago: they'll tell you that it sucks, and the person who wrote it should be fired.

    2. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 1

      The cycle repeats until there's just one programmer left: the person telling the joke.

      The closed form solution to calculate the number of rounds necessary to approach 1 from arbitrary N is left as an exercise for the reader.

    3. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 4, Interesting

      I have a theory that

      10% of people are good at what they do. It doesn't really matter what they do, they will still be good at it, because of their nature. These are the people who invent new things, who fix things that others didn't even see as broken and who automate routine tasks or simply question and erase tasks that are not necessary. If you have a software team that contain 5 of these, you can easily beat a team of 100 average people, not only in cost but also in schedule, quality and features. In theory they are worth 20 times more than average employees, but in practise they are usually paid the same amount of money with few exceptions.

      80% of people are the average. They can follow instructions and they can get the work done, but they don't see that something is broken and needs fixing if it works the way it has always worked. While it might seem so, these people are not worthless. There are a lot of tasks that these people are happily doing which the 10% don't want to do. E.g. simple maintenance work, implementing simple features, automating test cases etc. But if you let the top 10% lead the project, you most likely won't be needed that much of these people. Most work done by these people is caused by themselves, by writing bad software due to lack of good leader.

      10% are just causing damage. I'm not talking about terrorists and criminals. I have seen software developers who have tried (their best?), but still end up causing just damage to the code that someone else needs to fix, costing much more than their own wasted time. You really must use code reviews if you don't know your team members, to find these people early.

    4. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 0

      Worse is the programmer that thinks their code is the golden path to truth. No criticism is allowed. I recently turned a 16,000 module program into a 20 module program (think I can get it down to 5 or so). I cut out well over 100k in lines of code to about 500. But the main programmer declared it impossible to maintain and will never work.

      That is usually what I am dealing with. Look you have a good solution. But here are 50 ways it could be better. Lets put them in order and fix them. "nope never going to happen". Then why the hell did you ask me to look.

    5. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 5, Funny

      to find these people early

      and promote them to management where they belong.

    6. Re:Most "Professional programmers" are useless. by Tablizer · · Score: 5, Interesting

      at least 70, probably 80, maybe even 90 percent of professional programmers should just fuck off and do something else as they are useless at programming.

      Programming is statistically a dead-end job. Why should anyone hone a dead-end skill that you won't be able to use for long? For whatever reason, the industry doesn't want old programmers.

      Otherwise, I'd suggest longer training and education before they enter the industry. But that just narrows an already narrow window of use.

    7. Re:Most "Professional programmers" are useless. by NerdENerd · · Score: 1

      Whenever you try and start the conversation of how this could be done better you usually get the explanation of what they have done. Yes, I know what you have done that is why I am here explaining how it could be done more efficiently, we can turn that 400 lines of code in 12. After 20 minutes of listening to them explain what you have already decided was fucking atrocious they start to listen to you and go ah, that's a really good idea. You go back to your desks thinking I have made a deference today only to get a pull request that makes you want to punch them in the face.

    8. Re: Most "Professional programmers" are useless. by Anonymous Coward · · Score: 0

      Who gives a fuck about lines? If someone gave me JavaScript, and someone gave me minified JavaScript, which one would I want to maintain?

      I donâ(TM)t care about your line savings, less isnâ(TM)t always better.

    9. Re:Most "Professional programmers" are useless. by serviscope_minor · · Score: 1

      10% are just causing damage. I'm not talking about terrorists and criminals.

      Terrorists and criminals have nothing on those guys. I know guy who is one of those. Worse, he's both motivated and enthusiastic. He also likes to offer help and advice to other people who don't know the systems well.

      --
      SJW n. One who posts facts.
    10. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 0

      I am of the opinion that at least 70, probably 80, maybe even 90 percent of professional programmers should just fuck off and do something else as they are useless at programming.

      [Anon to preserve moderation]

      No, those are the folk who have a lucrative future working on airline websites.

    11. Re: Most "Professional programmers" are useless. by Anonymous Coward · · Score: 0

      Trivial. But sadly, many can't solve. Even more sadly, I am not allowed to fail these dipshits.

    12. Re:Most "Professional programmers" are useless. by Cesare+Ferrari · · Score: 1

      Well, it does rather depend on which industry you work in - i've managed to find interesting programming jobs for 25 years, and there's no end in sight for interesting projects and new avenues to explore. However, this isn't for everyone, and if you have good personal skills then moving from programming into some technical management role is a very worthwhile route, and I know plenty of people who have found very interesting work in that direction.

    13. Re:Most "Professional programmers" are useless. by gweihir · · Score: 1

      My experience as an IT Security Consultant (I also do some coding, but only at full rates) confirms that. Most are basically helpless and many have negative productivity, because people with a clue need to clean up after them. "Learn to code"? We have far too many coders already.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    14. Re:Most "Professional programmers" are useless. by gweihir · · Score: 1

      Matches my observations. 10-15% are smart, can think independently, can verify claims by others and can identify and use rules in whatever they do. They are not fooled by things "everybody knows" and see standard-approaches as first approximations that, of course, need to be verified to work. They do not trust anything blindly, but can identify whether something actually work well and build up a toolbox of such things.

      The problem is that in coding, you do not have a "(mass) production step", and that is the only thing that the 80% are really useful for. Hence, in coding, even the 80% can easily be non productive or cause negative productivity, because the 10-15% are investing more time in cleaning up after them than they would have needed to write something better themselves.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    15. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 0

      As a 50 year old programmer pulling a six figure salary, you're wrong. I'm not even in management. The trick is you cannot stay on the same system/software package - then you really will deadend.
      Stay hungry, stay up to date on the current technologies (that includes the business processes no matter how stupid they are) and deliver solid tech on time the way the client wants it.
      I've been leery of age-ism given the stories I've read and there's a certain truth to it - but that comes from friends and other coworkers who locked into one technology (I only do drivers, I only do Oracle) and don't want to shift with the trends.

    16. Re: Most "Professional programmers" are useless. by luis_a_espinal · · Score: 2

      Who gives a fuck about lines? If someone gave me JavaScript, and someone gave me minified JavaScript, which one would I want to maintain?

      I donâ(TM)t care about your line savings, less isnâ(TM)t always better.

      Because the world of programming is not centered about JavasScript and reduction of lines is not the same as minification. If the first thing that came to your mind was about minified JavaScript when you saw this conversation, you are certainly not the type of programmer I would want to inherit code from.

      See, there's a lot of shit out there that is overtly redundant and unnecessarily complex. This is specially true when copy-n-paste code monkeys are left to their own devices for whom code formatting seems an unknown, never heard of thing.

      Then you end up with a mess of poorly formatted, hard to read code mutated by god-knows how many rounds of copy and paste with fundamental bugs spread all over the place (like one I was working recently where some pieces were using dates in the server time zone and other pieces in UTC because someone with multiple programming personality disorder copy and paste the worst snippets he could find on the internet and somehow decided to change time handling to UTC without remembering to go back and change all the shit he copied and pasted before.

      About 10K of lines reduced to about 1k "core" lines and a brand new 1k lines to encapsulate repeated logic that provides consistent behavior not only on datetime handling but also in other areas that were broken.

      And oh my God don't get me started on another piece of code (PL/SQL) to read table partitions where the "genius" would query database metadata in XML format and then pass it to a parser when all he needed was just query USER_TAB_PARTITIONS within a pipeline table function of just 2 dozen lines length.

      For these people it's like, the more unreadable, redundant lines, the better. It's almost as if they are building job security by obfuscation. But it's not even malice, it's pure incompetence, an inability to think in abstractions.

      Systems are inherently complex, there's no need to make them more complex just because assholes do not know how to put appropriate structure and abstractions in place.

    17. Re:Most "Professional programmers" are useless. by gweihir · · Score: 1

      Oops. Good thing I never did anything military. I am definitely in the "clever and lazy" class.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    18. 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.
    19. Re:Most "Professional programmers" are useless. by apoc.famine · · Score: 1

      I was just thinking the same thing. One of my passions in life is coming up with clever ways to do less work while getting more accomplished.

      --
      Velociraptor = Distiraptor / Timeraptor
    20. Re:Most "Professional programmers" are useless. by geoskd · · Score: 1

      In basic concept I agree with your theory, it fits my own anecdotal experience well, but I find that your numbers are off. The top bracket is actually closer to 20%. The reason it seems so low is that a large portion of the highly competent people are running one programmer shows, so they have no co-workers to appreciate their knowledge and skill. The places they work do a very good job of keeping them well paid and happy (assuming they don't own the company outright), so they rarely if ever switch jobs.

      The middle bucket I find to be about 30%. You have to inspect their code carefully during reviews, and they do not carry the ego that would prevent them from taking quality criticism and making the minor changes they need to make to improve the quality of the code.

      The bottom bucket you listed is actually 2 buckets merged into 1: The first are the irredeemably bad. These are around 40% of the total programmers. These are the people who became programmers because it seemed like a good career move, but otherwise have no interest in programming. They are the ones who actually learned how to program by sitting through 4 years of university coursework, and have to be spoon fed everything (The worst are the ones in this category with loads of experience. They think their shit doesn't stink because they have been doing this for 25 years...)

      The last category are the ones who suck now, but will be good when they gain more experience. They are about 10% of the whole.

      --
      I wish I had a good sig, but all the good ones are copyrighted
    21. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 0

      It's been tried so many times. Every time you gather these "10%"-ers, they consistently flunk as a team. You need the 80% to make the teams right. The 1% need someone to stomp on, and the 10% need someone to do the actual work.

    22. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 0

      Ah yes, the good old 80:20 rule, except it's recursive for programmers.
      80% are shit, so you fire them.
      Soon you realize that 80% of the remaining 20% are also shit, so you fire them too. Eventually you realize that 80% of the 4% remaining after sacking the 80% of the 20% are also shit, so you fire them!
      ... The cycle repeats until there's just one programmer left: the person telling the joke.

      "And that's how stack ranking was invented!"

    23. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 0

      > If you have a software team that contain 5 of these, you can easily beat a team of 100 average people

      This f*cking myth again. Yes, convince yourself that you have X-Men in your programming group, and they are superheroes.

    24. Re:Most "Professional programmers" are useless. by Cederic · · Score: 2

      It's an interesting thought. Only hire programmers that can tell you why the code they wrote three years ago sucks.

    25. Re:Most "Professional programmers" are useless. by Cederic · · Score: 1

      To be fair, the quote implies that is the rare combination that is ideal.

      I've always advocated laziness as a strong attribute in any good programmer.

    26. Re:Most "Professional programmers" are useless. by Cederic · · Score: 1

      I think you're the outlier though.

      Old progammers exist. Old COBOL programmers make a lot of money.

      However, programming is (and has for decades been) a young persons' game.

      Programming salaries don't scale (at an industry level) the same way that management ones do. Old programmers find it harder to get work. Experienced programmers are considered expensive, and the younger ones cheaper and deemed sufficiently capable.

      Biggest factor of all, young programmers join teams looking to expand. Old programmers are on teams that get outsourced.

      Individual experiences will differ, but at an industry level, you're the anomaly. Sorry.

    27. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 0

      Oh, you and your optimism.... 80% average.

      You are a kind and generous person and for that I wish you all the best.

    28. Re:Most "Professional programmers" are useless. by dgatwood · · Score: 1

      If you have a software team that contain 5 of these, you can easily beat a team of 100 average people, not only in cost but also in schedule, quality and features.

      But only if you keep them on task. Otherwise, you'll end up with the most perfectly refactored version of the previous release, with no new features.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    29. Re:Most "Professional programmers" are useless. by Thorizdin · · Score: 1

      That's simply not true, I'm sorry that you seem to have had really shitty experiences but _good_ experienced programmers aren't really good candidates for outsourcing.

      I am, and have been, in management (Product Owner, CTO, etc) for nearly 20 years and I can't hire enough good developers because they simply aren't looking to move. Good organizations hold on them and treasure them.

    30. Re:Most "Professional programmers" are useless. by Tablizer · · Score: 1

      There are decent gigs maintaining legacy stacks, but often you have to move to a different city or even state. If you have family/spouse, that can be difficult.

      The market is good now, but I've seen too many bubbles to reject the idea that programming is a safe career.

    31. Re:Most "Professional programmers" are useless. by Cederic · · Score: 1

      If 'all IT development' is outsourced, everybody goes - young, old, experienced and total muppets.

      Old programmers are hard to lure away because they have a level of security - perceived or actual - and are far more averse to taking on a risky job move. Their focus is family, hobbies, non-vocational activities.

    32. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 0

      Sorry you're below average.

    33. Re:Most "Professional programmers" are useless. by Anonymous Coward · · Score: 0

      Jibberish. I retired after 35 years and everyone wants my time. They pay me more than double what I last made just to keep me interested.

      I am an embedded programmer and I do mostly C. And yes, I reuse when I can. I will reuse poor code that works and clean it up rather than write from scratch, and I know what I am talking about.

  8. Who cares if it's automated... by Anonymous Coward · · Score: 0

    It doesn't matter if many tasks are automated. The real value is knowing how to control the tools, the algorithms, the bots, and the people.

  9. Makes sense by Anonymous Coward · · Score: 1

    Saw this all the time, it's due to the ones who run the show. Their special class prefers to hire only from their group. Most don't even need qualifications. All they need was provided at birth.

    1. Re:Makes sense by Cederic · · Score: 1

      Their special class

      What, innovative motivated people? That's a class now?

      prefers to hire only from their group

      What, educated, diligent people? You think that's a bad thing?

      Most don't even need qualifications

      A great programmer is self-motivated and will often be programming long before they attain educational recognition. They may well reject programming related qualifications as being a waste of their time, as they're already far beyond the content of that course.

      All they need was provided at birth.

      It's hard to overcome genetic disadvantages in intelligence. It's also difficult when you're born into a family that doesn't support your intellectual and personal development. I'm not sure this is relevant to the topic at hand.

      Oh, wait? Were you implying there's a gender or racial bias in action? Fuck that, people are fucking begging for more 'diverse' hires that can still do the job.

  10. Nothing worse by bobstreo · · Score: 1

    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 years of delays from companies like Oracle, Sun, SAP, and many other "vendors"

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

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

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

      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 support takes months to figure out the same answer we already had, and only fix they have ever provided was to disable a feature that had a bug in it. Don't get me wrong, if you buy from small companies there is no guarantee that you get anything better. There is one trick you can do to get good results, but I'm not revealing that, because I hate it.

      Other than that, your best option is to hire your own developers. Do initial screening by asking them to write a simple application, something that is trivial for a good programmer, but still requires you to understand loops and conditions. Something that takes about 10 minutes max for a good programmer to do. Just to filter out those who can't code at all.

    4. Re:Nothing worse by pauljlucas · · Score: 1

      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.

      --
      If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
    5. Re:Nothing worse by Lanthanide · · Score: 1

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

    6. Re:Nothing worse by Anonymous Coward · · Score: 0

      Humans have build bridges for thousands of years. Still even nowadays we can read news about bridges that collapsed. Consider how well known area bridge building is compared to software development.

      Combine that normal complexity into a government project where you need to take multiple laws into consideration and collaboration with other countries and possibly EU regulations and such. Anyone who has ever written code against a law should know that laws don't give exact answers on how things should work, so you need to interpret the law. Sometimes the law can also contain obvious bugs, obvious when you write the code, but not so obvious for the law makers (E.g. if kill a kitten you get penalty of $10, but if you kill kitten and a puppy, you don't get penalty at all, because law makers didn't ever consider this kind of combination that rarely happens). These laws are so difficult that it can take years for people to get a settlement on how the law should be interpreted and you are given 5 hours time to implement it.

    7. Re:Nothing worse by Cederic · · Score: 1

      don't you have candidates code a solution to a problem on a whiteboard?

      Hopefully not, because he's not a total cunt that hasn't got a clue about what makes a good software engineer.

      Ask me to program on a whiteboard and watch me walk out of your interview and putting in an expense claim for wasting my fucking time.

      I can program. I can do design on a whiteboard. I don't do fucking programming on a fucking whiteboard, for you or any other cunt.

    8. Re:Nothing worse by pauljlucas · · Score: 1

      We donâ(TM)t hire assholes either, so youâ(TM)d fail on both counts. Youâ(TM)d better hang on to the job you somehow were lucky enough to get because youâ(TM)d never do well on any other interview anywhere in modern times. (Judging by your number, youâ(TM)re probably ancient and have no clue what itâ(TM)s like in the current job market.)

      --
      If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
    9. Re:Nothing worse by Cederic · · Score: 1

      The current job market? It's pretty healthy. Probably close to a 7-8 year high.

      Plenty of opportunities for people that know what they're doing, can articulate it in interviews, don't put up with utter bollocks from complete cunts.

      Don't worry, I don't _want_ a job with you. I want to work with intelligent capable people, not total fuckwits.

  11. How to valuate quality by firbolgar · · Score: 1

    TL;DR: caveat emptor applies to hiring. At the heart of the issue is an overall inability for the job market to price the economic output of "developers" of different skill levels, not to mention the delta between economic value and market value based on the developers skill. A lot of developers' economic value is actually lower than market value (they get paid more than their worth) while for some, the opposite is true. The inability of the labor market to consistently align economic and market value, and the variance in that gap, is what's really causing the angst. What we need to do is devise a better way to demonstrate economic value and work to tie market value to it.

  12. I do the opposite by VeryFluffyBunny · · Score: 1

    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.

    --
    Debate is a form of harassment. Do not question my truth.
  13. Bigger building blocks by Tony+Isaac · · Score: 1

    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, instead of starting from scratch.

    Just because you use components, doesn't mean you're not really programming. Trust me, if you're faking it, you won't succeed with components either.

    1. Re:Bigger building blocks by basic.gongfu · · Score: 1

      The issue isn't using components, the issue is not having the shadow of a clue when it comes to basic fundamentals such as parsing and networking. If all you know how to do is piling ready-made blocks on top of each other, you're not worth the chair you're sitting on outside of framework la la land. We used to call these kinds of uninformed souls Code Monkeys.

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

    3. Re:Bigger building blocks by Anonymous Coward · · Score: 0

      The art of programming involves a little more effort than just slotting in an XML parser, which you quickly discover when you have offshore developers trying to solve real world problems. The first thing the offshore developer does is look for the library with the solution they need, and if it isn't installed in the system they mark the task as "blocked" and send off an email asking for it to be installed. There is absolutely no comprehension of how an enterprise operation is put together, of the history of the software, the version pain of keeping an existing system running.

      For the "library" programmer, all development is like building a brand new house every time - you can put the pipes and wires wherever you want, you can even move the bathrooms around, because the walls are still open and unfinished. But once the system is built and released, you need a new set of skills, one that can open up the walls, do some rewriting, and then patch the hole. The offshore developers expect you to install new plumbing on a weekly basis.

      So your XML parser might require incompatible libraries, or consume too many resources, or throw validation errors for an API endpoint that must be used but cannot be fixed, and now you still have to solve the problem of parsing some XML, which means you have to understand the art of programming.

      But for your final point, don't pretend that offshore programmers aren't succeeding, they are doing just fine, in spite of faking it. This is what kills small companies, but is relatively harmless for public corporations.

    4. Re:Bigger building blocks by Tony+Isaac · · Score: 5, Interesting

      If I'm a plumber, and I don't know anything about the engineering behind the construction of PVC pipe, I can still be a good plumber. If I'm an electrician, and I don't understand the role of a blast furnace in the making of the metal components, I can still be a good electrician.

      The analogy fits. If I'm a programmer, and I don't know how to make an LZW compression library, I can still be a good programmer. It's a matter of layers. These days, we specialize. You've got your low-level programmers that make the components, the high level programmers that put together the components, the graphics guys who do HTML/CSS, and the SQL programmers that just know about databases. Every person has their specialty. It's no longer necessary to be a low-level programmer, or jack-of-all-trades, to be "good."

      If I don't know the layout of the IP header, I can still write quality networking software, and if I know XSLT, I can still do cool stuff with XML, even if I don't know how to write a good parser.

    5. Re: Bigger building blocks by Anonymous Coward · · Score: 1

      It is basically required to be fullstack now. The ease of using other libraries means you have more time to own everything about the process.

    6. Re:Bigger building blocks by Anonymous Coward · · Score: 0

      I thought it was about tubes, not layers?

    7. Re:Bigger building blocks by frank_adrian314159 · · Score: 2

      I was with you until you said " I can still do cool stuff with XML".

      --
      That is all.
    8. Re:Bigger building blocks by Tony+Isaac · · Score: 1

      LOL yeah I know it's all JSON now. I've been around long enough to see these fads come and go. Frankly, I don't see a whole lot of advantage of JSON over XML. It's not even that much more compact, about 10% or so. But the point is that the author laments the "bad old days" when you had to create all your own building blocks, and you didn't have a team of specialists. I for one don't want to go back to those days!

    9. Re:Bigger building blocks by Tony+Isaac · · Score: 1

      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.

    10. Re: Bigger building blocks by Anonymous Coward · · Score: 1

      Your analogy is wrong. If you are a plumber and you donâ(TM)t understand anything about waterflows, friction loss, and gravity height effects, then just knowing how to put PVC pipe together makes you a crappy plumber because when you run into a problem with GPM flows, you need to figure out the problem and alter your plumbing to fix it.

      Same for electricity. If you canâ(TM)t under stand current, voltage, grounding, etc, but you understand wiring, you are a crappy electrician. Itâ(TM)s because if you find poor current/voltage, you need to diagnose it and know how to fix it.

      The same for these computer components. Sure they work for the most part. But if you donâ(TM)t understand networking/how TCP works, then you may not be able to diagnose and fix poor networking performance.

      So I agree to disagree with your analogy. You need to understand the basic concepts in order to get around some of the design flaws, implementation flaws, and make the solution work. I canâ(TM)t tell you how many times I have found a bug in a component and had to patch it (and submit it to the authoring project) because I found and issue that made performance not work so well.

    11. Re:Bigger building blocks by careysub · · Score: 2

      The main advantage is that JSON is that it is consistent. XML has attributes, embedded optional stuff within tags. That was derived from the original SGML ancestor where is was thought to be a convenience for the human authors who were supposed to be making the mark-up manually. Programmatically it is a PITA.

      --
      Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
    12. Re:Bigger building blocks by Anonymous Coward · · Score: 0

      I'm an embedded hardware engineer, by no means a web developer, and have done some very cool stuff with XML.Once I had a circuit described in XML, it was easy to create xslt to massage it into various formats for different analyses. It was an arduous and expensive endeavor to do this before.

    13. Re:Bigger building blocks by Anonymous Coward · · Score: 0

      These are notes from my current project, where we have to support both XML and JSON:

      - JSON serialization is much simpler than XML. If XML serialization would just work with all libraries, I wouldn't really have any problems against XML. But it doesn't work, meaning you bump into problems with it. I have had so much problems with XML that I really hope that it would die away. At the same time I wonder how is it possible that XML is already something like 20 years old and we still don't have proper parsers for it.
      - JSON is Javascript, meaning you are use it easily on web UI. You can still support both JSON and XML on your server, but obviously it would be more easy to support just one.
      - JSON is faster to deserialize (measured in our environment). Obviously it is not much, but if performance is really important, you might want to do your own comparison.

    14. Re:Bigger building blocks by Cederic · · Score: 2

      I got shit for decrying XML back when it was the trendy thing.

      I've had people apologise to me months later because they've realised I was right, even though at the time they did their best to fuck over my career because XML was the new big thing and I wasn't fully on board.

      XML has its strengths and its place, but fuck me it taught me how little some people really fucking understand shit.

    15. Re: Bigger building blocks by dgatwood · · Score: 1

      Your analogy is wrong. If you are a plumber and you donâ(TM)t understand anything about waterflows, friction loss, and gravity height effects, then just knowing how to put PVC pipe together makes you a crappy plumber because when you run into a problem with GPM flows, you need to figure out the problem and alter your plumbing to fix it.

      That's the engineer's problem. For anything significantly more complex than a small home, by the time the plumber arrives, you should have engineering diagrams telling them what size pipe to use.

      A better analogy would be a plumber who doesn't understand how to cut and glue PVC, and instead tries to plumb an entire building using only screw-together pipes and hoses. They can put in your bathtub, but you'll have to move it a foot to the right, because they can't get the screw-together pipes in three-foot lengths, only four. Or maybe they could just leave a hose coiled up in the wall to make up the difference.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    16. Re:Bigger building blocks by Tony+Isaac · · Score: 1

      Well, I can see you had some real struggles with XML! I don't understand what made it so evil, in your eyes, but that's probably because I don't understand much French.

    17. Re:Bigger building blocks by swillden · · Score: 1

      If I'm a programmer, and I don't know how to make an LZW compression library, I can still be a good programmer.

      If you're a programmer and you're not capable of understanding LZW compression if/when you need to, and writing a good library for it, given a few weeks, you're not a good programmer.

      Of course, if you actually do such a thing on your employer's time, you're probably also not a programmer many people want to employ, unless there are really good reasons that LZW compression is needed and no available library will do the job.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    18. Re:Bigger building blocks by Tony+Isaac · · Score: 1

      We're not really disagreeing. I said "...and I don't know how to...", you said "...you're not capable of..."

      I didn't say anything about capabilities. My point was about current knowledge. I know the basic principles of LZW, and I also know that it's wise for me to use a library for that purpose, when my goal is to write end-user software. If you or I roll our own, the result will be crap. Now, if you or I work as part of a team that creates a Zip library, that's a different story, then it makes sense for us to educate ourselves in the intricate details of LZW.

    19. Re:Bigger building blocks by swillden · · Score: 1

      We're not really disagreeing. I said "...and I don't know how to...", you said "...you're not capable of..."

      True. I was drawing that distinction. If all you're capable of is assembling pre-assembled blocks, then you're not much of a programmer. I draw that distinction because there are lots of so-called programmers out there that aren't capable of much more, and lament that they have a hard time finding a job.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    20. Re:Bigger building blocks by Anonymous Coward · · Score: 0

      To add: I took my Data Structures and Algorithms classes in college. Number of times I've ever had to implement a Linked List, queue, hash, whatever, in the over 20 years of software development I've done? Zero. Number of times I've actually had to consider algorithmic complexity? Zero. Hell, number of times I've needed to know OOP design patterns and the like? Zero (just needed to know how to use other peoples' libraries). Maybe it's just that the jobs I've held are just not that interesting or complex enough to require that particular skillset. I know I'm basically an extremely well-paid script writer/technician. And, frankly, that's about as far as I want to take it, which probably irritates the hell out of "real" programmers out there making half my pay. The difference is, I get along with just about everyone in my company. I don't have a chip on my shoulder, I listen to the concerns/needs of my users, and fix the things I can. I don't see anything wrong with that. I'm not going to write a new sorting algorithm to publish in ACM. No, I'm going to do my job, come home, and do something else with my spare time that I prefer doing.

      I guess some people live computing, but most others just use it like I do: a paycheck to fund the other interests in life that may not pay that well as a career.

    21. Re:Bigger building blocks by strikethree · · Score: 1

      If I don't know the layout of the IP header, I can still write quality networking software, and if I know XSLT, I can still do cool stuff with XML, even if I don't know how to write a good parser.

      In theory, theory and reality match. In reality, they don't.

      What you are saying is good, in theory. What happens when the layer you are relying on is not working as advertised? Nothing happens. I do mean nothing. They can't understand what is going on and work stops. Or it acts buggy but they did everything they could to make it right, so it gets shipped anyways.

      Yes, there are not enough people who understand programming and the problem space from top to bottom to write all of the software we need, so yes, your theory will be used... but, just look around you.

      --
      "Someone needs to talk to the tree of liberty about its ghoulish drinking problem." by ohnocitizen
    22. Re:Bigger building blocks by lgw · · Score: 1

      XML has its strengths and its place, but fuck me it taught me how little some people really fucking understand shit.

      There was a time when I was objecting to using XML in kernel-mode code. Management was having none of that - XML was fashionable, end of argument. Sadly I ended up writing a kernel-mode XML parser.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    23. Re:Bigger building blocks by Cederic · · Score: 1

      Yeah, ok. I've been one-upped there.

      I was only asked to implement an IP based XML message client inside a database.

    24. Re:Bigger building blocks by Tony+Isaac · · Score: 1

      In my experience, when you are using quality components, there is rarely a situation where the component has such an unavoidable flaw. At least, that's true in the Windows world. In the Linux world, I've encountered a lot more "half-done" components, where you have to do serious work to get it to perform as advertised. There seems to be something about component vendors wanting payment, that helps them focus on getting bugs out.

  14. Silicon Valley is Only Part of the Tech Business by Anonymous Coward · · Score: 2, Informative

    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 niche companies that most consumers have never heard of. To view Silicon Valley as the place where everybody in tech wants to be is to observe the tip of the iceberg while ignoring the enormous mass that exists beneath the surface. More and more software development and writing code are becoming an everyday part of every business and just as the large home building corporations have not put the small craft builders out of business so too will there always be talented individuals dedicated to the craft and laboring behind the scenes to write the code that keeps everything running smoothly. There will be new and powerful tools, like AI as a service, that will take over and automate some tasks but like a conductor there will always be a developer, baton in hand, orchestrating the symphony.

  15. Qualification: patience to fiddle by Tablizer · · Score: 1

    Fiddling with JavaScript libraries to get a fancy dancy interface that makes PHB's happy is a sought-after skill, for good or bad. Now that we rely more on half-ass libraries, much of "programming" is fiddling with dark-grey boxes until they work good enough.

    I'm not putting a value judgement on such work or library-centric architectures here, only making an observation about what's valued by those who hand out paychecks and raises.

    1. Re:Qualification: patience to fiddle by phantomfive · · Score: 1

      Fiddling with JavaScript libraries to get a fancy dancy interface that makes PHB's happy is a sought-after skill, for good or bad. Now that we rely more on half-ass libraries, much of "programming" is fiddling with dark-grey boxes until they work good enough.

      This drives me crazy, but I'm consoled somewhat by the fact that it will all be thrown out in five years anyway.

      --
      "First they came for the slanderers and i said nothing."
  16. Business cards by Anonymous Coward · · Score: 0

    I've been out of the lop for a while so don;t know if these are still a thing, but my company made us write our own business cards. I put down worker bee and they changed it to something like "senior system software engineer".

      I was like, huh? In the years that I worked there I never opened the box.

  17. bonfire of fakers by phantomfive · · Score: 1

    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.

    --
    "First they came for the slanderers and i said nothing."
    1. Re:bonfire of fakers by Anonymous Coward · · Score: 1

      But then there would be even less gender diversity (ducks and runs).
      Posting anonymously for the obvious reason, but hey, tell me I'm wrong.

    2. Re:bonfire of fakers by Anonymous Coward · · Score: 0

      But then there would be even less gender diversity (ducks and runs). Posting anonymously for the obvious reason, but hey, tell me I'm wrong.

      You're saying you'd lose the people doing it for the money / getting paid more? That'd leave you with all women.

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

  19. I'm calling b.s. on this entire piece. by Anonymous Coward · · Score: 1

    I'm sorry. But this smells of complete bullshit. You can't bluff your way through coding any more than you can bluff your way towards being a spinal surgeon. You either have the skills or you don't and everybody who matters knows what you bring and what you don't bring.

    1. Re:I'm calling b.s. on this entire piece. by Anonymous Coward · · Score: 0

      You can if the people doing the hiring and management also have no clue and no skills and are bluffing it.

    2. Re:I'm calling b.s. on this entire piece. by Anonymous Coward · · Score: 0

      You can only bluff so far, but you can bluff your way in. Hell, I've done it before - got jobs I'm not even remotely qualified to do claiming experience in languages my only real experience with was maybe a subject at uni and some time on stack overflow. Trouble is you can only do it so long: eventually people see past the one trick to the pony.

    3. Re:I'm calling b.s. on this entire piece. by tomhath · · Score: 1

      You can't bluff you way through writing software, but many, many people have bluffed their way into a job and then tried to learn it from the people who are already there. In a marginally functional organization those incompetents are let go pretty quickly, but sometimes they stick around for months or years.

      Apparently the author of this book is one of those, probably hired and fired several times before deciding to go back to his liberal arts roots and write a book.

    4. Re:I'm calling b.s. on this entire piece. by DaMattster · · Score: 1

      There are some mechanics that bluff their way through an automotive repair. It's the same damn thing

    5. Re:I'm calling b.s. on this entire piece. by gweihir · · Score: 1

      I think you can and this is by far not the first piece describing that. Here is a classic: https://blog.codinghorror.com/...
      Yet these people somehow manage to actually have "experience" because they worked in a role they are completely unqualified to fill.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  20. The people who are smarter won't by raymorris · · Score: 5, Informative

    > The people can do both are smart enough to build their own company and compete with you.

    Been there, done that. Learned a few lessons. Nowadays I work 9:30-4:30 for a very good, consistent paycheck and let some other "smart person" put in 75 hours a week dealing with hiring, managing people, corporate strategy, staying up on the competition, figuring out tax changes each year and getting taxes filed six times each year, the various state and local requirements, legal changes, contract hassles, etc, while hoping the company makes money this month so they can take a paycheck and lay their rent.

    I learned that I'm good at creating software systems and I enjoy it. I don't enjoy all-nighters, partners being dickheads trying to pull out of a contract, or any of a thousand other things related to running a start-up business. I really enjoy a consistent, six-figure compensation package too.

    1. Re:The people who are smarter won't by brian.stinar · · Score: 1

      * getting taxes filled eighteen times a year.

      I pay monthly gross receipts tax (12), quarterly withholdings (4) and a corporate (1) and individual (1) returns. The gross receipts can vary based on the state, so I can see how six times a year would be the minimum.

    2. Re: The people who are smarter won't by Anonymous Coward · · Score: 1, Interesting

      We sound very alike. Iâ(TM)m a co-founder of a reasonably successful business now employing ~100 people. I love coding, solving new problems, but hate working âoeforâ a company. The first couple of years was hell, struggling financially, learning what we are good at, finding clients etc.

      Nowadays my role is officially âoeadvisorâ, I âoereportâ to the CEO (also co-founder) and I basically work 9-4 doing whatever I want that I feel will make the company more valuable.

      I get a more than decent salary (but of course CEO has more), and basically a reasonable chance of retiring early if the company keeps growing and is sold.

      Living the startup life without all the running-a-business-details. Also hate having my name in the open, love being the anonymous guy in the back.

    3. Re:The people who are smarter won't by serviscope_minor · · Score: 1

      Nowadays I work 9:30-4:30 for a very good, consistent paycheck and let some other "smart person" put in 75 hours a week dealing with hiring

      There's nothing wrong with not wnting to run your own business, it's not for most people, and even if it was, the numbers don't add up. But putting the scare qoutes in like that makes it sound like you have huge chip on your shoulder. Those things re just as esential to the business as your work nd without them you wouldn't have the steady 9:30-4:30 with good paycheck.

      --
      SJW n. One who posts facts.
    4. Re: The people who are smarter won't by Anonymous Coward · · Score: 0

      And you did not figure out how to automate those tax filings? A Coder indeed.....

    5. Re: The people who are smarter won't by nowwith25percentmore · · Score: 0

      Congrats! Any tips for finding such a job that provides both a) good compensation and b) a boss that doesn't make you hate showing up to work every day?

    6. Re: The people who are smarter won't by Cederic · · Score: 1

      Fuck no. Cost of full automation: $4m
      Cost of manual entry: $0
      Opportunity cost of manual entry: $800/year

      At worse, pay for an accountant, if you can get one that cheaply. Bear in mind talking to them incurs most of that opportunity cost anyway.

    7. Re: The people who are smarter won't by Cederic · · Score: 1

      Apply for jobs you think you'll enjoy.
      At the interview make sure you interview them as much as they interview you.
      When you take the role, manage your manager.
      Take ownership within the job, for your own tasks, and for the success of your team, and for the success of your manager. That gives you free reign to beyond that do what the fuck you want.

      If it's not meeting your expectations, find something else.

    8. Re: The people who are smarter won't by brian.stinar · · Score: 1

      * * My accountant files taxes for me 18 times per year.

    9. Re: The people who are smarter won't by Anonymous Coward · · Score: 0

      And you did not figure out how to automate those tax filings? A Coder indeed.....

      Yes, that's called "accountant".

  21. So what? by neanderslob · · Score: 1

    The legend of the code ninja and rockstar programmer is ruining this field. There is still a role for the genuine master craftsman but most roles can be satisfied by less than this. Stop believing the mythology; much of engineering has always been cut and paste. Silicon Valley is no different.

  22. Not Even Wrong by Anonymous Coward · · Score: 0

    Obviously thevauthor is someone who doesn't appear to have solid development skills, as he is talking completely out of his ass. He has no business writing a trash book like this, since he doesn't seem to be remotely qualified to speak on the subject. I think he faked it so long that the Dunning-Krueger effect took hold, and now he thinks he actually knows what he's talking about. I've been in this industry for over 20 years now. Yes, I've had to develop new skills as the technology evolved, but not because some AI automated my job away. That is utter horseshit right there. There is no AI on the planet that could have written even 0.1% of the work I've done. That 0.1% that it MIGHT be able to do is such straightforward, menial shit, I'd expect a complete novice to be able to do. I work with some of the smartest people I've ever met, and not one of is afraid of AI taking our jobs.

  23. Re: ... A job fair can easily test this competency by Anonymous Coward · · Score: 1

    Lame monkey tests select for lame monkeys.

    A good programmer first and foremost has a clean mind. Experience suggests puzzle geeks, who excel at contrived tests, are usually sloppy thinkers.

  24. Re:Seems about right. Constantly learning, studyin by gbjbaanb · · Score: 1

    I think I can guarantee that they are a lot better at their jobs than you think, and that you are a lot worse at your job than you think too.

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

  26. Re: ... A job fair can easily test this competency by Anonymous Coward · · Score: 0

    Someone could Google the problem with the phone then step up and solve the challenge. Both of you have no idea how to test programmers...I bet you would have tons of Bad Indian programmers working for you if you had a company.

  27. Re: Seems about right. Constantly learning, studyi by Anonymous Coward · · Score: 0

    And right on time, here comes raymorris. Been to your github buddy, you code like shit.

  28. Automation solves this problem by Anonymous Coward · · Score: 0

    Hope you invested in more than sneakers and having a good time. You're gonna need it when one AI does you all in on the exact same day and NO ONE never ever needs your "skills" again.

  29. Re: ... A job fair can easily test this competency by ShanghaiBill · · Score: 2

    Someone could Google the problem with the phone then step up and solve the challenge.

    If given a spec, someone can consistently cobble together working code by Googling, then I would love to hire them. That is the most productive way to get things done.

    There is nothing wrong with using external references. When I am coding, I have three windows open: an editor, a testing window, and a browser with a Stackoverflow tab open.

  30. 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.
    1. Re:im sick of reinventors and new frameworks by gbjbaanb · · Score: 1

      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.

  31. Re:Seems about right. Constantly learning, studyin by m00sh · · Score: 1

    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.

    If you take this attitude towards other people, people will not ask your for help. At the same time, you'll be also be not able to ask for their help.

    You're not interviewing your peers. They are already in your team. You should be working together.

    I've seen superstar programmers suck the life out of project by over-complicating things and not working together with others.

  32. Am I a faker? by Anonymous Coward · · Score: 0

    I have a lot of experience in programming, from embedded to web. There's always a contract that needs 5years experience in this trendy new, 18month old, technology. So I think, "How long would a programmer experienced in said trendy technology take?" And bill accordingly, but spec longer than that to complete "because I can't go full time on just one contract". And if it takes me 3 times that long to actually do it, that's the cost of learning the shiny new technology. And I haven't gone full time on the contract, since I'm learning on the job...

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

    1. Re:Learn to code courses by s0nspark · · Score: 1

      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.

      Neither dent in income OR quality of code produced... ;-)

    2. Re:Learn to code courses by Anonymous Coward · · Score: 0

      This. I was told 30 years ago that software was a dying career path because "the computers will be writing their own programs any day now". After 3 decades of programming, I'm not seeing anything like that threatening my job yet.

    3. Re:Learn to code courses by Anonymous Coward · · Score: 0

      I couldn't agree more... and the comment about how many developers are, "this, that and the other." What does that even mean?

    4. Re:Learn to code courses by Anonymous Coward · · Score: 0

      One of the best comments here.

      I've heard that the sky has been falling since Yourdon's book on the Decline and Fall of the American Programmer.

      I do find the take on bluffing interesting since I saw it all the time, but the bluffers never stuck around long.

      If you are good at what you do you will be in demand.

    5. Re:Learn to code courses by david_thornley · · Score: 1

      AI and learn-to-code courses do have an effect on the profession. As tools get better, and more people can do the grunt work, the jobs for good people become more interesting. The easier it is to program, the easier it is to do the hard stuff, and somebody's going to pay good money for the hard stuff that newly became feasible.

      I have no idea what the total demand for good developers is, just that it's greater than the supply of good developers.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  34. The concern I have... by s0nspark · · Score: 1

    The concern I have is that there is a real gap between what it takes to develop good software in the trenches and what management understands of those requirements. The bigger that gap, the more bluffing that can occur.

  35. Ummm. by thesupraman · · Score: 1

    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 REALLY good eyes, and a lot of sand to fix things with microchips in them..

    There is however a middle ground. A plumber who cannot open a tap to change a washer is a shit plumber, a mechanic who replaced an engine because the timing chain rattles is of no use, and Apple doesnt know how to fix phones, because replacing them is not fixing (ok, low blow, but hey..).

    1. Re:Ummm. by Tony+Isaac · · Score: 1

      For the record, XML was invented in 1997, you know, in the last century! https://en.wikipedia.org/wiki/...
      And we had a WinSock library in 1992. https://en.wikipedia.org/wiki/...

      Yes, I agree with you on the "middle ground." My reaction was to the author's point that "not knowing how to build the components" was the same as being a "fake programmer."

  36. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  37. Re: ... A job fair can easily test this competenc by Anonymous Coward · · Score: 1

    This in my opinion is really a waste of time. Challenges like this have to be so simple they can be done walking up to a booth are not likely to filter the "all talks" any better than a few interview questions could (imperson so the candidate can't just google it).

    Tougher more involved stuff isn't good either it gives a huge advantage to the full time job hunter, the guy or gal that already has a 9-5 and a family that wants to seem them has not got time for games. We have been struggling with hiring where I work ( I do a lot of the interviews ) and these are the conclusions we have reached

  38. Me? No by AndyKron · · Score: 1

    As a non-programmer Arduino and libraries are my friends

  39. in the silly cone valley by Escogido · · Score: 4, Interesting

    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.

    1. Re:in the silly cone valley by Anonymous Coward · · Score: 0

      there is a huge shortage of decent programmers.

      Then why do older programmers have issues getting jobs?

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

      But they apparently have issues getting any position.

      120K-ish salary range

      In the UK, a fairly senior level position would be around $60 to $70k, although healthcare costs might make that worth $70 to $80k. So $120k seems pretty damn good.

    2. Re:in the silly cone valley by Anonymous Coward · · Score: 0

      $120K in SV money is, cost of living adjusted, what I made starting out of college in the midwest (it was probably close to $110K, but we got five figure yearly bonuses as well). That doesn't sound like very good money for an experienced or good programmer, let alone both. Doesn't sound like there is a shortage as much as an unwillingness to accept the realities of the market.

    3. Re:in the silly cone valley by Anonymous Coward · · Score: 0

      there is a huge shortage of decent programmers.

      Then why do older programmers have issues getting jobs?

      As an older programmer, I would very much like an answer to this question.

      "We enjoyed talking with you but don't think it would be a good fit right now."

    4. Re:in the silly cone valley by Escogido · · Score: 1

      Then why do older programmers have issues getting jobs?

      various reasons. one is difference in culture, another is inflexibility that sometimes comes with age, for some is lack of love for various PHBs.. you can google around, https://www.usatoday.com/story... etc. I personally witnessed a few very talented engineers walk out of a decent job because the way they were "managed".

      But they apparently have issues getting any position.

      "good but not exceptional" category is basically shorthand for "30-ish white guy". these are fine, problems start at 40+

      In the UK, a fairly senior level position would be around $60 to $70k, although healthcare costs might make that worth $70 to $80k. So $120k seems pretty damn good.

      at forex rates, sure, but at purchasing power parity, especially if you consider rent and real estate prices, chances are the picture is different.

      for a reference, when you calculate how much funding a startup needs, the quick estimate is headcount x number of months x 10K. that covers not just the salary but everything the employer pays for - medical insurance plans, payroll taxes where appropriate etc.. should give you a good idea of what kind of comp you should be expecting.

    5. Re:in the silly cone valley by Escogido · · Score: 1

      google "silicon valley age bias", there are plenty of good articles describing the situation and giving accurate explanations.

      my short version is that a company needs to play a special game to keep the younglings happy, and part of the game is so that the company can only employ people who buy into that game. since the older folks wouldn't, a mix is not really an option, and out of the two possibilities, guess which one is the easiest.

      (my experience with the Valley is from when I worked there between 2009 and 2013, and some things may have changed since then)

    6. Re:in the silly cone valley by Anonymous Coward · · Score: 0

      there is a huge shortage of decent programmers.

      Then why do older programmers have issues getting jobs?

      I'm an older programmer (50). The only trouble I have getting jobs is that I won't move for less than $350K annually. Because I won't take a pay cut. It's okay, though, I'm pretty happy where I am. I could get plenty of places to give me $250K, though.

    7. Re: in the silly cone valley by Anonymous Coward · · Score: 0

      The average Google sslary is 200k .. wsj article. Think Facebook is even higher.

      Never work in silly clown valley if its a bad deal. Especially with the cost of living. imo

    8. Re:in the silly cone valley by david_thornley · · Score: 1

      In my fifties, what I really needed to do to get job offers was to dye my hair. After that, no problem.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  40. No time to learn by TJHook3r · · Score: 1

    IT seems almost unique in that even entry-level jobs require further study (in the employees' own time) just to keep up. Maybe I'm in the wrong place but when I start a project I'm expected to hit the ground running, often with a new technology where no time has been allocated for learning. This is why skills are learnt from Stackoverflow rather than formally taught - there is just no time! Technical debt is usually for someone else to worry about as well :(

  41. 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?

    1. Re:Duh! by Anonymous Coward · · Score: 0

      If you can't figure out how to configure your OS to your liking, that's on you.

      In fact, that's why they made the Clippy on 10X steroids. For idiots that can't setup their own machine.

  42. Seeking Ninja software is stupid, unprofessional. by Anonymous Coward · · Score: 0

    Seeking Ninja software is stupid, unprofessional. I will never apply for a position with that crap.
    I make great software, on predictable schedules. I like to have a full life, with outside interests. I did my time working 60-100 hr weeks. Never again. I won't carry a cell phone for work again either.

  43. Tech industry churn by swb · · Score: 2

    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.

  44. filter the lame code monkeys by luis_a_espinal · · Score: 3, Informative

    Lame monkey tests select for lame monkeys.

    A good programmer first and foremost has a clean mind. Experience suggests puzzle geeks, who excel at contrived tests, are usually sloppy thinkers.

    No. Good programmers can trivially knock out any of these so-called lame monkey tests. It's lame code monkeys who can't do it. And I've seen their work. Many night shifts and weekends I've burned trying to fix their shit because they couldn't actually do any of the things behind what you call "lame monkey tests", like:

    1. pulling expensive invariant calculations out of loops
    2. using for loops to scan a fucking table to pull rows or calculate an aggregate when they could let the database do what it does best with a simple SQL statement
    3. systems crashing under actual load because their shitty code was never stress tested (but it worked on my dev box!.)
    4. again with databases, having to redo their schemas because they were fattened up so much with columns like VALUE1, VALUE2, ... VALUE20 (normalize you assholes!)
    5. chatting remote APIs - because these code monkeys cannot think about the need for bulk operations in increasingly distributed systems.
    6. storing dates in unsortable strings because the idiots do not know most modern programming languages have a date data type.

    Oh and the most important, off-by-one looping errors. I see this all the time, the type of thing a good programmer can spot on quickly because he or she can do the so-called "lame monkey tests" that involve arrays and sorting.

    I've seen the type: "I don't need to do this shit because I have business knowledge and I code for business and IT not google", and then they go and code and fuck it up... and then the rest of us have to go clean up their shit at 1AM or on weekends.

    If you work as an hourly paid contractor cleaning that crap, it can be quite lucrative. But sooner or later it truly sucks the energy out of your soul.

    So yeah, we need more lame monkey tests ... to filter the lame code monkeys.

    1. Re:filter the lame code monkeys by pete6677 · · Score: 2

      Throughout my career I've had to deal with most if not all of the issues you cite above. However in most cases I've found these problems were introduced not by code monkeys, but by hotshot wannabe leet-coders who could easily pass any interviewing programming test and can quickly rattle off complex algorithms. But they don't think beyond getting a cool quick solution that "works on my machine" at which point they move onto the next project.

      Test code? We don't need to test, because we're so good at what we do. Performance testing, not my department. Slow database access, blame the DBA.

      I'd rather deal with a system built by code monkeys who know they suck and thus do a lot of testing vs a system built by leetcoders that falls over and dies at the slightest abnormality.

    2. Re:filter the lame code monkeys by luis_a_espinal · · Score: 1

      Throughout my career I've had to deal with most if not all of the issues you cite above. However in most cases I've found these problems were introduced not by code monkeys, but by hotshot wannabe leet-coders who could easily pass any interviewing programming test and can quickly rattle off complex algorithms. But they don't think beyond getting a cool quick solution that "works on my machine" at which point they move onto the next project.

      Test code? We don't need to test, because we're so good at what we do. Performance testing, not my department. Slow database access, blame the DBA.

      I'd rather deal with a system built by code monkeys who know they suck and thus do a lot of testing vs a system built by leetcoders that falls over and dies at the slightest abnormality.

      The code monkeys I've ran into do not do testing, and those leet coders you refer to, they are code monkeys to me, just they happen to be afflicted by the Dunning Kruger effect. I think we are referring to the same cohort, just using albeit different labels.

  45. Re: ... A job fair can easily test this competenc by luis_a_espinal · · Score: 1

    This in my opinion is really a waste of time. Challenges like this have to be so simple they can be done walking up to a booth are not likely to filter the "all talks" any better than a few interview questions could (imperson so the candidate can't just google it).

    Tougher more involved stuff isn't good either it gives a huge advantage to the full time job hunter, the guy or gal that already has a 9-5 and a family that wants to seem them has not got time for games. We have been struggling with hiring where I work ( I do a lot of the interviews ) and these are the conclusions we have reached

    You would be surprised at the number of people with impecable-looking resumes failing at something as simple as the FizzBuzz test

  46. Re: Seems about right. Constantly learning, studyi by Anonymous Coward · · Score: 0

    Agreed. I've only ever had bad experiences with 'superstar' programmers. They were awesome working on their own or when they were in a good mood. Otherwise they just killed morale dead.

    I knew a guy working on missile guidance systems and terrain data mapping (in the 80s). He worked on his own, with a hardware guy, and was an acknowledged coding genius. But when he moved to game design and had to work in a team he lasted six months before they canned him because any gains he brought were more than lost through everyone else's morale plummeting.

  47. Not what I was expecting. by Anonymous Coward · · Score: 0, Funny

    I thought this article was going to be about how soyboys and SJWs with no technical skills whatsoever are getting all kinds of tech jobs by using politics to bully companies into hiring them. You can see this happening a lot in video game companies where all the decent programmers are being replaced by gender studies majors. You can't criticize their code because instantly you'll be labeled transphobic, misogynistic or Literally Hitler for questioning their talents. This is how you get people like Randi Harper and Brianna Wu setting themselves up as software developers.

  48. Interesting by DaMattster · · Score: 2

    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.

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

    Comment removed based on user account deletion

  50. Fabrication by sycodon · · Score: 1

    Building huge, complicated structure involves a lot of fabrication. Not fabrication in the sense of creating a falsehood, but designing, cutting and assembling materials (usually steel) into the desired object.

    What you seem to be arguing is that anyone who claims to understand how to build these objects need to understand how to builder a welder, a plasma cutter, a band saw, a grinder, etc. You don't. You need to understand how to employ them, but there is no need to know how they work or how to make one.

    Software is much the same. There is no need to understand the origin and workings of the tools you use, rather, you need to understand HOW to use that tool. Some of the best Welders in the world (and welding is a very technical and highly skilled trade) have no idea how the devices they use work internally.

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    1. Re: Fabrication by locketine · · Score: 1

      I doubt world class welders lack understanding of how their tools work; not understanding how a tool works results in mistakes or narrow use of the tool. What do they do when their tool breaks down or degrades in performance? Buy another one? Hire a welder tech? What if they want to weld something that doesn't perfectly match how they were taught to use the tool or the tool's ideal use?

      I've interviewed at some big tech companies and have been surprised by how little my interviewers understand the execution of their code. They rely on the big-o rule of thumb as if it's gospel and they assume computer memory is an inexhaustible resource. Why would this be bad? Because they use hash tables for everything without a clue about the drawbacks of constantly doing memory lookups.

      --
      Think globally but act within local variable scope.
    2. Re: Fabrication by sycodon · · Score: 1

      Wrong.

      A Welder has a basic set of controls. These affect how you use it.

      How a welder actually takes 110 bolts, amplifies it, regulates power, wirefeed speed, etc. Is a completely separate domain populated by electrical engineers and folks who design, build, and manufacturer microcontrollers, etc.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    3. Re: Fabrication by sycodon · · Score: 1

      And yes, do they do buy another welder. Just like you buy a new hard drive if yours crashes.

      Do you reforge a hammer if you break off a claw?

      Technologies are advanced precisely because people can leverage the work of others.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    4. Re: Fabrication by locketine · · Score: 1

      Do you weld? I've welded and have friends who do it professionally. They do know wire speeds, gas mixes, material impedance, heat dissipation, etc. Literally the first thing they taught me in welding class was how the various welders we'd be using, worked.

      --
      Think globally but act within local variable scope.
    5. Re: Fabrication by Anonymous Coward · · Score: 0

      True in some cases , not true in others. Remote work, a power tool breaks and there is not ready replacement, they will try to fix it rather than wait days to weeks for a replacement

    6. Re:Fabrication by goose-incarnated · · Score: 1

      Some of the best Welders in the world (and welding is a very technical and highly skilled trade) have no idea how the devices they use work internally.

      You must be mad. I'm a welder, certified and everything (certs over 20 years old, so not current). I can guarantee that any *good* welder knows how his welder works, knows why the rods with different ratings produce different results, etc.

      --
      I'm a minority race. Save your vitriol for white people.
    7. Re: Fabrication by sycodon · · Score: 1

      Yes.

      But I can't build a welder. Neither can your welder friends unless they are also electrical engineers or have the knowledge of electrical engineers.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    8. Re:Fabrication by sycodon · · Score: 1

      That's not the same as being able to open up your welder and figure out why it's dead.

      Knowing how to employ a welder is not the same as being able to create or repair a welder.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    9. Re:Fabrication by goose-incarnated · · Score: 1
      > Knowing how to employ a welder is not the same as being able to create or repair a welder. I didn't say it was, I said they know how the internals work. Besides, all of the professional welders I know have at some point in the past repaired their own welder. Every single one. Your assertion that

      Some of the best Welders in the world [...] have no idea how the devices they use work internally.

      Is factually wrong.

      --
      I'm a minority race. Save your vitriol for white people.
    10. Re:Fabrication by sycodon · · Score: 1

      So given a budget of some size, you could go down to the local electronics store, buy a bunch of resisters, ICs, OCB board, transformers, and the rest and assemble a 220v TIG welder?

      You should start a business. Because Miller, Everlast, and others employ an entire staff to design and build these things.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    11. Re:Fabrication by goose-incarnated · · Score: 1

      So given a budget of some size, you could go down to the local electronics store, buy a bunch of resisters, ICs, OCB board, transformers, and the rest and assemble a 220v TIG welder?

      That's not what you claimed which I called factually incorrect.This is what you claimed, which is factually incorrect.:

      Some of the best Welders in the world [...] have no idea how the devices they use work internally.

      They have a good idea of how the welder works internally, or else they wouldn't be any good at welding. It is, in my experience, almost impossible to become good at welding unless you have a very good idea of how the welder works internally.

      They don't need to build one, they just need to know how the welder works internally.

      --
      I'm a minority race. Save your vitriol for white people.
    12. Re: Fabrication by Anonymous Coward · · Score: 0

      That's literally what he said and meant.

    13. Re:Fabrication by Hognoxious · · Score: 1

      There's knowing how to drive, and there's being a mechanic.

      You seem to think it's impossible to do the first without doing the second.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    14. Re: Fabrication by locketine · · Score: 1

      Ah, I think I understand where we misunderstood each other now. You think the AC was asserting that someone needed to be able to build a compiler to use the programming language it compiles. I think AC was asserting that someone needs to understand how their code is compiled to make good use of the language. So I'm comparing their statement to how a welder works, and you're comparing their statement to how to build a welder.

      --
      Think globally but act within local variable scope.
    15. Re:Fabrication by Anonymous Coward · · Score: 0

      There's knowing how to drive, and there's being a mechanic.

      You seem to think it's impossible to do the first without doing the second.

      I never said or implied that. Do you really think that some of the best drivers in the world have no idea how their car works internally?

    16. Re:Fabrication by sycodon · · Score: 1

      Many of the best drivers in the world can't rebuild an engine.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    17. Re:Fabrication by Anonymous Coward · · Score: 0

      There is no need to understand the origin and workings of the tools you use, rather, you need to understand HOW to use that tool

      You just described a Code monkey. Someone who has virtually zero understanding of the system, and when crap hits the fan, and it will, they get completely lost. They also have no ability to avoid crap hitting the fan because they can't predict when it will happen. Not to mention these people are stuck in the perpetual learning limbo of "omg, new tech". Wrong. Old tech, new implementation. Nothing new to learn, instantly master it.

      I've been professionally programming for over 10 years, working on a large range of projects, zero specialization, and I have yet to encounter tech that wasn't made back in the 60s or 70s. Nearly all of the time the solutions to problems are so obvious, that I independently solve the problems in the same way they did those many decades ago. It is a huge benefit to be able to stand on the shoulders of giants.

      Most people don't seem to realize this work has been solved and decide to start over from scratch, using new tools, incorrectly. Data warehouse is one example. Our company tried using some data warehouse tech and it didn't work out. They fundamentally did not understand the problem nor how the tool solved the problem. After they gave up, they started a new project, to use the Cloud! And look, the cloud has a data warehouse feature and everyone else uses it very successfully. I cringed when I heard of this. I told my co-worker, "If this new tech is an actual data warehouse, there is no way they have some magic that lets them get around the issues we had with the first tech". After a year, they suddenly learned this the hard way. There is no way to get around fundamental logic barriers. In this case, they wanted a "real time data warehouse". You can't carve up data into dimensions in real time. Literally impossible in a practical sense. It was proven back in the 60s. Damn! normies are bad at abstract reasoning.

    18. Re: Fabrication by datavirtue · · Score: 1

      This allegory has run its course and was of little value anyway. Please stop.

      --
      I object to power without constructive purpose. --Spock
    19. Re:Fabrication by datavirtue · · Score: 1

      Right. And software developers do not know how to build a computer and integrated circuits from scratch. But they should know how their fucking language is arranging and manipulating data in memory. You grabbed the wrong metaphore and I would venture to say you have no ideas how your tools work either.

      --
      I object to power without constructive purpose. --Spock
    20. Re:Fabrication by Hognoxious · · Score: 1

      Do you really think that some of the best drivers in the world have no idea how their car works internally?

      Do you think Lewis Hamilton[1] designed & built his own car?

      [1] He's in that thing like Indy except they can turn both ways.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  51. Re:Seems about right. Constantly learning, studyin by phantomfive · · Score: 1

    The difference between a smart programmer who succeeds and a stupid programmer who drops out is that the smart programmer doesn't give up.

    --
    "First they came for the slanderers and i said nothing."
  52. Re: ... A job fair can easily test this competenc by Anonymous Coward · · Score: 0

    You are in luck! Plenty of cheap Punjabis that will work for 1/3 American wage, and they will Google everything!

  53. Re: ... A job fair can easily test this competency by Anonymous Coward · · Score: 0

    The point of this exercise is not to filter out who knows quicksort or remembers the sieve. Its filtering out the imposters.

    We send candidates a quiz to work on at home for a couple of days. DAYS! They can google it! The percentage of people that don't send in all the answers or get it wrong is amazing! And you can find the answers by googling "Standard $language interview questions". Pretty good filter if you ask me.

  54. one word: rust by Anonymous Coward · · Score: 0

    Politics before code.

  55. Bigger building blocks-medicine by Anonymous Coward · · Score: 0

    So basically like doctors, from general practitioners all the way to surgeons.

  56. Engineering, not just coding by Anonymous Coward · · Score: 1

    It's time we realised that programming is part of a set of engineering skills that are required in order to build any of the complex systems involved in many modern applications. No single person will have more than a small fraction of the skill and experience required. Even the most experienced ones who lead the architectural effort will have to defer to specialised expertise for some components.

    One earlier commentator wrote:

    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.

    Unfortunately, the fraction of programmers with the level of experience described above is–inevitably–vanishingly small, particularly in projects where those people also have to understand some higher-level "business logic" associated with the application in question.

    But even that experience omits many things that are often crucial to success, particularly where performance or reliability requirements are challenging. In hardware, this can take one beneath the depths of logic gates and into the realms of electronics and physics. Computer architecture, e.g., cache organisation, memory models, compiler optimisation, threading, interconnects, etc., to name but a very few aspects of systems, have their own subtle effects, while algorithms and data structures and numerical analysis etc., require deep understanding of math and statistics – and all of this before one considers the application itself. And don't forget the air conditioning/cooling requirements, the on-going operation and maintenance or.........

    People who are good at pouring concrete don't usually design bridges. People who design bridges don't always know much about the chemistry of concrete or metallurgy of steel and aluminium.

    People who hire programmers shouldn't expect them to be have most of the skills required to build a complete system. Look to large engineering projects –bridges, cars, aircraft, roads– for a better model of how to build teams of people; stop looking for superheroes.

  57. Important, and dumb. by raymorris · · Score: 3, Informative

    Of course they are important. I wouldn't have done those things if they weren't important!

    I frequently have friends say things like "I love baking. I can't get enough of baking. I'm going to open a bakery.". I ask them "do you love dealing with taxes, every month? Do you love contract law? Employment law? Marketing? Accounting?" If you LOVE baking, the smart thing to do is to spend your time baking. Running a start-up business, you're not going to do much baking.

    If you love marketing, employment law, taxes, etc, then start your own business. If you love writing software, and you're really good at it, then someone will pay you six figures to do what you love.

    Of course, the ideal for a really good programmer is to partner with young Bill Gates on a new business, and you do the software while he does the business. That doesn't happen often, though.

  58. Re:Seems about right. Constantly learning, studyin by complete+loony · · Score: 1
    In other words;

    What is often mistaken for 20 years’ experience, is just 1 year’s experience repeated 20 times.

    --
    09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
  59. just in by Anonymous Coward · · Score: 0

    Normie who doesn't know programming is amazed that there are third party libraries that are shared and used elsewhere

  60. Which part? Learning makes you better? by raymorris · · Score: 1

    You quoted a lot. Is there one part exactly do you have in mind? The thesis of my post is of course "constant learning, on purpose, makes you better"

    > you take this attitude towards other people, people will not ask your for help. At the same time, you'll be also be not able to ask for their help.

    Are you saying that trying to learn means you can't ask for help, or was there something more specific? For me, trying to learn means asking.

    Trying to learn, I've had the opportunity to ask for help from people like Neil Brown, ESR, Florian Weimer, Randal Schwartz, and Ralf Engelschall. I've certainly learned from them, and gotten good help.

    I ask because the one thing I enjoy more than designing programs and learning to do that better I'd helping OTHER people learn to do better software. I've been slowly creating a position for myself where hopefully I spend at least half my time doing that. Currently, I spend about 35% of my time helping other programmers, answering questions or whatever. Want to do more of that.

    I really enjoyed something that happened the other day. The lead architect asked our team "what is this function for? @Ray this looks like your code". He could tell it was mine because it used a certain more advanced coding technique that makes the code easier to read and understand (thereby reducing bugs). The cool thing is, had he looked it the commit, he's have seen another programmer's name on it. It was done by a programmer who has been pushed to spend more time on paperwork, because he's better at paperwork than code. But he and I have been spending a lot of time working together, with him asking me questions throughout the day. "My" techniques for clearer, less bug-prone software are now showing up in code written by junior members of the team, because they come ask me, and we learn together. I think that's awesome.

    1. Re:Which part? Learning makes you better? by Anonymous Coward · · Score: 0

      Yeah just ignore him, he's upset you had the gull to actually say you are good out loud. Not every place is the place to prove it so I agree with you that simply stating it isn't bad in the given context.

      Keep trucking along, you clearly are gifted and in my book I could care less about how arrogant you are as long as you are talented and correct.

    2. Re:Which part? Learning makes you better? by Anonymous Coward · · Score: 0

      The thesis of my post is of course "constant learning, on purpose, makes you better"

      To play ball in your court:

      The thesis only holds if the practitioner learns what is important. Dutifully studying obscure features that wont be used 99% of the time isn't improvement compared to repeated practice of what is used often.

      For instance, you have terrible soft skills and are arrogant. Correction of those would be far more impactful than years of additional technical expertise building. Consider constantly learning, implementing, and practicing methods intentionally to overcome those deficits. That is what high functioning autistic people do.

      Apply the Pareto principle brother. The economy and working world are made by for and operated by people, not machines. Your work in technology is a side effect. Your real job is to make the lives of others better. Most efficient way to do that, is what you have failed to learn.

  61. Four tips for a better job. Who has more? by raymorris · · Score: 2

    I can tell you a few things that have worked for me. I'll go in chronological order rather than priority order.

    Male friends in the industry you want to be in. Referrals are a major way people get jobs.

    Look at the job listings for jobs you'd like to have and see which skills a lot of companies want, but you're missing. For me that's Java. A lot companies list Java skills and I'm not particularly good with Java. Then consider learning the skills you lack, the ones a lot of job postings are looking for.

    Certifications, posted on your LinkedIn, let recruiters find you when they want someone with your skills. Some people will point out that certifications don't prove skill, people can cheat. But certifications CLAIM a certain skill level. When I list "Cisco CCNA" on my resume, I'm claiming a very specific level of networking knowledge, which can be confirmed in an interview. People also point out that (entry-level) certifications don't prove expert-level knowledge. Duh. Entry-level certifications show entry-level knowledge. Advanced certifications like CCIE show expert knowledge. But the point is, certificates are clear, industry standard ways that recruiters actually use to find candidates that match.

    With those three steps done, you should have multiple requests for interviews. You have the right skills, and recruiters looking for those skills find you. So now what about the boss that makes you hate showing up for work?

    Plan how you can screen the company and interview the boss. I see a lot of job ads for Wells Fargo because they are trying to hire people with my skills in my city. But we know from the news that Wells Fargo corporate culture is to lie, cheat, and steal to make monthly targets. I won't be applying at Wells Fargo. In interviews, I try to ask questions that give me some insight into the boss and the company. I can afford to walk away to the extent I've done the other steps, acquiring skills that are in-demand and marketing myself.

    I bet other people reading this have some good tips of their own. Who has one to share?

  62. Typo: MAKE friends. Not MALE friends by raymorris · · Score: 2

    Here's another tip I just learned - proofread what you write. :)

    My first tip was supposed to be "make friends in the industry", not "male friends". Indeed when it comes to networking and friendships, in average females are probably statistically more open to relating than males are.

    1. Re:Typo: MAKE friends. Not MALE friends by Cederic · · Score: 1

      Thank you for the clarification. I read the original and went, "WTF?!"

  63. Natural talent... by ElitistWhiner · · Score: 1

    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 demographics that covers the rest of the population. It's cynical. It's higher education little secret. It's why software (i.e. Google, Facebook) rules and hardware is competitive.

    So now you know why Apple Inc. competitors are Microsoft and not Dell, H-P et. al.

  64. It's no longer necessary? Quality is TERRIBLE now. by Anonymous Coward · · Score: 0

    It's no longer necessary? Quality is TERRIBLE now.

    It absolutely is, now more than ever.

  65. Re: ... A job fair can easily test this competenc by PaulRivers10 · · Score: 2

    The only thing fuzzbuzz tests is "have you done fizzbuzz before"? It's a short question filled with every petty trick the author could think ti throw in there. If you haven't seen the tricks they trip you up for no reason related to your actual codung skills. Once you have seen them they're trivial and again unrelated to real work. Fizzbuzz is best passed by someone aiming to game the interview system. It passes people gaming it and trips up people who spent their tume doing on the job real work.

  66. Other book sells better and is more interesting by fahrbot-bot · · Score: 1

    New Book Describes 'Bluffing' Programmers in Silicon Valley

    It's not as interesting as the one about "fluffing" programmers.

    --
    It must have been something you assimilated. . . .
  67. sounds like a script kiddy by Anonymous Coward · · Score: 0

    software engineers will never go out of demand. but of course that's more than just copy/paste, it's actually solving problems. If your only experience is in writing pure html and a bit a javascript, yes I'm afraid those days are over. Thank god for that, it was like the middle ages.

  68. Promote themselves from coder to "founder" by Anonymous Coward · · Score: 0

    To founder/foundering, a nautical term for shipwrecking.

  69. Re: ... A job fair can easily test this competenc by Hognoxious · · Score: 2

    they trip you up for no reason related to your actual codung skills.

    Bullshit!

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  70. I have worked at several startups by Anonymous Coward · · Score: 0

    And a high percentage of those felt like outright scams. We had real clients, spending real money, for a product that didn't really work as advertised.

    They would tell clients how they had this magic cutting edge platform, while really behind the scenes it was fudging the numbers so they seemed believable.

  71. Yes, manage your manager. Start by establishing yo by raymorris · · Score: 1

    Good tips. If you're actively making your team and your boss succeed and look good, most people will leave you alone and let you do that.

    I've also learned that precedents are established quickly. Whatever you want to establish about relationships at work, establish it early. Also however you want to be seen, be thought of, put that out there early.

    Some people introduce themselves and quickly show "I'm a friendly guy and you'll like me", others want to show themselves to be tough or whatever. For me, I like to establish "technical credibility", I show that I know what I'm talking about, when I speak about technical issues it makes sense to listen to what I'm saying. (Part of that is keeping my mouth shut when I don't know what I'm talking about, or asking questions rather than making assumptions).

  72. Re: ... A job fair can easily test this competenc by PaulRivers10 · · Score: 1

    Fizzbuzz is nothing but a collection of cheap tricks from people who are good at tricks and being loud and bad at coding.

  73. Re: ... A job fair can easily test this competenc by Cederic · · Score: 1

    I disagree. Any programmer that knows how to code can get a working solution to FizzBuzz.

    It may not be optimal or elegant, but it'll fucking well work.

    What you should be assessing for is correctness and the quality of the written code, not its optimisation or ability to be refactored. If the programmer produces something readable, maintainable and documented, and also points out the areas they know you should focus additional resources if you really give a shit about the performance, that's the person that knows their shit.

    Someone that quickly types out the generic known solution but uses 'i' as a loop counter is exactly the sort of person you thank for taking part and engage no further.

    Someone that can't even get their code to compile, let alone pass the test, clearly isn't a programmer no matter what their CV states.

    I'm not advocating use of FizzBuzz but it's also pretty easy to use to differentiate aware, capable people from utter fuckwits.

  74. Re:Silicon Valley is Only Part of the Tech Busines by rbrander · · Score: 1

    Well said. I post to /. every time programming as a job comes up, to relate my experience that the great career was having IT as your second skill. I got a CPSC degree and all, but after my Engineering degree, and for nearly all my career, my title was Engineer. (Waterworks and sewer stuff - GIS mapping, construction mgmt, etc.)

    I had a far safer job because I was much harder to replace; very few have dual skills for some reason. Division-of-labour is great, and I'm sure that full-time programmers are way better programmers than I; but we really need far more dual-skill people in the business, interfacing between the customer dept and the IT department. The hardest thing to get right is the specs.

  75. There is a balancing act there by raymorris · · Score: 1

    You bring up a good point. There is also an interesting counter-point, leading to need to balance the two.

    Certainly a major deficiency in one area can override one's excellence in another. If an amazing technician has no ability at all to communicate with other people, he'll do little good. On the other hand, major advances, and perhaps the majority of overall good, are done by specialists, people good at one thing.

    I don't have the people skills of a good salesman, and it would be a waste for me spend time developing that, because major companies HAVE sales people, who are not the development engineers. It is wise to practice getting really good at what YOU do, rather than trying to achieve mediocracy in what everyone else does. So there is a balance there - improve your weak points - until they are no longer a major hindrance to using your strong points. I suck at graphic design, and that's perfectly okay - the graphic designers handle that, and more affordably than it would cost to have me doing graphic design.

    Some "weak points" are also an alternative term for strong points. Every US president has been profoundly arrogant. They actually believed that not only they SHOULD be elected President, but that most people would see that, everyone would agree that they should be President of the United States. How arrogant is that! Tame your arrogance, if it's a problem, but don't work TOO hard at becoming exactly average in every way, I'd say.

  76. It's not really about coding. by jbn-o · · Score: 1

    The parent post and this entire thread is not about coding or what it takes to write code well. Talking about what's "a great boost for the company" is closer to the mark in that framing issues around what's "a great boost for the company" is self-destructively short-sighted. We're better off challenging that framing, particularly on sites like these which are built to do the opposite and give users the power to censor those who step out of line (also known as moderation).

    Listen to the interview with the book's author on Doug Henwood's show. You'll quickly find this is not about coding or even high-tech; in fact, Pein says that the programmers he spoke with really don't have social skills beyond talking about their current project (suggesting a profound naiveté or downright ignorance of important political trends governing their own work). And that they believe this ridiculous myth of "work hard, play hard" so their time spent in squalid conditions is some kind of dues-paying one must endure in order to be rich later on. In reality, they're fools: they'd be lucky if even 5% experience this, meaning 95% are chumps who will spend their lives working for little and wasting time they should spend organizing for better outcomes for most (including themselves). To me this jibes with the profound innumeracy, political naiveté, and indoctrination in tech "journalism" that passes on sites like Hacker News (Pein mentions ycombinator in the interview) and /., as well as the arrogant anti-free speech bias that revolts at anyone who dares to challenge the narrative provided by the article at the head of the thread. Hence the discussion in the recording around 25m30s:

    Pein: 90% of them [tech company CEOs] are liberal. But that didn't account for their views on labor.

    Henwood: They're okay with transgender bathrooms, but don't raise the minimum wage.

    Pein: No; no unions; they don't even want to recognize their employees as employees.

    Henwood: That would be a commitment.

    Pein: Right, well there's all sorts of mumbo-jumbo explanations they have for why their vision of a direct democracy where everyone's Bitcoin holdings translate to their share of the vote would be better than what we have now, but when you see how these things work in practice it's strongly authoritarian, no place for labor. And the tolerance for progressivism on identity issues—there's a limit to it. [...]

  77. And he knows who is a scammer? by Anonymous Coward · · Score: 0

    Just curious, but how would a person who is not themselves an experienced coder be able to tell who is competent and who is scamming?

    1. Re:And he knows who is a scammer? by Hognoxious · · Score: 1

      The same way someone with no medical training can tell who's a competent surgeon.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  78. Re: ... A job fair can easily test this competenc by Anonymous Coward · · Score: 0

    FizzBuzzEnterpriseEdition

    Read the commit history for more enterprise quality.

  79. Tech Hires the Wrong People by Anonymous Coward · · Score: 0

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

    Tech companies recruit for ego over competency anymore. The nerds (i.e. the smart ones who really know what they are doing) are being weeded out of the industry in favor of used car salespeople who know how to talk-the-talk about all the latest new trends. Block-chain anyone?

    With over twenty years of experience in this industry, I can assure you that the last person you want to hire is someone who thinks of them self as a "Legend", "Badass", or "Hero". It's as though tech industry HR "thought-leaders" have never heard of the Dunning-Kruger effect.

  80. Re: ... A job fair can easily test this competenc by lgw · · Score: 1

    Well played, sir!

    --
    Socialism: a lie told by totalitarians and believed by fools.
  81. Re: ... A job fair can easily test this competenc by lgw · · Score: 1

    Someone that quickly types out the generic known solution but uses 'i' as a loop counter is exactly the sort of person you thank for taking part and engage no further.

    'i' is idiomatic. Admittedly, 'n' is better for an arbitrary number that's not an index into an array, but 'i' is fine. You'd prefer fortyCharacterCoboiNameDescribingAnArbitraryNumber?

    --
    Socialism: a lie told by totalitarians and believed by fools.
  82. Re: ... A job fair can easily test this competenc by Cederic · · Score: 1

    I want descriptive self documenting code that's readable and maintainable.

    Not code written by a cunt that thinks cnt is a funny variable name. Yeah, worked with him once.

  83. Re: ... A job fair can easily test this competenc by david_thornley · · Score: 1

    Also, pay attention to how fast the candidate works. If the candidate just whips it out, then (a) the candidate thinks well in code, or (b) the candidate has done Fizzbuzz about 29 times in the past three months. If the candidate has real problems, then (a) the candidate is having problems with the programming environment or (b) isn't worth hiring.

    And what's wrong with "i" as a loop counter in a short loop? It's easy to type and traditionally used. Meaningful variable names are for variables that have a meaning outside the context of the program.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  84. Re: ... A job fair can easily test this competenc by Cederic · · Score: 1

    It's destructively lazy. It inhibits readability when you have nested loops. (i and j? really?) It slows refactoring and risks introducing new bugs. It suggests the programmer doesn't understand sufficiently the variable and its role, its purpose.

    Meaningful variable names are for variables that have a meaning outside the context of the program

    Bollocks to that. Meaningful variable names are for the benefit of programmers, and the source code is the context. Be descriptive in your naming and the code is far far easier to read, understand, maintain and also just write correctly in the first place.

  85. Re: ... A job fair can easily test this competenc by david_thornley · · Score: 1

    A loop variable is, well, a loop variable. "i" is readily recognizable as one. It suggests that the variable's role is to iterate through a loop. It's a simple-to-type name for a simple variable.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  86. Re: ... A job fair can easily test this competenc by lgw · · Score: 1

    Yes, but 'i' is self-descriptive when used as an index. Bro, do you even math? Of course, it's become quite rare to iterate through a container that way, so it's a bit of a moot point.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  87. Re: ... A job fair can easily test this competenc by Hognoxious · · Score: 1

    Apart from being the established name for an index since forever, its very shortness *is* self-documenting: it's a short-lived, temporary, throwaway variable, so it has a short name.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  88. /|\ Nutter found by Hognoxious · · Score: 1

    (i and j? really?)

    If you can't tell them apart, ask your dog for help.

    Would you prefer IndexThatControlsInnerLoop and IndexThatControlsOuterLoop? You think having over 80% of the letters in common makes them easier to distinguish?

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."