This course will become read-only in the near future. Tell us at community.p2pu.org if that is a problem.

Being a (computer) Linguist


So the point of this course is to make you a linguist, not teach you a language. Computer programming, and IT in general, is a funny business. You can go to a school or technical college for a few years and get a degree, and the way the economy is today most companies do want to see paper, but the best experts in the field for the last 20+ years are self taught.  Many of the ones I've worked with got started in other fields. I've worked with Cisco experts that had degrees in Accounting, Linux guru's that were construction contractor's, Web pioneers that were X-Ray technicians, and more. This is the goal in this course. The skills and tasks are going to give you the power to become a self-taught expert, even if you are in a Programming course at DeVry.

This is how it works. If you want to be successful you are going to have to learn for the rest of your life. Most of the language specific stuff you learn in school may be obsolete by the time you graduate. If you don't have a love of discovery and learning, you will never be in the top of this field.  Go to MBA school and learn what color works best on your spreadsheet and save yourself some headaches.

Programmers are special. We're like linguists.

In linguistics, we study languages. Languages are composed of words, and the rules to use those words. If you speak english as a first language, and want to learn another language like spanish, you already know what a noun is and a verb is because they are part of the underlying logic of language in general.

You know what a 'table' is, you learn to call it 'mesa', but you already know it's a noun. Neat, huh?

Of course, verbs are more complicated. In english we use tenses. I run home. I ran home. I have run home. I will run home. 

In spanish we use conjugation. We change the ending of the verb to say what the subject of the sentence is. Hablo means I speak, hablas means you speak.

Same thing with computer languages. The ones and zeros and processor and memory and all that stuff are like your brain and tongue when you speak a language. The language you speak is like the language you use to program.

And there is a basic underlying logic to all computer languages, like nouns and verbs.

One of these basic logic rules is the conditional statement. The computer gets to a point where it must decide what instruction to follow next. If this condition, then do this instruction.

This is basic to all programming languages. If you understand the underlying logic, you can pick up the language incredibly fast.

In Java:

IfThenStatement:
    if ( Expression ) Statement

In Python:

if len(l) <= 1:
                  return [l]

And on and on... It's okay if you have no idea what these code bits mean, 
just understand that they and all computer languages are simply doing 
the noun-verb thing. 
If this is true, do that.

So today, let's pick a language to study. You will learn to use this language while learning the lingusitics behind it and all others.

Find on the internet a language specification document for your language. I like python, so here's the one I'm going to give you for free:

http://docs.python.org/reference/index.html

Add it to your Zotero library so you can find it and you are beginning to build your reference library. For extra credit add it to the shared Zotero Libraray for this class (check if it's already there first!!) If you are going to add a reference to the shared library, please click on the "Tags" tab to the right and add "Language Reference" as a tag, so I don't have to. This is a collaborative community. wink

There are many fine courses on specific languages, here at P2PU and at other sites. I encourage you to check them out. But for this exercise try to find an original language specification from the site that originated the language, ie python.org for the python language specification.

Task Discussion