Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #62771 > unrolled thread

pedagogy

Started byluser droog <luser.droog@gmail.com>
First post2015-05-28 22:42 -0700
Last post2015-06-02 22:12 -0700
Articles 20 on this page of 31 — 15 participants

Back to article view | Back to comp.lang.c


Contents

  pedagogy luser droog <luser.droog@gmail.com> - 2015-05-28 22:42 -0700
    Re: pedagogy Morris Dovey <mrdovey@iedu.com> - 2015-05-29 00:57 -0500
    Re: pedagogy Bartc <bc@freeuk.com> - 2015-05-29 11:10 +0100
      Re: pedagogy raltbos@xs4all.nl (Richard Bos) - 2015-05-29 12:42 +0000
        Re: pedagogy David Kleinecke <dkleinecke@gmail.com> - 2015-05-29 10:02 -0700
          Re: pedagogy raltbos@xs4all.nl (Richard Bos) - 2015-05-29 18:23 +0000
    Re: pedagogy Noob <root@127.0.0.1> - 2015-05-29 13:34 +0200
    Re: pedagogy John Bode <jfbode1029@gmail.com> - 2015-05-29 08:17 -0700
      Re: pedagogy rick.c.hodgin@gmail.com - 2015-05-29 08:33 -0700
        Re: pedagogy Etienne Prud'homme <e.e.f.prudhomme@gmail.com> - 2015-05-29 12:25 -0400
          Re: pedagogy John Bode <jfbode1029@gmail.com> - 2015-05-29 14:28 -0700
            Re: pedagogy Etienne Prud'homme <e.e.f.prudhomme@gmail.com> - 2015-05-30 00:58 -0400
      Re: pedagogy gazelle@shell.xmission.com (Kenny McCormack) - 2015-05-29 15:46 +0000
    Re: pedagogy Les Cargill <lcargill99@comcast.com> - 2015-05-29 22:16 -0500
    Re: pedagogy luser droog <luser.droog@gmail.com> - 2015-05-30 00:16 -0700
      Re: pedagogy Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-05-30 11:31 +0000
        Re: pedagogy David Kleinecke <dkleinecke@gmail.com> - 2015-05-30 07:10 -0700
          Re: pedagogy Bartc <bc@freeuk.com> - 2015-05-30 15:38 +0100
            Re: pedagogy "Osmium" <r124c4u102@comcast.net> - 2015-05-31 09:43 -0500
              Re: pedagogy Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-31 16:03 +0100
                Re: pedagogy "Osmium" <r124c4u102@comcast.net> - 2015-05-31 10:34 -0500
                  Re: pedagogy Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-31 16:56 +0100
                  Re: pedagogy luser droog <luser.droog@gmail.com> - 2015-06-02 10:28 -0700
                Re: pedagogy Bartc <bc@freeuk.com> - 2015-05-31 17:04 +0100
                  Re: pedagogy Les Cargill <lcargill99@comcast.com> - 2015-05-31 12:10 -0500
                    Re: pedagogy raltbos@xs4all.nl (Richard Bos) - 2015-06-05 15:21 +0000
            Re: pedagogy David Kleinecke <dkleinecke@gmail.com> - 2015-05-31 09:01 -0700
              Re: pedagogy luser droog <luser.droog@gmail.com> - 2015-06-02 21:51 -0700
                Re: pedagogy David Kleinecke <dkleinecke@gmail.com> - 2015-06-03 09:14 -0700
                Re: pedagogy "Chris M. Thomasson" <nospam@nospam.nospam> - 2015-06-04 00:48 -0700
    Re: pedagogy luser droog <luser.droog@gmail.com> - 2015-06-02 22:12 -0700

Page 1 of 2  [1] 2  Next page →


#62771 — pedagogy

Fromluser droog <luser.droog@gmail.com>
Date2015-05-28 22:42 -0700
Subjectpedagogy
Message-ID<46c17ca6-fa30-4935-a50b-d4f5d78b6a4a@googlegroups.com>
A friend of mine asked for advice about how to get into programming.
So I just ordered K&R2 and K&P (The Unix Programming Environment).

Is there anything else more recent that I should get to supplement 
these for the 21st century? Or is enough to get a good start, jathink?

[toc] | [next] | [standalone]


#62774

FromMorris Dovey <mrdovey@iedu.com>
Date2015-05-29 00:57 -0500
Message-ID<mk8v48$rs9$1@speranza.aioe.org>
In reply to#62771
On 5/29/15 12:42 AM, luser droog wrote:
> A friend of mine asked for advice about how to get into programming.
> So I just ordered K&R2 and K&P (The Unix Programming Environment).
>
> Is there anything else more recent that I should get to supplement
> these for the 21st century? Or is enough to get a good start, jathink?

There are a lot of other possibilities, but this probably is enough to 
get a good start. If they decide to continue after these, one of my 
suggestions would probably be APUE.

-- 
Morris Dovey
http://www.iedu.com/Solar

[toc] | [prev] | [next] | [standalone]


#62781

FromBartc <bc@freeuk.com>
Date2015-05-29 11:10 +0100
Message-ID<mk9drp$v15$1@dont-email.me>
In reply to#62771
On 29/05/2015 06:42, luser droog wrote:
> A friend of mine asked for advice about how to get into programming.
> So I just ordered K&R2 and K&P (The Unix Programming Environment).
>
> Is there anything else more recent that I should get to supplement
> these for the 21st century? Or is enough to get a good start, jathink?

Those were dated even for the 20th century! Did you ask you friend what 
kind of programming they would like to get into and in what sort of 
environment?

(If it was me, and I knew nothing about the technical side of computers, 
the prospect of learning about C and Unix wouldn't exactly thrill me.)

-- 
Bartc

[toc] | [prev] | [next] | [standalone]


#62786

Fromraltbos@xs4all.nl (Richard Bos)
Date2015-05-29 12:42 +0000
Message-ID<55685e52.15596484@news.xs4all.nl>
In reply to#62781
Bartc <bc@freeuk.com> wrote:

> On 29/05/2015 06:42, luser droog wrote:
> > A friend of mine asked for advice about how to get into programming.
> > So I just ordered K&R2 and K&P (The Unix Programming Environment).
> >
> > Is there anything else more recent that I should get to supplement
> > these for the 21st century? Or is enough to get a good start, jathink?
> 
> Those were dated even for the 20th century!

Erm... what programming language do you know that goes back to the 19th
century?

> (If it was me, and I knew nothing about the technical side of computers, 
> the prospect of learning about C and Unix wouldn't exactly thrill me.)

Me neither. C is for professionals, not for students.

Try Inform. If he wants to play with programming, Inform 7; if he
actually wants to _be_ a programmer, Inform 6.

Richard

[toc] | [prev] | [next] | [standalone]


#62796

FromDavid Kleinecke <dkleinecke@gmail.com>
Date2015-05-29 10:02 -0700
Message-ID<a6bef42f-a1fe-4dcf-917e-5eb212abe8ce@googlegroups.com>
In reply to#62786
On Friday, May 29, 2015 at 5:42:41 AM UTC-7, Richard Bos wrote:
> Bartc <bc@freeuk.com> wrote:
> 
> > On 29/05/2015 06:42, luser droog wrote:
> > > A friend of mine asked for advice about how to get into programming.
> > > So I just ordered K&R2 and K&P (The Unix Programming Environment).
> > >
> > > Is there anything else more recent that I should get to supplement
> > > these for the 21st century? Or is enough to get a good start, jathink?
> > 
> > Those were dated even for the 20th century!
> 
> Erm... what programming language do you know that goes back to the 19th
> century?
> 
> > (If it was me, and I knew nothing about the technical side of computers, 
> > the prospect of learning about C and Unix wouldn't exactly thrill me.)
> 
> Me neither. C is for professionals, not for students.
> 
> Try Inform. If he wants to play with programming, Inform 7; if he
> actually wants to _be_ a programmer, Inform 6.
> 
> Richard

I'd never thought of that. It's a great idea.

I admire both languages and I think Inform 6 would be an excellent way
to actually learn programming.

This is very odd because I have played with Inform 6 (not so much 7)
for years. I just didn't connect them with teaching.

Now I know the answer to that question which does turn up every year
or so.

[toc] | [prev] | [next] | [standalone]


#62803

Fromraltbos@xs4all.nl (Richard Bos)
Date2015-05-29 18:23 +0000
Message-ID<5568ae74.36110359@news.xs4all.nl>
In reply to#62796
David Kleinecke <dkleinecke@gmail.com> wrote:

> On Friday, May 29, 2015 at 5:42:41 AM UTC-7, Richard Bos wrote:

> > Try Inform. If he wants to play with programming, Inform 7; if he
> > actually wants to _be_ a programmer, Inform 6.
> 
> I'd never thought of that. It's a great idea.
> 
> I admire both languages and I think Inform 6 would be an excellent way
> to actually learn programming.
> 
> This is very odd because I have played with Inform 6 (not so much 7)
> for years. I just didn't connect them with teaching.

_The_ great advantage Inform 6 has over many other languages, including
Inform 7, is the DM4. IMO, it's invaluable.

Richard

[toc] | [prev] | [next] | [standalone]


#62783

FromNoob <root@127.0.0.1>
Date2015-05-29 13:34 +0200
Message-ID<mk9ipq$g1k$1@dont-email.me>
In reply to#62771
On 29/05/2015 07:42, luser droog wrote:

> A friend of mine asked for advice about how to get into programming.
> So I just ordered K&R2 and K&P (The Unix Programming Environment).
> 
> Is there anything else more recent that I should get to supplement 
> these for the 21st century? Or is enough to get a good start, jathink?

This one has an emphasis on defensive programming.
http://c.learncodethehardway.org/book/

Regards.

[toc] | [prev] | [next] | [standalone]


#62791

FromJohn Bode <jfbode1029@gmail.com>
Date2015-05-29 08:17 -0700
Message-ID<bbc4e214-d69c-4222-87a9-723770e4a1bb@googlegroups.com>
In reply to#62771
On Friday, May 29, 2015 at 12:42:14 AM UTC-5, luser droog wrote:
> A friend of mine asked for advice about how to get into programming.
> So I just ordered K&R2 and K&P (The Unix Programming Environment).
> 
> Is there anything else more recent that I should get to supplement 
> these for the 21st century? Or is enough to get a good start, jathink?

Ugh.  C is an awful language for learning how to program, and vanilla C
doesn't play a huge role in a Web- and mobile-centric ecosystem. 
Objective-C for iOS, sure, but not plain C.  

For *learning how to program* (at least for imperative programming
languages), I'd start with something like Python.  

[toc] | [prev] | [next] | [standalone]


#62792

Fromrick.c.hodgin@gmail.com
Date2015-05-29 08:33 -0700
Message-ID<0ded83a6-48a4-4eb3-a6b6-b0ec6dff0b1d@googlegroups.com>
In reply to#62791
On Friday, May 29, 2015 at 11:17:52 AM UTC-4, John Bode wrote:
> Ugh.  C is an awful language for learning how to program...

I disagree.  It relates concepts of input, output, and step-by-step
operations exceedingly well.  It breaks things into quantities (int,
unsigned int, char, char[], char*, float, double, local variables,
parameters, global variables, etc.), all of which implicitly convey
aspects of how computers work internally.

A person learning C learns much more than the C language (they just
don't always realize that's the case at first).

I would say C is one of the best languages to learn on.  For basic
C abilities, it is very easy to lay down a foundation.  And natural
questions will arise in a new developer's mind, which are easily
built atop their ongrowing(sic) knowledge base.

Best regards,
Rick C. Hodgin

[toc] | [prev] | [next] | [standalone]


#62795

FromEtienne Prud'homme <e.e.f.prudhomme@gmail.com>
Date2015-05-29 12:25 -0400
Message-ID<20150529122505.0fa3a318715088f9a4670b36@gmail.com>
In reply to#62792
John Bode  <jfbode1029@gmail.com> wrote:
>For *learning how to program* (at least for imperative programming
>languages), I'd start with something like Python.

   I completely  agree with Rick. C  is the lingua franca  standard in
computer programming. When you understand C, you can understand easily
other languages.

   It really  goes to the core  of computing. You can  see what really
are data  structures. How  to manipulate them.  Advantage of  a vector
(yes in plain C) over a linked-list.

   It's pretty simple & doesn't try to make things too complicated for
nothing. I had much more  trouble understanding abstract programming &
OOP  than procedural.  Not  that  it's not  easy  to  program in  that
language. It was  pretty easy, but you just don't  really know what is
going  on. My  first language  that  I learned  was php.  I was  realy
confused with how you could do  things really differently & at the end
really didn't seem like the same algorithm.

   Python may be good to do simple calculations (like calculator), but
I don't see advantages  of using it over C. C  is portable, it doesn't
need a slow interpreter (or  byte-code). It follows a linear thinking.
OOP is more about creativity than problem solving.

   If you don't understand how a  computer works, you would just think
it's a magical device. That's what I thought before learning C.

   C learning curve may be more hard  at first, but I think it's worth
it. Think of Git;  I could use dropbox for my  projects; it would sync
all my files; I just wouldn't know  what is relevant in the revisions.

Keep it Simple, Stupid.
-- 
Etienne

[toc] | [prev] | [next] | [standalone]


#62811

FromJohn Bode <jfbode1029@gmail.com>
Date2015-05-29 14:28 -0700
Message-ID<74afe4ae-dcbc-4c29-9e9f-2f7bd3506d85@googlegroups.com>
In reply to#62795
On Friday, May 29, 2015 at 11:25:14 AM UTC-5, Etienne Prud'homme wrote:
> John Bode  <jfbode1029@gmail.com> wrote:
> >For *learning how to program* (at least for imperative programming
> >languages), I'd start with something like Python.
> 
>    I completely  agree with Rick. C  is the lingua franca  standard in
> computer programming. 

Don't confuse popularity with technical merit.  vi's ubiquitous, but 
I don't see anyone claiming that it's the Platonic ideal of a text editor.  

> When you understand C, you can understand easily other languages.

You can easily understand other *C-like languages*.  It may help you 
easily understand non-C imperative languages.  But what about the following:

    insert :: Ord a => a -> Tree a -> Tree a
    insert x Empty = Node Empty x Empty
    insert x (Node l y r) | x < y     = Node (insert x l) y r
                          | x > y     = Node l y (insert x r)
                          | otherwise = Node l x r

or how about

    (defun reverse (l)
      (cond ((null? l) nil)
            ((listp (car l)) (append (reverse (cdr l)) 
                                     (list (reverse (car l)))))
            (t
              (append (reverse (cdr l)) 
                      (list (car l))))))


How does your C knowledge apply to those snippets?  

Believe it or don't, languages like Haskell and Lisp can be used to solve
real-world problems, often in code that's smaller and easier to read than
C.  Speed and memory are the tradeoffs, but sometimes that's a reasonable
trade.

C's the right language for a lot of domains, particularly systems
programming.  It just sucks as a teaching language.  

> 
>    It really  goes to the core  of computing. You can  see what really
> are data  structures. How  to manipulate them.  Advantage of  a vector
> (yes in plain C) over a linked-list.
> 

Did that in Fortran.  

>    It's pretty simple & doesn't try to make things too complicated for
> nothing. I had much more  trouble understanding abstract programming &
> OOP  than procedural.  

So did most of us.  There are better languages than C for learning
procedural programming.  

> Not  that  it's not  easy  to  program in  that
> language. It was  pretty easy, but you just don't  really know what is
> going  on. My  first language  that  I learned  was php.  I was  realy
> confused with how you could do  things really differently & at the end
> really didn't seem like the same algorithm.

PHP has been described as an example of "fractally bad" design; its 
mistakes have mistakes. I'm sure C looks like an island of sanity after
working in PHP.  *Perl* would look like an island of sanity after working 
in PHP.  

[toc] | [prev] | [next] | [standalone]


#62828

FromEtienne Prud'homme <e.e.f.prudhomme@gmail.com>
Date2015-05-30 00:58 -0400
Message-ID<20150530005835.518180f7acee93224c628db6@gmail.com>
In reply to#62811
John Bode <jfbode1029@gmail.com> wrote:
> You can easily understand other *C-like languages*.  It may help you 
> easily understand non-C imperative languages.

   Well, I  agree also.  I meant that  low-level languages  are pretty
much the  same in  the end.  Haskell &  lisp are  not really  close to
machine instruction (well it could, but that's not common).

   Programming is really a way of thinking, as algebra & number theory
are also.  Adding abstraction layers  just doesn't make  someone think
like a computer. It removes power from the user.

> It just sucks as a teaching language.

   It depends on the  teacher. I don't know how it  could be harder to
teach than Python or Scheme/Lisp.

[toc] | [prev] | [next] | [standalone]


#62793

Fromgazelle@shell.xmission.com (Kenny McCormack)
Date2015-05-29 15:46 +0000
Message-ID<mka1lh$59d$1@news.xmission.com>
In reply to#62791
In article <bbc4e214-d69c-4222-87a9-723770e4a1bb@googlegroups.com>,
John Bode  <jfbode1029@gmail.com> wrote:
>On Friday, May 29, 2015 at 12:42:14 AM UTC-5, luser droog wrote:
>> A friend of mine asked for advice about how to get into programming.
>> So I just ordered K&R2 and K&P (The Unix Programming Environment).
>> 
>> Is there anything else more recent that I should get to supplement 
>> these for the 21st century? Or is enough to get a good start, jathink?
>
>Ugh.  C is an awful language for learning how to program, and vanilla C
>doesn't play a huge role in a Web- and mobile-centric ecosystem. 
>Objective-C for iOS, sure, but not plain C.  
>
>For *learning how to program* (at least for imperative programming
>languages), I'd start with something like Python.  

Discussing which programming langauge to learn first is a lot like trying
to discuss which spoken language you should learn first.  All other things
being equal, the answer to this question ("Which spoken language should I
learn?") is "English", because English is the langauge of the world.

However, someone growing up in, say, France, may have an objection to raise
to this recommendation.  Similarly, in programming, the language you choose
to learn should be the one in which you can accomplish what you set out to
accomplish.

Further, you have to love the irony of our discussing which language to
learn in this newgroup - this newsgroup of all newsgroups - in which we are
not allowed to discuss useful C.  We are only allowed to discuss the
bastardized, emaciated version of C that leader Kiki approves.

Personally, I think useful C is a very good first language, say, in a
Unix/Linux environment.  That's where I learned to program.

-- 
"Unattended children will be given an espresso and a free kitten."

[toc] | [prev] | [next] | [standalone]


#62824

FromLes Cargill <lcargill99@comcast.com>
Date2015-05-29 22:16 -0500
Message-ID<mkb9kh$icq$1@dont-email.me>
In reply to#62771
luser droog wrote:
> A friend of mine asked for advice about how to get into programming.
> So I just ordered K&R2 and K&P (The Unix Programming Environment).
>
> Is there anything else more recent that I should get to supplement
> these for the 21st century? Or is enough to get a good start, jathink?
>

What sorta programmer does (s)he want to be? 'C' kinda has
this reputation as the Clint Eastwood of languages, but it's
not for everybody.

There's  a school of thought that says Lisp is the ultimate.
Tcl is kind of this illegitimate offspring of Lisp and 'C.
Python is popular, OO  and safe ( is OO still a thing? ).

-- 
Les Cargill

[toc] | [prev] | [next] | [standalone]


#62831

Fromluser droog <luser.droog@gmail.com>
Date2015-05-30 00:16 -0700
Message-ID<2d2e0507-bc67-4e6a-8ac4-669a1d19ac61@googlegroups.com>
In reply to#62771
On Friday, May 29, 2015 at 12:42:14 AM UTC-5, luser droog wrote:
> A friend of mine asked for advice about how to get into programming.
> So I just ordered K&R2 and K&P (The Unix Programming Environment).
> 
> Is there anything else more recent that I should get to supplement 
> these for the 21st century? Or is enough to get a good start, jathink?

Thanks everyone for your valuable thoughts and insights. My main
reasons for encouraging C to my friend are roughly those outlined
by Rick and Etienne. It's a natural abstraction of a Von Neumann
architecture which -- issues of caching and pipelining aside --
closely reflects "what the computer is *doing*". 

For my friend in particular, who has a background in seminary
and church work, I feel comfortable calling K&R a programming
'bible' in the sense that nothing in it will ever need to be
un-learned, merely re-interpreted or differently applied.

It also fits well IMO with the usual user's view of files and
programs in that, after compiling, you have a "real executable".
A "real program" <<pleading hand gesture>>.

I hope my exaggerated use of quotation marks stresses that 
this is a vague ideal, but one that I strongly imagine to
be a useful conceptual support for a noob. *This* is your
source file, containing bytes of ascii text which you edit
with a text editor. *This* is the command to invoke the
compiler upon your file. *This* is an executable machine-
language program that you can *run*.

I don't really want to back-up or elaborate what I consider
real or unreal among the myriad language/environment 
possibilities. But for someone who can use Word and Excel,
shell scripting (the other book) and C programming open up
a new universe inside the machine. 

[toc] | [prev] | [next] | [standalone]


#62838

FromJorgen Grahn <grahn+nntp@snipabacken.se>
Date2015-05-30 11:31 +0000
Message-ID<slrnmmj7t8.2ot.grahn+nntp@frailea.sa.invalid>
In reply to#62831
On Sat, 2015-05-30, luser droog wrote:
> On Friday, May 29, 2015 at 12:42:14 AM UTC-5, luser droog wrote:
>> A friend of mine asked for advice about how to get into programming.
>> So I just ordered K&R2 and K&P (The Unix Programming Environment).
>> 
>> Is there anything else more recent that I should get to supplement 
>> these for the 21st century? Or is enough to get a good start, jathink?

It's funny, but I don't know anything about recent books on C.  I know
C89 fairly well, and picked up some C99 here and there over the years.
New C programmers I work with don't seem to read books either: they
pick it up here and there, by asking, by trial & error.

> Thanks everyone for your valuable thoughts and insights. My main
> reasons for encouraging C to my friend are roughly those outlined
> by Rick and Etienne. It's a natural abstraction of a Von Neumann
> architecture which -- issues of caching and pipelining aside --
> closely reflects "what the computer is *doing*". 
>
> For my friend in particular, who has a background in seminary
> and church work, I feel comfortable calling K&R a programming
> 'bible' in the sense that nothing in it will ever need to be
> un-learned, merely re-interpreted or differently applied.
>
> It also fits well IMO with the usual user's view of files and
> programs in that, after compiling, you have a "real executable".
> A "real program" <<pleading hand gesture>>.
>
> I hope my exaggerated use of quotation marks stresses that 
> this is a vague ideal, but one that I strongly imagine to
> be a useful conceptual support for a noob. *This* is your
> source file, containing bytes of ascii text which you edit
> with a text editor. *This* is the command to invoke the
> compiler upon your file. *This* is an executable machine-
> language program that you can *run*.

There's a lot about what /you/ think, but not a lot of information
about your friend and his/her ideas and goals ... 

I really like the combination C and Unix; I really like fairly thin
books by Bell Labs people; I really like doing things myself from the
ground up ...

... but I'm not sure I'd do programming today if someone had given me
K&R, say, when I was fifteen.  I would have read it, but then gotten
stuck doing any useful programming.

> I don't really want to back-up or elaborate what I consider
> real or unreal among the myriad language/environment 
> possibilities. But for someone who can use Word and Excel,
> shell scripting (the other book) and C programming open up
> a new universe inside the machine. 

Oh, good. For someone who has Unix, shell scripting is definitely a
way into useful programming ... if the other book covers that well. 

But I would have chosed an O'Reilly book on the Bash shell for that;
IMNSHO the original /bin/sh sucks as a programming language.

/Jorgen

-- 
  // Jorgen Grahn <grahn@  Oo  o.   .     .
\X/     snipabacken.se>   O  o   .

[toc] | [prev] | [next] | [standalone]


#62840

FromDavid Kleinecke <dkleinecke@gmail.com>
Date2015-05-30 07:10 -0700
Message-ID<f1506bdf-e9d9-4132-93ee-07d1b22bf2d2@googlegroups.com>
In reply to#62838
On Saturday, May 30, 2015 at 4:32:08 AM UTC-7, Jorgen Grahn wrote:
> On Sat, 2015-05-30, luser droog wrote:
> > On Friday, May 29, 2015 at 12:42:14 AM UTC-5, luser droog wrote:
> >> A friend of mine asked for advice about how to get into programming.
> >> So I just ordered K&R2 and K&P (The Unix Programming Environment).
> >> 
> >> Is there anything else more recent that I should get to supplement 
> >> these for the 21st century? Or is enough to get a good start, jathink?
> 
> It's funny, but I don't know anything about recent books on C.  I know
> C89 fairly well, and picked up some C99 here and there over the years.
> New C programmers I work with don't seem to read books either: they
> pick it up here and there, by asking, by trial & error.
> 
> > Thanks everyone for your valuable thoughts and insights. My main
> > reasons for encouraging C to my friend are roughly those outlined
> > by Rick and Etienne. It's a natural abstraction of a Von Neumann
> > architecture which -- issues of caching and pipelining aside --
> > closely reflects "what the computer is *doing*". 
> >
> > For my friend in particular, who has a background in seminary
> > and church work, I feel comfortable calling K&R a programming
> > 'bible' in the sense that nothing in it will ever need to be
> > un-learned, merely re-interpreted or differently applied.
> >
> > It also fits well IMO with the usual user's view of files and
> > programs in that, after compiling, you have a "real executable".
> > A "real program" <<pleading hand gesture>>.
> >
> > I hope my exaggerated use of quotation marks stresses that 
> > this is a vague ideal, but one that I strongly imagine to
> > be a useful conceptual support for a noob. *This* is your
> > source file, containing bytes of ascii text which you edit
> > with a text editor. *This* is the command to invoke the
> > compiler upon your file. *This* is an executable machine-
> > language program that you can *run*.
> 
> There's a lot about what /you/ think, but not a lot of information
> about your friend and his/her ideas and goals ... 
> 
> I really like the combination C and Unix; I really like fairly thin
> books by Bell Labs people; I really like doing things myself from the
> ground up ...
> 
> ... but I'm not sure I'd do programming today if someone had given me
> K&R, say, when I was fifteen.  I would have read it, but then gotten
> stuck doing any useful programming.
> 
> > I don't really want to back-up or elaborate what I consider
> > real or unreal among the myriad language/environment 
> > possibilities. But for someone who can use Word and Excel,
> > shell scripting (the other book) and C programming open up
> > a new universe inside the machine. 
> 
> Oh, good. For someone who has Unix, shell scripting is definitely a
> way into useful programming ... if the other book covers that well. 
> 
> But I would have chosed an O'Reilly book on the Bash shell for that;
> IMNSHO the original /bin/sh sucks as a programming language.
 
I hate to do this in a group devoted to C but I want to repeat the
recommendation by RB to use Inform 6/7.

What tool you use to teach programming (or anything else) depends on
the pupil. My experience with people who never quite learn programming
is that most of them lose their motivation because what they are 
exposed to is boring. Inform provides massive feedback. If you get good
at Inform you still don't know C (or Lisp or ...) but you have learned
the habits that lie behind such languages. It has been known since way 
back that familiarity with any programming language makes all the others 
easier.

[toc] | [prev] | [next] | [standalone]


#62844

FromBartc <bc@freeuk.com>
Date2015-05-30 15:38 +0100
Message-ID<mkchvn$d1u$1@dont-email.me>
In reply to#62840
On 30/05/2015 15:10, David Kleinecke wrote:

> I hate to do this in a group devoted to C but I want to repeat the
> recommendation by RB to use Inform 6/7.

I'd never heard of these languages, but they appear to be long-winded 
scripting languages for writing interactive games.

They can just about be used to represent algorithms (they seem to 
contain forms of functions, variables, loops and conditionals), but the 
algorithm would be lost in the text!

What would you use to express an algorithm to someone else in a 
language-neutral manner? It would be some sort of pseudo-code.

While C introduces all sorts of extra punctuation, restrictions and 
implementation details to worry about (plus the ecosystem needed to 
execute the source), some of these languages add cruft of their own.

(No, I don't have alternative suggestions, except that a language that 
can used to code almost directly from an algorithm is worth looking at. 
Maybe someone should just implement pseudo-code.)

-- 
Bartc

[toc] | [prev] | [next] | [standalone]


#62865

From"Osmium" <r124c4u102@comcast.net>
Date2015-05-31 09:43 -0500
Message-ID<ct0l09Fg841U1@mid.individual.net>
In reply to#62844
"Bartc" wrote:

> On 30/05/2015 15:10, David Kleinecke wrote:
>
>> I hate to do this in a group devoted to C but I want to repeat the
>> recommendation by RB to use Inform 6/7.
>
> I'd never heard of these languages, but they appear to be long-winded 
> scripting languages for writing interactive games.
>
> They can just about be used to represent algorithms (they seem to contain 
> forms of functions, variables, loops and conditionals), but the algorithm 
> would be lost in the text!
>
> What would you use to express an algorithm to someone else in a 
> language-neutral manner? It would be some sort of pseudo-code.
>
> While C introduces all sorts of extra punctuation, restrictions and 
> implementation details to worry about (plus the ecosystem needed to 
> execute the source), some of these languages add cruft of their own.
>
> (No, I don't have alternative suggestions, except that a language that can 
> used to code almost directly from an algorithm is worth looking at. Maybe 
> someone should just implement pseudo-code.)

The first question that must be answered is: "Is the student willing to 
learn a 'throw-away' language?  That is, one that one learns simply get 
started, and then never uses again?  If so, that language is Pascal. I sort 
of learned Lisp many, many years ago.  Nothing.  When I got my Atari ST, the 
big thing was Logo. I spent hours on it.  Nothing. As far as I can tell 
Pascal is a pretty good cut at a working form of pseudocode.  One huge 
advantage over C is that types and variables and initial values are 
different things and you damn well know it while it is going on. Pascal also 
makes very clear the difference between a small integer and a character. 
Pascal's wordiness may also make you appreciate C more when you learn the 
two languages in that order.

If the student isn't willing to spend time on the two language approach K&R 
C seems like a pretty good practical choice. 

[toc] | [prev] | [next] | [standalone]


#62866

FromBen Bacarisse <ben.usenet@bsb.me.uk>
Date2015-05-31 16:03 +0100
Message-ID<87r3pwhjr3.fsf@bsb.me.uk>
In reply to#62865
"Osmium" <r124c4u102@comcast.net> writes:

> "Bartc" wrote:
<snip>
>> (No, I don't have alternative suggestions, except that a language that can 
>> used to code almost directly from an algorithm is worth looking at. Maybe 
>> someone should just implement pseudo-code.)
>
> The first question that must be answered is: "Is the student willing to 
> learn a 'throw-away' language?  That is, one that one learns simply get 
> started, and then never uses again?

That's a good question.

> If so, that language is Pascal. I sort 
> of learned Lisp many, many years ago.  Nothing.  When I got my Atari ST, the 
> big thing was Logo. I spent hours on it.  Nothing. As far as I can tell 
> Pascal is a pretty good cut at a working form of pseudocode.  One huge 
> advantage over C is that types and variables and initial values are 
> different things and you damn well know it while it is going on. Pascal also 
> makes very clear the difference between a small integer and a character. 
> Pascal's wordiness may also make you appreciate C more when you learn the 
> two languages in that order.

But Pascal is an odd suggestion, at least for those reasons!  Pascal is
horrid to work in because it is so restrictive and, in my experience,
students hate it.  The big plus point (and it should not be ignored) is
the vast number of good books available that use or are about Pascal.
And because it a language from another century, many can be picked up
for pennies.  In fact, I'm about throw about a dozen of them away.

<snip>
-- 
Ben.

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | comp.lang.c


csiph-web