Programming Job Skills Test?
eclecticgeek asks: "I've recently finished a CS/SD degree at uni and the interviews are starting to come thick and fast. I've yet to have a skills test for any of them, and it's only a matter of time before I do. I'm hoping to do one this week and I will get the choice of language. The position is quite broad and they're more after competent programmers in general, rather than any one specific language. So I'm wondering, have you done a developer skills test? What type of things did you get asked?"
For my current job, the test was over C++, Java, Perl, and PHP. Some of the concepts that were covered included Linked Lists, Queues, Stacks, arrays, and general CGI knowledge. I think a lot of test will focus on a mastery of the skills that a person "should" take from a college education in CS.
Not exactly a skills test, but on TechInterviews.com I collected a bunch of questions from recruiters and those who interviewed at tech companies. Since the site was up, there were a bunch of questions coming from people just sharing their job interview experience, but recently a lot of that is coming from India. I noticed that "fresher" type of questions used by some large-scale employers in India are pretty rudimentary, so I am not sure whether the applicant is expected to be a college graduate or just a high school diploma holder. So pick and choose, basically, should be a good way to refresh skills, if not self-test.
Sometimes it is not the code that counts, but your approach. Are you applying for a software "design" position? If so, then show some evidence of designing something before you code. Consider the position you are targeting. Application software? Embedded firmware with restricted resources? Is pure speed important? Code size? Maintainability? Portability? Ask for a more detailed spec if what is given is too vague, or just put comments in your code showing where things should/could be changed if your interpretation of the spec is wrong.
If you are competent, you'll be OK. Every coding position I've ever had included a skills test, except one. The one exception was for a position at a company that I had already worked for in the past...
Good judgement comes from experience, and experience comes from bad judgement.
- W. Wriston, former Citibank CEO
Jobs that have required "application" programming have typically set specific tasks. One I did wanted a search engine for web pages.
Yet others have involved very specific technologies. These are usually but not always in the form of a certification-style test. One that I did of this sort involved the real-time aspects of the ACE/TAO implementation of CORBA.
It depends a lot on the company as to what they are actually looking for. Bleeding-edge companies are likely to be more interested in novel solutions, for example, because it shows you can think and not just copy. ROTM companies, on the other hand, want things done fast and never mind the details. Any company that brags about ISO 9000 is likely a stickler for standards, whether the solution is any good or not.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
I got this at my last job as part of my second interview, thankfully it was a take home "quiz".
"You are stranded on a deserted island, thousands of miles from nowhere you are forced to survive with what you have.
You have a handful of nails, a hatchet with a hammer head, 100 feet of rope, a large lens and a few dozen square yards of sail cloth.
The island has a variety of birdlife, fishing and crabs, but mostly inedible seeds, very acidic but edible berries and a large grove of coconut palms.
One side of the island seems to be geothermally active with several hot springs and some sulfer smelling vents, and a large variety of volcanic rock, obsidian and flint along with some hematite and copper deposits.
Now given this very restricted and scientifically unplausible situation, how would you survive?
Please take as much time as you need and give as thorough an answer as possible."
I can't tell you how many times now I've interviewed some little fresh-out-of-school-all-eager-and-willing twat who has every language any one ever mentioned to him in school listed on his resume.
Don't lie about what you know.
If you cannot answer a simple question in a language you've listed on your resume then it shouldn't be there.
If you really think you need to bone up a lack luster resume with lists of useless abilities be smart about it. Make a grid and list the language and your current level of proficency. Then the interviewer isn't appalled when you're asked to answer a simple question in Perl but you can't remember how even declare a scalar in Perl because you only ever wrote one Perl script...
...five years ago...
...but really you just copied someone else's Perl CGI script and changed the HTML output to match your own amateur porn site's look and feel.
"one place that set me down with a bug report and a development box with their code on it and wanted to see how I'd approach it..."
That wasn't a real interview. They just couldn't find that one nasty code bug so they brought people in until someone found it.
I was working a job doing Windows apps in C++ by day, but what I really wanted to do was develop games. I had done some small scale stuff on my own, and I wanted a chance to do it professionally.
So I heard through the grapevine that a small computer consulting company I knew was looking to develop a game, and they were looking for a programmer. I decided I would try moonlighting on the game while keeping my day job. I showed up after hours, and was met by the top three people that ran the place.
I was ushered into a small dark office. They sat in a rough semicircle around me. After a brief introduction, they started firing difficult logic problems at me. For about an hour and a half. No paper, no time to myself, I was expected to work out the answer out loud. It was intimidating as hell.
But I'm good at that type of stuff, and although I needed a little prodding on one of the problems I eventually came up with the right answers. They seemed satisfied. I explained what sort of compensation I would require, they agreed, and we decided I would come in after hours the next day to get started.
So the next day rolls around, and I show up. I get setup on a machine, but clearly the president of the company wants to talk to me about something.
So he comes out and says it. "Well, I've talked to my associates, and we've decided we don't want to pay you. We're a little cash poor right now. So what we want you to do is create a prototype, and we'll market it, and cut you in for a percentage of the profit."
I was floored. They wanted to make all the decisions, while I did all the up front work, for the possibility of some of the profit later on. They wanted me to be their bitch.
If they had told me this up front, I would have walked out the door right then, but instead I had to sit through the most stressful interview of my life, fighting for their approval. Blech.
# (/.);;
- : float -> float -> float =
You should get a blank stare. "Typically two tabs in" is another reasonable response.
Sorry, but when you're testing the knowledge of the candidate, your knowledge is being tested too. The worst developers I've had to share code with haven't known what a "function signature" was, and I figure that's a pretty good rule of thumb.
--Matthew
HR guy told me I had to get 18 out of 20 right or I was done. Then he said I had about 3 minutes per question, and walked out. I finished it, checked my answers, changed about 5 answers...and scored an 18. Turns out the 5 I changed were indeed wrong and I'd changed them to correct answers. Phew!
Most annoying part was when I asked the HR guy why I'd gotten the two wrong. He said he had no idea, he only knew the correct multiple choice letters, not any logic behind them. So being a geek I opened the book back up, rethought the two I'd missed, and came to the correct solution for both of them. Of course at that point he didn't care, but damnit I did.
Compare that with the job where I currently am. I was asked a programming question, I wrote some code, the interviewing manager told me that it was a good "brute force" answer. Well that bugged the crap outta me, so I thought about it all the way home, thought of a better answer, and emailed it to him with a note saying "It may be too late for this to matter but my head will explode if I don't send it." During the next round of interviews I told one of the engineers that story and he laughed and said, "Well, I know two people that did that exact thing, and both of them work here now." make that 3.
www.HearMySoulSpeak.com
The first order of business would be to bring the local population around to accepting the new order of things. This would mostly involve chasing the birds, fishs and crabs around with the hatchet while screaming obscenties at them - I expect the berries and coconuts will acquiesce to my dominion, as they are known to be sanguine in nature.
Once the locals have been frightened into disorder, the next order of business would be setting up a hierarchy of power. The most loyal and strongest of the flora and fauna would be granted titles, such as Marquis, Earl or Chuck. Those that show signs of causing trouble must be controlled, so a prison will be built near the sulfur by hammering four nails into the ground and tying the rope around them to form guard walls. Burly Sgt. Coconuts will be placed at each corner, and a sadistic Chuck Berry in charge. Prisoners will be forced to work in my sulfur mines.
By this point, I shall be undisputed Lord of the Island. So to celebrate that fact, I shall begin construction of a 100m tall effigy of myself in copper and obsidian (for the sake of morale and artistic freedom, certain physical attributes may be emphasized or diminished, as necessary). The sail will serve as a cover to prevent the work from being seen before it is finished.
Of course, during construction, I will begin to create my armed forces. Mostly this will involve drilling the birds (air force), fish (navy) and crabs (marines) until I am satisfied that they show military spit and polish.
After years of rule, I imagine some passing ship will notice a 100m tall copper statue on a supposedly deserted island. By this time my rule will be assured. I will not leave the island, instead declaring my domain a sovereign nation and offering to host affluent guests from around the world - for a fee. I will also create a website, offering the services of the elite of my armed forces as mercenaries for hire, again for a fee. Eventually, I will pass on the throne, and retire to the mainland to live large off of the book deals, and movie revenue.
His Imperial Majesty,
King Indi I of Indiland
It's hard to soar like an eagle when you're surrounded by turkeys.
First - survival, but you might have one volatile asset to help with your rescue. Do you have a watch, and is it still running and on time? Do you know the date? If so, the sooner you take a reading of the angle of the sun & combine it with the time, the more accurately your position can be determined. Otherwise, start tracking the arc of a shadow & wait for the solstice, & take a readings then. Include these readings on the messages you toss into the sea. (Pumice, coconut husks?)
Make shoes - you won't live long if your feet give out. Any injury could kill you by way of infection. Make clothes from the cloth, and conserve it. It will deteriorate in the sun, but better it than your skin. If you can clothe yourself with feathers or anything else, you want to do that instead. Depending on how long you are on the island, you may need to make a sail from the cloth. It is also a source of fine thread. You might use it to skin a boat.
Make a prominent distress sign, visible from the air.
You can distill water from the hydrothermal vents, or at least use the heat to distill seawater.
Can you make a compass from the hematite or nails? If the hematite is specular hematite, it may be possible to polish it into a signalling mirror. Try the copper too.
With the copper & nails as a battery (voltaic pile) you could make a spark gap generator to produce radio noise. It's a little Gilligan's Island, but you could probably rig a machine (powered by wind, or gravity by way of ported water or sand) to use this to constantly transmit SOS. Depending on your ability to work the copper, you may be able to make enough wire to make a simple radio receiver & speaker. You may need to use your battery to magnetize pieces of nails.
If the wind is constant enough, you might make a kite to hoist an antenna.
Can the seeds be made edible after making into flour and treating with ashes or the acid from the berries? Acorns aren't edible either, but lot's of people have survived on them. Vary your diet to avoid scurvy, ricketts or worse.
How large is the lens? If it's a page sized fresnel lens, then you can melt concrete with those, so smelting small quantities of iron is not entirely implausible. A blind spot in the center of your vision won't improve your survival odds, so don't look at the hot spot. Hang the lens on a frame.
Prepare a signal fire, & keep coals ready to light it. Don't burn down your coconut trees.
Can the berries be fermented? Not just for entertainment, but alcohol can clean wounds, and could be useful for fuel.
Nothing gets thrown away or tossed into the sea. Make a latrine in a place that won't cause any trouble. Even your waste is a resource. Look out for birdlime. You might just be able to make a black powder flare for signalling from that, the sulfur & some charcoal. Burn as little as you must, as you don't have time to wait for fuel to grow. Besides, you've got free heat from the hydrothermal vents.
As others have said: Obsidian & flint: Knives, spear points. Coppper -fishhooks. You could probably work the nails too. Lots of other excellent suggestions here. With the copper & hematite, you should be able to make a diode, and from that a radio receiver. Good luck making a speaker or earphone. Homemade wire, nail fixed magnet, diaphragm of palm or cloth. Handy, but probably impossible: Triode amplifier.
Finally, use wax from the berries & feathers from the birds, & make wings. Fly away, but don't get too close to the sun, or the wax will melt and you'll fall into the sea, to the dismay of your father.
A related problem is how does one make accurate tools or measuring devices without already having them? One way to start is by making a flat surface by rubbing two things together.
Assembly is the reverse of disassembly.