Everything Tagged "Writing"

(In reverse chronological order)

Unifying the Technical Interview

Previously: Rewriting the Technical Interview.

Aisha’s hands rattle you. They float gently in front of her shoulders, wrists cocked back. One sways cheerfully as she banters with the hiring manager—her lacquered nails a cyan mosaic over ochre palms. They flit, then hover momentarily as the two women arrange lunch. When the door closes, Aisha slaps her fingertips eagerly on the pine-veneer tabletop. Where have you seen them before?

Clojure from the ground up: polymorphism

Previously: Debugging.

In this chapter, we’ll discuss some of Clojure’s mechanisms for polymorphism: writing programs that do different things depending on what kind of inputs they receive. We’ll show ways to write open functions, which can be extended to new conditions later on, without changing their original definitions. Along the way, we’ll investigate Clojure’s type system in more detail–discussing interfaces, protocols, how to construct our own datatypes, and the relationships between types which let us write flexible programs.

Typing the technical interview

Previously: Hexing the technical interview.

In the formless days, long before the rise of the Church, all spells were woven of pure causality, all actions were permitted, and death was common. Many witches were disfigured by their magicks, found crumpled at the center of a circle of twisted, glass-eaten trees, and stones which burned unceasing in the pooling water; some disappeared entirely, or wandered along the ridgetops: feet never touching earth, breath never warming air.

Reversing the technical interview

If you want to get a job as a software witch, you’re going to have to pass a whiteboard interview. We all do them, as engineers–often as a part of our morning ritual, along with arranging a beautiful grid of xterms across the astral plane, and compulsively running ls in every nearby directory–just in case things have shifted during the night–the incorporeal equivalent of rummaging through that drawer in the back of the kitchen where we stash odd flanges, screwdrivers, and the strangely specific plastic bits: the accessories, those long-estranged black sheep of the families of our household appliances, their original purpose now forgotten, perhaps never known, but which we are bound to care for nonetheless. I’d like to walk you through a common interview question: reversing a linked list.

First, we need a linked list. Clear your workspace of unwanted xterms, sprinkle salt into the protective form of two parentheses, and recurse. Summon a list from the void.

On the not Unvague Modern Lexicographical Modality of Communication

In 1946, George Orwell wrote an essay on the pitfalls of English prose, describing what he considered to be the common mistakes made in modern writing. Politics and the English Language identified dead metaphors, over-used phrases, and vague diction as habits to be eliminated from writing, for they tire the reader, confuse the meaning, and destroy the specifics of one's intended message. Whether purposeful or accidental, such errors have not yet been eliminated from the English language: 60 years later we still make the same mistakes, albeit in slightly different forms. While most writers keep their prose admirably clear of such obstructions, passive, vacuous, and needlessly complex sentences cloak the modern world of bureaucracy and politics in a haze of pretentiously irrelevant verbosity.

Take the first of Orwell's charges: the dying metaphor. Some of his examples of have now faded from use, like "ring the charges on" or "take up the cudgels for." After all, few people fight with cudgels nowadays. However, some of these phrases remain in circulation. "Toe the line" has become embedded in our vocabulary to the extent that it fails to arouse any trace of visual imagery. One has only to examine any political statement to encounter these tired phrases being trotted out once again for display. We speak of "cutting off ties" with other nations, or refer to America as "a shining beacon" of democracy, and no one thinks anew. The problem of dying metaphors hasn't gone away, but merely shifted to a new collection of unimaginative analogies.