2 stories

Organizational Skills Beat Algorithmic Wizardry

8 Comments and 22 Shares
I've seen a number of blog entries about technical interviews at high-end companies that make me glad I'm not looking for work as a programmer. The ability to implement oddball variants of heaps and trees on the spot. Puzzles with difficult constraints. Numeric problems that would take ten billion years to complete unless you can cleverly analyze and rephrase the math. My first reaction is wow, how do they manage to hire anyone?

My second reaction is that the vast majority of programming doesn't involve this kind of algorithmic wizardry.

When it comes to writing code, the number one most important skill is how to keep a tangle of features from collapsing under the weight of its own complexity. I've worked on large telecommunications systems, console games, blogging software, a bunch of personal tools, and very rarely is there some tricky data structure or algorithm that casts a looming shadow over everything else. But there's always lots of state to keep track of, rearranging of values, handling special cases, and carefully working out how all the pieces of a system interact. To a great extent the act of coding is one of organization. Refactoring. Simplifying. Figuring out how to remove extraneous manipulations here and there.

This is the reason there are so many accidental programmers. You don't see people casually become neurosurgeons in their spare time--the necessary training is specific and intense--but lots of people pick up enough coding skills to build things on their own. When I learned to program on an 8-bit home computer, I didn't even know what an algorithm was. I had no idea how to sort data, and fortunately for the little games I was designing I didn't need to. The code I wrote was all about timers and counters and state management. I was an organizer, not a genius.

I built a custom a tool a few years ago that combines images into rectangular textures. It's not a big program--maybe 1500 lines of Erlang and C. There's one little twenty line snippet that does the rectangle packing, and while it wasn't hard to write, I doubt I could have made it up in an interview. The rest of the code is for loading files, generating output, dealing with image properties (such as origins), and handling the data flow between different parts of the program. This is also the code I tweak whenever I need a new feature, better error handling, or improved usability.

That's representative of most software development.

(If you liked this, you might enjoy Hopefully More Controversial Programming Opinions.)
Read the whole story
3332 days ago
3340 days ago
Share this story
8 public comments
3337 days ago
Programming tests. I hates them.
Santa Cruz, CA
3340 days ago
Please answer this really hard problem of the type you will never find in this job. Also, if you try any of your clever "algorithms" here you will be pulled aside and given a stern talking-to about readability and code maintenance. We don't want any cowboy coders here!
Denver, CO
3340 days ago
God I wish my boss -- who's been trying to find a suitable (to him) programmer for over 3 months -- would read this. Actually, I wish he could *understand* this, let alone read it.
3340 days ago
QFT: "...the number one most important [programming] skill is how to keep a tangle of features from collapsing under the weight of its own complexity."
Pittsburgh, PA
3340 days ago
Agreed, but how do you interview for organizational skills while also ensuring they know how to write a for loop or recursive function?
Cambridge, MA
3340 days ago
We ask the following: in language and environment of your choice, write a four-function calculator; i.e. a program which will take two numeric operands, an operator (addition, subtraction, multiplication, division), and produce a correct answer. You may use whatever tools you like, have full internet access, and can ask us for help. If the candidate succeeds in writing this in about an hour, we ask hir to add in a primality test, showing some indicator if the answer is a prime number. I've found it's a good test to show how a candidate handles vague requirements, basic I/O, simple state management and/or parsing, refactoring in the face of changing requirements. It's simple enough to accomplish in an interview, and covers the basic skills needed to create a "real" program.
3340 days ago
For non-junior positions I prefer to ask them to describe real problems they've worked on and how they addressed them. Trying to spring a full coding question is time-consuming and stressful but what I really want to hear is how well they understand the challenges and approaches – if they get things like loose coupling it's obvious in both what they dislike and how they propose dealing with it. These days Github is also invaluable for seeing code-as-practiced
3340 days ago
at $DAY_JOB, a very tractable (O(n) even if you're naive) problem is the interview programming question. sadly, still a good weeder question.
Earth, Sol system, Western spiral arm

Tohoku, two years from 3.11

1 Comment and 2 Shares
Dear friends,
Last month I visited Minamisanriku, one of the damaged areas by the Great East Japan Earthquake and tsunami for the first time after two years and two months. Takuo, the anchorman of Sendai Television, our affiliate station in Miyagi Prefecture, who kindly reported to us the situation a year from 3.11.2011, guided us to the area. We were a group of five, three from Fuji TV, one from Kansai Telecasting who experienced the Great Hanshin earthquake in 1995 which caused 6,434 victims, and one from Tokai Television covering the area where another greatearthquake is predicted in the relatively near future.
Firstly we stopped by Hotel Kanyo, where we were going to stay that night. You wouldn’t be able to imagine the ferocious tsunami from the calm sea you see over the lobby’s big windows. 

Though their first and second floor were flooded, they offered their facilities and rooms in the upper floors to hundreds of refugees.

We had Minamisanriku Kirakira bowl for lunch which was revived last year after almost one year’s interruption. Kirakira means “sparkling”. Both the salmon roe bowl and the sea urchin bowl remind us of the area known as the treasury of fish.

Later we headed to Shizugawa area on the other side of the bay.

More than two years have passed but we couldn’t see any visible restoration here. No sign of new construction but a few buildings that remain as debris.

This red-colored three-storied steel skeleton used to be the Crisis Management Center of the town, which is supposed to ensure safety against serious disaster. Ironicall, only ten could have survived the overwhelming tsunami by reaching the rooftop and grabbing onto either the fence of the emergency stairs or the pole. We lost words witnessing the twisting pillars that described the irrestible power of tsunami which swept away more than 40 lives. This includes a young woman who continued the evacuation announcement from the speakers until her very last minute

This building retains such a story that it serves as a symbol of the disaster and a lot of people come here to see what has occurred either with flowers or folded tsuru.

The town has compeletely changed its scenery and they have no concrete plan of reconstruction so far.

Takuo then took us to the Minamisanriku SunSun Shopping Village. The statue of Moai presented for the second time by Easter Island of Chile shows the friendship between the two regions having gone through serious tsunami. Knowing that the head of the previous statue was swept away, Chile quickly decided to sculpt a new one.


Coming back to the shopping village, the shops vary from fish market to a photo shop or a barber.

One of our purposes of the trip was to spend money. We ate grilled scallops or ice cream commemorating the revival of the Moai statue. There, people seem to look forward.

People recognized Takuo. We were happy to know that he is loved by local viewers.I think people casually talk to him not only because he is on TV everyday but because his sincerity permeates through to viewers. 

He had planned 
to show us both sides to the area. What remained untouched and what things were being reconstructed. Takuo took us to Utatsu station where he has kept watch over these two years. 
The rails are gone, half the platform was destroyed. Thus we see no sign of restoration of JR Kessennuma line which used to transport people.

But beneath the hill of Utatsu station, you see the sign saying Utatsu station, which takes on a form of a bus station. JR East proposed BRT or bus rapid transport as a temporary substitution. The bus partly runs their exclusive “road” made by removing railway tracks and partly the road shared with other vehicles. It takes more time than the railway since the bus has to stop at each signal and the schedule varies due to the traffic jam. Still, it’s nothing other than a step forward. Whether the railway can retrieve its former style depends on the restoration plan which seem to take time for decisions to be finalized.  

At Isatomae Fukkou Shopping Mall near Utatsu station, many flags were waving in the sky. They were offered by Japanese professional football teams or by individuals who responded to the idea of cheering up the mall. They fit the mall’s name Fukkou which means “restoration” and at the same time, means luck and happiness by using Chinese characters. 

I will write about the fisherman Mr. Chiba who Takuo frequents next. 
Read the whole story
3333 days ago
Share this story
1 public comment
3333 days ago
Still alot of recovery and rebuilding to do in North East Japan. :-/
Saitama, Japan