
Why Undergraduates Should Learn the Principles of Programming Languages - fogus
http://mt4.acm.org/educationboard/2010/06/why-undergraduates-should-learn-the-principles-of-programming-languages.html
======
presidentender
I have to admit, I've never been satisfied with any of the arguments for
teaching this, other than intellectual stimulation.  Now, I took a PL course
before my working career, so I don't have a frame of reference, but does it
really make a difference? 

That is, does a Programming Languages class make it faster to learn new
languages, give us the ability to choose the "right tool for the problem," or
provide any other benefit?  This paper (and my professors) all said so.  But I
can't help but wonder if this is confirmation bias: most of the time, language
choices seem to be made based on what other people are using on the target
platform, and there's no scientific way to track how quickly any given
individual learns a new language. 

~~~
SkyMarshal
From my POV as a corporate Java-trained accidental software engineer with an
Econ degree, yes it makes a difference.  Besides everything the paper mentions,
all of which I agree with, there are a few other things it does for you. 

I'm not a computer scientist, as the article seems to target, but a practicing
software engineer, but I feel more like an amateur hack.  The reason is b/c
with almost every problem I'm tasked to solve or app to build, I'm never quite
sure whether I'm solving or building it the most efficient, robust way (and
some times I know I'm not, but am limited by my tools). 

That lingering doubt makes me feel like a charlatan, or a used car salesman,
hocking my wares while suspecting their quality. 

To fix that, I've recently taken a sabbatical just to cram through SICP, PCL,
Norvig's AIP, K&R and some other C and kernel hacking books, and Haskell and
Ocaml, Erlang and/or Google Go, and probably some of the other highly regarded
books on the topic (Code Complete, etc).  It was just too slow-going trying to
do that while working full time.  If there were a degree program with that
curriculum I'd go do it, but there's none that I know of. 

Consider it your due diligence.  Doing it as thoroughly as possible gives you
confidence and a valuable psychological edge, be your opponent a tough problem
or a ten-cent-per-hour rent-a-coder overseas. 

The other tangible benefit is to your personal brand marketing: there's not
much more of a clear signal that you are curious, eager to learn, open minded,
and passionate about and dedicated to your craft than learning multiple
languages, and these things are essentially requirements if you ever hope to
work for/with the best programmers and engineers in the business.  The only
things better are grad school and having built and made money off a cool
startup or app.  If you want to get away from the slavery of the 'enterprise
java douchebag' shops, to quote Zed, this is one good way to do it. 

~~~
makmanalp
This is a new one - guilt as the ultimate professional motivator? :)