all bits considered data to information to knowledge

15Mar/102

Native speakers vs. Phrase-book savvy

It is not uncommon to hear from developers during an interview: “I do not remember all these details, I can always look them up”… And this might be a valid response – up to a point.

It used to be simple – all one had to learn was 32 keywords in C, learn the grammar and then use his imagination to create applications. Early on it was understood that re-using code will increase productivity, so the concept of library was born, later augmented by MFC and OWL… The trend continued towards ever greater modularity – the foundation classes were eventually integrated into run-time frameworks, such as Java Foundation Classes (JFC) and Common Run-time Library (CLR) in .Net… Suddenly, a developer had thousands of functional libraries built by professional teams, and incentive to re-invent the wheel diminished accordingly…

 Would it be a reasonable expectation for a developer to know every single of the classes rolled into JFC or CLR? No. Would it be reasonable to expect them to be familiar with hierarchy of the classes? Yes.  A developer needs to know how and where find a piece of code to accomplish what is needed.

 To be productive in either Java or .Net, a developer must have working knowledge of the most commonly used classes, plus a good understanding of where to find the rest. He (or she) must control the urge to create something that might already exist in the environment and  leverage the existing capabilities to create new ones.

 When hiring a developer I expect him to be fluent in the technology; at the same time I am extremely wary of both the “native speakers” – someone who is so immersed in the technology (Java, C#) that he forgets the rest of the world; on the other side of the spectrum - also to be avoided - are the phrase-book tourists who know a dozen of cookie-cutter recipes and lack either ability or curiosity about the technology to become fluent in it. The former might indicate a technology bigot who is so set in his ways that he would never be able to work with any other technology that business might require in the future, the latter might be an indication of a “fly-by-night operator” – someone who is chasing “hot” technologies to make a quick buck (or suffering from programming variety of ADHD).

NB: Interesting perspective taking my point ad absurdum can be found in this blog post: How to Find Crappy Programmers

 P.S. I emphasize “might” word in the above paragraph, as I have met - on a rare occasion - “native speakers” who spoke several disparate technologies, and were open to learning new ones… and some phrase-book savvy developers could be made to see the light, given sufficient time and money. Al in all, I would consider a "native speaker" a highly specialized "tool" that could be very sucessfully utilized on certain types of the project, while "phrase-book savvy" should not be relied upon for tasks that could require even a modicum of creativity.

P.P.S According to some sources there are ~988,968 words in English Language ; other sources imply that 171,476 words are currently in use.

Yet to be fluent you only need a fraction of it. Here's one bold attempt at classification:

3000-4000 words: Sufficient for reading newspapers and magazines fluently.

8000 words: All you ever need. More words are not necessary in order to communicate freely and read all types of literature.

10.000-20.000: Active vocabulary in the mother tongue for cultivated Europeans.