The problem of teaching programming skills to new generations of software engineers is as old as the computers themselves. Each generation has tried to do it in a slightly different way, with various degrees of success. There is a lot of literature available online about the subject, and in this article we will point out papers and books that we found to be the most noteworthy. By no means this is an exhaustive list, but it features some interesting entries that might serve as a starting point for your own research.
Let us agree on one basic principle, one that most regular readers of this magazine already know is a core tenet at its heart: the phrase "Human Resources" is atrocious. There is no other way to describe the appalling sentiment and the contempt brought into our minds as we read such a contraption. Even worse, the fact that some people voluntarily choose to wear it as part of their professional title is beyond our comprehension. If you do not agree with this idea, you might want to stop reading altogether.
Most software developers are ejected from academia into the jaws of the business of software with little preparation. Of course, they are equipped with good enough knowledge about some more or less relevant programming language, and maybe some algorithm, hopefully including the venerable linked list reversion, indispensable to pass the dreaded coding interview. But not much more.
On Sunday, July 20th, 1969, at precisely 20:14:19 UTC, just a mere three minutes before touchdown, the voice of Edwin Eugene Aldrin Jr. confirmed the "Go for landing" order received from Mission Control together with a phrase nobody wanted to hear at that moment: "Program alarm - 1201."
In the twenty-five years since the appearance of the phrase "Open Source", many authors have tried to explain this simple fact: why do software developers willingly and spontaneously collaborate, often on a pro bono basis, to the creation of open-source software? And most importantly, how does this even happen? Many books have been written around this seemingly illogical fact.
The archetype of software engineering dress code is quite parochial: a t-shirt (usually featuring a conference or programming language logo, or a geek joke), a pair of jeans, snickers, and a sweatshirt, in case the weather gets more San Francisco-like than you might expect. And that is it. Let us admit it: the "about us" page of software companies often looks like advertising for The Gap, American Apparel, or sometimes even, sadly, Abercrombie & Fitch, minus the abs, of course.
iOS developers new to the platform are completely (and thankfully) unaware of its rocky start during its initial years. The first iPhone was announced on January 9th, 2007, and was released in the United States on June 29th that year. The iPhone SDK was announced by Steve Jobs in October 2007, and released in March 2008. But even before the official SDK was first announced, people were already "jailbreaking" the device, and thereby making applications for the iPhone. First-generation iPhone and iPad developers will surely chuckle when reading the words "PwnageTool," "JailbreakMe," and the name of the first App Store, also known as "Cydia."
We are told that history repeats itself, first as tragedy, then as farce. This is certainly true of the history of computing, at least as far as its telling is concerned.
In the 2008 book "Dreams That Glitter", telling the story of the English pop group Girls Aloud, one of its members, the late Sarah Harding, said: “I’ve got a t-shirt that says ‘Well-behaved women don’t make history’. Funny how the stylist gave that to me…”
If there is one thing that computer books are most definitely not usually praised for, it is their visuals. Thankfully, books about user experience and user interface design are usually, indeed, worthy of such acclaim. In this case, however, limiting a review to such criteria would be short-sighted, poor, and unjust. The truth is that most important literature works are multi-layered, profound, and suitable for multiple relectures.