Re: Quick questions...
- From: Eric Sosman <esosman@xxxxxxxxxxxxxxxxxxx>
- Date: Sun, 30 Oct 2005 07:50:10 -0500
earthlinkmail@xxxxxxxxxxxxx wrote:
...you experienced programmers of C; did you start with C? What course of study did you pursue to get to where you are today? Would you suggest starting with REALbasic first for a n00b? I am completely new to programming and using a Mac and would like some input as to where to begin a career in programming. I know this is probably a somewhat undefined question, but would appreciate you input/advice. Thanks.
C had not been invented when I started programming, so I didn't have the option of learning it first. Although C is probably easier to get started in (and vastly more powerful than) the FORTRAN II that was my introduction to programming, I don't think I'd recommend it as a first language for a beginner. It is a band saw without a blade guard: the perfect tool for cutting tricky shapes in wood and in fingers.
Baby-talk languages like BASIC or Pascal don't strike me as a good way to start, either. Both have been morphed into "serious" languages, but seem top-heavy: too many industrial- strength features loaded onto inadequate substrates. A kid's little red wagon is a fine thing, but not the vehicle of choice for hauling freight cross-country.
Looking at the languages available today, I'd suggest starting with either Java or some form of Lisp. Both are "real" languages, but both relieve you of worrying about some of the trickier aspects of "real" programming, especially memory management. Also, both come with things like Iterator (Java) and mapcar (Lisp) that provide canned solutions for some common and repetitive tasks so you can forget about them for a while as you concentrate on learning how to reason about a program's behavior.
Alas, both languages share a serious drawback: Their error messages are cryptic and likely to baffle a beginner. (By "cryptic" I don't mean merely "terse:" both languages tend to produce messages that describe a difficulty in their own terms and not in terms of the problem space. All computer languages I've used share this characteristic to some degree, but Java and Lisp seem a little remoter than most.) The opacity of their diagnostics may be somewhat offset by the superior debugging features that lie within the languages themselves.
Of course, all this is a bit speculative on my part. I did not actually begin my study of programming with either Java or Lisp, and don't actually know from personal experience how good or bad they might be. I think, though, that they'd be better starting points than C -- I started learning C almost thirty years ago, and I *still* haven't grasped all of it!
-- Eric Sosman esosman@xxxxxxxxxxxxxxxxxxx .
- Follow-Ups:
- Re: Quick questions...
- From: John B
- Re: Quick questions...
- References:
- Quick questions...
- From: earthlinkmail
- Quick questions...
- Prev by Date: Re: Why am I getting floating point exception?
- Next by Date: Binary Search
- Previous by thread: Re: Quick questions...
- Next by thread: Re: Quick questions...
- Index(es):
Relevant Pages
|