Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Does Linguistic Aptitude = Programming Potential? 21

Icephreak asks: " I've been studying a foreign language for quite some time now and have been recently researching the more effective ways to approach learning the nuances of it in both spoken and written form. Not so surprisingly the same advice comes up again and again. More still, I remember being given the same dead ringer advice by a few programmer friends about learning programming languages. I find this lends a good hand to the observation presented in the famous Thomas Scoville article, "The Elements Of Style: UNIX As Literature," about a surprising number of linguistically capable people gravitating to text-based operating environments and programming careers. What are your thoughts about a possible parallel between human and computer-based linguistics? Does a good command of one's spoken language loan leverage to becoming an effective programmer or computer operator in general? "
This discussion has been archived. No new comments can be posted.

Does Linguistic Aptitude = Programming Potential?

Comments Filter:
  • by Anonymous Coward
    No programming language is a human language. They are absolutely not the same. A human language has to be the sole language used by a people. There are some linguist who doubt that humans could even create a human language. Esperanto which is the best example of an artifical human language is not the first language of any human. It can be learned as a second language only. Some doubt its even possible to learn it as a first language. The brain may not be wired to learn an unnatural language. Some argue that languages can only be evolved because the human brain is designed for language not the other way around. There are linguist working on a sort of grand unified theroy of language which could someday solve this problem but that's not its goal and this is only my conjecture. See Noam Chomsky and Transformational Grammar. [geocities.com] (He is also a prominent political dissident.) Think of it this way, you can't teach your child to speak C as his/her first language. There is no "pick me up" keyword or syntax to express an incomplete thought which is much of natural conversation. Here's an experiment: Tape record a conversation, play it back and carefully transcribe every utterance. You will quickly see that natural conversations are a mess of false starts, re-phrasings, meta conversation i.e. "Do you know what I mean?" or "uh...ummm..." and other garbage that make up perfectly good normal conversation. Human language also requires infinite discrete processing (IDP). IDP is the abilty of a speaker of any human language to create sentences that are infinitly long collections of discrete clauses.

    Ex. "I threw the ball over the fence by the tree by the lake by the house by the car by the other tree by the other car by the driveway..." Ad infinitum.

    This sentence is poor style and perhaps a little confusing but any english speaker can understand it. Human languages could require a structure that allows this kind of infinite structure. For one every human language can create these types of sentences and they can each be understood by the speakers of the language.

    You could try to teach your child C as his/her only language but before the government took away your parental rights for abusing your child you would realize what a failure the experiment was. And your child would hate you.
  • by draziw ( 7737 )
    Doesn't everyone on slashdot know programers that can hardly hold a conversation but can write good code? (May not comment so well, but oh well.)
  • No, should be

    PUSH Linguistic_Aptitude

    PUSH Programming_Potential

    EQUAL
  • Being adept at both computer programming and learning human languages (English, German, and Chinese), I have found that one of my greatest strengths as a language learner, namely the ability to deduce and understand grammar rules, is also very useful in programming. Nonetheless, I don't consider this ability to be specifically a linguistic skill, but rather a general aptitude for finding rules and patterns, which is applicable to almost any field. When one looks at it this way, a better question to ask is "Does a capacity for analysis and pattern detection predispose one to programming ability?"-- and the answer is, naturally, "probably so".


    It is important to note, however, that an understanding of grammar alone doesn't translate to a complete understanding of a language, human or computer, and here, I think, is where the notion of linguistic skill as a predictor of programming skill begins to look less certain. At least in my own experience, developing elegant written prose requires a fundamentally different mode of thinking from developing elegant code. Understanding grammatical rules does not translate to an understanding of the nuances and subtleties of how to express oneself well in the semantics of a language. Unfortunately, the nature of such skill remains, by far, an intangible.

  • I personally think there is a definite correllation between human and programming languages. I first learned to program 5 years ago at age 11, all self-taught. Sure it was only VB but i think that's pretty good for having no prior computer experience at all. A couple years after that (and after learning some more languages, C++, Perl) I took German in Freshman year HS. It came so easily. I easily whizzed through the class w/o much effort really, it all just came naturally. This is while everyone else in the class was lucky to pull off a B, very hard teacher. The same thing keeps happenning every year in every level.

    Not sure if this has much validity to it as in factual information. Just my personal experience. (btw: 2 of my friends who are really good at german also picked up some programming languages easily, coincidence? i think not)
  • Out of circumstatial necessity as well as interest, I've gotten to learn 5 languages, 2 Romantic (French/Spanish) 2 Germanic (English/German) and 1 Asian (Korean). After the 3rd language, I began to see the patterns that are common to all those languages. These patterns allowed me to learn the 4th and 5th languages alot easier than the 2nd or 3rd. All languages have grammar. Grammar is the logic of the language. Grammar rules are sometimes broken, but they are consistent throughout the language. You internalize them when you learn it in infancy, and you need to learn it if you learn a language later in life. An aptitude in learning language is the ability to recognize the patterns of languages.

    Programming is also more than memorization. It's all about logic, and thinking about problems in terms outside a specific language. The only difference between a human language and a programming language is that with programming, you are speaking to a compiler/interpreter, rather than to a person. You can memorize the syntax of C, Perl, Java, but you will never know how to program if you approach problems in terms of the language rather than the fundamental patterns or rules to solve problems. The best programmers understand how to use algorithms to solve problems. They can hop from one language to another with ease. In the same way, people who understand the basic structure of all human languages can move easily from language to language easier than those who do nothing but memorization.

  • I notice that no matter what language or os you play with, the basic math, algebra and other advanced maths come into play.

    I really think a strongpoint in maths helps people understand more about programming languages.

  • They must be using some BASIC variant.

  • Of course this is anecdotal evidence, but my mother, who has an English degree could definately be considered linguistically adept, could never program. Not a computer, and most likely not even a VCR.

    The logic of saying that linguistically gifted persons could be good programmers because many programmers are above average linguists is flawed. It is similar to saying that since most apples are red, something red is probably an apple.

    Fundamentals of programming are problem solving, organizational ability, semantics, and attention to detail. I have to take issue with those saying that "higher math" has anything to do with the majority of programmers' daily lives... Last time I checked, "decrease inventory by 1 and bill the customer" was NOT higher math. But I guess that really depends on what work you're doing...

    In any case, I'd say those in fields other than linguistics would be far better suited to programming... Any engineering field, most likely... Problem solving is the common need amongst those fields. It's not a major stretch.

    I like pizza.
  • We're getting a little bit off-topic here, but hash tables and n-base converters are still not higher math. Higher math, by schooling standards anyways, would be linear algebra, calculus, even trigonometry...

    A "real" programmer can write a nontrivial program without touching anything remotely "higher math." The only exceptions would be trig (which was tought in 9th grade) and matrices, both of which usually have reasonably specialized uses in 2/3d manipulations.

    Back to topic, and my original expression, a linguistically adept person can have a great understanding of syntax, but none of core logic (hash tables, stacks, even while loops)... So the underlying statement is that linguistic ability does not a "real programmer" make.
  • Some computer languages explicitly make use of the relationship with human languages. For example, opening a window in Smalltalk might be written: "someWindow open." - subject, verb, period.
  • I think the claim that programming aptitude indicates or leads to linguistic aptitude is belied by the appalling grammar, syntax, and spelling that plagues slashdot and much of the technical material on the web.

    That said, it does seem plausible (as others in this discussion have pointed out) that linguistic competence and programming competence draw on the same--or at least closely-related--analytical capabilities.

    You'll find increasing numbers of erstwhile humanities majors in technical professions these days, and I think that the convergence of linguistic and technical interests and skills is a truly beneficial development.
  • Higher math skills predict programming aptitude better, I think, than linguistic aptitude only.

    If you're doing something like business programming, I think the order of aptitudes that predict your skill well are linguistic (structure and symbolism), accounting (detail oriention and business knowledge), and lastly mathematical (abstract reasoning).

    The best programmers of any type, however, will be those that exhibit the highest level of aptitude in both higher math and linguistics. I think that the aptitude for any "mind skill" is going to be highest among those with the greatest skill in both disciplines.

    In my opinion, skill in both disciplines suggests a brain that reasons well as a whole.

  • on one hand.. "computer languges" are really human languages and the compiler translates them into real machine language right? so in essence learning basic or c is really learning another human language...
    but just because you are good at learning the grammar and vocabulary doesn't mena you can make use of it... because computer languages make use of alot of math and logic skills that are not present in regular languages... i'm guessing this is because the computer/compilers need very exact rules to follow.. for example if i forget to put the period at the end of this sentence, you will still understand me if i forget to put a ; at the end of a c statement the compiler will bomb...
    so in essence linguistic aptidude might help in learnign programing, but is hardly the only factor
  • Had to do some reasearch here.

    Modern Hebrew was created about a 100 years ago by Eliezer Ben-Yehuda. Prior to that time no one spoke Hebrew, Jews prayed in Hebrew but spoke in Yiddish or Ladino. He created a dictonary of modern Hebrew and created hundreds of words including those for Soldier, Newspaper, toothbrush etc.

    I am unsure exactly how much gramar was introduced, but I believe it was significant.

    The cure of the ills of Democracy is more Democracy.

  • Counter point Modern Hebrew, is an invented language. 150 years ago no one spoke Hebrew as a first language and no one had in well more than a 1000 years. A few people took Biblical and Talmudic Hebrew and expanded it into the modern language.

    The cure of the ills of Democracy is more Democracy.

  • I pre-apologize for the use of stereotypes here, but here goes...

    I would have to say that having the skills of a good programmer does enable one to have certain skills in traditional languages. I would not say that it works the other way around, though. Being a connoisseur (sp?) of programming languages entails being a master of syntax and semantics. That is, programmers must be intimate with the rules of how to form statements of the language together into programs and with the meanings of each thing that can be expressed in the language. When dealing with traditional languages, the same rules exist, though they are usually a bit more vague and irregular (read: inelegant). So programmers typically are masters of the mechanics of traditional languages. Of course, there is much more to being a linguistically talented than just knowing the mechanical aspects.

    Use me for an example. I am a skilled programmer. I took four EASY years of Spanish in high school. My English grades were most likely a school record. However, I have trouble writing things; it takes a really long time and I'm never satisfied with what comes out. I also did very poorly on those "reading comprehension" types of questions where you read something and answer questions about the artistry or hidden meaning of the work. I hate pretty much all classic literature; I read nothing except for a few sci-fi books and programming books.

    Anyway, my point is that the artistic side of the study of traditional languages will probably get you nowhere in the programming language world. It's the mastery of the syntax and semantics of language that makes you have the right thought processes for programming.

    Of course, all of this is my humble opinion!

    --
    SecretAsianMan (54.5% Slashdot pure)
  • If you want a counter-anecdote, I also have an English degree, and I can program. But I think it's skill in picking up foreign languages that the original poster was talking about. I think being able to pick up programming *languages* easily is related to quickly learning foreign languages...at least the basics. I guarantee you that I can ace the first (and sometimes the second) year of any university level foreign language course. Why? Because, just like learning a new programming language, the basics of any foreign language involve memorizing rules...syntax, grammar, vocabulary, etc. Maybe the aptitudes are related in and of themselves, or maybe the ability to pick up new languages has to do with having new programming languages thrown at me every six weeks or so in my CS classes, but it's no mystery why someone who's good at one would be good at the other.

    Cyclopatra

  • The correlation is indeed present, but should be understood this way: Programming potential and linguistic aptitude both come from (a more fundamental) aptitude at reasoning. Why? Because using a language (natural or computer) is a problem-solving task in itself. You need to organize and structure your thoughts in order to communicate them efficiently. If someone's good at reasoning, it means they will likely be good at programming, and they will generally express themselves better than average. Of course, there are exceptions, caused by many factors, such as personal interests, motivation, etc.
  • by crisco ( 4669 ) on Thursday December 28, 2000 @06:00PM (#1415246) Homepage
    ...Does Linguistic Aptitude == Programming Potential?
  • by scotpurl ( 28825 ) on Thursday December 28, 2000 @06:10PM (#1415247)
    Whilst someone may write in perfect syntax, that does not mean they have used the correct algorithms, or that the program has good construction. Form vs. substance.

    For an extreme example, look to politicians, who say nothing perfectly.

"If it ain't broke, don't fix it." - Bert Lantz

Working...