[clue] Budding SW Engineers

Lorin Ricker Lorin at RickerNet.us
Mon May 7 14:46:32 MDT 2012


-1 on C -- er, I agree with Dennis.  C is *not* the best place to start, 
and subsequent exposure to it, tho' a good idea, should be based on a 
solid "how to do it right" groundwork in a language that doesn't sport 
C's warts.  In the good-ol'-days, we used Pascal for that purpose (and 
did hundreds of thousands of lines of code in Pascal for 
industrial-strength applications) -- today, I'd still recommend Pascal 
as a great intro language, just because it emphasizes so many of the 
basics and right conceptual habits.

Ruby's also a great place to start -- as long as you don't get lost in 
the weeds of Object Oriented (OO) during the intro phases.  I'll be 
trying to convey a good sense of this during our forthcoming "Intro to 
Ruby" class, tentatively set for mid-June (and we'll be announcing the 
set date clearly here and elsewhere, so stay tooned!).

I "grew up" in coding in assembler, and it really does help to know what 
a compiler or dynamic interpreter of <insert your favorite language 
here> boils your high-level programming statements into so the CPU/HW 
can actually execute your algorithm/program.  My very first professional 
application was for a real-time fire alarm monitoring system, done in 
1024 bytes (yes, kids: that's 1Kb) of ROM and 512 bytes of scratch-pad 
memory, all on a Motorola 6800 (yup, just two zeros).  Now *that's* 
"tight code."  Used to walk to school barefoot, backwards and uphill 
both directions, when I was a kid, too! ;-)

Fortunately (maybe not so much), memory's a lot less precious/expensive 
now-a-days, so that same fire alarm monitor would likely be written in 
Forth, or even in Pascal, C or Ruby, with a lot more assumed overhead, 
acres of disk and RAM, and enormously more powerful (faster) CPUs to 
compensate for it all.

I've written code productively in at least 20+ languages -- to a first 
approximation, "all programming languages are alike", and it never seems 
a big deal to pick up another one.  However, starting with a "right" 
language can really help a novice coder to get many of the basics right, 
and the "wrong" one can make comprehension of the correct principles 
much harder.  As the Knight said to Indiana Jones when he picked up the 
Carpenter's Cup: "You've chosen wisely, my son."

best regards,
   — Lorin

On 05/07/2012 01:03 PM, dennisjperkins at comcast.net wrote:
> I don't know if C is a good first language. In addition to learning
> basic programming principles, you must also deal with pointers, work
> around C's not having strings as a basic type, etc. And you also need to
> compile, which is one more thing to do. Focus on the basics first, then
> expand your knowledge.
>
> I do think C is a good second language. But then, I think software
> engineers should also learn assembly language, not because they will
> ever use it, but because it exposes them to where hardware and software
> meet at the most basic level.
>
> ------------------------------------------------------------------------
> *From: *"M Paul Webb" <hsechmvt at yahoo.com>
> *To: *"CLUE's mailing list" <clue at cluedenver.org>
> *Sent: *Monday, May 7, 2012 12:45:45 PM
> *Subject: *Re: [clue] Budding SW Engineers
>
> I've always heard that it is best to begin with some form of C. You
> don't think so? I don't know program language, but the basics do not
> look difficult. However, what I'm wondering is -- if I invest some time
> to learn a language, then what can I do with it? If there were something
> fun or practical, I might look at some books.
>
> ------------------------------------------------------------------------
> *From:* Raymond DeRoo <rderoo at deroo.net>
> **To:** CLUE's mailing list <clue at cluedenver.org>
> *Cc:* Max G. Allen <mgallen at thegeek.nu>; David T. Willson
> <dtwillson at thegeek.nu>
> *Sent:* Monday, May 7, 2012 12:10 PM
> *Subject:* Re: [clue] Budding SW Engineers
>
> David:
>
>     I can'tcount the number of times I've been asked, "What is the best
>     programming language? Which one should I learn first?"
>
>     Learn them all, but start with Python, because it's easy, fun, and
>     highly capable out-of-the box.
>
>
> And one of few where indentation matters. :)
>
>     Next, if you want to get further away from the OS, go Java. If you
>     want to get closer to the OS, go bash.
>
>
> I think Java or C, bash isn't a programming language and is further from
> the OS than Java. ( even taking into account the JVM )
>
>     And enough JavaScript and perl to get by on.
>
>
> I would have to say the JavaScript is an absolute must unless that have
> no desire to write Internet related code. So many technologies today are
> making use of javascript ( node.js, mongodb, html5, etc ) that anyone
> not learning JavaScript today is doing themselves a huge disservice.
>
> Cheers,
> Raymond
>
> _______________________________________________
> clue mailing list: clue at cluedenver.org <mailto:clue at cluedenver.org>
> For information, account preferences, or to unsubscribe see:
> http://cluedenver.org/mailman/listinfo/clue
>
>
> _______________________________________________
> clue mailing list: clue at cluedenver.org
> For information, account preferences, or to unsubscribe see:
> http://cluedenver.org/mailman/listinfo/clue


More information about the clue mailing list