From: Steve on
If he has not done so already I would point him to scripting languages (csh/ksh/sed/awk/perl) which will be far more valuable to him as an administrator. Depending upon his job description and the intent of his career growth I would then focus on the more formal programming languages.


From: Randal L. Schwartz on
>>>>> "chuckers" == chuckers <chuckersjp(a)gmail.com> writes:

chuckers> And, because of that, it would be better to get your head
chuckers> wrapped around the basics of C first and THEN try to wrap your
chuckers> head around C++ and OOP which is a bit hairier.

Of course, before learning C++ and ruining your basic OOP skills for
life, you should learn the One True OOP language, Smalltalk. Many open
source implementations (Squeak and Pharo the most popular), and many
commercial implementations that have fully featured free versions (like
Cincom Smalltalk Non-Commercial).

You don't know OOP until you learn a pure OOP language. C++ isn't it.
Java isn't it. Python isn't it. Even Ruby tries, but only gets close.

Smalltalk. Objects all the way down.

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn(a)stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion
From: Stefaan A Eeckels on
On Thu, 05 Aug 2010 19:54:51 +1200
Ian Collins <ian-news(a)hotmail.com> wrote:

> On 08/ 5/10 06:13 PM, chuckers wrote:
> >
> > You probably can't really learn C++ without learning C at the same
> > time but things like pointers etc. are a bit easier to deal with if
> > you don't have to fight learning about objects and classes at the
> > same time. Pointers are what will really screw up your programmes
> > with really hard to track down bugs.
>
> Which leads to one strong reason for using C++ - you can hide and
> manage those pointers in such a way the programmer doesn't have to
> worry about them!

Arguably, having to deal with the nitty-gritty, and getting a good idea
of what really goes on at CPU level helps putting things in
perspective. I firmly believe all budding programmers should be
required to write a substantial project in assembler, to ensure they've
got their head screwed on right.

This might stop the current Java-style OO silliness, with a top level
program of 10 lines exploding into thousands of classes, each hiding a
complex feature so that "the programmer doesn't have to worry about
it". The result is usually atrocious, slow, unreliable and
unmaintainable - exactly the opposite of the OO promise.

--
Stefaan A Eeckels
--
Because the innovator has for enemies all those who have done well under
the old conditions, and lukewarm defenders in those who may do well
under the new. -- Niccolo Machiavelli, _The Prince_, Chapter VI
From: Scott on
On Aug 4, 10:58 pm, dkco...(a)panix.com (David Combs) wrote:
> Subj: these days, who & what-for use c vs c++?
>
> I've got this young guy (24 yrs old) visiting,
> who's been administering Solaris for a couple
> of years.
>
> One thing he has not had time to learn (didn't
> go to college) is a programming language, and
> was asking me for advice on where to start out.
>
> I felt that he should start out with C, because
> with it you were quickly (a) getting a feeling
> of what happens low-level, via pointers, call-stacks,
> functions calling other functions, the concepts of
> catch and throw, grabbing and releasing memory (malloc),
> string-scanning, array layout, and so on --
>
> all without a truly huge amount of syntax to master,
> plus classes and their syntax, new and destructors
> and who gets responsibility for what -- which would
> be the case with, say, C++.
>
> He replies that "no one uses C any more", and that if most
> jobs being advertised require C++ (not specifying "C" itself),
> then shouldn't he just start out learning C++ straight
> away, with no delay due to first learning and using
> and debugging a smaller, simpler language.
>
> What would be YOUR advice, and why?
>
> And what about his "no one uses C any more"?
>
> (The idea is that tomorrow I can show him this question
> I'm now posting, as well as the answers and opinions
> from you, well, experts.)
>
> THANK'S MUCH!
>
> David

I've been watching several lectures of an Operating Systems class, at:
http://webcast.berkeley.edu/course_details_new.php?seriesid=2010-B-26518&semesterid=2010-B

His code snippet examples are in C. So, if you want to learn about
what an OS is doing and
maybe program your own or read an open-source (is MINIX still used as
a teaching tool now?)
you should learn C.
The class is called: Computer Science 162, 001 - Operating Systems
and System Programming

I feel that one cannot really be a good OS tuner until one has a grasp
of what's going on underneath.
Even for basic stuff like authentication and authorization: you can
talk about it all day long,
but it really helps to know that (C) has open(), read(), write(),
close(), and nothing's going
to get open()'ed until you have the correct authorization.
Jr. Sys Admin: Oh, so that 100k line program? I can stop thinking
about it as a mountain and
only have to really worry about 4 functions.
From: Andrew Gabriel on
In article <i3djuv$6id$1(a)panix1.panix.com>,
dkcombs(a)panix.com (David Combs) writes:
> Subj: these days, who & what-for use c vs c++?
>
> I've got this young guy (24 yrs old) visiting,
> who's been administering Solaris for a couple
> of years.
>
> One thing he has not had time to learn (didn't
> go to college) is a programming language, and
> was asking me for advice on where to start out.
>
> I felt that he should start out with C, because
> with it you were quickly (a) getting a feeling
> of what happens low-level, via pointers, call-stacks,
> functions calling other functions, the concepts of
> catch and throw, grabbing and releasing memory (malloc),
> string-scanning, array layout, and so on --
>
> all without a truly huge amount of syntax to master,
> plus classes and their syntax, new and destructors
> and who gets responsibility for what -- which would
> be the case with, say, C++.
>
>
> He replies that "no one uses C any more", and that if most
> jobs being advertised require C++ (not specifying "C" itself),
> then shouldn't he just start out learning C++ straight
> away, with no delay due to first learning and using
> and debugging a smaller, simpler language.
>
>
>
> What would be YOUR advice, and why?

What area of programming is he interested in.

> And what about his "no one uses C any more"?

C++ overtook C _very_ many years ago, and Java/C# overtook C++ years
ago, in terms of jobs.

But no one language can do everything, so it depends what area he's
interested in going. None of these are standard sysadmin languages.

--
Andrew Gabriel
[email address is not usable -- followup in the newsgroup]