9 ms·
So reading over some of the questions posted on technical programming interviews I must say that I would definitely fail such an interview without studying for
by thiscatis2 9y ago
So reading over some of the questions posted on technical programming interviews I must say that I would definitely fail such an interview without studying for it for a month first. Having recently discussed job interviews of ex-colleagues that went to EBay, Facebook, Google, etc.. I wouldn't even pass the whiteboard test.
However I'm shipping scaleable API's used by web and native apps, using Continuous Integration and Deployment on an AWS infrastructure that I set up myself. Furthermore I'm responsible for hiring developers that I work with on agency projects and most important of all getting projects delivered within time, scope and budget AND getting paid for it. Yet I would fail most technical interviews.
I've been doing this for about 10 years and never ran into any major problems. I've worked both as a freelancer and in-house permanent dev and never had any complaints about my work. (Feedback and improvements yes, big failures never). Yet I would fail most technical interviews.
I talk directly to clients and vendors, I sell projects, I take over projects, I end projects and I've created 2 startups, one of which I sold but I would definitely fail a purely technical interview.
I completely understand the need for these technical interviews and weed out obvious bad programmers and get experts on board but sometimes from a business point of view it just doesn't make sense.
At a previous company I worked for the team almost crashed & burned because of the TL's focus purely on technical skills. No code was being shipped but hours of meetings and Slack conversations and discussions on PR's for no good reason about 0.01% improvement gains.
I know I'm not the best developer out there and never will be. Often I'm in awe of the technical skills of people out there but I rather have a less skilled dev with great "people & shipping" skills as I call it than some of the people that would pass all these tests but that I couldn't put in front of a client or even let them email a vendor.
- perfmode 9y agoMany large organizations want their engineers to have the algorithmic ability and their technical project managers and engineering managers to have the strengths you describe. Technical leads who possess both bridge the gap.
- deleted 9y ago[deleted]
- jghn 9y agoThis is something which has vexed me for ages. I would fail most contemporary software interviews. I personally don't view myself as a great developer but whenever I make comments like "I would fail most contemporary software interviews" people who have worked with me swear that I must be full of it. Perhaps they're just being nice. I'm pretty sure I'd fail the current software interview at my company, yet I remain gainfully employed there without issue. It's not like I'm just scraping by either, I do well for myself there. Luckily I enjoy my current job as the thought of going through these interviews and constantly failing miserably frightens the hell out of me. Part of the problem is that I refuse to study for months just so that I can pass some interviews and then promptly forget all of that stuff I just studied. That's just silly. I don't know what this means for our industry, and it's not like I have any better ideas, not reasonable ones at least.
- EGreg 9y agoThis may be like "approach anxiety" for when guys never strike up a conversation with a woman they are interested in because they think all women will reject them. Why not try and go on some interviews? How can you possibly know you will be rejected without even going on one interview? Do you think all companies are the same, and your competition is all prepared for whatever it is you imagine they are doing? You're shadowboxing without ever getting in the ring.
- diggernet 9y agoI believe your error here is "without even going on one interview". There are many developers who have proven their skills and abilities on the job, and also have a proven ability to repeatedly fail interviews. This is precisely why the developer interviewing process is such a hot topic here.
- jack_h 9y agoThere's another aspect that I can speak to personally. My career never really got off the ground. For most companies I'd get through all of the technical phone interviews just fine and after the in-person interviews it was always a rejection. Coupled with my deteriorating financial situation that lead to a lot of depression and massive amounts of self-doubt. To this day I still doubt my abilities quite heavily. Friends and coworkers say I'm smart and talented and whatever, but quite frankly I don't believe them. These interviews can be soul crushing to people with my type of personality.
- khc 9y agoAs a counter example, I also have about 10 years of experience, but never studied for interviews. On average I pass about 50% of the interviews at companies big and small (ex: passed Google, failed Facebook). I think people often looked at questions and think "there's no way I can do them", but many times you can get some hints and use enough first principles to do well enough. Individual questions are often bad indications of quality but interviews often consist of 4-5 or even more questions and in aggregate they do say something about the candidate. Some companies do require candidates to pass all the questions and that's a different problem.
- Ezhik 9y agoI think that if somebody with 10 years of actual and relevant experience fails the interview process, the interview process has a problem.
- nolemurs 9y agoAll that's required to get 10 years of experience is the ability to get your foot in the door and not do so badly that they actually fire you. It is absolutely not a guarantee of any real competence. At my last job I did a bunch of interviewing, and the very worst candidates we had were engineers with years of experience working at badly run companies. If management is bad enough, a company can't hold on to good engineers. As a result, they end up with just the engineers who can't go elsewhere. Since these companies are filled with bad engineers, there's no culture of learning, and an engineer who isn't really motivated can go years learning basically nothing. Experience is great, but it's totally possible to go a decade without learning much.
- edem 9y agoWhile you can get away with only basic algorithmic skills and I also agree with your points about being able to ship/talk to users/etc I think that having decent algorithms & data structures skills is essential for a developer. For example I have worked on projects where people were not able to ship a product for a year with 10 people and our new 3-man team shipped within 6 months just because we figured out that an algorithm solves the problem. You just can't do well in some contexts when you don't have the ability to figure out whether the problem you are struggling with has a well-known solution. I think it all boils down to having at least a decent ability in all areas (like product management, soft skills, math, etc) involved in order to be able to be productive in all environments.
- nsxwolf 9y agoYou can have decent algorithm skills and not be able to demonstrate that in an interview environment. You get more than 20 minutes in the real world and you're allowed to do research. Most algorithms that developers will commonly need to use already exist and the skill is not developing algorithms but recognizing which to use and when. Understanding it enough to adapt it to specific needs. That's not the skills interviews test for.
- edem 9y agoI did not say that you have to implement it. You just have to know which tool to use. And in most cases you only need a `Map` or a `TreeMap` or stuff like that.
- sidlls 9y agoCounter-point: I am the technical lead on a team of 8. We ship a new data science product (or major enhancement to an existing product) about every 9 months, from inception through putting it in maintenance mode. Our products generate double-digit multiples of my team's costs in revenue and have a reputation for being the easiest to implement and most stable for our customers. We have one CS guy, who is a junior engineer, and he doesn't even have a Master's degree. I can't remember the last time an in-depth discussion about which data structures or algorithms to use actually came up in a design, or even mattered too much in the end. The reason, as I see it, is simple: the engineering work the Principal Engineer and myself, with our juniors we mentor, do, is far more important than data structures and algorithms trivia. Once it gets to the point of deciding which of these to use the real problems have been solved already. Now, these choices aren't unimportant: the choice of a bad algorithm or data structure might cause problems, but they're choices that are in the main easy to understand and make when compared to the thought that goes in to the rest of the system.
- nolemurs 9y ago> I completely understand the need for these technical interviews and weed out obvious bad programmers and get experts on board but sometimes from a business point of view it just doesn't make sense. The thing is that the main goal of the technical interview is not to hire all good candidates. The main goal is to avoid hiring bad candidates. A large high paying company like Facebook has plenty of candidates to choose from, and the main priority is avoiding expensive bad hires. The cost of failing to hire a good engineer is small - they can just take the next guy. The cost of hiring a bad engineer is large. With this in mind, the process makes a lot of business sense. Someone who is capable of learning what's needed to do well on a technical interview has demonstrated a fairly high level of competence, and is (relatively) unlikely to be a really bad hire. This filter does limit your applicant pool a little, but if you're Facebook, the largest chunk of your applicant pool are recent comp. sci. graduates. If they can't solve an algorithms problem reasonably gracefully then that's a bit of a red flag. For non-recent-comp-sci-graduates, a competent candidate really should be able to prepare pretty well in a month or two of spare time. Facebook might miss out on hires like you who would likely be quite good at the job but aren't willing to put in the effort to prep for the interview, but that's a trade off they'll make happily if they minimize bad hires. Smaller companies with lower pay and access to fewer qualified candidates would probably be ill advised to copy the Facebooks and Googles of the world though. I'll grant that.
- spraak 9y agoThis is a great level headed summary of the whole CS degree vs craftsman argument, thank you.
- tvelichkov 9y ago>> The cost of failing to hire a good engineer is small I'm not so sure about that. https://en.wikipedia.org/wiki/Jan_Koum https://en.wikipedia.org/wiki/Jan_Koum "In September 2007 Koum and Acton left Yahoo and took a year off, traveling around South America and playing ultimate frisbee. Both applied, and failed, to work at Facebook." "On February 9, 2014 Zuckerberg asked Koum to have dinner at his home, and formally proposed Koum a deal to join the Facebook board - 10 days later Facebook announced it was acquiring WhatsApp for US$19 Billion USD."
- fencepost 9y ago> No code was being shipped but hours of meetings and Slack conversations and discussions on PR's for no good reason about 0.01% improvement gains. That may be where it makes sense to do a custom clock showing on the wall counting not minutes but the cumulative cost of the meeting. For simplicity assume everyone is making $1/minute, so a 5 person half hour meeting costs $150 just for the people in the meeting without even factoring in whether it's delaying the project. Also, "perfection is the enemy of good" (or complete).
- kurtisc 9y agoUnfortunately, ironically, that sounds like a clock that would take a long time to make.
- fencepost 9y agoI'm willing to cheat. A search on Google Play Store for "meeting cost clock" comes up with several, though the best looking from the screenshots appears to be the $1.99 Meeting Cents with almost no downloads and no updates since 2014. Several others are ad supported or low cost. Frankly it'd cost more in (billable?) time to test and select one than to buy all of them. A very simple browser based implementation is at https://www.mcgurrin.info/clock.htm https://www.mcgurrin.info/clock.htm and another is at https://tobytripp.github.io/meeting-ticker/ https://tobytripp.github.io/meeting-ticker/
- nur0n 9y agomins = 0; while(true) { wait(60); clear; print numPeople*(mins++);}. Run on a terminal hooked up to a big screen. Not exact, but it will get the point across.
- caconym_ 9y agoDepending on the domain, a lack of ability on either side of the soft/hard skills line can lead to missed opportunities to deliver a great product. If you don't have at least one or two skilled implementors on your team (or if those people are marginalized by a culture that isn't able to recognize good technical decisions), you'll be severely limited in what you're able to build, and what you can build will probably suffer in quality. There's a difference between practical technical excellence and over-the-top bikeshedding/obsession with needless optimizations.
- tekkk 9y agoThere's bad developers who know algorithms and there's bad developers who don't. But I'd say that there's more of one than the other. So companies who haven't figured out a better way to weed out candidates still insist on knowing them to write on their pretty whiteboards. I myself have already come to accept that we're all idiots and one mere human can only master a very small set of skills before already moving into retirement.
- stuaxo 9y agoI've been a developer for quite a while now, worked on all sorts of projects, including quite a few with odd / bespoke requirements. And I am terrible at technical tests in interviews. I can do the job, but unless I was to prepare for about a month I would fail, and there is no point since I can use my time for myself and still get a job somewhere else.
- deleted 9y ago[deleted]