A Password Corner Case

My bank has one of those idiotic rules forcing us to change our password for online banking every 90 days. It is my opinion that their rule increases vulnerability rather than resistance to attack, but it is a situation about which I can do nothing, and I otherwise like the bank.

Continue reading

What language is that?

I spend some of my time reading liner notes of the music CDs that I buy. Like the Rosetta Stone, they are often written in three languages, although the languages are usually English, French, and German, rather than hieroglyphs, demotic script, and Ancient Greek. Once in a while, I open to the wrong language, and for a few seconds my eyes skim the German version of the text before it dawns on me that I am not looking at the English. 

Like most native speakers of a European language I can recognize a number of other European languages that I have no ability to read, write, or speak. How does this recognition work? Can it be put into a simple, not very sophisticated or difficult computer program? Continue reading

Problem 7: Cryptography 101

Cryptography fascinates the inner thief in almost everyone, from children who have tried to steal a cookie while their mothers were not looking, to professionals attempting to steal secrets. This interview question is a good one to discuss for a 45 minute hour to determine if a candidate understands the basic principles of cryptography as opposed to security.

Continue reading

Problem 5: As unpredictable as the weather

Whether or not you intend to be an SQL programmer (ever, or for the rest of your life), you will spend a large amount of your time in IT modeling data. For now, throw the MVC meaning of model out the window, or if you happen to be on the 17th floor, just put it on the sill, and restrict yourself to the abstract problem of transforming real world data into a something you can read, search, and display. Continue reading

Problem 4: Ewe no what Eye mean?

English is the most orthographically difficult language written with the Roman alphabet, meaning, there are not always clues to a word’s pronunciation from its spelling, and the reverse. Only speakers of English can enjoy the perverse event of the grammar school Spelling Bee. I was so bad at spelling in school that I assumed it was a “Spelling Be.” Continue reading

Problem 3: Checking the no-fly list

There always seems to be an interviewer who is out to make his mark by asking the big-O question. Not that big-O question, but the one where a data structure is presented with little of the real world information that might accompany its use, and then the question is asked “What’s the big-O notation for the performance of ….” To me it is always clear that the interviewer did not hear a word I said up to that point, and that my pass/fail grade is simply whether or not I recall that it is proportional to x*ln(x) or some such, or whether I can clumsily work it out with a pencil and paper instead of looking it up in Volume 3 of Knuth which is what I would do on the job. Continue reading

Problem 2: Trade-offs

Trade-offs are the bread and butter of software design. No matter what anyone says, every system is optimized for something, and one measure of a satisfactory system is whether the some-thing is the right thing. Continue reading

Preface to Interview Problems for Programmers

It is time to develop a better method for interviewing programmers.

It seems that in the past few months I have read an increasing number of articles about the poverty of technical interview skills. One of the more recent, best, and most direct complaints is this one from Brandon, who runs the blog “Your Startup Sucks, and other happy thoughts.” More familiar is Joel Spolsky’s Guerilla Inteviewing Techniques, which approaches the domain of problem solving, which many people think is what we really should care about. Continue reading