On Jul 26, 2011, at 3:31 PM, Lepczyk, Timothy wrote:
> Thanks everyone. The reasons I thought of taking the C course is a) it's free, b) concepts might be transferrable to other languages. I may continue to focus on Ruby on Rails.
Before everyone manages to scare you away from learning C,
if you're going to be doing a lot of programming, it's useful to
learn other languages so you can see how they handle
different tasks. C is particularly useful as a lot of other language's
implementations were primarily written in C.
In college, I took a 68k assembly course ... I've never done
*any* assembly since then, but it makes you appreciate the
issues in optimization, and just how low-level you need to get
when talking to processors.
With C, pointers and pointer arithmetic are a bit of a pain,
and strongly-typed languages aren't the greatest for all
tasks ... and don't get me started on C-strings ... but you'll
learn a lot ... even just where to look for people screwing
up their assumptions & creating security problems because
of off-by-one issues or screwing up the length of their strings
or neglecting their garbage collection.
... and, understanding C will also help you when it comes
time to install stuff, especially if you're trying to port someone's
linux-centric code to Solaris or MacOS.
As for the stuff that translates:
searching for the missing semi-colon
error messages that make no sense
finding the 'smart quote' that your lab partner pasted
in because they do their editing in MS Word.
um ... I'm not selling this very well, am I?
Anyway ... C is a useful language ... almost all higher languages
have some way of binding to C code, and if nothing else,
learning it means you'll be able to port over someone's
1k line C program into 20 to 40 lines of whatever other modern
language you prefer.
-Joe
|