|
I guess, it depends on the budget, your (team) willingness to train/educate them and productivity start time expectation.
Budget:
If you get B, a already productive developer, he might be more expensive.
If you get A, might be less investment, just your time investment to get him where you need.
Time:
Sometimes, there is no time for training and B could become even more productive to your expectation if he is guided with a senior developer.
If I REALLY liked both of them, I would get both of them and pair them so they work together and train them and make them sweating blood while they are coding
One of them might leave, but you would have a backup or you would split & promote both of them eventually.
Good Luck
|
|
|
|
|
I have been responsible as a software engineer to make many hiring recommendations.
I always go with the person who demonstrates outside interests in extending their abilities by doing their own development projects.
In this case however, the description of Candidate B shows symptoms of being a "prima-donna", which could be very disruptive over all.
If the position requires someone who can teach and mentor other developers than Candidate A would also not fit your requirements, though he or she may be the better fit in terms of personality in your organization.
As a result, both of your candidates have potential negatives against their hiring and both are equal in terms of the negatives.
You can do one of two things here...
1) Interview several more candidates to either get a better fit or determine if the current two warrant further investment of consideration.
2) If you want to make a choice between your current candidates than follow my suggestions below
which I have used for a 100% success rate during my own interviewing experiences.
A) Develop a basic, oral, technical exam that has questions based upon the minimal
requirements of the position as well as your minimal, overall, technical requirements.
The idea is not to always get the correct answer but to see how each candidate answers
each question. If candidate A answers less questions correctly but providers a much
better response in handling him or herself this will indicate a personality that is
more adept at handling difficult issues. If candidate B answers the same questions
more correctly and well than you also have to understand this more experienced
candidate's capabilities. Are they just good at taking oral exams or do the responses
sound as if the person feels comfortable with the questions due to an interest in the
profession.
B) Prior to the oral exam, ensure that you make each candidate feel as comfortable as
possible within the interview environment. Open up the session by getting the
candidate to talk about themselves by trying to see if both can find some common
ground such as a shared interest. The idea here is to go against the common practice
of attempting to intimidate candidates thinking this is the best way to see how they
react under stress. This is a fool's way of interviewing prospective personnel and
only demonstrates a company that has no caring for the person itself. Such interviews
are more in line with military-style interrogations than anything close to a session
where a need for an understanding of the person in front of you is critical.
C) If after you have given a candidate the oral examination you feel that he or she has
answered well, has felt comfortable with the questioning, and has answered your
minimum required questions correctly change back to a longer discussion about the
candidate themselves. Find out if they like software development enough to do it on
the side and if so what projects they enjoy working on. Ask what type of equipment
they have for their personnel development projects. Ask what other interests they
have, which can be a key factor for a good employee. For example if a candidate
enjoys reading about the sciences, though this may sound great up front it can also
indicate a person with a very clinical personality, which often does not mesh well
with a team. If he or she likes to read science-fiction this could indicate a person
with imagination. If history, this could indicate a candidate who enjoys research.
Both of these traits could do very well for you since both would bring to the table an
enthusiasm to get the job done.
The idea behind such an interview style is to get as complete an understanding of the person before you in an interview. And do this by not making them feel threatened but by getting them to open up to you honestly and fairly. By doing this you yourself will get a feeling of who you would be more comfortable working with. You may find that candidate A in your situation may be the better team member than the self-taught developer. However, my experience it is that self-taught professionals are far superior in many cases over the university trained person since they have real world development skills and personalities to match.
Two last suggestions. Women are not that inclined these days to enter the computer profession simply because the nature of the field has encouraged them to ignore it as a potential career path.
If you interview a women of any age, ensure that when she enters the room you stand up as a sign of courtesy and respect. Then ask if you could get her some coffee or water. Never address a lady by her first name simply because this is what young people may do or it is the style today. Ladies today still respect traditional courtesies afforded them even if they are slightly surprised by it.
For a male candidate do not try to get overly "chummy" with them, no matter the rapport you may develop. This will only appear suspicious to many, even to men within the same culture. Be professional, friendly, and above all courteous.
If you have any further questions on interviewing techniques, you may contact me at my business email below...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
support@blackfalconsoftware.com
|
|
|
|
|
B will tend to stick around longer ... because he has no degree.
|
|
|
|
|
Obviously, the one without the degree.
Requires less investment in the short term, is immediatly productive and - because he has no degree - you get away with paying him less.
|
|
|
|
|
Depends upon whether I'm going to be hiring a junior or senior dev and you don't specify. You don't really say what kind of role the candidate would be going into. e.g. support, green-field development.
I'd be more inclined to hire developer B because of more experience, but experience doesn't mean as much as people make out when technologies keep changing every 5-10 years.
Consider, every software development team has its own 'culture'. That is to say, their own way of deployment, monitoring and managing faults, source control, standard coding habits etc.
Define what your own culture is and interview both against that criteria. That might be more informative than interviewing against qualifications or any other types of arbitrary indicators you've dug up off the internet.
|
|
|
|
|
Well, since you quite obviously WANT me to say B, I'll say B. Happy?
Now, let's see if we can make this a bit fairer...
- Does Candidate A also know "knows all of the sorts, trees, and hashes and answer all of your questions quickly under pressure."
- Does he also "write extremely clean and readable code, follows SOLID principles, write great unit tests and has good knowledge of Dev-Ops things."
Truth,
James
|
|
|
|
|
It has been quite unarguably revealed to me that my windows tablet cannot survive a fall of 750cm, if bouncing screen-first off a hotel central-heating radiator on the way down.
Points to consider:
1. It's &%$#@!* winio, which drives me up the &%$#@!* wall, it's so bad.
2. It could run programs developed for windows, and those are way more important than the operating system -- I don't buy machines because I want windows; I buy them because I want the programs that non-OS developers have written (who the Hell spends any time doing anything with an operating system?)
(Oh. Sorry. That's a stupid question, really; the response being: Anyone who's installed any windows version higher than weven spends a huge amount of time having to do stuff with the operating system, because that was the penultimate phase in the win-OS evolution, after which the operating system became more important than users and what users need).
3. It's &%$#@!* winio, which drives me up the &%$#@!* wall, it's so bad.
4. I haven't connected to my network back-uppy stuff since Sunday, and everything since then will take a Hell of a lot of effort to recover.
5. It's &%$#@!* winio, which drives me up the &%$#@!* wall, it's so bad.
6. It's &%$#@!* winio, which drives me up the &%$#@!* wall, it's so bad.
7. It's &%$#@!* winio, which drives me up the &%$#@!* wall, it's so bad.
8. Now I have to look for a new tablet (preferably one that will let me choose which OS to install).
9. It's &%$#@!* winio, which drives me up the &%$#@!* wall, it's so bad.
Hmm. I'm glad I vented. It's made things very clear.
It's time to celebrate!!!
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
have you tried one of these
Mark_Wallace wrote: &%$#@!* winio
I hear its getting a bit of press lately...
|
|
|
|
|
I'm still trying to see the correlation between winio (I presume this is windows 10) and bouncing the poor bloody thing off a radiator.
Blaming the OS because the screen broke when you dropped the tablet seems a bit of a stretch to me.
I would refrain from chucking the tablet around when you get you new android tablet, try a samsung it will keep you lap/hands warm in those cold winter evenings.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
It's a pros and cons thing.
i.e. I now don't have a tablet that runs programs built to run on windows, which is nice to have -- but, on the plus side, I now don't have a machine that runs &%$#@!* winio.
The pro far outweighs the cons. I should have thrown the bloody thing off a cliff a year ago.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Mark_Wallace wrote: my windows tablet cannot survive a fall of 750cm
You mean you dropped it from a height of ~2.5 floors (stories, for USians)?
Very few consumer electronic devices could survive that!
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack.
--Winston Churchill
|
|
|
|
|
Whoa! You guys really Don't know metric!
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
750cm = 7.5m = ~8.2 yards. Given a height of ~3m per floor, that would give the 2.5 floors that I mentioned.
Perhaps you meant 75cm = ~29.5 inches?
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack.
--Winston Churchill
|
|
|
|
|
Daniel Pfeffer wrote: Perhaps you meant 75cm Whoa! Us guys really don't know metric
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
You're a hiring manager. You are responsible for picking a candidate who will be in a long-term position with the company and who you know you will be able to mold/teach. Both candidates are friendly and willing to learn. But there's a slight challenge.
Candidate A writes extremely clean and readable code, follows SOLID principles, writes great unit tests, and overall has the software engineering side of things down, but he knows nothing about algorithms or data structures aside from just using what is provided in the standard libraries.
Candidate B knows all of the sorts, trees, and hashes like the back of his hand and is able to whiteboard them out no problem and answer all of your questions quickly under pressure. However, Candidate B has no experience with object-oriented design, SOLID principles, has a few demo apps which are only procedural in nature, and has never written a unit test in his/her life.
Both candidates are friendly and both seem like they have potential to learn.
Your firm uses object-oriented programming in either C# or Java and produces applications that must meet a efficiency standard and also meet OOP design guidelines.
Who do you hire and why?
|
|
|
|
|
Well what's the rest of the team like? Do we already have a "data structures and algorithms"-guy in this hypothetical sitation? If not, no amount of clean code is going to make the hypothetical application non-sh*t.
|
|
|
|
|
Also conversely, no amount of efficient algorithms and data structures is going to make that spaghetti code testable and maintainable in the future but clean code can allow replacement of algorithms or data structures with little effort
|
|
|
|
|
Sure. But it's just one guy, it's not like the entire code base is going to be spaghetti just because he's touching it. You can fix his style now, or you can fix his badly performing code now. Or later, but let's do it now. Which one you can actually do depends on the rest of the team.
|
|
|
|
|
True true. I'm just playing devil's advocate. Personally I think it would be rare to find two people with such a dichotomy in skill set. Having recently read Clean Code there was a real-life example of some spaghetti code that ended up effectively corrupting the entire code-base because people didn't have time or will to fix it.
But it also depends on what the product is. If the entire product and architecture depend on an algorithm then obviously the metrics change. A bad algorithm would be equivalent or worse to spaghetti code.
|
|
|
|
|
Clear code, readable and solid (not SOLID) code is very important.
I'd rather be phishing!
|
|
|
|
|
Since it is a long-term position, rather than a short-term or consultant position, I would choose the candidate that would be the best fit long-term. Not every candidate will know everything, if they did, then they'd probably get bored or want a raise and leave. To be the best long-term, I'd think they'd need to show a history of following through on their goals. Candidate A most likely does not have a B.S. programming degree as he/she does not know anything about algorithms and data structures. Candidate B obviously does and was on a learning path prepared from a university, rather than self study.
The 2 candidates both have a place in the industry, but my pick would be Candidate B, because he/she has proven themselves they follow through with their goals and obviously learned something and will continue to learn in the future. Also, I'd choose a candidate from an average to hard program as they have proven problem solving skills; which is what we do.
|
|
|
|
|
B.S. programming degrees vary a lot according to university, region etc...
Today there are many universities that tell all about OOP, SOLID principles etc and yet the teachers themselves don't know much about algorithms... so you cant assume one is self-taught and the other isn't.
|
|
|
|
|
I would take B. As you need efficiency, it may not be enough to use the common algorithms so he will help you there. As for the OO/SOLID/Unit test things - those are easy (relatively) to learn, while learning the secrets of algorithms can be more complicated and may need some affinity+. Be straight and tell him all your concerns and learn what he have to tell about, if he is convincingly ready to learn you probably have the winning hand...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Neither, because they are both figments of your imagination. If you ever do have the good fortune to meet such people in the future ensure that you breed with them.
|
|
|
|
|
I'm sorry but you aren't the right candidate at this time but would you care for a marriage with my daughter instead?
|
|
|
|
|