15 ms·
“Google” programmers. How one idiot hired a couple more idiots
- SZJX 4y agoI’m not sure what was the type of problem that he asked the engineers, for which they could simply copy and paste “perfectly optimized” answers from the internet… I suspect they were just some common algorithm questions, supposed to be answered in a very popular programming language. Then of course this is what he would get as a result. Still can’t deduce from this that paper-based interviewing is the answer. For a customized coding challenge with moderate complexity, I can’t foresee this kind of issue easily arising.
- iLoveOncall 4y ago> I thought the remote work was to blame — it made it hard for me to use my charisma. Big oof. > I understand when you surf the net to figure out how a new technology works. Or when you need to use some exotic feature and not to bloat your head with unnecessary information. But basic things! How can you copy-paste basic things from the Internet?! I'd say basic things are the unnecessary information that you shouldn't bloat your head with. You don't need to remember if it's "split()" or "splice()" or "slice()" because you can Google it in a second, but you do need to remember how advanced concepts work. Lots of bad takes in this article.
- rickspencer3 4y agoI suspect that the author would argue that more competent programmers would use their IDE's statement completion functionality to quickly determine the function name, or which of the functions to use, what arguments to pass, and what return value type to expect and how to use it. That their knowledge of the language would allow them to write the code faster and better which such tools, rather than copying something from the internet.
- cmrdporcupine 4y agoThis article needs a name and a company name on it, so that I can avoid ever applying to a job that would involve working with this arrogant reductionist egomaniac. There might be some substance to his gripes (I doubt it), but his method of interacting with other humans sounds frightfully flawed. And it's just more of the pompous assumption that somehow the actual mechanical writing of code is the hard part of this job. It's not. The hard part is business requirements, task management, figuring out what the next and right thing to do is. Very rarely is our job a simple matter of writing code, the actual programming is often only a small part and most people's productivity issues tend to boil down to handling and understanding ambiguity or conflict in the business requirements, or motivation around them, or dealing with piles of legacy crap that needs to be cleaned and managed before moving on... not the coding itself. A bunch of junior or new hires get sent home to do remote work combined with a guy who admits he "yells in chat", yes that sounds like a disaster. And honestly it wouldn't surprise me if that's where the whole thing was falling down, not the competence of the programmers he hired.
- konart 4y agoThe original author is Ivan Belokamentsev (as mentioned) and judging from his Habr profile you won't meet him unless you are willing to move to Russia and learn 1C (https://en.wikipedia.org/wiki/1C:Enterprise https://en.wikipedia.org/wiki/1C:Enterprise)
- cmrdporcupine 4y agoAh, oops, I skimmed the header portion and missed that part, thanks.
- sam_lowry_ 4y agoHis experience is limited to 1C programming, which occupies similar business niches as SAP. 1C ecosystem is utterly different from HN's.
- onebot 4y agoWow, well said. It is so true that effective programming really requires a lot more support, especially around the product/business/project side. The smaller clear the chunks of work, probably the easier it is to reason about and complete.
- projektfu 4y agoI remember this personality being common among programmers from eastern Europe. By no means universal. If you work with these types you just have to have a thick skin. I think they generally mean well. Maybe the internet is creating a situation where the workplace is no longer populated by a Dickensian cast of oddballs, but I feel like super polite workspaces where nobody ever calls people out and everyone is given pats on the back lack something as well. And under the surface is often disdain that is never voiced, just acted upon.
- duped 4y agoAt least in the US there are too many companies paying too well to waste your life working with assholes on your team.
- rajin444 4y agoThe writer never talked with the interviewees about their code? I’ve made the same mistake as him (seeing great code from a candidate and not pressing further), but it’s fixed pretty easily by asking them to walk you through it.
- dexwiz 4y agoI have a parallel term I use, jiggle programmers. They can jiggle code around until it works, often working off existing code. They may become obsessed with refactoring because it's the only kind of programming they really understand. They usually cannot write code from scratch, or when they do it contains a huge amount of plumbing copied from other familiar codebases without any reason for its purpose. It's kind of like they can read a foreign language, but they cannot speak it. Or maybe a parrot who can produce the sounds without the meaning. I do think Google has caused some of this. But the other secret, I think it's how most people program by default. Animals largely learn by copying. The deconstruction of concepts to primitives, and synthesis of these primitives into new ideas if a very academic way to approach things. Centuries have proven this approach is superior, but it takes a huge amount of effort, and many things are lost in this process. (Ever do a physics problem with spherical cows?) With the rise of self-taught programmers, you will see more take this copying approach than the academic redistillation.
- tinco 4y agoJiggle programmers isn't a type of person, it's a phase juniors go through. There's a lot of stuff to cram into your brain as a junior, and when you don't have a complete model of how things work it can be basically impossible to come up with an approach that has a chance of working on the first try. In my opinion the way to get them through it is loads of pair programming and stopping them and reminding them they haven't stopped to think about the entire context when you catch them doing it (or when they come to ask for help in the ideal case). I'm not sure if I ever went through this phase, but not everyone has the luxury of developing their programming skills at a leisurely pace from highschool all the way through college.
- bpodgursky 4y agoI do not think this is true. Strong junior programmers usually fail by rewriting everything from scratch, having no concept of DRY, libraries, or how to effectively break logic into methods. But inability to generate their own code is not a common failure mode! It's only weak junior programmers (that is, people who simply are not going to become strong developers) who approach a problem and, in the absence of the ability to write code from scratch, try to find something to copy-paste.
- sjf 4y agoThe author is extremely naieve if he never considered that candidates would Google the solution. How did they make it through the rest of the interview process, let alone years of working there, without him noticing that they actually couldn't code?
- dvtrn 4y agoA few jobs ago the IT Manager put out feelers to the engineering team asking if any of us knew anyone interested in a junior IT Admin role. I knew someone looking for work at the time and asked for a link to the job description so I could forward it along. In the description included the phrase “without Googling” for a majority of tasks. It’s not as if the role was especially demanding or contained a ridiculous amount of esoteric knowledge; it was the equivalent of a help desk position. I can’t imagine ever doing help desk, much less ever again (fuck that stress) or for someone who thinks it’s a role where you will never need to Google anything. I pointed this out to my friend with a frown on my face, but left it up to him if he wanted to apply. He read the job description and said “yeah no. That boss sounds miserable to work with”. My interactions with that manager were quite minimal, but judging but the attrition we noticed on the help desk team, I think he was right.
- kolanos 4y ago> I kept freaking out and yelling in chats. Sounds like a joy to work with.
- i_have_an_idea 4y agoCan you imagine working somewhere and then, one day, some guy comes over to "re-interview" you :D Hilariously bad people management. > I kept freaking out and yelling in chats > The people could have lacked a kick in the butt > remote work was to blame — it made it hard for me to use my charisma Employer of the year award?
- booleandilemma 4y agoI’d like another sign-on bonus if that’s the case.
- deleted 4y ago[deleted]
- vborovikov 4y agothe original post (in Russian) tries to be entertaining, so these are hyperbole.
- yandrypozo 4y agoInteresting how the author never considered re-training their programmers instead of "re-interviewing" them, after all they were not far from understanding the basis as he claims.
- danpalmer 4y agoSo many interviewing red flags. The author does not seem to be interviewing critically – figuring out the skills to test and how to test them – but rather applying the techniques they have heard about or experienced themselves without consideration. There's a difference between programmers-who-google, and programmers that can only google, and I don't think the author is on a path to identifying one from the other, but rather has decided that googling things is wrong. I've conducted a lot of programming interviews, and I've always let candidates google and even encourage them to ask me for my thoughts and opinions. It's clear from what they ask, what they search for, and how they apply that information, how they go about solving problems and whether they truly understand the problem they are solving. Also by being present the whole time it's also obvious if the candidate works at the level of copy/pasting answers from the internet. The best engineers know how to ask questions and search for things in order to boost their productivity, while knowing enough about the problem to not be limited.
- mkl 4y agoThat was the strangest thing for me. He didn't interact with them while they were coding, or even watch them do it: > I gave tasks and a computer to a candidate and left them for half an hour to an hour.
- rrrrrrrrrrrryan 4y agoRight? It's like administering a driver's license test by saying: "Bring me back a Big Mac, a Whopper, and a Chalupa within 30 minutes" then tossing them the car keys and judging them based on how many items they successfully bring back. Of course they're going to Google - it saves time, and the interviewer clearly doesn't give a shit about how you arrived at the solution because he literally just left the room.
- arealaccount 4y agoImagine the productivity levels as people are preparing for their quarterly re-interviews. And then productivity and moral levels after you let go your good devs that suck at interviewing.
- deeteecee 4y agoi didn't learn anything here but i was amused :)
- rodorgas 4y agoNot only he didn’t imagine candidates would Google interview questions, but he also didn’t sit and watch they write code. It’s not an interview, it's a take home assignment, but in-person. You get very few signals just looking at the finished result. You should let the candidate ask you questions and progressively improve the solution. And you should progressively make the task more complex, because it’s not a binary evaluation. A good code interview must rank candidates.
- djur 4y agoA lot of other people have flagged the remarks about "yelling in chat" and the like, and those are certainly red flags, but I think what you're pointing out here is the biggest problem. "Write code on paper" and "write code unattended" are not the two only available options. Worse, from the description of it as "a very simple change", it kind of sounds like he was giving them the same type of problem to solve in both cases.
- themitigating 4y ago"monotonous, similar tasks. I kept freaking out and yelling in chats. I thought the remote work was to blame — it made it hard for me to use my charisma." What now?
- culpable_pickle 4y agoSome people mistake aggressive force for charisma…
- lemmsjid 4y agoI would be very interested to hear viewpoints from the supposed 'Google' programmers on his team. The fact that he didn't gather feedback from the team makes the whole thing rather suspect.
- jokethrowaway 4y agoIf your Google programmers were delivering until the bloody pandemic, there's nothing wrong with them. Sure, maybe they're not experts in every API - but they proved for months their productivity, in easy and hard tasks (by your admission). As an engineering manager I've dealt with covid performance issues in three different companies (two of which were already remote pre pandemic). Incidentally I've dealt with performance problems for depressed people a few times in my career and COVID performance issues felt exactly like those. It just happened to the majority of people. Turns out that if you do everything possible to remove everything that's good out of people' lives, their performance suffer! I really don't understand how you can go from what happened to you to "my engineers know to code only with Google" but you should really rethink that. I wish you and your teams well.
- culpable_pickle 4y agoThis quote says it all: > In addition, our superiors did me a disservice — they asked me questions like the following: " Has productivity growth stagnated because of remote work?" Of course, I was saying yes. The author took no responsibility in the situation.
- kavaruka 4y agoSimply put, you're a bad interviewer and a terrible boss.
- derevaunseraun 4y agoThis article has just enough ambiguity for the author to be seen as either an insufferable dickhead or a decent person in a bad situation If he's complaining because his employees haven't memorized some niche part of documentation by heart and - gasp - need to look something up, then he's the former But if he's complaining because employees don't understand basic fundamentals like scope, then he's entirely in the right Actually edit: > I started with offering my help. Can't solve a problem? Come get me. I will come over, sit on your chair, and finish your task. You'll sit next to me and memorize the way the work should be done. I don't like this, It seems like bad management with subtle insecurity. imo it would be better to show the employee how to go about solving the problem themselves so that they can do it and feel confident in their own abilities, as opposed to just doing it for them
- bink 4y agoI'm trying to imagine this teaching method being used in other disciplines. Don't know how to drive? Watch me and memorize what I do. Don't know how to play chess? Watch me and memorize what I do. Don't know how to swim... etc. Though there are some jobs where you absolutely must watch someone before you even attempt to do it yourself (e.g surgery), it's not typical and probably not needed for something like programming where you can view the source. And it'll certainly prolong the learning process compared to having people do it themselves.
- Asooka 4y agoBut isn't that exactly the first step in how humans learn? I mean, first you watch someone drive, then you get shown diagrams and explanations on how to control the car, then you get into a teaching vehicle with an instructor - one that has a steering wheel and pedals for the instructor that can override yours in case you make a mistake on the road, finally once you're proficient enough, you take an exam and (hopefully) get your driver's license. Similarly for chess - a big part of learning chess is reading analyses of games that already happened, i.e. watching people play the game with some explanation. Swimming (or any sport) as well - the instructor shows you the motions, then you do it slowly until you get the hang of it, then get let in the deep end of the swimming pool, etc.
- BossingAround 4y ago> I started with offering my help. Can't solve a problem? Come get me. I will come over, sit on your chair, and finish your task. You'll sit next to me and memorize the way the work should be done. > I thought the remote work was to blame — it made it hard for me to use my charisma And other "gold" hidden in this article. The premise is also ridiculous. Everything went amazing for 6 months, then the pandemic hit, people worked from home, and suddenly couldn't google anymore? Or does the author have a linear scale in mind, where the longer the project goes, the more understanding it requires?
- rickspencer3 4y agoThe distinction between these 2 types of programmers predates Google by quite a bit. I worked in user research at Microsoft in their developer division in the lat 1990s and early 2000s, and we were well aware of the difference between "systematic", "pragmatic", and "opportunistic" programmers, and ensured that we had tools and offerings for each. The opportunistic programmers were most numerous, and preferred to copy and paste their way to success.
- phendrenad2 4y agoInteresting learning. Has anyone blogged or written about this?
- rickspencer3 4y agoWe wrote and published about it quite a lot, but none of that content seems to be indexed or available anymore. Here's some content referring to it, though: https://blog.codinghorror.com/mort-elvis-einstein-and-you/ https://blog.codinghorror.com/mort-elvis-einstein-and-you/
- native_samples 4y agoI'm curious what sort of offerings can realistically be made to opportunistic programmers. Some sort of visual languages?
- rebelos 4y ago> An old man who is also a deputy dean and associate professor told us: "The university does not give you knowledge. It teaches you how to get knowledge on your own." This is laughably untrue and, oddly enough, the part of this post that left me most bothered.
- m4x 4y agoThis might be much more true of European universities than American ones
- tester756 4y agoIt's somewhat popular opinion I've seen countless arguments about higher edu and whenever somebody says that school didnt teach him x,y,z, then people often try to counter it with something like "ohh, uni's goal is to teach you how to learn and make aware of how big some domain is! what you're talking about is trade school!" (it's terrible counter in my opinion)
- vbezhenar 4y agoI use zero knowledge from my University. Everything I was taught, I either knew before or it was stuff that I don't use. I use 100% of my ability to learn acquired when I was there. I attended one of the best Russian Universities. So I can only confirm this phrase. Whether that's a good way to spend 5 years - I don't know. But in practice it turned out that way.
- rebelos 4y agoSounds like you got very lucky. To clarify: the (reasonably well regarded) university I attended most certainly didn’t teach me how to learn properly. It taught me how to cram to answer a contrived set of questions and then promptly forget everything. I’ve learned more about how to learn from a few short books than I did across the sum total of my university education.
- deleted 4y ago[deleted]
- begueradj 4y ago> I started with offering my help. Can't solve a problem? Come get me. I will come over, sit on your chair, and finish your task. You'll sit next to me and memorize the way the work should be done. > I thought the remote work was to blame — it made it hard for me to use my charisma Pure narcissism
- inimino 4y agoThe author is poking fun at himself here; it's in poor taste to pile on.
- goldenkey 4y agoThe author is conceited. Sure, he might have hired some copy paste coders, but he's on the opposite end of the spectrum thinking he's royalty, blitting 1s and 0s of shellcode through his 11th finger.
- Veen 4y agoIt's self-deprecating humor. He knows it sounds narcissistic and expects it to be interpreted as ironic i.e. making the statement demonstrates that it isn't true. He's aware that he isn't charismatic and is letting you know that he knows it. It's like a weak person flexing their muscles to show you how strong they aren't. (Although, there could be another level of irony, i.e. he is narcissistic, and worries you might think so, so he deploys irony to persuade you that he isn't by making a narcissistic-seeming comment in a self-undermining fashion—but I doubt it in this case). In my experience, much British humor tends to follow a similar model (and Russian too perhaps), but I've observed that it's common for people who don't share that type of humor to misinterpret it.
- drdaeman 4y agoI'm not so sure, and I'm a native Russian speaker, who had read the original Russian language post just to make sure of this. That guy genuinely sounds unironically arrogant to me. It's much harsher in Russian than the English translation. Compare: > You'll sit next to me and memorize the way the work should be done. and > А ты, бездарь, сиди рядом и запоминай, как работать надо. which literally translates to "And you, bungler, sit and watch how the work is done [right]." And I utterly fail to see any self-deprecating piece that would turn this into a joke. If anything, author treats those "Google"-programmers as trash. Even as a joke, I would say it's very poor and distasteful one, especially for a public blog post.
- flerchin 4y agoCome on. As a 20 year software professional, whose software the vast majority of Americans interact with daily, I still google the most basic stuff. Daily.
- lordnacho 4y agoThis essay doesn't make its point well. There's no lesson in there about how knowing the fundamentals is helpful. Here's how I would say it: - You can only get so far with Googling. You can find an awful lot of solutions to little problems, that's for sure. But you need to understand how to integrate whatever you find, and that's not always trivial. - There's no level at which Google isn't a necessary tool for coding. Top programmers will Google stuff, just like a top author might open a dictionary. - The CS fundamentals, basically DS&A, sometimes surface in order to bite you, and if you haven't come across them, they will do so silently. You can't google it if you don't know what Big-O is. - The engineering fundamentals (perhaps loose coupling? perhaps requirement scoping?) will certainly bite you, and they are also not something you can google. - When you're interviewing, you can test for simple things that can be googled. You can chat about the other things without being able to test them.
- bitwize 4y agoI participated in the interview process at work for a number of candidates. One of them was clearly glancing at code from the internet on video as they worked through the problem. The other produced a lovely recursive solution (when recursion was not called for); but googling for solutions to the problem produced nearly verbatim code as the first hit. Neither of them could discuss their solutions at a high level.
- Hwrln 4y agoMany commenters here seem to miss the humor and self-irony. I find the article well written and it has an unexpected turn. And we all know that everything is true. The amount of programmers who write things from scratch is tiny, and ironically it is usually a thankless task. Often, you get ahead by stealing or churning around other people's code and being a ruthless politician.
- alangibson 4y agoI spent a lot of time on a project run by people like him. The leads kept trying to figure out why the coders were lazy idiots while they constantly reshuffled requirements, switched around the organizational structure, pulled them between projects, heaped on unclear requirements, yelled in sprint reviews, etc.
- current_thing 4y agoAuthor seems to have struck a nerve with many such programmers in this comments section.
- wayne-li2 4y agoCan someone help me understand this copy-paste issue? I heavily rely on StackOverflow like most devs but I’ve never been able to straight rip something from SO that didn’t fall under the following categories: - Extremely simple, but I missed something causing me to have to Google the error - One-liners to short functions that do some common tasks for me, and is faster for me to copy rather than write. - Language specific syntax for when I’m switching to a language I’m not as familiar with. I’ve never been able to copy paste any meaningful code off of the internet. As in, code that could reasonably be significant in the project I’m working on. How would you even find code that complex anywhere? Are people genuinely upset that someone would copy simple stuff off SO instead of writing it on their own?
- b5n 4y agoI'm a bit older so ymmv, but I rarely end up on SO. If I'm trying to figure something out most of my time is spent in the reference/documentation/source. If the docs lack examples and I'm having trouble visualizing a particular feature I might look to another project that consumes the same lib for examples. I encourage my younger colleagues to do the same. SO can be a great starting point, but it's in your best interest to take what you've found and then consult the docs/source (depending on what you're working on). Many times you'll find a better fit for your particular solution than what was presented on SO, and at the very least you come away with a more complete understanding. If you have a solid grasp on something trivial you've copied, I might jest a bit, but have no real problem that it was yanked. If you don't understand it and it 'just worked', that's gonna set off some alarms.
- oldjavacoder 4y agoI tend to agree but note that there can be as much variability in the quality, accuracy and precision of reference documentation as in many answers on SO.
- lamontcg 4y agoI find myself over 50 now and I'll use Google, SO and the Docs all pretty equally, and often for the most trivial stuff. My head is too full of different programming languages, and my memory was never any good, so I'm very good at using search and then weighing all the information that I get back. I sometimes use search for pretty trivial things that I just don't bother memorizing. But at a higher level there's principles that you need to understand in order to write robust code where you can't google the answer. And most SO/wikipedia answers to anything non-trivial will not be robust. And then there's the "ungoogleable" problems where you just need to roll up your sleeves and fix it. That can sometimes be broken down into tasks which are google-able by asking what kind of tool you need in order to investigate the problem -- and then using google to go find a tool that does that and learn about it.
- bowsamic 4y agoHonestly I think we need to face the hard truth: the majority of humans do not deserve life, they do not work hard enough, they are lazy. They are being propped up by our over abundance. We should aim to replicate an impoverished condition for them so that they can see why they need to work. It’s not optional
- dasil003 4y agoThis is a lot of words to double-down on a false dichotomy: that you either copy paste code from the internet or you write it painstakingly from scratch. IMHO you don't pass junior level without the ability to efficiently google for solutions at the right zoom level. This starts with understanding what you are reading and the best way to use that information, whether it be integrating a library, integrating a small snippet, disregarding as inapplicable, or mixing and matching ideas from multiple sources. The very specific conclusion that the author jumps to lacks nuance. It's hard to say based on this whether the programmers are as bad as the picture he paints, or if it's primarily a management failure.
- ReptileMan 4y agoCopy paste is good if you understand the code, bad if you don't. Not sure why it needed so elaborate blog post. As a developer you have to understand the problem domain, the tools and solution. That is basic requirement.
- ChuckMcM 4y agoThere there are chefs, people who understand chemistry and use their foundational knowledge to cook interesting things and make up new things, and there are cooks who take a recipe and follow it to produce a dish. Really good cooks have experience around cooking dishes and know that they can substitute somethings, they can cut down on the butter and it will taste just fine, or that it needs a bit more ginger than the recipe asks for. Really good chefs can be handed a recipe and transpose it to use different ingredients or meet different needs (Vegan? no problem! Gluten free? Gotcha!, Etc.) They know their transposition will work because they understand the chemistry that is creating the texture and flavor of the dish they are preparing. I tend to think if software engineers as the folks who understand the principles behind computation, data structures, and languages which informs their choice of algorithm, or their effort to transpose an algorithm to meet the current need. I think of coders as the folks who understand how the code they are looking at works and can adapt it to their needs, as long as those needs are not too far different than the original purpose the code was written for. In that case they go out and search for a different chunk of code to start from.
- oldjavacoder 4y agoI think of computer scientists as people who are deeply involved in principles of computer science and I appreciate them, but from my experience working with them on occasion; they have a difficult time comprehending how to write software to meet business requirements and deliver working code successfully and on time. I tend to think of software engineers as people who understand requirements and can turn them into working code and deliver it successfully by understanding the principles behind computation, data structures, and languages which informs their choice of algorithm, or their effort to transpose an algorithm to meet the current need. I tend to think of coders as another name for software engineers, also programmers and software developers, all the same. I understand algorithms, data structures, patterns, UML, etc. and I choose to call myself, unofficially, a coder. It uses less syllables.
- georgia_peach 4y agoCopy-paste interviewer hires a batch of copy-paste programmers & lives to regret it. There, I just saved you 5-10 minutes.
- allarm 4y agoWell, welcome to the Russian mentality. During my past life in Russia, I was interviewed many times for local companies, and it was not always a pleasant experience. Questions like "name all the IP packet fields with their lengths, in the right order" were not uncommon. For the past decade, I've been working outside of Russia. The interviews I had in Western companies were easier (even for faang), but deeper. I have a few theories that might explain this, but it's really hard without historical context. In a nutshell, most of these guys had Soviet parents, so they inherited the Soviet culture from them. Arrogance, humiliation, and rigidity are part and parcel of it. Still, I believe, that author has made some valid points, but the article itself is just difficult to digest for the unprepared audience.
- nr2x 4y agoMy rule as a professor (who had actually worked as a dev in the past) was simple: I don’t care if you use code samples, but I will ask very specific questions on how it works and I really care if you don’t know.
- nunobrito 4y agoIn Portugal my younger brother was on the second year of software engineering at a university, I wanted to see his progress and how he programmed but was disappointed. He did not know how to program at all. The teachers were lazy and repeated the same exams and activities year after year. Too many students took the easy path and either copied the answers from previous years or would google some snippets. Worst: teachers didn't care if the code would compile, they would grade the effort. In the end students would pass the year with positive grades (public university) and my brother would graduate next year without knowing how to write code on his own. I hope that not too many students follow that lazy path.
- native_samples 4y agoSadly that's common around the world. My university in the UK, supposedly an "elite" one, had the exact same problem.
- raxxorraxor 4y agoI didn't learn programming at university at all. We had some modules for that but it remained entirely theoretical throughout the course. I did learn it autonomously by trial and error before which made these modules quite trivial most of the time. If you don't learn it yourself you won't get far. But with the density of tests today I understand that students focus elsewhere. Computer Science is not just programming, but nearly everyone expects you that you can do it (in any environment for that matter).
- tuckerpo 4y agoI wonder if the author of this article has an existential crisis when typing `#include <stdio.h>` in a C file, since they didn't hand-craft the formatting and printing capabilities of the standard library.
- jchw 4y agoI don't think this is the right takeaway. Yeah, it's a problem if programmers have to copy-paste solutions from Google in order to do anything. However, sometimes people just search it because it's helpful and quick. Does not necessarily mean they don't understand it. Could be something as simple as clipping something out of Go slice tricks, or as advanced as "JS debounce function." For a novice who is struggling, they might literally just copy-paste the solution, but for someone more advanced, I expect they will read it, try to gather the bits of nuance (some of it may be realizations like "oh, I need to use len-1 here because this bound is inclusive", or maybe something more practical, like, "oh, I need to decide if my debounce function should fire on the leading or trailing edge of the debounce.") If they're literally copy-pasting the whole solution nearly verbatim, without really knowing what's going on, then maybe it's just not a very good interview question.
- angarg12 4y agoThis is bad advice. It sounds like the dynamics of a dysfunctional, low performing organization. In general, please don't blindly follow the advice of random people on the internet (including me!). There is plenty of advice around from reputable people with experience building and scaling high performing teams. My latest favorite is "An Elegant Puzzle" from Will Larson.
- sireat 4y agoI am a bit skeptical about this article. There are no technical details on language/framework/problem domain. No code examples. Surely those "Google" (or jiggle as another post said) programmers had some understanding of coding. Otherwise they would get the wrong Stack Overflow answer and things would inevitably go horribly wrong. They were doing the right thing for the business for many months. They might not have been able to program from scratch but that is not required most of the time these days. That is if it is stupid and it works it is not stupid.
- mbrodersen 4y agoThe problem was that the developers could do basic tasks quickly (by copy-pasting) but was stuck doing anything more complicated, showing a lack of actual programming skills. You can probably have a career developing simple CRUD applications that way. But you can’t move beyond that without truly understanding the fundamentals.
- z3t4 4y agoProgramming is mostly copy/pasting from stack overflow and example codes. (if you write documentation make sure to have great examples). Then there are software libraries for about everything, and compilers do the optimization for us. You only learn stuff (become a good programmer) if you are forced to. Examples when you learn is when debugging, or working with constrained resources, you are forced to optimize or scale up, your service goes down, data gets corrupted, you are getting hacked, etc.
- mbrodersen 4y agoNot my experience at all. The software I work on has no copy-paste examples on the internet. One of the projects I maintain (for example) is a high performance JIT compiler for a functional business rule language. Not many copy-paste examples out there :) What you are describing is only true if you are a basic CRUD developer. Having said that, most applications are simple CRUD applications so you are probably right for a large percentage of developers.
- z3t4 4y agoWhat is your take on "auto" coding tools like Tabnine and Copilot ? How useful are they in your line of work ?
- mbrodersen 4y agoI haven’t used them. I understand how it works but I am not convinced that they would be useful for me. Having said that I will probably try it out at some point to find out for sure. Only fools believe they have all the answers and that everything they think is true is actually true.
- phendrenad2 4y agoI see this a lot. Usually these programmers are capable of much more, but the system they're working on is too convoluted and they've given up on understanding it, instead they rely on people like the author of this article, the one person who understands the entire system. Problem is, usually that one person doesn't understand the entire system. I'm experienced enough to know that when you see a complicated system, and a wise old guru claims to understand it, that guru is probably an idiot or a liar, and you should seek to understand the system yourself from first principles.
- Pmop 4y agoWe all jiggle bits of code around to some extent. I doubt everyone here is writing their own lang/interpreter/compiler/std library/network stack. I think the offending part is not understanding what the hell you're jiggling around. BTW as bad as the "jiggle programmer" there's the "superenterprise software engineer" who can't ship code because they spend way too much time writing stuff from scratch, making sure it follows all the good principles and software patterns, and that the code is super optimal and covers all edge cases.
- Brian_K_White 4y agoThere is a perfectly reasonable, fair, simple, and drama/angst-free way to dispatch this problem. "Can I just google it?" "Sure. That's just not worth very much to me that's all." Now if they don't like that, which of course they may not, at least you don't have to struggle with the changing norms or fairness or anything like that. Put that way it's very cut & dried and up to them, as long as you're at least willing to help them succeed if any decide they want to take up the challenge. Mean time you can still get some product out of them, and they can still just google if that's all they want to do, but there is no reason to pay them like rock stars if they're not. And that's your answer to your bosses too. And you can keep an eye out for better developers at the same time with some budget available to pay them, or maybe identify at least one potential for training up from within your existing team. There probably is at least one who would take to it even if they aren't impressive today.
- ravish0007 4y ago"Look you missed a semicolon on line:x, column:y" v/s "Don't you know, you missed something? look again!"
- tempestn 4y agoDoesn't mean you need to watch over people's shoulders as they complete interview problems though. It's plenty to just discuss their solutions with them afterwards. Quickly becomes obvious who actually understands the issues at hand.
- lobocinza 4y agoUnless it's trivial or fresh in my mind I will Google the problem in the hopes of finding a library or an interesting discussion in the first page. If I can't find anything I implement it to the best of my ability. If later I find a similar problem I will grep and copy my own code. There's no shame in being curious and lazy.
- agounaris 4y ago"I kept freaking out and yelling in chats" I think the interviewer is the problem....
- beej71 4y agoA friend of mine was just telling me about how the programmers at his job fix bugs by adding special cases at the top layer instead of by digging down and finding the root cause. But my friend is old school and can't bring himself to be so hacky... But this means his co-workers close more tickets and it looks bad for him.