|Join Nairaland / Login / Trending / Recent / New|
Stats: 1063377 members, 1237095 topics. Date: Saturday, 25 May 2013 at 10:13 AM
|Testing Programmers: Puzzles Or Web Applications? by Seun(m): 6:57pm On Apr 04, 2012|
As you know, I like to sponsor web application programming contests, for example, this, this, and this
In a recent conversation with an Android programmer, he asked why I don't follow Google's practice of asking people to solve puzzles. According to him, people who can solve programming puzzles can definitely build webapps, but many people who build webapps can't solve programming puzzles. I asked why these programming puzzle solving geniuses can't learn Python to write simple webapps for cash, and I think he said it's because basic webapps are not cool enough to interest them.
What do you think? If interviewing a programmer for a role on your team, would you ask the programmer to solve programming puzzles or would you ask them to develop something simple but complete like a mini-webapp? Which approach will result in the best hire?
|Re: Testing Programmers: Puzzles Or Web Applications? by Afam4eva(m): 6:59pm On Apr 04, 2012|
Some people know how to create some specific applications because they've mastered them but they don't understand the logic behind those applications. So, i think asking someone to solve a puzzle helps more because knowing the logic in bits helps in developing the full application. I hope i'm making sense.
|This post has been hidden|
|Re: Testing Programmers: Puzzles Or Web Applications? by ekt_bear: 7:23pm On Apr 04, 2012|
A lot of companies these days ask puzzle questions. And I guess by "these days", I should probably say since at least 2000.
He is correct that people who can solve puzzles are bright enough to figure out how to design webapps.
The puzzle folk can learn python to write webapps for cash. But the money has to be high enough, otherwise there is no incentive (since there are other profitable things you can do with your time if you are a good programmer.)
|Re: Testing Programmers: Puzzles Or Web Applications? by Dual Core: 7:32pm On Apr 04, 2012|
If John can solve difficult programming puzzles then John can learn whatever is needed for the job if he doesn't already know it.
|Re: Testing Programmers: Puzzles Or Web Applications? by whoelse(m): 7:54pm On Apr 04, 2012|
Its much easier, and IMHO, much more efficient to evaluate based on puzzles than mini web apps cos
when evaluating people, its not about getting or not getting it right, but its more about the thought process.
Puzzles can also be more targeted and direct as to what you want to achieve.
Besides, lets not forget the part that many programmers detest building web apps.
For me, I'll definitely swing the puzzle path.
|Re: Testing Programmers: Puzzles Or Web Applications? by techytom(m): 8:00pm On Apr 04, 2012|
If I want to employ a programmer, the first thing I'll check is experience, not job experience but the candidates programming experience. I want to be sure the programmer can do what he says he can do. So I'll keep him as comfortable as possible and the results of him talking about his skills and past experience helps me bring up a test for him. I'll then judge based on problem solving approach, code/software practices, if he's a programmer(neatness of code), software engineering(approach to information gathering). I don't want to be one of the folks that put programming and software engineering as the same so, I'll watch out for architects and black screen coders...
|Re: Testing Programmers: Puzzles Or Web Applications? by Fayimora(m): 8:10pm On Apr 04, 2012|
It is quite simple! IF you want a web developer then any candidate should be able to develop a small app in record time. However, if you want a programmer, then personally, I think puzzles are they way to go. By puzzles I mean problems that would require knowledge of Advanced Data Structures and Secondary algorithms. To spice it up, some analytical test would come in handy.
Goldman Sachs for instance doesn't even give a programming test. They just give you a very ambiguous analytical problem(spec 1 page long) and you are expected to talk them through how you would solve them problem. These problems never have 'answers'. Every answer you provide has serious implications..lol
Just as a side note, my above opinions would be beneficial if you realise that you would't always employ the best!
|Re: Testing Programmers: Puzzles Or Web Applications? by Kobojunkie: 8:31pm On Apr 04, 2012|
Dual Core: If John can solve difficult programming puzzles then John can learn whatever is needed for the job if he doesn't already know it.
Wrong!! I know first hand that is not the case.
Programmers who are well versed in logic and algorithm analysis skills are not necessarily the best programmers, and are certainly not all able to learn all that is necessary to get the job done. Many of 'em are simply very good at handling those quick task, such designing solutions for complex problems. However, when it comes to sitting down to code websites which require commitment and long hours, tackling the many, for lack of a better phrase, 'mundane tasks' that many so-so programmers are used to, they find it hard to deal.
Companies that majorly suggest puzzle solving are companies that are looking for people who are able to provide quick solutions/patches needed for mainly complex applications, not your run of the mill website project.
Web Developers don't really require puzzle solving skills. . . . I mean 70% of the times, once you have coded one website, you can code em all.It would be great if you could find someone who has ability to solve puzzles but also settle for the typical tasks.
Some of my colleagues are very good puzzle solvers . . . . but when it comes to coding your typical application, I would rate many of them a 4 out of 10. One seems to have answers for most every situation but has a hard time sitting down to actually code up the very same solutions, yet he is a brilliant dude.
|This post has been hidden|
|Re: Testing Programmers: Puzzles Or Web Applications? by Wallie(m): 9:48pm On Apr 04, 2012|
I agree because you can teach a “monkey” to write correct syntax (no disrespect intended), which is why there are automated code writers, albeit inefficient!
Speaking of puzzles and brain teasers...
What is the number that is 5 times the sum of its digits?
|Re: Testing Programmers: Puzzles Or Web Applications? by Beaf: 10:44pm On Apr 04, 2012|
Gimme di job!
Puzzles are the way to go. Except for mundane stuff, juggling code is for smart folk.
You have to target the puzzles correctly though. Ideally, you would mix basic math, abstract puzzles and real on the job tricky stuff (eg how to approach building a truly generic data layer).
|Re: Testing Programmers: Puzzles Or Web Applications? by Fayimora(m): 11:02pm On Apr 04, 2012|
lol @Beaf One answer is 45! I wrote a small paper on this.
|Re: Testing Programmers: Puzzles Or Web Applications? by okeyxyz(m): 11:03pm On Apr 04, 2012|
GBAM!!! on spot!
|Re: Testing Programmers: Puzzles Or Web Applications? by okeyxyz(m): 11:07pm On Apr 04, 2012|
the number is 5.
|Re: Testing Programmers: Puzzles Or Web Applications? by Beaf: 11:46pm On Apr 04, 2012|
Fayimora: lol @Beaf One answer is 45! I wrote a small paper on this.
I didn't read the puzzle properly. Mo ti ku!
|Re: Testing Programmers: Puzzles Or Web Applications? by Seun(m): 1:16am On Apr 05, 2012|
@Fayimora: Thanks. Isn't a web developer a type of programmer, though?
|Re: Testing Programmers: Puzzles Or Web Applications? by delomos: 3:43am On Apr 05, 2012|
techytom: If I want to employ a programmer, the first thing I'll check is experience, not job experience but the candidates programming experience. I want to be sure the programmer can do what he says he can do. So I'll keep him as comfortable as possible and the results of him talking about his skills and past experience helps me bring up a test for him. I'll then judge based on problem solving approach, code/software practices, if he's a programmer(neatness of code), software engineering(approach to information gathering). I don't want to be one of the folks that put programming and software engineering as the same so, I'll watch out for architects and black screen coders...^^^ Much respect, this nails it.
Our process of getting engineers is deceptively simple (or @ least the ones I've being through), it's starts with one simple question (after all the regular generics have been asked over the phone, things like how does MVC Differ HMVC, or what is OO, or what does X pattern solve well, explain B-tree, blah, blah...):
Given X problem, how would you approach it (X being a problem the team is currently working on and as pointed by @techytom the process is a lot more important than the answer), from there it proceeds to other question off that, things like why this, not that -- that generally tests many skills at once. Per my ogas, it's a waste of time bringing an engineer in for interview and asking them to "code".
Oh and one caveat, they're asked "no code please", so it proceeds like the attachment below ( which was ironically from today >.< )
|Re: Testing Programmers: Puzzles Or Web Applications? by Fayimora(m): 5:49am On Apr 05, 2012|
Seun: @Fayimora: Thanks. Isn't a web developer a type of programmer, though?In a logical sense, yes! However, we must respect the fact that a web developer would not spend time analysing a project as that is the job of an analyst. Also, a web developer would not be expected to always solve problems using Advanced Algorithms and stuff like that. That is something a programmer would be interested in. I think we are just twisting words here tho. Its always best to pick what you need. Trying to pick the best could get you in trouble. However, having one that those any 2 is a plus! Imagine having a web developer that loves algorithms and has very strong analytical skills and of course is good with web programming. HEAVEN!
@delomos @techytom you can't pick a good programmer based on what he or she has done. You are better off using School projects or ACTUAL work experience. Reason is that, as a programmer, you have a lot of time to build your own software! No deadline, no criteria, no limited specs as you just add to your project what you feel like and so on. Does that really define your software developer? One thing I also think is lame is asking developers stuff like "what is a framework?", "describe the MVC architecture" and so on. How about you give him/her an exercise that clearly requires what you wanna ask and see how he solves it?
It really all boils down to:
-> Make them analyse a problem and solve it abstractly
-> Make them solve an actual problem by coding it.
-> Make sure they talk you through their thinking process as they solve whatsoever.
-> Do they fit into the community?? [optional] <= dont know how relevant this is so wont say anything
Truth be told, all you really need is someone that gets the job done!
|Re: Testing Programmers: Puzzles Or Web Applications? by coderXO(m): 9:40am On Apr 05, 2012|
I don't think one's puzzle-solving abilities help much considering real-life
application programming (for the most part) requires nothing but good logic and simple algebra.
Model web apps in line with what you are trying to develop I think serves you better.
|Re: Testing Programmers: Puzzles Or Web Applications? by jeebz: 10:07am On Apr 05, 2012|
Programming tests are relative i.e depending on the role and the company software product.
|This post has been hidden|
|Re: Testing Programmers: Puzzles Or Web Applications? by delomos: 4:42pm On Apr 05, 2012|
@Fayimora: you made several claims that brought you to an interesting conclusion, while I agree with some of the conclusion, this premises are fuzzy:
#1: Are you hoping to work where there is the luxury of a separate analyst, in most web dev company there isn't -- yes there could be project managers BUT it is up to the web dev/eng. to technically scope out the problem through the 'business' reqs of the PM?
#2: This premises is particularly troubling, what exactly is "advanced algorithm?". I doubt there is any web programming language that doesn't have an array, or a list or a dictionary; it's basic knowledge to understand what kind of problems those data structures solve and their respective algorithm, perhaps you might want to say sorting an array is trivial since you can just "call" a function, you might as well hire a graphic designer turned web designer.
#3. And of course it's easier to pick the best graphic designer, just look for which is prettier, trying to pick the best would definately put you in trouble, there is no best. You're trying to pick based on issues at hand.
#4. And will school projects and actual work experience justify this person being able to solve the issues at hand, maybe. But a better stick for measuring one that has a true passion for the field is what are they doing "outside" their regular has-to-do.
#5. A Software developer with a passion sees this as "fun"
#6. I used to think like that, and I'm sure you're thinking will change when you tell the developer -- A Mediator will fix that and they say "uhh". Yes you can ask tricky question to know if they understand that than explain it. But what is being tested is not necessarily if you're using it right now, do you know it exists so you can investigate that path when you really need to use it.
#7. This is wickedly important (assuming you're referring to your company culture) -- I always hope to work with folks I can hang out with out of the office.
#8. On the surface that's true, but is someone who can do the bare minimum really what you want?
|Re: Testing Programmers: Puzzles Or Web Applications? by Fayimora(m): 7:04pm On Apr 05, 2012|
Most of what you have written is simply as a result of a misunderstanding of my points. The main one is that I am talking about a WEB DEVELOPER and a PROGRAMMER so I am think I am right to say you should not expect your web dev to analyze stuff . Again, am talking abstractly. Your web dev would most likely be able to do that anyways.
Using some Map or Array is not the same as implementing advanced algorithms. The most simplest one would be a shortest path problem. In as much as you can get code online, realising that you could solve the problem using Dijkstra's algorithm is a problem on its own. Trying to make some kinda relationship between users and partition them in some generic way while still keep track of the connected components? A normal web dev would think of how to put stuff in maps, play with some db tables and so on. This is because the spec would come in english and not as I have stated. Someone with advanced knowledge would solve the problem with the available data, probably without even adding new relationships to the database. How? Ask an advanced guy like me lol ok jokes aside, anyone with advanced knowledge would know that we are talking about disjoint sets here. He/She would simply implement one, making serious changes to the existing mathematical models to suit the needs of the spec! Ok that's too geeky but I think you get my point.
Yeah they would see it as fun. But that can be a problem as they might not know how to be serious..lol I don't really know how to explain this unfortunately. It's just in my head. Correct me if am wrong tho
Yes, I asked today and was told that you should always hire someone that fits into the community!
With regards to the lame questions, I have friends that cannot really explain concepts with words but trust me, you look at their code and you WOW!
By "gets the job done" i dont mean bare minimum. Someone that can do what you want him/her to do.
|Re: Testing Programmers: Puzzles Or Web Applications? by Kobojunkie: 9:06pm On Apr 05, 2012|
jeebz: Programming tests are relative i.e depending on the role and the company software product.
Valid message. A lot of times companies get it wrong and they pay dearly as a result. You do not hire a rocket scientist when all you need is a lab technician to help in the lab.
|Re: Testing Programmers: Puzzles Or Web Applications? by kodewrita(m): 1:27am On Apr 06, 2012|
Like everything else in life and business, its better to work from the answer back to the question. What do we need? someone who can develop a web application or a ninja with adhd+ ability to solve the most difficult algorithmic issues you have ever conceived. If you want algorithm ninjas, use puzzles. If you want developers either read their code or request sample code.
|Re: Testing Programmers: Puzzles Or Web Applications? by csharpjava(m): 3:29pm On Apr 06, 2012|
techytom: if he's a programmer(neatness of code), software engineering(approach to information gathering). I don't want to be one of the folks that put programming and software engineering as the same
I'm sure that both of you have never met a qualified Software Engineer before, because if you have then you won't make such comments. Software Engineers are trained to handle all stages of software development life circle, which includes programming. Ok here is a simply programming test for a Software Engineer, you can try it yourself.
Question: Convert the class diagram extract below to a Formal specification that will guarantee that the code will not fail and then convert each line of the Formal specification to either Java, C# etc. An extract of the Formal specification has been provided for you to complete.
|Re: Testing Programmers: Puzzles Or Web Applications? by okeyxyz(m): 10:13am On Apr 08, 2012|
@delomos, while your emphasis that this is wickedly important is correct but your underlying reason is misleading. your interest in being able to socialize outside of the workplace is surely a good thing, but it's a bonus rather than the principal reason for fitting into the work community. having the pleasure of choosing people of like mind as yourself is what social scientists call groupthink and the dangers of this mindset is that it promotes mono-culture within the team, does not challenge status-quo and stifles innovation.
fitting into the community is about being able to work with persons of different backgrounds(business-role, age, sex, race, religion, social-status, cultures, etc) to build an innovative and business-successful team, it's about making efforts to understand what the greater society (for whom you will be developing/building products) needs, and it goes a long way to help if that society is represented in the team, thus this is a management specialty to promote a work environment that harmonizes and harnesses the experiences, expectation & talents of these varying backgrounds to build that product which meets all needs. it's about working in a team rather than in a group, and this means working with people different from you.
so how you embrace this principle will determine how your product/company performs in a fiercely competitive & globalized economy.
|Re: Testing Programmers: Puzzles Or Web Applications? by delomos: 9:02pm On Apr 09, 2012|
#1. You made a very bold statement, "...you are sure"? I'm tempted to ask how sure you are but that will digress my point.
Apart from being quoted out of context, my original statement you didn't agree with is: "Per my ogas, it's a waste of time bringing an engineer in for interview and asking them to "code"." Which was a follow up from: "Given X problem, how would you approach it (X being a problem the team is currently working on and as pointed by @techytom the process is a lot more important than the answer)."
Perhaps that answers your question, maybe not, people who are sure about people they never met are rather strange people to have logical conversations with, or maybe not...
#2. It's easy to show nice looking symbols and UMLs and theorem -- it generally explains why we have Professors and people solving real problem. Maybe that was a bit too poetic. I must commend digging up that picture, it indeed looks interest, I will print it out and show a Software Engineer if I'm ever lucky enough to meet one.
You made seriously valid points.
It is the sorry state of the software world, I wish it wasn't so, but per my experience, people will generally hire those they like, as awful as it sounds, it sucks to be ugly if you want to get real work, in real place, in some cases, it sucks to be married too, or heck, have kids (it's kinda hard to drink beer and do hackaton till 230am when you gotta drop the kid off to school at 7am). You can be as smart as you want, if you don't have the opportunity to 'hack', it just wouldn't happen -- there is the problems you stated, but group-think is a double-edged sword.
That said, the black man has a very long way to go being on the hub of software innovation. Actually, on being on the hub of anything; we are rarely given the 'real' opportunity to 'drive'. But that's now a philosophical debate that a software one.
|Re: Testing Programmers: Puzzles Or Web Applications? by doncigalo: 9:47pm On Apr 09, 2012|
|Re: Testing Programmers: Puzzles Or Web Applications? by doncigalo: 9:47pm On Apr 09, 2012|
@OP This reminds me of my previous job role as a Systems Analyst with a top IT consultancy firm based in the UK. As part of the day 1 of a 3 day interview, we were tasked with building the hang man game using PL/SQL. I was among those that were lucky enough finish it, but the whole point of the exercise wasn't to see who could finish the exercise, but rather it was a test of ur analytical skills.
@delmos luv ur UML diagrams, gud to know dat some people in this field in Nigeria actually know how to properly design apps, not like the hacks u c on dis forum trying to pass off as IT professionals
|Re: Testing Programmers: Puzzles Or Web Applications? by csharpjava(m): 10:50pm On Apr 09, 2012|
#1. In that case I'm sure your ogas have never met a qualified Software Engineer.
#2. So if your ogas tell you the earth is flat, I'm I not right in saying that I'm sure your ogas are still leaving in the past.
#3. The Formal Specification I posted above is for solving real life problems and it's a must for any programmer writing Business, Mission or Life Critical applications to follow before writing a single line of code as testing intergrity software after coding is a waste of time, money and effort, just as engineers do not build a bridge and then ask you to drive your car over to test whether the bridge will fall down or not so that they can go back and fix the error they have made, no they only have one shot at getting the bridge right the first time. This is the reason software engineers too have to convert from UML specification to a Formal Specification from which they can then write their codes for that application.
Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health