Engineering students, you may need multiple programming languages

Last month, after I posted an entry “Engineering Professors, Please Teach Some Programming Languages“, I received two well thought comments:

spinoza1111 (from his article “‘Academic” as a term of abuse‘, I know he dislikes FORTRAN because of “Go To”):

Interesting comment.

I worked as a programmer at Princeton and wound up “teaching at Princeton”. That is: the university takes the position that computer science and other engineering students MAY NOT study programming in formal Princeton classes, but are expected, as computer science students, to know C and Java upon matriculation. Therefore I was asked to teach C at Princeton.

This elitist philosophy also appears in Princeton’s math department, which offers no classes before Calculus.

Increasingly, programming is part of high school. My kid learned it in HS.

As to your hires knowing Fortran, this could be a problem in the years to come. It’s very unpopular in academia, and your hires will need training in its idiosyncracies. “Structured” Fortran was developed to avoid some of Fortran’s classic problems, but legacy code may not use the new features.

My view is that at University, students have the right to learn Truth and Beauty for a few years, and that for this reason, they shouldn’t be taught about Fortran, and I say this as one who, in 1971, debugged a nonworking Fortran compiler in object code to make it available to students. If industry uses legacy code, it should be ready to train students in older programming languages.

Otherwise, there is a danger, given the glamour and authority of university material, that students will repeat Fortran’s mistakes.

Fortran WAS a mistake. It has caused many engineering problems, including recent “credit crisis” problems because Fortran, sad to say, is used for financial modeling and speculation. Because auditors like your hire aren’t trained in it, they “audit around” it only to discover, too late and in the current crisis, that financial models built in Fortran have serious deficiencies including loss of the address of the original debtor in a securitized mortgage and circular derivatives where a is priced on b, b is priced on c, and c upon…a.

Now, Fortran doesn’t force the Fortran programmer to make these mistakes, but it does set a terrible example of “down and dirty” design which is psychological reinforcement for modern errors.

dougaj4 (an Excel advocator, see his articles ““, “Gaussian Quadrature” and “Evaluate integrals to a specified tolerance“, etc.):

There are some things that are better learnt at university, and some that are better learnt “on the job”. In my opinion coding in specific languages is definitely in the latter group, although the basics of programming probably comes in the former.

So it seems quite reasonable to me that students should only have experience in coding Matlab, although personally I’d suggest Excel VBA which would allow the teaching of the same basics, plus proficiency in a tool of wider general use.

Now I see resistance from educators and they probably have their point too. But the reality is that industry does not soly rely on Matlab or any exclusive programming language. In fact, there are emerging new languages coming to the world. Moreover, a language is not simply a tool to do engineering work. It is a training on how to think, how to do engineering work. I hope I will get another change to write more about it. For now, without being able to tell professors to teach various programming languages, I would suggest that engineering students be ready to learn and use other languages that you do not learn in class. An eager-to-learn attitude is very important as you can not tell your boss that you are unable to do the work because you didn’t learn it at school.

Tags: , , , , ,

4 Responses to “Engineering students, you may need multiple programming languages”

  1. Engineering students, you may need multiple programming languages Says:

    […] Original post by paviavio […]

  2. spinoza1111 Says:

    I agree. Somehow, computer science students need a language like Latin for us in Catholic school in the Fifties, or Classical Chinese for my English students, a root language in which the world was conceptualised in the beginning and which embeds thought patterns found in modern languages.

    Latin teaches the importance and significance of inflections which in Latin allow the speaker to rearrange words for emphasis and poetic metre: Erat Chloris, Chloris erat. This is preserved in Shakespeare: guy writes “what light breaks from yonder window”, it doesn’t scan, so he moves the INFLECTED verb “breaks” (third person, singular) to the end of the line creating a perfect iambic pentameter.

    Latin made it possible for me to chat up French girls in French.

    Now, in programming, we need a language which makes it easy to learn new languages. Java and C Sharp fit the bill!

  3. Barry Says:

    Good stuff!

  4. Top 15 Popular Posts of 2009 « Paviavio           Says:

    […] Engineering students, you may need multi […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: