The Junior Developer
A junior developer who said I was the smartest person in the company and frequently asked for my help once told me if someone can't transverse a binary tree and write a bubble sort they're not worth hiring. I was shocked because I can do neither of those things from memory. What happens if this person becomes a hiring manager?
The Startup CTO
A company wanted to hire me. They asked if I could write Larvarel middleware, VueJS + Typescript. I said I hadn't built anything recent in that stack, but I've built 40 apps in the last decade, so I have comparable code that shows it would be trivial for me to become proficient. If it wasn't 1-to-1 with their stack, they didn't believe I could do it.
Qualifiers
There are ways to hack around these problems (maybe a future post I should do). When people say there are lots of technical jobs, but people are not qualified, they need to re-examine their qualifiers.
Share your Story
Have you ever felt crazy because the qualifiers don't make sense? Let us hear it.
Top comments (165)
I was asked to convert from decimal to binary on a whiteboard. It's not a difficult algorithm, but it makes no sense to expect someone to have that algorithm memorized. What possible use would I or anyone else have for being able to regurgitate that during a real project?
You're not supposed to memorise that "algorithm", you're supposed to be able to solve a problem in a very familiar domain.
All that is needed to solve this problem is to know binary is base 2 and decimal is base 10
Taking both your point and OP's, I think yes, the decimal to binary conversion is a representative of the data wrangling problems developers are asked to solve all the time, but the process should include giving the specification of decimal and binary numbers, so that prior knowledge of them is not required.
I still think the decimal to binary conversion is a problematic test.
Decimal to binary is a required problem taught to Computer Science university students, but not so pervasive outside of universities. University students will likely solve it simply by memory, while other people may have to figure it out by themselves. That makes the test:
A similar data conversion task taken from the domain of the employer would give the prospect employees an idea of what the work will look like, prefer those who are more familiar with the domain, and test the problem solving skills of university students as much as those of others.
I'm worried that you think exposure to the concept of binary and decimal for people working in computer science/development is limited to those with degrees. Anyone with basic math or comp-sci knowledge should know this. If someone applying for a comp-sci/dev position managed to completely skip a pretty basic and core concept in the field I'd wonder about the quality of their knowledge and worse still if they didn't know and couldn't ask for gaps in their knowledge to be filled in on site (which would take all of 10 seconds), I'd worry that they are going to be terrible at a job that is 90% about asking questions to things we don't know.
You think that binary is beyond people without a degree but specialist domain knowledge isn't?
No, I do not think only those with degrees know of binary and decimal. I merely assert that those with degrees have a far higher chance to know of binary and decimal than those without. Please don't strengthen others' proposition unilaterally.
No, I do not think binary is not beyond people without a degree. Rather, I think domain specific knowledge is beyond both people with and without a degree. As you say the job is
Then for those with a degree you are not testing this at all, since they know binary already.
The test is supposed to -in 30 seconds- show basic coding skills. NOT test knowledge of binary.
You are focusing on the wrong thing and creating a straw man.
My focus is
So you think that is the wrong thing to focus on?
^ That is the wrong thing to focus on. Mentioning disparity between university CS and non-university CS is another level of irrelevant. I provide the test, candidate can ask "how do you do that" I say "you divide and mod the number by two, the division gives you the next step the mod gives you the first output" then they write the algorithm down in code.
Whether that problem is binary to decimal, decimal to binary, fizzbuzz or reversing a string, the thing to focus on is that it's an easy problem to explain, it's ripe for asking questions and it leads to a small amount of code that is representative of a candidates basic coding skills. What you get from that 30 second to a minutes worth of effort is:
It also has the added discussion routes of
We agree on many. We likely agree on more than you think.
But man, this whole thread started about the binary to decimal test. That's part of the topic. How can talking about the topic of the thread be "wrong"?
Thank you for the list of considerations. I like it. But let's cut it here.
I think the test is stupid. I have BS CS but I vaguely remembers how to divide and get that binary stuff. You need knowledge on how to convert it.
There are also self thought developers and this test will prove nothing.
Yeah I'm supposed to be able to solve it...with the internet or at the very least a manual or a book. I haven't had to worry about D to B conversion in years, you want me to think about it on the spot? You are out of touch with reality. Why on Earth would I want to worry about that when I could just lookup the formula online? I would have to come up with the algorithm on the spot, which is incredibly difficult to come up with, but extremely easy to just use if you know it. Like...come on, I understand the concepts, coding math algorithms has nothing to do with understanding the concepts.
Neither have I but it's such a trivial problem it's crazy that people are so against it. This would take about 30 seconds of my interview time and show me that the candidate has basic coding skills, what their foundation in CS is, how well they ask questions, if they can admit they don't know something, and most of all if they are willing to get something done in 30 seconds rather than spending 5 minutes discussing why it's not relevant.
Incredibly difficult? High schoolers could likely do this without much mental effort.
No? So if I asked you do do a temperature conversion program or a program to add 10 numbers it's not relevant? Math has nothing to do with programming...mental. If you can go two weeks in any coding job without using any math I would be dumbstruck.
You think because its easy for you then its should be easy for others. Oh my I would not like you to be my senior or my manager. ahaha
No, I think if you are applying for a software development position that you should be able to perform very basic software development tasks.
You wouldn't like me to be your senior manager because I would expect you to be able to understand a one line problem statement and creates 10 lines of code? Having been asked such a simple task and responding with personal attacks and calling things "stupid" doesn't make you seem like an ideal employee either I'm afriad.
temperature conversion? I look up the formula. Add numbers? It sounds like the only things that you are good at are being condescending and facetious. You can't however, understand what a developer job actually entails. You either have a superiority complex or a daft mind, if you were asked to whiteboard an algorithm to balance a matrix you wouldn't be able to, stop kidding yourself. Actually, I bet you would fail a decimal to binary conversion in a whiteboard interview. But you know what? We'll never know, because you, me, and literally everyone can figure it out with google in a few seconds, so why does it matter? Oh yeah, to you it matters because it's one of the few ways you can stroke up your own very large ego.
Since when did converting binary happens in software development tasks?
Maybe we dont just like each other then because I'm not an elitist when it come to my profession. I know what is needed and what is not. I just don't get why you need to go low-level when everything being done today is to make things simpler.
Elitist, low-level? Dividing by 2?
Than a program to divide by two in a loop?
Yeah so instead of having the freedom to look it up on google, I need to remember that 10 years after graduation. Its "low level". Again, when did you have that as development task. Unless you are working on "low-level" stuff, then this interview question might be valid. But for the general software developer roles where you can just look up trivial tasks, this prove nothing.
It's nice that Jose Vargas has also continued to respond called me "condescending and facetious"...
Says a contract react developer with all of 5 years in the industry to a full-stack developer of 20 years, most of which hiring successful developers.
Interesting claims from someone making ad hominem attacks in the same sentence.
...argument inflation and conjecture to win a nonsense straw man you have created...
...more ad hominem attacks...
Once again completely missed the point of the entire thing. I'll repeat it for you in the most condescending way possible; It's not about remembering an algorithm. At the interview you can ask what it is, or even Google it the task is to code it. That fact that you cannot listen and understand very simple statements is showing me why you are so against performing very simple tasks.
This pettyness needs to stop. If you are not interested in my views or my responses, stop responding to me.
Maybe because you also cant understand our argument.
It is about remembering the algorithm! Unless you would lecture your interviewee about binary numbers then let him formulate the formula from there. But you wouldnt do that in an interview. You just tell him convert binary to decimal and he should be able to KNOW it. How can you convert that if you dont event know how the base system works. Sigh
Again what does this prove? If you dont have prior knowledge you cant come up with the conversion
Read the thread before you respond please.
Good job Phillip. Now erase the board and do it again in Cobol.
Ten times programmers can do that, and even with much more complex algorithms! :-)
😂😂😂
I am only 9x .... :(
There’s nothing to memorize, it’s very basic math. Though I can imagine self-taught web/UI developers having no idea about math and doing there job just fine. So in my opinion it would be a very good thing to ask from someone applying for C/C++ job involving writing fast and efficient code, but if it’s like integrating 20 year old 5M line PHP monstrosity with Cassandra, then it’s useless indeed
I bet you're fun at parties.
On the other hand, most C/C++ developers don't spend a big part of their day writing algorithms to convert from decimal to binary and anybody can easily find the algorithm online, so I wouldn't expect even someone who's been working with embedded software in C for the past twenty years to necessarily have the algorithm memorized. I still think it's a worthless interview question.
it's not about that particular algorithm, it's about weeding out devs who cannot come up with something as basic as decimal-to-binary conversion. A former boss of mine used questions like "What year did the First World War start?" to cut, well, not enough intelligent people off - worked pretty well actually
I disagree with either of these types of questions being used to measure a person's intelligence. Lack of knowledge is not the same thing as lack of intelligence. As a thought experiment: What if Leonardo DaVinci were asked to answer either of those questions? He would not have access to our knowledge of history and most likely not the mathematical experience converting numbers to different base systems. I don't think most people would consider his contributions any less significant or that he was less intelligent because he didn't know some random tidbit of knowledge.
Why would a history quiz be on a programming job interview and be used to judge intelligence? I consider myself pretty well versed on history and I don't even know the answer to that. Why would the year Franz Ferdinand was shot be relevant at all to the job?
@phillip What makes you think Leonardo would be a good software developer? :)
@mike It was just a quick test if the person was actually learning something during his high school years. Also it was in Russia, for the US you might want to replace it with something more culturally relevant as people born/raised outside Europe are usually pretty hopeless at European history (unless there was a movie or music band)
Oof, history was never a good topic for me. That's why I got into tech and not studying history. That'd be a great way to weed me out of wanting to work for a place, asking me history questions during a technical interview. lol
Sure it's basic, but if you don't do it all the time or had to do it all the time it might not be obvious to you. I saw this a lot in college. I double majored in EE and CS so I got to see the CS stduents struggle with very basic EE stuff in some classes and EE students struggle with basic C coding as well.
As an EE major converting between binary, hex, and decimal as well as understanding things like registers, low level memory management etc was easy for me when it came up in CS classes, but it was all new or not so easy for the CS majors since it isnt something they had to deal with all the time.
I would not hire someone for a developer/engineer position if they cannot do this.
This is not supposed to be an algorithm you memorize. It's just very basic math, not even computer science. To understand how binary numbers are represented is a MUST.
People tend to see being asked to work on similar problems, or being asked how a sort algorithm works, is ILLOGICAL and BAD, while knowledge in such fundamental concepts is what differs a candidate A from B.
Anyone can learn how to USE technology X or Y, and by the time they will be experts in that specific technology, but strong fundamental knowledge goes ways beyond that. Being able to solve a problem in a technology-agnostic way is what truly matters.
I have failed this very same assignment
That's just half a dozen lines of code at most. I never wrote decimal to binary converting algorithm before but I can fart one up in a few seconds, it's something like:
and the 2 can be replaced with any integer value to give the base-n expansion for any number for any base. If you have trouble figuring out how to generate the binary expansion of a number then don't worry, you're not alone: you're like 90% of coders and most hiring managers don't know the difference. Just memorize a bunch of random algorithms and hope that one of them turns out to be the one the interviewer asks you to regurgitate.
isn't this just basic math? 2^N?
I wrote a code for all base to all bases converting but negetive bases with fractions and i know Bubble sort, so Im worsy?
Worth noting sometimes hiring people are HR and have little to no knowledge about what they need. There was a post where Swift was only 3 years old and someone made a job post and required 7 years of experience with swift. I usually avoid companies like that and advise others to do the same. One problem is I hate companies that use buzz words to sell to client and most of what they do is lying... We should avoid those companies and try to offer better experience to our customers before it's too late and we ruin the industry
True, most of the times he departments have no idea how to properly hire developers because they have absolutely no idea of what developers do, know or should. Focusing on keywords and trends saves HR from the hassle and there are not enough metrics to judge the success rate of this kind of filtering I guess. I guess having developers hire developers would be the correct course of action in any small to medium sized company.
Just my thoughts though.
Here in Chile head hunters are bananas, their entire job could be replaced by a checklist form. The usual interview goes like this:
Do you know A pattern?
Do you know B pattern?
... Z pattern?
And then comes dependencies
Do you know A library?
And so on and on.
And it is absolutely bullocks. You are hiring a jr? Ask about arch pattern, that is ok, but if the company cant provide training! That is a red flag.
You are hiring a senior? Then why even ask about architecture patterns that is literally the job of a senior, there are houndreds of architecture if you are senior you know 1 then you can learn any other.
And the dependencies things, pure BS, it is a library, it has doc! Either train your hires or allow then time to learn.
The perfect fit is the equivalent of a fairy tale, and then they hire and live happily ever after. I rather real work software with problems and team to help.
I laughed so hard reading that
Haha yes it's brilliant ... and of course this is not just the case in Chile, this is true in about every country all over the world. And the sad thing is that companies looking to hire devs are wasting tons of money on the "services" of these recruiters.
It is complicated to have devs hiering devs in larger companies. But dependent on a team that needs a helping hand it could be easily done. Write what kind of project is it and what kind of dev is needed than let the lead developer or someone capable enough do the short tech interview to check is someone a good fit and also let then check the CV. If you need a senior java dev just to keep on working with new features you could decide to hire c# senior of 5 years of experience because it's an easy switch. Now if you need performance related stuff you would probably go with someone that did actually java and not other languages. This should usually be discussed with managers and the devs involved not just upper layer
This is great advice.
I hope Devs interview, HR's Follow their own algorithm, if you are an else, have a nice day sir.
Nice way to put it
Exactly, I read somewhere that they need a jr developer with the experience of a senior developer and with the salary expectation of an intern.
My previous job said mobile interface developer, with experience in Angular, TypeScript and Ionic, thinking I was going to work on mobile-first web or hybrid mobile projects.
HR: Do you know bootstrap?
😐
HR: Have you worked with CSS3?
🤔
HR: Congrats, you have been employed as mobile interface developer.
What I do at work is building Android apps using native env. (Kotlin & Java). I dropped this job for good.
At least I had a laugh
HR's obviously should not be conducting technical interviews
I once had to explain to a recruiter for a front-end position what was front end, what was react, what was javascript and how do they relate to each other.
Something similar happened to me a few weeks back. I had to rate myself in Java to a recruiter for a frontend developer position. I really had a hard time to stop myself from laughing my arms off! :-D
Feel you bro
I don't understand the expectation to write on the whiteboard in interviews. I think managers need to understand that the biggest thing to look for in developers to hire is their interest to learn and how they work with others. These 2 factors alone express what a candidate is capable of.
I also wince whenever a company mentions how strongly they value "a very active and healthy GitHub profile" (took this from a job position) when considering a developer. I for one struggled between coding at my last job and the expectation to have all these side projects to show on the side. If someone with that mindset were to see my profile at one point, they would've just made an assumption that I wasn't what they were looking for and dismiss me immediately.
I totally get that. It's as if having a job in tech, and tons of experience isn't enough - you HAVE to have dozens of side projects and contributions to open source. Kind of scary for someone who is good at their job, but doesn't want to do this every waking moment.
I've met some ppl who could code really well, but I would never want to be on a team with them (snarky lone wolves).
This is literally me. I hate taking on side projects because I have a full-time job and I want to focus on it. It increases my productivity.
What if I leave my current job and apply for somewhere else and they don't pick me because I don't have a lot of "projects"
I think my current hiring manager was impressed with my YT channel, I have 13 videos on tuts and how-tos dating back to 2015 with over 100k views... I had only internship at my previous job and I was given a fulltime role at my current job... I think hiring managers need to know more of the position.
Good thing I am nearing retirement. I'd never actually use GitHub or contribute to open source. Is that controversial? =P
Just made me think of John Carmack using floppies as their "shared repository" for Doom or something
Thats actually the craziest thing about working in our field. You're expected to work on code 9-5 as well as going home and doing more coding. Its like your job is meant to be your hobby, your life. You're effectively meant to increase your value as an employee in your own time without being paid for it.
This 💩-vision also prevents developers having side projects like building a tree house or making music, which, I think, is more healthy and keeps you refreshed (Unless your biggest hobby is your project on Github).
I would only require a fresh graduate, or a long time not-working developer having personal coding projects. Otherwise I don't find it healthy.
Yes! I have soooo many more hobbies outside from coding that it's such a struggle sometimes, especially since I'm looking for work now. 😓
Good luck with your search.
Thanks, Guney. 😄
Some of us get involved with our jobs more than just "9-to-5" kind of thing. For example, after I started my current job, for about 3 years I was "working" over 12 hours a day. It wasn't requested by the company, but after the 8 hours I would stay in the office with a few collegs, open a beer and discuss for hours our product, changes, impact and so on.
I even went on to restructure the entire operational team, even tho it wasn't part of my job and I wasn't even paid for it.
After those 3 years, any sane human asking to look at my GH profile or any other profile is just crazy. Why would I go home after 8 hours to work on small projects when I could make a real impact at the company I work and I believe in? If that's what they are looking for, I'm pretty sure I'm not a good fit.
I've had that happen to me before.
Anyone heard of Revature? I applied to their Jr. Developer position and a recruiter called me within 2 days. They were impressed with my portfolio for someone who was semi-new to programming. They straight up ended the conversation when I clarified I didn't have a 4-year college degree. They told me that was literally the only requirement for the job. They were willing to train. Their exact words were, "If you had just a degree in, let's say, English, it doesn't really matter, we would hire you right away. Unfortunately, without the degree, we can't go forward with you". My work in Python, CSS, HTML, and JavaScript meant less to them than a Bachelor's of Arts degree with no technical skills. I was heated to say the least.
Revature is a HUGE red flag. Be glad you had not done it.
I certainly am now.
Same thing happened to me with them. I've been in the industry for over 10 years and was relatively over-qualified for the position they were hiring for (I just wanted to work in a small town and they were the only tech company there). Revature is a joke company. You dodged a HUGE bullet.
This is a problem myself and I know many others.
10+ years experience but the small-town companies are so far removed from the tech industry latest standards they can't even recognize that you're high-quality talent.
The only way I'll be able to work in small-town with high salaries is running my own company and in honest it will be my employees who will get that benefit not me.
Thank you. I thought I was crazy for a while. They make it seem so nice but, I'm glad to know it was a blessing in disguise.
I wish I could interview more folks with no degrees. All they have to tell me is that the degree was not worth the overinflated cost and then drop a massive portfolio on me. Ahh dreams...
Any here ever interview someone without a degree?
I'm a sec without a degree of any sort. I've been doing IT for the past ten years without so much as a cert. Why pay someone an absurd amount of money to teach me something I can reach myself. But employers don't seem to think it's the same technology or something...
I was the same for a long time. Most of their little songs and dances are not worth the time.
Almost as bad, in my opinion, is when organizations recognize the tendency to focus on keywords, and they proceed to use all of them. You see postings like "Must be proficient in at least one major language: Java, C#, Python, Ruby, Go, PHP...At least one front end framework: Angular, React, Vue, Aurelia...At least one cloud platform: Azure, AWS, GCP... There might also be clouds of other keywords that I've rarely bothered to read in detail, because most of the time they're minor details at best.
I can possibly see a couple of reasons for this. First, they want to find somebody who can become proficient at whatever is needed (like your example), and they want to show up in keyword searches. Or, they really do have that kind of stack, which could be frightening, but might be ok if it's a consultancy.
One thing that helps when I'm reading a job posting, is to follow the list with something like "we use AWS, we use Go, we use Vue. As an applicant, this helps me to understand your stack. Then I can move on if I'm looking for something else. Or, I can choose to study up if I like the organization.
It seems to me as if there are so many applicants that some companies are willing to brutally filter out people based on arbitrary keyword matching just so they can get the list to a manageable level. The result is people who are just as good at gaming the system, but might not be as good a fit as people who were filtered out.
My company's job postings include the requirement of being proficient in any major framework. (React, Angular, Vue) even though we use Angular primarily. We do this because we look for good talent and our okay investing in educating someone with potential on the ins and outs of a certain framework. In fact most of our developers came from a react background. (including me)
As long as that intent is clearly communicated in your postings. Otherwise, I feel like I still want to see specifics of what I'd actually be asked to use. It helps juniors decide where to specialize, and it gives established folks the flexibility to be more picky. If the company was awesome, I'd be willing to go for it if I didn't know a particular framework. I'd like the opportunity to address that in my cover letter and in my early conversations.
EDIT: A short anecdote... Last year, we interviewed two people for one position. One person had a veritable 💩-storm of keywords in their resume. The second person had a more focused resume. The boss ended up hiring the first person because they theoretically ticked more boxes. The resulting 💩-storm caught the boss completely off guard.
I believe I'm working with that 💩-storm at the moment...
I know one 💩-storm, he feels bossy about one framework and thinks it will work for all without looking at the cons
I see adverts saying things like "We'll take people with no experience in foo, as long as they can show experience in bar" followed by a tech test that must be done in foo.
Why waste people's time???
I agree that that is a really bad practice on those companylies' parts. My company does have a coding challenge, but we let people use whatever framework they are comfortable with. (We have gotten some and passed candidates with coding challenges in all major frameworks)
I think the primary framework is important to state. I'm starting to see job postings that list almost every technology under the sun or none at all (in a way to be inclusive), but in reality, they make deciding to apply or not confusing, espically, if you ideally want to go to a place that uses a modern component based framework (React, Angular, etc).
For example when places list both jQuery and React.
I understand why some companies ask for jQuery and React because our company is working on the project updateting clients' projects from jQuery to React. In order to do that you have to understand both libraries very well.
hmm, yah that's totally fine. In fact, my past job, I did that (upgraded older apps) - so I think it was my fault I wasn't clear in my example.
My main point of issue is when organizations are not up front about the 'primary' technology when they list dozens of wildly different stacks to for the sake 'inclusiveness'.
IE if a dev wanted react knowledge but ended up working on jquery their whole time, they would probably not be to happy.
This fits their mindset they rather have you arrive with a vague sense of what they actually require.
At my company, the exec in charge of our software regularly says: "I don't want to pay someone to learn", then asks for something that doesn't exist, or for us to use some technology no one has ever used previously. I haven't decided if he doesn't think about what he's saying, knows what he's saying but is fine being contradictory if it suits him for the moment or to make a point, or is maybe just a bit dense.
It's like this everywhere. I think software on some levels is fundamentally broken. It's at the center of most tech, which is an area of business that sees continuous innovation, yet we still see job postings listing a laundry list of skills that match the company's entire stack, none of which everyone at the company understands entirely. It's just a farse. No one really knows what they're doing I don't think.
Ability and motivation to learn is one of the most important thing I look for in a dev. I don't care if you can write a bubble sort. I care if you can dive into my existing code base, understand it, and make positive contributions.
I pay people to learn every day. What I don't want to do is pay people to NOT learn.
Yep, and I bet your software team appreciates it and does a good job because of your approach.
I love this. I have when I hear,"oh we want someone with x years using this language." That says to me that you're stupid because any dev knows that you can pick up another language. It's the concepts.. The reasons behind doing things a certain way.. Not syntax. And don't ask me to do something you don't do regularly it haven't done in a while just to try and trip me up. Furthermore, no coder codes completely from memory. WE ALL USE GOOGLE! So if I can't solve the problem like I would in the real world, don't ask me. What really gets me is the frameworks. Any developer with a solid understanding of JavaScript should be able to move between angular,Vue,and react. These are all just wrappers that abstract away a lot of common tasks. But again it's the concepts and what's going on in the background... How data is sent, processed, and stored, protocols etc, These things never change
My company encourage us to learn and to educate teammate. I love it because I am learning some thing new every and will to transfer my knowledge to other teammates. They also move us to different teams for us to learn different stacks what ever each team is using. I think it is a great idea an positive outcome.
You're right with the "noone knows what they're doing" part
I became a freelancer qualifier after suffering that madness. I realized how many good engineers where dismissed for no good reason on interviews. First thing I told my customers is: let's stick to real coding! (Aka no binary trees crap) and second: framework agnostic technical challenges.
You're totally right with this post and I see it's an international thing, because it's happened to me already (like not knowing enough React, in their freaking opinion). I am in Spain, I wonder if it happens globally but it needs to stop. A good developer isn't the person who knows exactly xyz stack, but the person who can quickly get up to speed with that stack and any other in the future. Plus all the project experience, people skills and so on. Engineers should not do HR stuff, tunnel vision and opinionated egos don't make good qualifiers.
This is so true. Not just for the big players in the house either; small-ish companies somehow got it in their head that for a dev to be worth a damn, they must know RoR, Python, PHP, React, Vue, AND Angular. It so frustrating when searching for a job and literally a dozen emails come through with “You’re a great match” sentiments. When I get to the HackerRank portion of the interview process, I feel inadequate because I don’t have all of the skills of the Unicorn Dev they are seeking. References and proven track records are meaningless. It’s driving good, experienced people out of the industry.
I had one a few months ago: You are not worth hiring because you wrote something in one line what would take ten lines - although it works.
TL;DR: Write code for humans more so than computers.
There is a legitimate concern there though. Code that can be done in one line is neat, but in the long run, the more cognitive load your code requires to grok, the more expensive it is to the project and the team. I don't remember the exact figure, but something like at least 75% of a dev's time is spent reading code. Therefore, every developer should endeavor to make that large portion of time more productive.
I can understand all the need for writing descriptive code, but these days fluent code writing is so ubiquitous that every library provides it. Even test case writing is being redesigned to be written in Fluent style. So when someone asks me to sum all odd numbers, why would I write a long, lengthy loop instead of a single line that is elegant, readable and fluent?
Stephen Grider mentioned "avoid fancy methods in interviews because the questions are intended to be an interactive thought process exercise." Write the long answer and then ask to refactor.
I had an interview with a small startup based in Michigan. The role was of C#/.NET Developer. The guy who interviewed me was the C.E.O. The first question he asked me was to implement an AVL tree from scratch. And I had no idea what to do at that time. I felt so bad that I was a computer science graduate from college and I couldn't solve the question. I just tried to explain to him that I studied AVL trees like 2-3 years ago and I didn't expect this question to be asked in the interview. The guy insulted me and told me that you need to practice a lot and be good at data structures and algorithms. And then he said that "Sorry, I cannot go further with the interview". I felt so miserable at that point and I was not able to sleep that night.
This could be a good as a stand-alone post on its own. Consider publishing.
Good idea...
dev.to/derekanderson/the-ideal-dev... (edited)
Engineers have self-focused mind. They are looking for people that are similar to them. If recently they needed to implement something hard, they will use that for their next interview.
That's actually very true.
The concern is that you really need different people on a team, not just ten of the same :D
Agreed. There is not one solution, so your not hiring "you".
Having diversity in work education and experience creates the opportunities for more and better solutions!
I agree that these qualifiers are absurd and dangerous. I won't allow any such in my own company's hiring practices.
When I encounter these I am interviewed, I have an answer ready, however...
Thanks for this
If I ask an applicant to solve a problem I'm more interested in their though process than the answer. As for language knowledge, does it matter if a Java dev applicant doesn't know what type erasure is? Nope. Does it matter if they don't know what static means? Hell yes! Understanding is more important than memory.
I was asked to mutate an
Array
prototype. When I said that this is extremely bad practice and shouldn't be done, I was told that this is really "lame excuse for lack of knowledge". Oh yeah, it was a JS lead position.Some comments may only be visible to logged-in visitors. Sign in to view all comments.