By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
428,829 Members | 1,798 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 428,829 IT Pros & Developers. It's quick & easy.

I have no programming experience. Would you recommend C?

P: n/a
Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?

Thanks in advance!

-entengk

Jan 20 '07 #1
Share this Question
Share on Google+
111 Replies


P: n/a

Enteng wrote:
Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Yes.
Also how do you suggest that I learn it?
Reading some books and writting as many as possible codes.
What books/tutorials should I read for someone like me?
The C Programming Language (the second edition)
Thanks in advance!
You're welcome!
-entengk
Jan 20 '07 #2

P: n/a

"Enteng" <en*****@gmail.comwrote in message
Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?
I'm planning to write a little booklet "Learn to program with BASICdraw" for
people like you.
Basic doesn't have any pointers and in my version doesn't have any
subroutines. So it is a good way of learning the concept of expressions,
assignments and flow control without all the confusing things.
BASICdraw is also a graphical program, so it has the considerable advantage
that it is possible to write useful and visually appealing programs from day
one.

However I haven't written the booklet yet. C isn't a terrible choice of
first programming language. The main problems are pointers and 2d arrays,
both of which cause great confusion to beginners.

BASICdraw + interpreter documentation available here:
www.personal.leeds.ac.uk/~bgy1mm
Jan 20 '07 #3

P: n/a
On 19 Jan 2007 23:58:28 -0800, "Enteng" wrote:
>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
No. C has many quirks and pitfalls that make the learning
unnecessarily difficult. Basic, Python, JavaScript seem to be more
appropriate as entry into programming.
>Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?
Attend a course. Learn the first steps of programming from a human who
shows you the basics and helps you with your mistakes.

Good luck,
Roland Pibinger
Jan 20 '07 #4

P: n/a
Enteng said:
Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Yes, absolutely. Pascal is possibly a better starting choice (because it was
actually designed as a teaching language, and was designed well), but C is
a fine choice too.
Also how do you suggest that I learn it?
Since you appear to have no prior experience of programming, I would suggest
you start with "C How to Program", 5th edition, by Deitel and Deitel. It
develops an identity crisis in the second half and forgets which language
it's supposed to be discussing, but the first half is excellent.

Get yourself a free compiler. If you're on Linux, you're sorted - gcc should
already be installed. If you're on Win32, there's a list of free C
compilers at http://www.cpax.org.uk/prg/portable/c/resources.php
What books/tutorials should I read for someone like me?
See that same URL for a list of recommendations. There are precisely two
good C tutorials on the Web, and they are both listed there. So, too, is a
list of decent C books. I don't claim it's an exhaustive list, but you need
to know that most books on C are pretty dire.

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
Jan 20 '07 #5

P: n/a
Enteng wrote:
Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?
It really depends on your flair. If you want to learn a powerful and
expressive yet simple language, which is also very popular, then C, (or
possibly C++), may be your choice.

If you want to go with a simpler language, perhaps more suited for
learning purposes, with lesser flexibility, perhaps you should consider
Pascal, Python, Haskell etc.

It's more important to stick with a choice, (once made), and get lots
of practise. For C, probably the best book for learning it may be "The
C Programming Language" second edition by Kernighan and Ritchie. This
group and it's FAQ are great resources too.

<http://c-faq.com/ /*
FAQ for this group */
<http://www.cs.cf.ac.uk/Dave/C/>
<www.eskimo.com/~scs/cclass/cclass.html>
<www.lysator.liu.se/c/>
<www.le.ac.uk/cc/tutorials/c/>
<www.open-std.org/jtc1/sc22/wg14/ /* ISO C
standardisation group */
<www.dinkumware.com/manuals/ /* C standard
library reference */
<http://gcc.gnu.org/ /*
excellent free compiler collection */
<www.bloodshed.net/ /*
good IDE */
<www.mingw.org/ /*
gcc for windows */
<www.acm.org/crossroads/xrds10-4/firstlang.html /* about first
choice of language */

Jan 20 '07 #6

P: n/a
Richard Heathfield skrev:
Enteng said:
>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?

Yes, absolutely. Pascal is possibly a better starting choice (because it was
actually designed as a teaching language, and was designed well),
Oberon is an even better design and it is smaller and easier to learn
too. Oberon, as opposed to Pascal, also has support for modules and
object oriented programming.
August
Jan 20 '07 #7

P: n/a
"santosh" <sa*********@gmail.comwrote in message
Enteng wrote:
>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?

It really depends on your flair. If you want to learn a powerful and
expressive yet simple language, which is also very popular, then C, (or
possibly C++), may be your choice.

If you want to go with a simpler language, perhaps more suited for
learning purposes, with lesser flexibility, perhaps you should consider
Pascal, Python, Haskell etc.

It's more important to stick with a choice, (once made), and get lots
of practise. For C, probably the best book for learning it may be "The
C Programming Language" second edition by Kernighan and Ritchie. This
group and it's FAQ are great resources too.
In the best circles, Lisp is the the language of choice for introductory
programming.
Jan 20 '07 #8

P: n/a
in 715545 20070120 122146 "Malcolm McLean" <re*******@btinternet.comwrote:
>"santosh" <sa*********@gmail.comwrote in message
>Enteng wrote:
>>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?

It really depends on your flair. If you want to learn a powerful and
expressive yet simple language, which is also very popular, then C, (or
possibly C++), may be your choice.

If you want to go with a simpler language, perhaps more suited for
learning purposes, with lesser flexibility, perhaps you should consider
Pascal, Python, Haskell etc.

It's more important to stick with a choice, (once made), and get lots
of practise. For C, probably the best book for learning it may be "The
C Programming Language" second edition by Kernighan and Ritchie. This
group and it's FAQ are great resources too.
In the best circles, Lisp is the the language of choice for introductory
programming.
but that approach goes nowhere
Jan 20 '07 #9

P: n/a

Enteng escreveu:
Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?
Hello,

If you're in a hurry to program in C, well, then you should just get a
C book like "The C Programming Language" by K&R and slowly try to
understand examples and everything they say. If you're not in a hurry,
try the first chapters of Structure and Interpretation of Computer
Programs by Sussman et al. (http://mitpress.mit.edu/sicp/). You'll be
introduced to the main concepts in Programming using Scheme (try PLT
Scheme for the examples www.plt-scheme.org) and then come back to C
with "The C Programming Language". It'll be easier to catch up and
you'll have a whole bunch of knowledge which you wouldn't find in K&R
book!

Good luck,

Paulo Matos
Thanks in advance!

-entengk
Jan 20 '07 #10

P: n/a
August Karlstrom wrote:
Richard Heathfield skrev:
>Enteng said:
>>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?

Yes, absolutely. Pascal is possibly a better starting choice (because
it was actually designed as a teaching language, and was designed well),

Oberon is an even better design and it is smaller and easier to learn
too. Oberon, as opposed to Pascal, also has support for modules and
object oriented programming.
No, that just confuses the issue with complications for a newbie.
ISO Pascal is much better for learning. There is also PascalS
which is even further simplified for students. No reals, no files
other than input/output, etc. Thorough run-time checks.

--
<http://www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.txt>

"A man who is right every time is not likely to do very much."
-- Francis Crick, co-discover of DNA
"There is nothing more amazing than stupidity in action."
-- Thomas Matthews

Jan 20 '07 #11

P: n/a

"CBFalconer" <cb********@yahoo.comwrote in message
news:45***************@yahoo.com...
August Karlstrom wrote:
Richard Heathfield skrev:
Enteng said:

Hi I'm thinking about learning C as my first programming language.
Would you recommend it?

Yes, absolutely. Pascal is possibly a better starting choice (because
it was actually designed as a teaching language, and was designed
well),

Oberon is an even better design and it is smaller and easier to learn
too. Oberon, as opposed to Pascal, also has support for modules and
object oriented programming.

No, that just confuses the issue with complications for a newbie.
ISO Pascal is much better for learning. There is also PascalS
which is even further simplified for students. No reals, no files
other than input/output, etc. Thorough run-time checks.
I agree a Pascal like language is the easiest to teach and learn most of
the concepts of programming.
Jan 20 '07 #12

P: n/a
It all comes down to how much effort you are willing to put in.

Yes, C is the BEST first language to start with. There are several
reasons for this:
1. It gives a solid base and logic for learning other procedural
languages, as well as languages of other paradigms(Such as C++ and
Haskell).
2. It is THE standard in every possible field... If there has been a
way to port C to somewhere, its most likely been ported.
3. Many languages base themselves(even if it is just basic syntax) off
of C(ie: C++, Perl, Java, etc...).
4. It will help you a lot if you want to join in on Linux and GNU
development.
5. C will change the way you think in a positive way. It gives you
that base logic that is crucial, shows you the way.

However, if you aren't willing to put in crippling amounts of effort,
than you are wasting your time in C. Albeit, once you begin
programming, you will have so much fun, the rest of the learning is
more like heaven than the hell of getting your mind around it enough to
program.

Also, you may not have the type of mind for C. C is very minimalistic
and logical(kind of like Assembly), meaning that it can be cryptic to
those who are learning and don't know C. Which causes problems, that
are easily solved by programming.

Jan 20 '07 #13

P: n/a
>>>>"RH" == Richard Heathfield <rj*@see.sig.invalidwrites:

RHSince you appear to have no prior experience of programming, I
RHwould suggest you start with "C How to Program", 5th edition,
RHby Deitel and Deitel. It develops an identity crisis in the
RHsecond half and forgets which language it's supposed to be
RHdiscussing, but the first half is excellent.

Can you elaborate? The last edition I saw, if memory serves, was the
second, and that one seemed quite good throughout.

Charlton
--
Charlton Wilbur
cw*****@chromatico.net
Jan 20 '07 #14

P: n/a
Richard Heathfield <rj*@see.sig.invalidwrites:
Enteng said:
Hi I'm thinking about learning C as my first programming language.
Would you recommend it?

Yes, absolutely. Pascal is possibly a better starting choice (because it was
actually designed as a teaching language, and was designed well), but C is
a fine choice too.
[...]

If you choose C as your first language, be prepared for the fact that
it won't necessarily detect your errors for you. The C language, and
C implementations, tend to assume that you know what you're doing. If
you write a program tries to drive over a cliff, don't expect any
guardrails to prevent you from doing so, or airbags to cushion your
landing. C gives you the parts and tools to build your own
guardrails, but it doesn't require you to do so, and it doesn't
guarantee that your self-built guardrails will actually do their job.

A simple example:

char s[5];
strcpy(s, "Hello, world");

The first line declares an array of 5 characters. The second attempts
to copy the string "Hello, world" into that array. In some languages,
the equivalent of this code will fail cleanly, perhaps by printing an
error message and terminating your program. In C, however, it's very
likely to go ahead and copy the entire string to the location you
specified, clobbering adjacent memory with unpredictable results. The
technical term for this is "undefined behavior".

There are add-on tools to address this kind of thing.

Remember that it's not particularly difficult to write incorrect code
in *any* language. But C, by itself, expends less effort than some
other languages to catch your errors for you.

But if you can learn to write reasonably robust programs in C, your
experience should carry over to other languages.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Jan 20 '07 #15

P: n/a
Charlton Wilbur said:
>>>>>"RH" == Richard Heathfield <rj*@see.sig.invalidwrites:

RHSince you appear to have no prior experience of programming, I
RHwould suggest you start with "C How to Program", 5th edition,
RHby Deitel and Deitel. It develops an identity crisis in the
RHsecond half and forgets which language it's supposed to be
RHdiscussing, but the first half is excellent.

Can you elaborate? The last edition I saw, if memory serves, was the
second, and that one seemed quite good throughout.
Pages 1 to 665 of "C How to Program" make an excellent introduction to C,
and near the end of that part they even introduce you to the delights of
cross-platform games programming using Allegro. Nice, practical hands-on
stuff, albeit probably unlikely to fly on a mainframe.

Page 666 (!) sees a drastic change, however - from there to page 1062 they
focus entirely on C++. (So "second half" was a slight exaggeration - it's a
little over a third of the book.)

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
Jan 20 '07 #16

P: n/a
Malcolm McLean <re*******@btinternet.comwrote:
In the best circles, Lisp is the the language of choice for introductory
programming.
By "best circles" do you mean "best teaching circles"? The
introductory CS class at Georgia Tech, where I worked as a teaching
assistant for four semesters, was taught in the Scheme dialect of
Lisp, with mixed results. I felt that the very basics came easily to
most students, but later lessons (including unnecessary diversions
into the arcana of real Lisp) were hard to grasp for many students.
Final exam grading was not for the soft-hearted.

--
C. Benson Manica | I *should* know what I'm talking about - if I
cbmanica(at)gmail.com | don't, I need to know. Flames welcome.
Jan 21 '07 #17

P: n/a
po******@gmail.com wrote:
If you're in a hurry to program in C, well, then you should just get a
C book like "The C Programming Language" by K&R and slowly try to
understand examples and everything they say.
If OP is in a real hurry, one of those silly "C for Dummies" or some
such books would be best, but then again, learning C in a hurry is a
bad plan and a waste of time.

(K&R has been printed in a superior second edition.)

--
C. Benson Manica | I *should* know what I'm talking about - if I
cbmanica(at)gmail.com | don't, I need to know. Flames welcome.
Jan 21 '07 #18

P: n/a
Christopher Benson-Manica said:
po******@gmail.com wrote:
>If you're in a hurry to program in C, well, then you should just get a
C book like "The C Programming Language" by K&R and slowly try to
understand examples and everything they say.

If OP is in a real hurry, one of those silly "C for Dummies" or some
such books would be best,
No, it wouldn't. If the OP is in a real hurry, the best thing - as pocmatos
suggested - would be for him to slow down.
but then again, learning C in a hurry is a bad plan and a waste of time.
Yes, and "C for Dummies" illustrates that perfectly.

<snip>

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
Jan 21 '07 #19

P: n/a

"Christopher Benson-Manica" <at***@ukato.freeshell.orgwrote
Malcolm McLean <re*******@btinternet.comwrote:
>In the best circles, Lisp is the the language of choice for introductory
programming.

By "best circles" do you mean "best teaching circles"? The
introductory CS class at Georgia Tech, where I worked as a teaching
assistant for four semesters, was taught in the Scheme dialect of
Lisp, with mixed results.
Georgia Tech is obviously the best circles.
>
I felt that the very basics came easily to
most students, but later lessons (including unnecessary diversions
into the arcana of real Lisp) were hard to grasp for many students.
Final exam grading was not for the soft-hearted.
The problem with real Lisp is that they have kludged, or, in their terms,
vulgarised the language to allow for arrays and other concessions to
efficiency. Then they have changed the names and added shortcuts for all the
basic functions. As a result it a lot harder to understand the logic of the
language.
--
C. Benson Manica | I *should* know what I'm talking about - if I
cbmanica(at)gmail.com | don't, I need to know. Flames welcome.

Jan 21 '07 #20

P: n/a
In article <cK*******************@newsb.telia.net>, August Karlstrom
<fu********@comhem.sewrites
>Richard Heathfield skrev:
>Enteng said:
>>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Yes, absolutely. Pascal is possibly a better starting choice
(because it was actually designed as a teaching language, and was
designed well),

Oberon is an even better design and it is smaller and easier to learn
too. Oberon, as opposed to Pascal, also has support for modules and
object oriented programming.

Good in theory but as Oberon is hardly used at all. It is a little
pointless. As least there is a lot of readily available support and
tools for C and to a lesser extent Pascal. This is not the case for
Pascal.

Ie if I took a dozen programmers at random all could help with c or know
where tools and help are, probably half could do the same with Pascal.
I doubt that 90% would even have heard of Oberon. (Or Modula 3)

--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/
/\/\/ ch***@phaedsys.org www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Jan 21 '07 #21

P: n/a
In article <45**************@news.utanet.at>, Roland Pibinger
<rp*****@yahoo.comwrites
>On 19 Jan 2007 23:58:28 -0800, "Enteng" wrote:
>>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?

No. C has many quirks and pitfalls that make the learning
unnecessarily difficult. Basic, Python, JavaScript seem to be more
appropriate as entry into programming.
It depends what you want to do. I suggest you find out WHY the OP wants
to learn to program.

--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/
/\/\/ ch***@phaedsys.org www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Jan 21 '07 #22

P: n/a
In article <Sc*********************@bt.com>, Malcolm McLean
<re*******@btinternet.comwrites
>
"Enteng" <en*****@gmail.comwrote in message
>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?
I'm planning to write a little booklet "Learn to program with BASICdraw" for
people like you.
Basic doesn't have any pointers and in my version doesn't have any
subroutines. So it is a good way of learning the concept of expressions,
assignments and flow control without all the confusing things.
So almost as soon as you have learnt it you need to move on to another
language?

I can see the idea but I think it is fatally flawed. Also it depends
what the OP wants to do. Basic may be the wrong direction.
>BASICdraw is also a graphical program, so it has the considerable advantage
that it is possible to write useful and visually appealing programs from day
one.

Not if there are no sub routines.
>
--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/
/\/\/ ch***@phaedsys.org www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Jan 21 '07 #23

P: n/a
In article <11**********************@38g2000cwa.googlegroups. com>,
br***************@gmail.com writes
It all comes down to how much effort you are willing to put in.

Yes, C is the BEST first language to start with.
Probably practically a good choice but probably not the "BEST"
There are several
reasons for this:
1. It gives a solid base and logic for learning other procedural
languages, as well as languages of other paradigms(Such as C++ and
Haskell).
Fair enough.
2. It is THE standard in every possible field...
Not so. In some fields Coral, Ad, C++ and other languages are the
standard but I grant you C is the common choice for most.
>If there has been a
way to port C to somewhere, its most likely been ported.
Very true. Even to PIC's
3. Many languages base themselves(even if it is just basic syntax) off
of C(ie: C++, Perl, Java, etc...).
Fair enough.
4. It will help you a lot if you want to join in on Linux and GNU
development.
What you mean is as it is widely used you are more likely to come across
projects, Commercial, hobby, open source etc that are based on C than
any other language. (No one said Linux or Gnu was a requirement)
5. C will change the way you think in a positive way. It gives you
that base logic that is crucial, shows you the way.
I think you will have a VERY hard time arguing that one. It is a red
herring.

However, if you aren't willing to put in crippling amounts of effort,
than you are wasting your time in C.
That is not true by a long way.
Albeit, once you begin
programming, you will have so much fun, the rest of the learning is
more like heaven than the hell of getting your mind around it enough to
program.
Maybe.
Also, you may not have the type of mind for C. C is very minimalistic
and logical(kind of like Assembly), meaning that it can be cryptic to
those who are learning and don't know C. Which causes problems, that
are easily solved by programming.
It depends if you are hacking or SW Engineering.
--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/
/\/\/ ch***@phaedsys.org www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Jan 21 '07 #24

P: n/a
In article <Y7******************************@bt.com>, Malcolm McLean
<re*******@btinternet.comwrites
>"santosh" <sa*********@gmail.comwrote in message
>Enteng wrote:
>>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?

It really depends on your flair. If you want to learn a powerful and
expressive yet simple language, which is also very popular, then C, (or
possibly C++), may be your choice.

If you want to go with a simpler language, perhaps more suited for
learning purposes, with lesser flexibility, perhaps you should consider
Pascal, Python, Haskell etc.

It's more important to stick with a choice, (once made), and get lots
of practise. For C, probably the best book for learning it may be "The
C Programming Language" second edition by Kernighan and Ritchie. This
group and it's FAQ are great resources too.
In the best circles, Lisp is the the language of choice for introductory
programming.
Well that is a silly statement to make and completely un provable. (It
is also wrong)
--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/
/\/\/ ch***@phaedsys.org www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Jan 21 '07 #25

P: n/a
>>>>"RH" == Richard Heathfield <rj*@see.sig.invalidwrites:

(discussing Deitel & Deitel's _C: How to Program_, 5th ed.)

RHPage 666 (!) sees a drastic change, however - from there to
RHpage 1062 they focus entirely on C++. (So "second half" was a
RHslight exaggeration - it's a little over a third of the book.)

Bizarre. As I recall, in the earlier edition they had a smattering of
information on things that are likely to be gotchas in C++, but it
wasn't a third of the book. And they *have* a _C++: How to Program_
book. I can only speculate that this is something that their
educational customers want.

Charlton
--
Charlton Wilbur
cw*****@chromatico.net
Jan 21 '07 #26

P: n/a

"Chris Hills" <ch***@phaedsys.orgwrote in message Malcolm McLean
<re*******@btinternet.comwrites
>>
"Enteng" <en*****@gmail.comwrote in message
>>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?
I'm planning to write a little booklet "Learn to program with BASICdraw"
for
people like you.
Basic doesn't have any pointers and in my version doesn't have any
subroutines. So it is a good way of learning the concept of expressions,
assignments and flow control without all the confusing things.

So almost as soon as you have learnt it you need to move on to another
language?

I can see the idea but I think it is fatally flawed. Also it depends what
the OP wants to do. Basic may be the wrong direction.
I don't know.
For instance in the bioinformatics course we taught people to program using
Java. The problem was that, for many, object-orientation was a step too far.
For instance I once told a girl to reverse an array, and she just looked at
me blankly. The idea of doing something in a unit hadn't sunk in.

Another important point is that the source code for my Basic is available,
and relatively short and readable. So it helps to demystify the tool.
>>BASICdraw is also a graphical program, so it has the considerable
advantage
that it is possible to write useful and visually appealing programs from
day
one.


Not if there are no sub routines.
In conventional Basic subroutines are pretty unusable because there are no
local variables, no way of passing parameters, and the line system means you
cannot cut and paste code between programs.
So most Basic programs
were written without them. The programs were short enough for it not to
matter over much. In the fact the number of times you need to execute the
same code from two places in the same program is limited, with the exception
of highly reusable routines like sine which are provided.

I've got a whole list of useful program written in Basic for BASICdraw
--
BASICdraw available on my website
http://www.personal.leeds.ac.uk/~bgy1mm
Jan 21 '07 #27

P: n/a

"Chris Hills" <ch***@phaedsys.orgwrote in message
>
>>In the best circles, Lisp is the the language of choice for introductory
programming.

Well that is a silly statement to make and completely un provable. (It is
also wrong)
The Ivy League universities generally use Lisp as a first programming
language for teaching introductory computer science. American readers will
no doubt give exact details.
Jan 21 '07 #28

P: n/a

santosh wrote:
For C, probably the best book for learning it may be "The
C Programming Language" second edition by Kernighan and Ritchie.
I have to disagree with this. I think K&R is a very poor choice for a
beginner, especially one with no programming experience. I think it is
excellent but you need to have some idea what they are talking about
before beginning. I would tend to agree with Richard that Deitel &
Deitel is a good place for a complete beginner to start.

Jan 21 '07 #29

P: n/a
On 21 Jan 2007 10:40:01 -0500, Charlton Wilbur wrote:
>>>>>"RH" == Richard Heathfield <rj*@see.sig.invalidwrites:
(discussing Deitel & Deitel's _C: How to Program_, 5th ed.)
RHPage 666 (!) sees a drastic change, however - from there to
RHpage 1062 they focus entirely on C++.

Bizarre. As I recall, in the earlier edition they had a smattering of
information on things that are likely to be gotchas in C++, but it
wasn't a third of the book. And they *have* a _C++: How to Program_
book. I can only speculate that this is something that their
educational customers want.
You frequently see job ads for 'C/C++ programmers'. Those people are
supposed to be proficient in a programming style that can be
characterized as C with classes. The (to be maintained) program
usually is written in procedural C style enhanced with some C++
constructs, especially classes (sometimes with excessive inheritance
hierarchies), but without 'advanced' C++ features like exception
handling and templates. This programming style was created in the
early nineties and seems to be prevalent to this day. In that sense
the Deitels certainly deliver something that their customers want.

Best regards,
Roland Pibinger
Jan 21 '07 #30

P: n/a
In article <gf*********************@bt.com>, Malcolm McLean
<re*******@btinternet.comwrites
>
"Chris Hills" <ch***@phaedsys.orgwrote in message
>>
>>>In the best circles, Lisp is the the language of choice for introductory
programming.

Well that is a silly statement to make and completely un provable. (It is
also wrong)
The Ivy League universities
What is an ivy league university?
>generally use Lisp as a first programming
language for teaching introductory computer science. American readers will
no doubt give exact details.
This pre-supposed that US universities are "the best circles" something
most outside the US would argue with.

--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/
/\/\/ ch***@phaedsys.org www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Jan 21 '07 #31

P: n/a
Richard Heathfield <rj*@see.sig.invalidwrote:
If OP is in a real hurry, one of those silly "C for Dummies" or some
such books would be best,
No, it wouldn't. If the OP is in a real hurry, the best thing - as pocmatos
suggested - would be for him to slow down.
Well, I did call them "silly", as I also think using those books is a
bad idea.
Yes, and "C for Dummies" illustrates that perfectly.
The problem with those "X for Dummies" books is that, after reading
them, you're still a dummy :-)

--
C. Benson Manica | I *should* know what I'm talking about - if I
cbmanica(at)gmail.com | don't, I need to know. Flames welcome.
Jan 21 '07 #32

P: n/a
Malcolm McLean wrote, On 21/01/07 17:11:
"Chris Hills" <ch***@phaedsys.orgwrote in message Malcolm McLean
><re*******@btinternet.comwrites
>>"Enteng" <en*****@gmail.comwrote in message
Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?

I'm planning to write a little booklet "Learn to program with BASICdraw"
for
people like you.
Since your language does not even include subroutines any book on how to
learn using it would be something I would recommend people avoid.
>>Basic doesn't have any pointers and in my version doesn't have any
subroutines. So it is a good way of learning the concept of expressions,
assignments and flow control without all the confusing things.
So almost as soon as you have learnt it you need to move on to another
language?

I can see the idea but I think it is fatally flawed. Also it depends what
the OP wants to do. Basic may be the wrong direction.
I don't know.
For instance in the bioinformatics course we taught people to program using
Java. The problem was that, for many, object-orientation was a step too far.
Or then again the OP might be able to learn all that you can do in your
Basic in under a week, in which case it would be a complete waste of
time because the following week the OP would have to switch to a new
language to progress.
For instance I once told a girl to reverse an array, and she just looked at
me blankly. The idea of doing something in a unit hadn't sunk in.
So? That does not mean that the OP is like that.
Another important point is that the source code for my Basic is available,
and relatively short and readable. So it helps to demystify the tool.
I would be surprised if people having difficulty writing programs long
enough to need to be broken down in to subroutines are up to
understanding a BASIC interpreter.
>>BASICdraw is also a graphical program, so it has the considerable
advantage
that it is possible to write useful and visually appealing programs from
day
one.

Not if there are no sub routines.
In conventional Basic subroutines are pretty unusable
That's odd because in the first significant program I wrote, which was
in BASIC on a Commodore PET, I made a lot of use of subroutines. Of
course, later (or may be earlier) BASIC implementations added procedures
which improved the language no end.
because there are no
local variables, no way of passing parameters, and the line system means you
cannot cut and paste code between programs.
The above makes them less useful but by no means makes them unusable.
So most Basic programs
were written without them.
May be most programs you write, but as soon as I was beyond about 10 or
20 line programs all of mine made use of subroutines until I moved on to
languages with better facilities.
The programs were short enough for it not to
matter over much. In the fact the number of times you need to execute the
same code from two places in the same program is limited, with the exception
of highly reusable routines like sine which are provided.
Abstracting code in to
subroutines/functions/procedures/modules/objects/whatever is not only
about reuse it is also about managing complexity. It is often easier to
understand an N line program when is broken down in to M functions even
if each function is only called once.
I've got a whole list of useful program written in Basic for BASICdraw
Well, since your implementation does even include subroutines the only
thing I would use it for is illustrating what a programming language
should NOT be.
--
Flash Gordon
Jan 22 '07 #33

P: n/a
Chris Hills <ch***@phaedsys.orgwrites:
[...]
What is an ivy league university?
[...]

Any of Brown, Columbia, Cornell, Dartmouth, Harvard, Princeton,
University of Pennsylvania, Yale.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Jan 22 '07 #34

P: n/a
Enteng wrote:
Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Not really. C is a very programmer unfriendly language. Basic, Logo,
Python and even Fortran are much better choices for a first language.
Although Pascal was designed to be a first language, I am personally
not a real fan of it as a first language. "Types" is something you
should learn about *after* you learn about basic algorithms. The only
problem is, if you learn a language like Python first, going to C later
will seem like taking a step backwards.

--
Paul Hsieh
http://www.pobox.com/~qed/
http://bstring.sf.net/

Jan 22 '07 #35

P: n/a
Chris Hills wrote:
Malcolm McLean <re*******@btinternet.comwrites
.... snip ...
>
>>The Ivy League universities

What is an ivy league university?
Harvard, Yale, Columbia, Princeton.

--
<http://www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.txt>

"A man who is right every time is not likely to do very much."
-- Francis Crick, co-discover of DNA
"There is nothing more amazing than stupidity in action."
-- Thomas Matthews

Jan 22 '07 #36

P: n/a
we******@gmail.com said:
Enteng wrote:
>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?

Not really. C is a very programmer unfriendly language.
In what way is C unfriendly to programmers? I'm a programmer, and C likes me
a lot. There are quite a few programmers here who would say the same.

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
Jan 22 '07 #37

P: n/a
>>>>"CBF" == CBFalconer <cb********@yahoo.comwrites:

CBFChris Hills wrote:
>Malcolm McLean <re*******@btinternet.comwrites
> What is an ivy league university?
CBFHarvard, Yale, Columbia, Princeton.

.... Brown, Dartmouth, Cornell, University of Pennsylvania.

Technically the Ivy League is an athletic conference, but the schools
have enough in common otherwise that "Ivy League" is a meaningful
shorthand.

Charlton

--
Charlton Wilbur
cw*****@chromatico.net
Jan 22 '07 #38

P: n/a
In article <45***************@yahoo.com>, CBFalconer
<cb********@yahoo.comwrites
>Chris Hills wrote:
>Malcolm McLean <re*******@btinternet.comwrites
... snip ...
>>
>>>The Ivy League universities

What is an ivy league university?

Harvard, Yale, Columbia, Princeton.
Thanks... This is the problem with people using little understood local
idioms in an international NG.

I thought Harvard was a business school.

BTW in the best circles they don't use Lisp as a first language.

--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/
/\/\/ ch***@phaedsys.org www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Jan 22 '07 #39

P: n/a
Richard Heathfield wrote:
we******@gmail.com said:
>Enteng wrote:
>>Hi I'm thinking about learning C as my first programming
language. Would you recommend it?

Not really. C is a very programmer unfriendly language.

In what way is C unfriendly to programmers? I'm a programmer, and
C likes me a lot. There are quite a few programmers here who would
say the same.
This is something like marriage. After a while you learn to put up
with and compensate for the various failings. Or not. You also
try to pick a partner to minimize those strains.

--
<http://www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.txt>

"A man who is right every time is not likely to do very much."
-- Francis Crick, co-discover of DNA
"There is nothing more amazing than stupidity in action."
-- Thomas Matthews

Jan 22 '07 #40

P: n/a
"Enteng" <en*****@gmail.comwrote:
Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
No. Try Pascal instead.

Richard
Jan 22 '07 #41

P: n/a
Chris Hills <ch***@phaedsys.orgwrote:
In article <gf*********************@bt.com>, Malcolm McLean
<re*******@btinternet.comwrites

"Chris Hills" <ch***@phaedsys.orgwrote in message
>
In the best circles, Lisp is the the language of choice for introductory
programming.

Well that is a silly statement to make and completely un provable. (It is
also wrong)
The Ivy League universities

What is an ivy league university?
Things like Yale and Harvard. Law schools. If you want a _real_
scientific institution, try MIT or CalTech.

Richard
Jan 22 '07 #42

P: n/a
Malcolm McLean wrote:
"Chris Hills" <ch***@phaedsys.orgwrote in message Malcolm McLean
<re*******@btinternet.comwrites
>"Enteng" <en*****@gmail.comwrote in message
>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?

I'm planning to write a little booklet "Learn to program with BASICdraw"
for people like you.
please don't do that

>Basic doesn't have any pointers and in my version doesn't have any
subroutines. So it is a good way of learning the concept of expressions,
assignments and flow control without all the confusing things.
So almost as soon as you have learnt it you need to move on to another
language?

I can see the idea but I think it is fatally flawed. Also it depends what
the OP wants to do. Basic may be the wrong direction.
I don't know.
For instance in the bioinformatics course we taught people to program using
Java. The problem was that, for many, object-orientation was a step too far.
For instance I once told a girl to reverse an array, and she just looked at
me blankly. The idea of doing something in a unit hadn't sunk in.

Another important point is that the source code for my Basic is available,
and relatively short and readable. So it helps to demystify the tool.
>BASICdraw is also a graphical program, so it has the considerable
advantage that it is possible to write useful and visually appealing programs from
day one.
Not if there are no sub routines.
In conventional Basic subroutines are pretty unusable because there are no
local variables, no way of passing parameters, and the line system means you
cannot cut and paste code between programs.
and hence SHOULD NOT be used to teach beginners. I thought BASIC
with line numbers had died decades ago...

So most Basic programs
were written without them. The programs were short enough for it not to
matter over much. In the fact the number of times you need to execute the
same code from two places in the same program is limited, with the exception
of highly reusable routines like sine which are provided.

I've got a whole list of useful program written in Basic for BASICdraw

--
The use of COBOL cripples the mind; its teaching should, therefore,
be regarded as a criminal offense. -E. W. Dijkstra

Jan 22 '07 #43

P: n/a
In article <45*****************@news.xs4all.nl>, Richard Bos
<rl*@hoekstra-uitgeverij.nlwrites
>Chris Hills <ch***@phaedsys.orgwrote:
>In article <gf*********************@bt.com>, Malcolm McLean
<re*******@btinternet.comwrites
>
"Chris Hills" <ch***@phaedsys.orgwrote in message

In the best circles, Lisp is the the language of choice for introductory
programming.

Well that is a silly statement to make and completely un provable. (It is
also wrong)

The Ivy League universities

What is an ivy league university?

Things like Yale and Harvard. Law schools. If you want a _real_
scientific institution, try MIT or CalTech.

Richard
I thought that they were more business orientated. So whoever thinks
they are the "best circles" for computing and Sw engineering is a
little suspect when it comes to computing.

No one uses Lisp for a first language in the best (computing) circles.
--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills Staffs England /\/\/\/\/
/\/\/ ch***@phaedsys.org www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Jan 22 '07 #44

P: n/a
>>>>"CH" == Chris Hills <ch***@phaedsys.orgwrites:

CHI thought that they were more business orientated. So whoever
CHthinks they are the "best circles" for computing and Sw
CHengineering is a little suspect when it comes to computing.

Er, they are "business orientated" in the same way that Oxford and
Cambridge are -- it's possible to treat them as respectable finishing
schools for upper-class men and women, but there's a lot more to the
school than that.

But they're also centers of research and advanced studies. The
Harvard architecture lost out to the von Neumann architecture
(designed at Princeton) for a lot of reasons, but it was a contender.
ENIAC was designed and built at the University of Pennsylvania.
Einstein and John Nash did their work at Princeton.

Anyone who isn't aware of what the Ivy League is, and who harbors the
misconception that they're "business orientated" schools is in no
position to be passing judgment on what the best academic circles are.

Charlton


--
Charlton Wilbur
cw*****@chromatico.net
Jan 22 '07 #45

P: n/a

Enteng wrote:
Hi I'm thinking about learning C as my first programming language.
Would you recommend it?
I do not recommend C as a teaching language. For someone who's never
written code before, some of C's conventions can be baffling and
counterintuitive. Its lack of support for basic graphics, sound,
networking, etc., makes any "interesting" applications non-trivial to
write.

C was designed for people who were already expert programmers and
wanted more flexibility than the other languages of the time allowed.
It's certainly a fun language to play with, and in the right hands is
an extremely powerful tool. But it's not an appropriate tool for
learning how to program.
Also how do you suggest that I learn it?What books/tutorials should I
read for someone like me?
Another problem with C as a teaching language is that 99% of all books
and Web-based tutorials on it are *crap*. Many do not teach the
language correctly and encourage bad programming habits (the first
edition of Herb Schildt's "C: The Complete Reference" is often held up
as an example of how *not* to write a book on C). Kernighan and
Ritchie's "The C Programming Language" is accurate (one would hope so,
as they're the ones who originally developed the language), but doesn't
offer that much in the way of tutorials.

I would seriously suggest looking elsewhere for an introductory
programming language. Although my experience with them is minimal,
I've heard good things about Python and Ruby. If you're interested in
object-oriented programming, you might want to look at Java or, if on
Windows, C# for .Net. C++ inherits most of C's weirdness and adds some
of its own; again, not the best tool for learning how to program from
the ground up.

Jan 22 '07 #46

P: n/a
"Flash Gordon" <sp**@flash-gordon.me.ukwrote in message
>
Well, since your implementation does even include subroutines the only
thing I would use it for is illustrating what a programming language
should NOT be.
Procedural decomposition aka "structured programming" is one programming
methodology. Some people are so used to it that they confuse it with "good
programming". Though the various methodologies have to be taught, it is not
obvious to me that an introductory language is the place to do it.
Jan 22 '07 #47

P: n/a

<we******@gmail.comwrote in message
Enteng wrote:
>Hi I'm thinking about learning C as my first programming language.
Would you recommend it?

Not really. C is a very programmer unfriendly language.
C is portable assembler. If you know a real assembly language you will
appreciate the value of it. Otherwise, learning it can be quite a baffling
experience.

For instance, when I started to learn C I didn't know what a pointer was. So
I looked it up and read "indirection operator". So I then understood
pointers. For a non-assembly programming person, it is much more difficult.
Jan 22 '07 #48

P: n/a

"Chris Hills" <ch***@phaedsys.orgwrote in message news
In article <gf*********************@bt.com>, Malcolm McLean
<re*******@btinternet.comwrites
>>
"Chris Hills" <ch***@phaedsys.orgwrote in message
>>>
In the best circles, Lisp is the the language of choice for introductory
programming.

Well that is a silly statement to make and completely un provable. (It
is
also wrong)
The Ivy League universities

What is an ivy league university?
>>generally use Lisp as a first programming
language for teaching introductory computer science. American readers will
no doubt give exact details.

This pre-supposed that US universities are "the best circles" something
most outside the US would argue with.
Programming languages are not social affectations like "How do you do?"
versus "Pleased to meet you". Can't you see that if someone pretends that
they are, the post is not meant to be taken entirely seriously? It just
becomes embarrassing when people don't take the post in the spirit it was
intended.

Jan 22 '07 #49

P: n/a
John Bode wrote:
I would seriously suggest looking elsewhere for an introductory
programming language. Although my experience with them is minimal,
I've heard good things about Python and Ruby. If you're interested in
object-oriented programming, you might want to look at Java or, if on
Windows, C# for .Net.
This seems to suggest that Python and Ruby are
not suitable for OOP. This of course is not true.
Ruby was designed with the explicit purpose of
offering better support for OOP than Python.

Jan 22 '07 #50

111 Replies

This discussion thread is closed

Replies have been disabled for this discussion.