Any highly skilled programmer I’ve ever met usually has a very good in-depth knowledge of many different subjects, like art, history, English grammer or politics.
I think this maybe due to:
Programmers deal with languages, the structure of which can be related to linguistics. Hence the aptitudes for language in general and English in particular (considered the technical language of programming).
Generally those with high linguistic abilities have a rather high level of comprehension, so reading texts comes more easily to them and they pick up things and learn stuff more easily than do others
They develop the ability to be meticulous fast. It’s easy to nit-pick stuff over a long period of time, but it requires great skill to do that in a shorter time frame. The necessary practice is developed.
Because expert programmers probably spend a lot of time reading code (not proportionally to how much they write, but compared to how much an average person actually reads), they gain an interest in the symbolic relationships between different semantic structures. So when they read a particular piece on the history of art, for example, it’s easier for them to make the linkages (between the period and the piece) and also they can sustain their interest for longer (force of habit). See I’d get really interested in something like that but get bored maybe after 1 hour.
Generally I’ve noticed this trend is more common amongst people’s of a software background than any of the other science, business, math (etc.) folks I’ve met.
Your suggestions aren’t far off, but they could just as easily apply to anyone in a highly skilled job that involves brain-power. Highly skilled people of many professions tend to be smart. That’s what makes them highly skilled. It’s hardly much of an insight that if you’re smart you learn all sorts of stuff.
I’ve met plenty averagely skilled programmers who have, well, average knowledge of many different subjects. I’ve also known very skilled ones who were effectively total morons when it came to anything outside the confines of a computer monitor (or Dungeons & Dragons ).
Not really, since what you are talking about involves abilitity in general. Yes, people who are “clever” tend to pick up info much more easily than those labelled “stupid”.
However, I’m referring specifically to software programmers, because of the nature of the work they deal in.
Think about a writer. Let’s say to begin with they are not very adept at writing clear, concise sentences. However over time, having reviewed the works of great masters and with practice they get better. Until eventually, they themselves become the masters. They have developed the skill of writing concise, elegant sentences.
They are much more familiar with sentence structure and meaning than the average layperson. So a dude like this picks up reading material and learns info much faster than the dude who sits there and scratches his balls for half a day.
So what my thesis (heh heh) is based on is the idea that because programmers deal with the structure and content of material more directly than others (e.g. a physicist), then perhaps they are more adept at picking up written material than those dudes. Hence (my) percieved discrepancy of “software dudes more globally knowledgable than those other geeks”.
Or the usage of grammar and in general the rules governing such items of the English language.
BTW I am NOT trying to confuse people by mixing (at least on purpose) “smart” with “knowledgable”, since I don’t realistically think one is a pre-requisite for the other.
Software programmers more knowledgeable? Smarter than the average bear? Language skills? Comprehension? They’re meticulous? No. No, not only no, but good God, no, what are you, nuts?
I have never observed this relationship. If anything, I would say that the programmers I know have grave difficulties communicating in written English, since their college-level educations were so specialized that they never got any practice as that level, and writing skills atrophied.
Which (mostly) bear very little relation to natural languages, I don’t think there’s any link here.
Not really, they just have years’ of having the compiler catching any non-meticulousness. Where the compliler doesn’t enforce meticulousness (say aligning braces) some good programmers are slobs.
I can think of decent programmers I know who are pretty narrow minded (no interests in any art, literature, science, history or politics). The best programmers generally do often have quite deep knowledge of other stuff too but I bet you’d find this in any field, that the best people will be more generally intellectually active.
I’m not sure what you mean here. No (normal) compiler cares about the arrangement of statements on screen, and no language I know of requires braces or such to be aligned. All a compiler needs is correct syntax, and syntatically valid code by no means equates or even implies “good” code. Machines don’t, and can’t, comment on an algorithm or its implementation. Given something simple, like adding the integers from 1 to 100, I can think of several very bad ways to do it, but all of them will work. It’s up to the programmer to step back and consider what they have written and how it does or does not implement the desired task. Experience gives a programmer a “bag of tricks” that he or she knows have worked well (or not) in the past.
Poor programmers, thus, have attitudes like “Ha! It compiles! Now it’s the maintainer’s problem.” or “I won’t be around when it comes time to modify this.”, and generally don’t care about producing the best solution they can or asking a more experienced colleague when they encounter difficulty.
The OP refers to programmers as necesarily meticulous, I’m just saying this isn’t the case. Some people seem to treat the compiler as a sort of syntax spell-checker and don’t seem to try to get their code right first time.
Of course all a succesful compile means is that the syntax is correct, but some people will go to the trouble of indenting their code nicely and others don’t. (FWIW I think that Python does use indentation as part of the language*****)
Is that any clearer? It seems whenever I post on anything coding related someone gets me wrong.
*****There is the language Whitespace. Pretty much nothing but indentation. Saves a lot of toner when printing listings.
Not sure about software developers, but i’d say that most good web designers/developers i know (and i don’t include myself in that bracket ) have a much better basic knowledge of the world and general knowledge than the average joe.
I’ve always put this down to the following:
They are generally smart people to begin with
They are incredibly comfortable with, and spend a lot of time on, the internet (you pick up a lot of crap, but a lot of good stuff too).
The best ones tend to be largely self taught, which means they are generally predisposed to being curious about stuff and how things work anyway
Their minds tend towards the logical/analytical
They’re proud and hate being proved wrong - hence the tendency to consume as much information as possible
I’m sure a lot of that is true of software guys and gals too
Smart? Sure, by means of book smarts and education. “Street Smarts”/common sense, personal interactions/communication, fashion, handy around the house/car . . . not too favorable with that group. Not ALL, so don’t jump on me, but a good portion.
I don’t mean to offend any of our resident “geeks”, but I think it’s a little more than unfair to say that because you do well in your career or that you took a technical route in your life that you are superior brain-power wise. I know nothing about programming/software and my IQ is far better than average. I’m a professional artist, I do well in language/literature and visual/logical problems. I’m just stronger in other areas than the techies. When it comes to math and science, I’m dumb as a box of rocks.