Free Association

Polymath

Author Archive

What does it mean to learn a programming language?

Written by

March 17th, 2012 at 10:00 am

Posted in Coding

without comments

I’ve been listening the Ruby Rogues podcast on programming language fundamentals.

One of the topics under discussion is languages appropriate for learning programming.

But that really depends on why one wants or needs to learn programming.

And there is a difference between learning to program to “get stuff done,” and really understanding what programming is all about.

Most people just need to get stuff done.

Skimmers versus divers

Written by

March 15th, 2012 at 10:23 am

Posted in Productivity

Tagged with

without comments

I’m a much better diver than skimmer.

Divers do better going deeper into topics, finding productivity tied to a certain level of mastery.

Skimmers are more productive finding the fastest path across the pond, perhaps without even getting wet.

The difficulty in a team comes when divers take umbrage at the skimmer’s admitted lack of understanding, and the skimmer’s demanding that the divers “just get it done.”

There are times and places for both ethics.

And the same person may skim one topic to go deep into another. Or vice versa.

The danger from skimmers comes from being unwilling to really master their craft.

The danger to divers comes from being perceived as having breadth to match depth. That is, mastering one subsection of a topic doesn’t confer master of the whole topic, and that’s confusing to a lot of people. Especially skimmers.

Aggregation and curation are synonymous on the web

Written by

March 12th, 2012 at 12:24 pm

Posted in Pedantry

Tagged with ,

without comments

Talk to a librarian, an archivist or anyone responsible for maintaining and promoting a museum of any sort, and you will find curation defined as a process of collection, selection, aggregation, interpretation, promotion and presentation. Of these, interpretation is critically important. Things take meaning within context.

The web, however, has redefined curation to mean simple aggregation. This is unfortunate from the perspective of people who practice “classically defined” curation.

In practice, curation on the web means “list post.”

I think we have lost something here.

Related discussion on Web Pro News (paying for links) and GigaOM (is curation journalism)?

Programming tradecraft

Written by

March 10th, 2012 at 4:15 pm

Posted in Coding

Tagged with , ,

without comments

“Tradecraft” carries a connotation of high-stakes skullduggery, usually by semi-psychopathic agents of various governments, usually up to no damn good at all.

But what a great word, tradecraft.

In programming, tradecraft could be used to refer to all those accessory necessities, in particular, mastery of:

  1. Your editing environment.
  2. Your build system.
  3. Your version control system.
  4. The APIs and language features allowing you to trade in your craft.

All these tools are irrelevant to Computer Science.

Mastery of all is critical to mastering programming tradecraft.

Initially, it doesn’t really matter which set of tools are learned, so long as mastery is pursued. It’s the mindset that matters most.

Tests evolve just like code

Written by

March 9th, 2012 at 9:53 am

Posted in Coding

Tagged with

without comments

Programmers who don’t write test-first code typically don’t write any test code at all.

The usual reason is that testing is hard and it takes too much time.

It’s true: writing software test code does take time, and writing test first code seemingly takes even more time.

But here’s the thing: everyone tests their code, if by no other technique than using visual feedback.

Visual feedback is manually operating the software and watching it with human eyeballs to “see” that it works correctly.

Typically this follows a code-compile-rewrite cycle. In the browser, it’s code-reload-rewrite.

It’s horribly time consuming.

Test first simply formalized this cycle.

Here’s the thing: just as it’s ridiculous to assume that the code will be written correctly on the first pass, its just as ridiculous to assume that tests supporting TDD will magically appear as the correct tests on the first pass.

Getting the tests right requires iterating the tests as the code is iterated.

The difference being that once the code does what it’s supposed to do, the test is in place.

Think of the tests in test-first as tools to help speed up learning about the problem.

When these tests take time, it means the problem is not well-understood.

View tests and view specs are easy

Written by

March 8th, 2012 at 9:39 pm

Posted in Coding

Tagged with ,

without comments

I claim writing view specs or view tests is not difficult, not at all.

However, writing testable views is a lot harder.

And nobody bothers doing it.

What words really mean

Written by

March 5th, 2012 at 2:00 am

Posted in Pedantry

without comments

Were I French, I might say I weep for my language. But I’m not, so I won’t.

‘When I use a word,’ Humpty Dumpty said, in rather a scornful tone, ‘it means just what I choose it to mean — neither more nor less.’

‘The question is,’ said Alice, ‘whether you can make words mean so many different things.’

‘The question is,’ said Humpty Dumpty, ‘which is to be master — that’s all.’

Telling words, “which is to be master.”

Here, from Merriam-Webster, we have

Definition of EXCERPT

transitive verb
1: to select (a passage) for quoting : extract
2: to take or publish extracts from (as a book)
— ex·cerp·tor or ex·cerpt·er noun
— ex·cerp·tion noun
See excerpt defined for English-language learners »
See excerpt defined for kids »
Examples of EXCERPT

The fiction that the magazine does publish is too often excerpted from novels or imminently forthcoming collections, making the magazine seem more a flack for publishers than a site of editorial strength and vision. —Vince Passaro, Harper’s, August 1999
[+]more
Origin of EXCERPT

Latin excerptus, past participle of excerpere, from ex- + carpere to gather, pluck — more at harvest
First Known Use: 15th century

What then, is this?

WordPress excerpt

WordPress excerpt


(Screenshot from WP Excerpt)

If language by its nature evolves to exclude the “outsider,” simply asking for such a definition marks one as an outsider. “If you have to ask, you could not possibly understand.”

Here’s a question: once meanings have been encoded into algorithmic form, will language evolution slow or stop?

Here’s another question: what’s the best way to extract a context-free definition from a peer group, such that the definition could be used algorithmically?

Recruiters as agents

Written by

March 2nd, 2012 at 10:52 am

Posted in Social

Tagged with

without comments

If software development is turning into a team sport, perhaps software developers should be recruited similarly.

As top developers become courted in the same way as top athletes, perhaps recruiters should move to an “agent” model for recognizing, nurturing, developing and promoting talent.

How, then, are top developers recognized “in the field?”

Breadth versus depth

Written by

February 28th, 2012 at 9:33 pm

Posted in Coding

Tagged with

without comments

It’s exhausting, sometimes, discussing programming (or anything else) with people having deep, narrow skills in one paradigm or another.

They develop a sort of Vingeian focus, complete with jargon, customs and culture.

While I can appreciate the competence coming from having deep technical skills, I’m also aware of the cost:

Solving a problem isn’t the same as knowing whether a problem is worth solving.

At some point the current emphasis on technical specialty will swing in favor of generalists. There is always an ebb and flow.

Dot com versus dot net

Written by

February 26th, 2012 at 10:51 am

Posted in Marketing

Tagged with , ,

without comments

Marketers of the internet persuasion are convinced that having the .com domain is critical.

But it really depends on your market.

If your market is not other internet marketers, in my experience, it’s not that critical.

What matters more is who has the .com and what they are doing with it.

For example, I just registered railserrors.net. The .com was taken and it’s parked, serving a bunch of ads.

My intention is to develop Rails Errors as a useful website. Unless the .com owner does the same, his ranking will plummet. I know this from experience developing website-in-a-weekend.net.

Also, and this is probably important as well: the same people deprecating .net also deprecate hyphens in the domain. This only matters if you’re grubbing for status in that community. Your readers won’t care one way or another.

© 2009-2012 David M Doolin All Rights Reserved -- Copyright notice by Blog Copyright