[Courses] [python] Googling isn't cheating :-)

Monique Y. Mudama monique at bounceswoosh.org
Fri Jul 8 22:19:29 UTC 2011


On Fri, Jul  8 at 13:50, Dianne penned:
> 
> On Fri, 8 Jul 2011, Akkana Peck wrote:
> >
> > Agreed there, too. Most programmers know lots of languages.
> > They're similar enough that once you know one, picking up another
> > one isn't a big deal.
> 
> Mmm. I partially agree, partially disagree. Many of the languages
> that are popular today are based on C (C++, Java, PHP, Javascript
> etc.) But even if you're fluent in all of those you'll still
> probably find it hard going if/when you switch to a language that is
> based on a totally different paradigm such as XSLT, Prolog, DDL or
> assembly.  If all your experience is in strongly-typed languages,
> learning a loosely-typed one may drive you nuts. And so on.

I agree - to the extent that they're not all so similar that you can
just pick up and go.  But I do think, as you suggest, that if you're
familiar with a language from a certain "family", you'll be
well-prepared to pick up another from that same "family."

That being said, if you compare the person who has spent her entire
career developing expertise in one particular language vs. the person
who has spent her career using different languages - you're going to see
different strengths.  I've been building an app in C# recently, and it
works just fine, but that doesn't mean I know all of the idioms, have a
deep understanding of which of several possible approaches will be more
performant, etc.  The LINQ stuff, despite my SQL experience, was pretty
incomprehensible to me at first; now I've actually started seeing where
I can use it to good effect.  Similarly, when I'm working in C++, I
always have to "translate" from my Java understanding of inheritance and
parameter passing, not to mention memory management, to the actual C++
model.  The two languages are syntactically similar, but worlds apart
under the hood.

> That's just something to keep in mind (based on my own experience).
> I may have only dabbled in Scheme and Prolog in school, but having
> done so made it much easier to acquire XSLT when I ran into it in
> the workplace. But I still struggle with Javascript - even after
> years of struggling with it I still don't grok its (IMHO) funky
> event model.

I do kind of think, though, that learning any one language will ease the
learning curve for any other.  Yes, there are certain paradigms within
those languages that may be sticky - okay, in the case of Prolog, almost
everything about it is different! - but after having been exposed to the
basic idea of logically consistent, ordered behavior (ignoring OO and
multi-threading for now), I think a person can apply those concepts to
some degree to all languages.  And having learned "such and such is
possible in my first programming language," a person is likely to expect
that the same sort of thing should be possible in her next
programming language, at which point a search engine can point her in
the right direction ...

Hrmm.  Now I'm wondering, to what extent did programming prepare me for
SQL (set-based operations)?  My experience with data structures helps me
understand how indexes and such can be used to best effect, but I'm not
sure that it was terribly helpful when I was piecing together my first
select statement ...  So maybe I'm wrong ... but maybe I can get out of
it by declaring that SQL on its own is not, strictly speaking, a
programming language, and is not Turing-complete (as opposed to T-SQL,
PL/SQL, etc).

Did I mention I enjoy language geekery?  Sorry for rambling ...

-- 
monique


More information about the Courses mailing list