SUMMARY: Opinions Needed: How important is an understanding of C Programming and Internals to a UNIX System Admin?

From: Lumpkin, Buddy <Buddy.Lumpkin_at_nordstrom.com>
Date: Tue Mar 19 2002 - 19:48:27 EST
I have recieved 53 replies so far so I think this is good enough :)

I should have been more clear about the application of the skills I mentioned in the previous message and how they relate to a System Administrator.

My question should have qualified that these considerations were for Sr. Level UNIX Admins (or engineers in some companies, here the admins do implementation and support) improving their ability to solve problems and do performance tuning. Not to become C programmers or device driver developers.
This would mean that the person(s) would already be very fluent in shell scripting, perl, best practices and procedures and all of the day to day admin stuff.

Or to elaborate more extensively, here's my angle ...

DEVICE DRIVERS - Sun doesn't offer a class that drills down deeply into how their device drivers work, so when troubleshooting why dynamic reconfiguration wouldn't work with a device driver that should support suspend/resume, or how the sd, st and fcaw driver behaviors relate to each other; your
forced to troubleshoot and make sense of these behaviors strictly thru observation and what little documentation exists. Since a "Writing Device Drivers" class does exist, my rational is that while you may learn a lot more about the implementation than you need, it still wouldn't go to waste for the
motivated hacker that is willing to learn it. for the next time they had to disect an issue with a device driver. (I know, a lot of people like to leave this for Sun).

INTERNALS - When addressing performance problems, I would think it's critical to understand some internals. Consider the scanner and priority paging. Without an understanding of how the scanner functions, how could you begin to know what it means when the scanner turns on. Prior to Solaris 7 you had
to examine and compare watermarks (lotsfree, cachefree and freemem) with adb to get an idea of whether the scanner running meant a true out of memory condition rather than being caused solely by large amounts of filesystem I/O putting pressure on the VM System.

C PROGRAMMING - to learn more about include files, libraries, the linker, the basic procedural flow of a C program and have a clear understanding of the difference between user functions and system calls. Also how to compile a program, debug it, understand the basics of memory allocation, i.e. VSZ
vs. RSS and obtain a backtrace on a core dump. Also, understanding how command arguments are passed to a C program might take some of the mistery out of shell operator presedence after parsing argv[] a few times.

With that said, the replies consisted of opinions in all directions. Some said it's all totally irrelevant, and many said that device drivers were irrelevant. Quite a few felt that "Some Level" of C programming knowlege is important for a System Administrator.

All 53 replies below ....

From:	mike.marcell@pni.com
Sent:	Tuesday, March 19, 2002 2:00 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programming and Internals to a UNIX System  Admin?


Buddy,

I guess that I have a 2 part opinion on this.  Personally, I like to learn
as much as I possibly can about everything, and then some.   I feel that
the more an admin can learn about the system at a high and low level, the
more well rounded that person is.   Knowing how to program in C,
understanding unix internals and being able to write device drivers helps
to pave the road to becoming a true unix, or rather Systems Admin Guru.
The guys that I look up to are those guys like that who seem to have done
it all, and just know at least a little about everything.   So, personally,
I'm all for it!

That being said, not everyone that I've met or worked with wish to become
true guru's.      Some people are content with being a decent
administrator, and not getting into the development side.  What you're
describing is leaning towards the developer/programmer/engineer side of the
house, and those things can take different minds.  I've known many a
brilliant person who posses these qualities that you mention, and some of
them I could even sit in a room with for an extended period of time....:-)
But many of those people I would also not send to talk to my users, or
other management about system related topics.  They'd scare off the users
(wouldn't we all like to!) and speak in such a technical tone, that people
wouldn't relate well.   Not to say that people who have these qualities are
odd balls, but the type of mind that it takes to reeeeeallllly  know the
deep down internal portion of the systems, is not always the same type of
mind that it takes to interface with your end-users and other
organizations.  I'm really talking about complete different ends of the
spectrum here, and this doesn't apply to everyone, although the names and
faces of folks that are coming back to me as I write this remind me of what
I'm describing.    I believe that a really well rounded system
administrator lives in the middle ground of this.

I guess that my point here is that there is a place for people who really
have a deep seated desire to know the meat of the system and everything
that is the system (guru), and others who don't care about redesigning the
wheel, but are happy to know how to maintain perfect balance in that wheel
(Sys Admin).  Both are needed, so that both can do their jobs well.  From
my experience, you're usually leaning on one side of this or the other.
Everybody wants to learn more, to fill up their resume with really cool
stuff.  But I don't know that it is in a companies best interest in
spending money to train admins to know this.  Personally, I'd 1st like to
see the admins trained extensively in Network Administration, Security, and
all other aspects of systems administration like performance monitoring and
tuning, volume and filesystem management, and shell and perl scripting, and
then if those folks posses a strong desire learn C, and device drivers.   I
think that it's probably more useful.

Hope that wasn't too long winded of an opinion.  Can't wait to see your
summary of replies.

Take care,

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Mike Marcell                                      The Arizona Republic
  mike.marcell@pni.com                  Systems Database Administrator
  Phone:  (602)  444-4958                  Fax: (602)  444-8010
  Pager:   (602)  409-6248                  Cell: (602) 568-1893
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


                                                                                                                              
---


From:	Debbie Tropiano [debbiet@arlut.utexas.edu]
Sent:	Tuesday, March 19, 2002 11:10 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?

Buddy -

Well, I've been doing Unix sysadmin since 1983 (on more platforms
than I have fingers :-) and what little C I once knew is so rusty
that I cringe everytime I read it on my resume.  Hasn't hampered
me in the least, but then again I don't do any "systems programming".
I'd much prefer to learn Java and/or python at this point, but 
think that perl and borne or bash shell scripting is a must.

Debbie

-- 
| Debbie Tropiano                            |  debbiet@arlut.utexas.edu   |
| Space and Geophysics Laboratory            |     +1 512 835 3367 w       |
| Applied Research Laboratories of UT Austin |     +1 512 835 3100 fax     |
| P.O. Box 8029, Austin, TX 78713-8029       | home email: debbie@icus.com |

---
From:	Lee, Elizabeth [elizabeth.lee.contractor@fnmoc.navy.mil]
Sent:	Tuesday, March 19, 2002 11:02 AM
To:	'Lumpkin, Buddy'
Subject:	RE: Opinions Needed: How important is an understanding of C Progr ammi ng and Internals to a UNIX System  Admin?

My 2 sense:

 Understanding concepts is a good thing, but a sysadmin should NOT be
required to be a programmer, to correct others' sloppy programming or to
write his own drivers.  Maintaining systems properly takes quite enough
time.  If the programmers would just REALLY learn to program, instead of
learning just enough to get their certificate, then perhaps this wouldn't be
an issue.  I took C concepts, basic C and advanced C from old AT&T classes
in mine and Unix's youth.  It was good experience and taught me structure
and logical progression -- but it is NOT highlighted on my resume.  As far
as training dollars, as I said, conceptual understanding lays a solid
groundwork for further knowledge -- but one should not expect a sysadmin to
return from a couple of courses and re-write a kernel or two.  Good system
administration is a never-ending (and somewhat thankless) task  --
intricate programming should not be a requirement.

---
From:	Max Trummer [max@sd.lionbioscience.com]
Sent:	Tuesday, March 19, 2002 10:27 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?


absolutely,  it's important. maybe i'm biased, too, though-- i was a
software engineer for 10 years before unix "took over" my career.

and maybe i'm biased because i'm working for a software company. oh well.

knowledge of c gives great insight into how unix works, how it's laid out,
why things depend on each other. i can't imagine doing this without
knowing what make is all about. and how important modularity is.

learning about device drivers lets you know how things "plug in". it
taught me to think of different devices in a more general way. i've always
been thankful for learning about _iob.

is it relevant for companies to spend $$ for this kind of education? only
if they want happier employees who are also more productive!

my $.02,

/max

On Mon, 18 Mar 2002, Lumpkin, Buddy wrote:

---
From:	Gene Huft [Gene.Huft@ci.seattle.wa.us]
Sent:	Tuesday, March 19, 2002 10:18 AM
To:	Buddy.Lumpkin@nordstrom.com
Subject:	Re: Opinions Needed: How important is an understanding of CProgrammi ng and Internals to a UNIX System A


Greetings to a fellow web-foot Seattlite (I assume you're here, anyway!),

Firstly, it depends on the position the SA holds. In general, MOST SA's can get by without having
"extensive" C programming skills - and probably wouldn't need to know much about internals. 

That said, an SA will almost certainly have deal directly "C", whether it's compiling an open source program, debugging one  that won't compile, debugging the output from truss, or actually writing a small wrapper, etc.  So indeed they need to have  at LEAST rudimentary "C" programming knowledge.

As far as the internals go, I think if an SA has extensive C skills, and futher develops an understanding of internals for a  specific platform - then they will obviously become more valuable to an organization and as such should be compensated  accordingly.

From my past experience I know that an organization can get by without having an SA this gifted,
they rely on maintenance contracts for most problems above & beyond. But an organization that has SA's this knowlegeable  should endeavor to retain them.

Gene L. Huft
City Of Seattle Public Utilities IT

---
From:	Chris Hoogendyk [choogend@library.umass.edu]
Sent:	Tuesday, March 19, 2002 9:37 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ngand Internals to a UNIX System Admin?


my gut reaction would be, "No, there are many other more important areas."

however, there is always an exception, and it would depend on the
particular situation. if a company were a VAR assembling systems for
customers that would integrate with exotic devices, then that could be important.

it certainly helps for a sysadmin to have programming background and
skills. knowing C helps in troubleshooting software builds, even when
the sysadmin is not writing any of the software.

personally, I have yet to find a real use for C, although that could be
because I'm dealing with lots of software configurations and setup that
are available from sunfreeware and builds I have had to do from scratch
have gone pretty smoothly.

what is absolutely essential for me are the unix tools and utilities
like grep, sed, awk, shell scripting, and occasionally perl. knowledge
about the applications I'm running is important (Apache, Samba, EZProxy,
etc). security issues are an ongoing and important area that requires a
constant expenditure of effort. disaster recovery is an important topic.

I suppose it also depends on the size of a systems group and whether
they can specialize beyond the generic sysadmin.

Ultimately, if a sysadmin wants training, and wants the company to pay
for it, then they should be prepared to translate the skills into
specific tasks and responsibilities that will be enabled -- "you've
asked me to do ..... that requires ..... with this training I can do
.....", and then be prepared to deliver.


---------------

Chris Hoogendyk

-- 
   O__  ---- Network Specialist & Unix Systems Administrator
  c/ /'_ --- Library Information Systems & Technology Services
 (*) \(*) -- W.E.B. Du Bois Library
~~~~~~~~~~ - University of Massachusetts, Amherst

<choogend@library.umass.edu>

---------------
From:	Jim Winkle [jwinkle@doit.wisc.edu]
Sent:	Tuesday, March 19, 2002 9:07 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?

Hi Buddy --

Depends on what the sysadmin will be doing. Without knowing that, I'd
say it's more important to know Perl than C.

--
Jim Winkle, UNIX System Administrator, UW-Madison, DoIT. Contact info:

BioComp: help_at_biocomp.doit.wisc.edu http://www-biocomp.doit.wisc.edu/
Other:   jwinkle_at_doit.wisc.edu      http://jwinkle.doit.wisc.edu/

Or use 264-HELP for help with services, 262-9507 to reach me directly.
--------------------------------------------------------------------------------
On Mon, 18 Mar 2002, Lumpkin, Buddy wrote:
---
From:	Bill_Royds@pch.gc.ca
Sent:	Tuesday, March 19, 2002 9:04 AM
To:	Lumpkin, Buddy
Subject:	C Programming understanding to UNIX sysadmin

I think that one needs to know how computers operate (what a stack is, 
what a process entails etc.) and because of that, how a programming 
language works. C is the most important programming language on Unix, so 
it is unlikely that one would understand UNIX without at least 
understanding the C paradigm (what include files are, what is a structure, 
pointer, subroutine etc.) and being able to read C code to understand what 
a utility is doing.
   This does not mean that you have to be able to create C programs from 
scratch and be an expert C program creator.
But you should be able to understand Man sections 3 and 4 easily.

---


Bill Royds
Acting System Administrator,
Canadian Heritage Information Network
Virtual Museum of Canada http://www.virtualmuseum.ca
(819) 994-1200 X 239
From:	Brian Dunbar [Brian.Dunbar@Plexus.com]
Sent:	Tuesday, March 19, 2002 8:20 AM
To:	Lumpkin, Buddy
Subject:	RE: Opinions Needed: How important is an understanding of C Progr ammi ng and Internals to a UNIX System  Admin?

It is relevant for a sysadmin to know C, UNIX internals - not sure about the
device drivers.  IMHO - yes the 'company' should pay for this - but this may
not always be an option.  If the company wants to keep their sys admins
around forever, they will <grin>.

Standard arguements for it - "everything" important in UNIX is written in C,
you'll be a better admin for knowing "why" things happen as opposed to a
button pushing monkey.  Note that 99% of the time you WON'T need the
knowledge.  But that 1% of the time you DO need you'll really need it bad.

I don't know C, Internals or device drivers yet.  Once upon a time I was a
dBase/Clipper code monkey - then after being a bad programmer I became a
better LAN / Network Administrator.  But I was a *better* admin for knowing
how those flaky damn dBase/Clipper* apps worked when they fubared and I was
the only IT guy around.

Brian Dunbar

*dBase/Clipper - I was enlisted in the Marines from 1985 - 1993.  For a long
time it seemed like the "answer" to every problem was to write a dBase III
app for it, extended into an .exe via Clipper.  I even wrote a little
utility prog in Clipper to examine the logs from our Banyan Vines servers,
much to my shame.  The point being - everyone had clipper apps for stuff
that could have been dumped into a spreadsheet - and they were RAM hogs.

---
From:	Edward Scown [eascown3@yahoo.com]
Sent:	Tuesday, March 19, 2002 7:56 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?

For starters, unix IS a C/C++ program -- at least it's collection of them
working in concert --- think about THAT as you ask yourself your question
again. It's not absolutely necessary to have c/c++ programming skills, but
those skills come in handy when you need to compile a software 
package.  Generally, writing device drivers is the job of a developer or
vendor, and not necessarily the administrator.  In having good C/C++ skills,
you will be a better administrator.  Whether or no you choose to get some C/C++
programming skills, LEARN HOW TO SCRIPT.  Pick a shell -- sh, ksh, bash, and
learn to SCRIPT --- learn sed awk and grep! Learn PERL --- Oh yeah, all the
shells, sed,awk, and PERL are C programs...  So ... while having C programming
skills is not necessary, they truly help... ditto on the internals.

Edward
---

---
From:	Kevin Buterbaugh [Kevin.Buterbaugh@lifeway.com]
Sent:	Tuesday, March 19, 2002 7:53 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?



Buddy,

     Let me begin my answer by stating that I personally:  1) know how to
program in C, 2) have at least a basic understanding of Unix Internals
(I've read (and most understand) both "Unix Internals" by Vahalia and
"Solaris Internals" by Mauro / McDougall), and 3) would have no clue how to
write a device driver.

     Having said that, my 2 cents worth is that none of those 3 skills are
a requirement to be a successful Unix administrator.  I'm one of 2
SysAdmin's here, and the other one has none of those 3 skills.  He is still
a very talented system administrator.

     Just as one does not need to know Hebrew / Greek to understand the
Bible, one does not have to know C / Unix internals to understand Unix
system administration.  I think it is advantageous to a Unix admin to know
C and have at least a basic understanding of Unix internals.  I see no
reason for the typical SysAdmin to need to know how to write a device
driver, however.

     As far as paying to train a SysAdmin in those areas ... I'd maybe pay
for a C programming class (but personally, I consider shell / Perl
programming to be a more important skill for a SysAdmin).  Once an admin
knows C, they should be able to pick up either of the aforementioned
Internals books and learn what they need to know from them.

     Of course, all of this is just my 2 cents worth...

Kevin Buterbaugh
LifeWay

"Failure is not an option.  It's a standard feature of every Micro$oft
product..."




Sent by:  sunmanagers-admin@sunmanagers.org


To:   sunmanagers@sunmanagers.org
cc:

Subject:  Opinions Needed: How important is an understanding of C
      Programmi ng and Internals to a UNIX System Admin?

---

From:	Andrew J Caines [Andrew.J.Caines@wcom.com]
Sent:	Tuesday, March 19, 2002 7:47 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?

Buddy,

> Specifically, im interested in any opinions for or against, whether a UNIX
> System Administrator should learn C, UNIX internals and writing device
> drivers (once they are fluent in the two topics mentioned prior).

As a unix sysadmin of eight years who lives and breathes unix at home and
work; builds, packages and/or installs software on an almost weekly basis,
I can say that not only do I not know C (or C++ or Java or Pascal or...)
nor do I expect to do so.

Part of this is the increasing quality of software packaging and build
environments. You don't need to know C to run "configure && make && make
install" or pkgadd or rpm or whatever.

If I was responsible for supporting C coders, however, then I am sure that
knowledge of C would be valuable.

> is it relevant for a company to pay $$ to train UNIX System Administrators
> in these areas.

If it provides specific value to the position, then it should be
considered. If C knowledge is really required (an not just written on the
job ad, as it often is), then training may be necessary.

I think there are many more valuable ways to spend $$ on training and
informing your sysadmin than training them as a programmer.



-Andrew-
-- 
 ________________________________________________________________
|  -Andrew J. Caines-   703-886-2689    Andrew.J.Caines@wcom.com |
| Unix Systems Engineer, WorldCom  Andrew.J.Caines+page@wcom.com |
From:	dana@dtn.com
Sent:	Tuesday, March 19, 2002 7:45 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?


It is important as a career progression step, if you ever want to proceed
beyond intermediate level sys admin you need it.

I would think it would be up to the sys adm in to get the training, a
couple of classes from your local community college should be enough (your
employer should of course allow this to be reimbursed if such a program is
in place).

Dan


                                                                                                     
                    "Lumpkin, Buddy"                                                                 
                    <Buddy.Lumpkin@nordstro       To:     sunmanagers@sunmanagers.org                
                    m.com>                        cc:                                                
                    Sent by:                      Subject:     Opinions Needed: How important is an  
                    sunmanagers-admin@sunma        understanding of C  Programmi ng and Internals to 
                    nagers.org                     a UNIX System Admin?                              
                                                                                                     
                                                                                                     
                    03/18/02 06:41 PM                                                                
                                                                                                     
---

From:	Thomas_J_Jones@eFunds.Com
Sent:	Tuesday, March 19, 2002 7:25 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?


Please don't take this as fact,, it's just my opinions gathered over the
last few years.

While it is not as important for an admin to know C as it once was, not all
that long ago, it will help give them that "deeper understanding" which
will improve their ability to diagnose and solve system problems.  Learning
UNIX internals can build on this directly.  It does not, however, seem as
important that an admin be able to write device drivers as it once was,
since interfaces are more standardized than in the past and most
manufacturers include their device drivers with their peripherals.

Of course, any company that pays their admins to learn these skills wil
benefit from it as mentioned above, however, most can't be bothered with
another expense.  If you can talk your employer into it, congratulations!

TJ

---
From:	Mike's List [mikelist@sky.net]
Sent:	Tuesday, March 19, 2002 6:59 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?

As a system administrator you do not need to know/understands C
programming, although it will help.  You do need to know basic scripting
(shell scripting) as an administrator.  So to answer your question
directly, no the company should not put out the money for a system
administrator to learn C, Unix internals, or writing device drivers.

The above are all for programmers/developers not system administrator.


- Mike

---
> 
From:	Tim Chipman [chipman@ecopiabio.com]
Sent:	Tuesday, March 19, 2002 6:57 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of CProgrammi ng  and Internals to a UNIX System  Admin?

Unless your sysadmin work is desperately idle and you have nothing to do, AND you have an interest in learning C, "just for  fun", then ... IMHO, learning C, programming skills & internals has very little to do with
system administration skillset.

Certainly, (unless said Co. has much $$ to burn) I wouldn't expect sysadmins to be trained in pay-$$ courses about  programming.

Possibly sysadmins should be "trained" in perl / csh / shell scripting .. officially or unofficially ... ? plus of course be  given a significant hunk of "play" time to try out new & relevant stuff that will
revolutionize the universe as we know it :-)

Ultimately, it really depends on what your site is doing I guess.  If the "sysadmin" is the sole IT employee also wearing the  hat of programmer, web developer, etc etc .. then "maybe" it makes sense?

:-)

just my 2 cents,


--Tim Chipman


"Lumpkin, Buddy" wrote:

> Hello All,
>
> I found myself discussing the importance of C Programming skills and internals with a colleague today..
>
> Specifically, im interested in any opinions for or against, whether a UNIX System Administrator should learn C, UNIX  internals and writing device drivers (once they are fluent in the two topics mentioned prior).
>
> even more specifically, is it relevant for a company to pay $$ to train UNIX System Administrators in these areas.
>
> I'll leave my own opinions aside in an attempt to not color any answers.
>
> Any opinions at all are very much appreciated; I will Summarize.
>
> Thanks in advance,
>
> --Buddy
> _______________________________________________
> sunmanagers mailing list
> sunmanagers@sunmanagers.org
> http://www.sunmanagers.org/mailman/listinfo/sunmanagers
From:	boss [boss@I-Sphere.COM]
Sent:	Tuesday, March 19, 2002 6:56 AM
To:	Buddy.Lumpkin@nordstrom.com
Subject:	Re: Opinions Needed: How important is an understanding of C

Eh, i was a fairly competent sysadmin without any real knowledge of any
of those topics.  Its far more important to know perl, shell, sed, awk,
etc as programming languages, and to know network theory.  

Unless you're working in something like a commercial development environment,
looking for ways to tweak the kernel to make a package run faster or
something.  Most sysadmins are just trying to keep the boxes running for
their users :-)

boss
---
From:	Andrew_Rotramel/CCHLIS@cch-lis.com
Sent:	Tuesday, March 19, 2002 6:48 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?


I have been a Solaris admin for about four years. I took a semester in C a
year or so ago. I did fine without knowing anything about programming, but
knowing a smidgen of programming helps me with scripting (which after all
is just programming). I took a class in internals a year ago and it has
helped tremendously. Here is my opinion

C = nice to have, but not essential

Unix internals = essential if you want to do more than partition, share,
set up users, etc. If you want to administer a computer rather than just
operate it, you need to know how it works and what changes you can make in
a given situation

writing device drivers = I have not the faintest idea how to do this, and
don't know that I will ever need to do it. I have worked for Exxon and now
I work for a document sharing company. In each case we used off-the-shelf
components. If the vendor expects us to give them money, they damn well
better provide the drivers needed for Solaris to use their hardware.

Andrew
---
From:	Harrington, David B (Contractor) [dharrington@dscr.dla.mil]
Sent:	Tuesday, March 19, 2002 6:37 AM
To:	'Lumpkin, Buddy'
Subject:	RE: Opinions Needed: How important is an understanding of C Progr ammi ng and Internals to a UNIX System  Admin?

Buddy; 

My $.02 = It depends. 

I have seen some entries here on this listservice for help in writing drivers, but must of the time, it appears to be for  people who found some orphan piece of equipment and were trying to resurrect it from the trash heap. 

Obviously, skill in writing drivers is appropriate for manufacturers and for some service companies, but I don't see it at  the 'user level', which is where I would put most SA's. 

Is C language appropriate? - maybe at a basic level, but the nature of the enterprise is an issue here. Knowing something  about C is good, but the depth of the knowledge required is subject to debate.

Is knowledge of UNIX Internals appropriate? I have a problem with interpreting what you mean by internals. 

That being said, I guess my answer is basic C, Yes. The others? Make a case in dollars and cents, and efficiency. 

Dave Harrington 
---
From:	Ray Ballisti [ballisti@ifh.ee.ethz.ch]
Sent:	Tuesday, March 19, 2002 6:29 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of CProgrammi ng  and Internals to a UNIX System  Admin?

"Lumpkin, Buddy" wrote:
...
> 
> I found myself discussing the importance of C Programming skills and internals with a colleague today..

Hello Buddy

I have sometime a bad feeling, but I am not fluent in C
because I never have to use it, beside some small
adjustment of some existing programs.
My work as a System Manager require more scripts
then C programming. I still do all with the
Bourne shell, and you can do quite well with it!!
I never had to write device drivers. I am working
as System Manager since 1986 when we got our first
three SUN Workstations.
This does not means that you should not have any idea
of C or FORTRAN or Perl; everything can be useful!

Bye  Ray
-- 

From:	Christopher L. Barnard [cbar44@tsg.cbot.com]
Sent:	Tuesday, March 19, 2002 6:27 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin? 

I got my master's degree in Computer Science and did a *lot* of coding
in C.  I then became a unix sysadmin.  That was seven years ago.  The
only time between then an now that I have needed my C coding experience
was to write

main(){return(0);}

to test the license managers for the C compilers.  So in my case:
totally, absolutely, positively not needed at all.  perl, csh, ksh, etc.
is more than enough.

+-----------------------------------------------------------------------+
| Christopher L. Barnard         O     When I was a boy I was told that |
| cbarnard@tsg.cbot.com         / \    anybody could become president.  |
| (312) 347-4901               O---O   Now I'm beginning to believe it. |
| http://www.cs.uchicago.edu/~cbarnard                --Clarence Darrow |
+----------PGP public key available via finger or PGP keyserver---------+
---
From:	Jeff Kennedy [jlkennedy@amcc.com]
Sent:	Tuesday, March 19, 2002 6:12 AM
To:	Lumpkin Buddy
Subject:	Re: Opinions Needed: How important is an understanding of CProgrammi ng  and Internals to a UNIX System  Admin?

I don't think C should be a requirement for System Administration; after
all, that's what a programmer does.  An SA *does*, however, need to know
whatever is needed to fulfill his duties; whether that be shell
scripting or perl or something else.

Writing device drivers is an occupation all on it's own.  Expecting SA's
to do this show's some ignorance towards the duties and functions of a
systems administrator.

As for paying to train an SA to do this, chances are it's waste of
time.  Generally an SA enjoys what they do, which does not include
programming.  If they wanted to program they would have been a
programmer after all.  And spending the amount of time for an SA to
learn these things is time better spent learning or honing the skills an
SA needs to do his actual job.

Of course, just my opinion.

~JK

---
From:	Allan West [allan@clas.ufl.edu]
Sent:	Tuesday, March 19, 2002 6:09 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi  ng and Internals to a UNIX System  Admin?

I would say that C is important since there will always be a few tweaks needed 
in compiling and an understanding of C makes that much easier. I also think 
understanding unix internals is useful, though slightly less so, as a means of 
knowing where to check for performance tweaking and troubleshooting.

I have never written a device driver, nor do I expect to do so any time soon. 
I would love to know how, so that I could use various USB devices with my 
SunRays. It's a _very_low_ priority, though, since device drivers have never 
stood between me and getting work done. This would probably be different if I 
used an under-development environment like Linux instead of the more stable 
Solaris and AIX.
Allan
---

From:	system administration account [sysadmin@astro.su.se]
Sent:	Tuesday, March 19, 2002 6:06 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?

On 2002-03-18 17:41:43 -0700, Lumpkin, Buddy wrote:
> Specifically, im interested in any opinions for or against, whether a 
> UNIX System Administrator should learn C, UNIX internals and writing 
> device drivers (once they are fluent in the two topics mentioned prior).

In my view, a reading knowledge of C is absolutely essential.

Familiarity with the system API (at least to the extent of knowing how
to look up the details in the man pages) is perhaps even more important,
although it's probably enough to know how to use it from Perl rather
than C. (That doesn't make much of a difference in practice.)

Writing device drivers, on the other hand, I don't think of as a system
administration skill. A system administrator may occasionally need to
*read* the source code to a device driver (especially in the Linux/*BSD
world), but writing one from scratch is a different story. The typical
use of reading the source code is for documentation purposes ("what does
that error message really mean?", "how do I use that ioctl?").

An understanding of UNIX internals certainly doesn't hurt when one's
job duties include system tuning and troubleshooting.

> even more specifically, is it relevant for a company to pay $$ to train 
> UNIX System Administrators in these areas.

I'm agnostic on that one. Ask the system administrators' trade union.

(Also, I have a hunch that the answer will depend on the size of the
company. In small places, the system administrator needs to be more of
a jack-of-all-trades. In larger ones, there may be room for both
operators and site analysts.)
From:	William Enestvedt [Will.Enestvedt@jwu.edu]
Sent:	Tuesday, March 19, 2002 5:47 AM
To:	'Lumpkin, Buddy'
Subject:	RE: Opinions Needed: How important is an understanding of C Progr ammi ng and Internals to a UNIX System  Admin?

   Erm, I don't have any programming experience besides shell scripting and
some Perl -- and while I'd *love* it as background, it hasn't kept me from
getting things done.
   Sure, it'd be nice to know, and probably very valuable as a
trouble-shooting aid, but an admin's job is to keep the system running, and
lack of programming skills shouldn't be a show-stopper. (I will readily
admit that being able to puzzle out device drivers and C programs is useful
both for the upkeep of old hardware and for fighting off the script
kiddies.)
> 
> even more specifically, is it relevant for a company to pay 
> $$ to train UNIX System Administrators in these areas.
> 
   Yes: again, it shouldn't prevent a hire, but any company really ought to
consider broadening its employee's skills in this way.
-wde
--
Will Enestvedt
UNIX System Administrator
Johnson & Wales University -- Providence, RI
From:	Eric Priebe [epriebe@ACUS.com]
Sent:	Tuesday, March 19, 2002 5:41 AM
To:	Buddy.Lumpkin@nordstrom.com
Subject:	sysadmins knowing how to program

I think that one needs to be carefull about seperating
'good programming skills' with 'C' programming skills'.

To me, good programming skills means someone is able to
think logically through a problem, plan a course of action
and record what they did so that the next person can see what
was done.  Those skills are necessary for good sysadmins.
The ability to know the 'C' syntax , or the difference between
a function and a subroutine are almost useless in most
sysadmins lifetimes.

With that said, I do think that a sysadmin MUST know how to
program in shell.

Yes, I've spent 10+ years programming in different languages,
and also 10+ years doing sys/database/network admin...

HTH, Eric Priebe
From:	Place, Richard [rplace@uslec.com]
Sent:	Tuesday, March 19, 2002 5:15 AM
To:	'Lumpkin, Buddy'
Subject:	RE: Opinions Needed: How important is an understanding of C Progr ammi ng and Internals to a UNIX System  Admin?

Knowing C would definitely be an added benefit, due to the fact that UNIX is
written in C and that many of the utilities are derivitives of C syntax, but
it really isn't necessary.  I've been a SysAdmin for 12 years and the only C
I had was about 10 years ago in a college course as a prerequisite to
another class.  UNIX internals on the otherhand would be an added benefit
right from the start, as UNIX is a really complex monster and the more you
can learn about the low level OS the better you'll be able to handle the day
to day problems you can expect to face.  It would make it a lot easier to
actually solve the problems vs. putting a band-aid on it.  Writing device
drivers would really only be needed if you actually had to write them
yourself for hardware that your company creates.  Drivers are readily
available, and come with configuration files that don't require an
understanding of how the driver itself is written.

Hope this helps,
Rick Place 
Sr. Unix Systems Administrator
US LEC of North Carolina

---
From:	Boldin, Bob [Robert.Boldin@bellsouth.com]
Sent:	Tuesday, March 19, 2002 4:48 AM
To:	'Lumpkin, Buddy'
Subject:	RE: Opinions Needed: How important is an understanding of C Progr ammi ng and Internals to a UNIX System  Admin?

Buddy,

	Just my opinion of course - However I think those skills would be beyond the skill set of a Sysadmin and at that  point into the realm of a Systems Programmer/Engineer.  A Sysadmin should be able to script in native shells / perl in order  to automate tasks.  They should also be able to
compile from source code in order to add software.  If by some means you get  compelling information to the contrary and you think you can provide the basis for getting a company to pay $$ for this  training I would of course be willing to learn beyond my self-taught 'c' skills.

Looking forward to this Summary:

Robert Boldin: Operations System Admin.
BellSouth Technology Services, Inc.
Internet Delivery and Services Group
Email: Robert.Boldin@bellsouth.com
Voice: 678-969-8544


---
From:	Bara Zani [bara_zani@yahoo.com]
Sent:	Tuesday, March 19, 2002 4:45 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?

Strange ,
I've mailed the same questiona while back .
most replies said it is the next step in sysadmin but is not neccessary .
I myself have managed ( with the help of this list and google ) to avoid any
C programming .
i do how ever feel i need to learn it .
i think it will take my unix skills to the next level but it does not affect
my preformance and sysadmin functions now .

----- Original Message -----
From: "Lumpkin, Buddy" <Buddy.Lumpkin@nordstrom.com>
To: <sunmanagers@sunmanagers.org>
Sent: Monday, March 18, 2002 7:41 PM
Subject: Opinions Needed: How important is an understanding of C Programmi
ng and Internals to a UNIX System Admin?
---

From:	ed.rolison@itc.alstom.com
Sent:	Tuesday, March 19, 2002 1:48 AM
To:	Buddy.Lumpkin@nordstrom.com
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?


In my opinion, C programming and unix internals are extremely useful.
(I'm reading unix internals as an understanding of how the kernel works
with C etc).
There have been a number of occasions when I've found being able to write a
few lines of C to accomplish a task,
rather than search for, or grow a huge botch of a shellscript to accomplish
the same task.
This does trace back to 'are programming skills important in a sysadmin'
and FWIW I think that that's a definite yes. You
can get by without writing a shell script, and without writing any C, but
your life is so much easier (and effficient) if you can.
Writing device drivers, I'm not so convinced.
As for getting a company to pay for it, well, I guess that would depend on
the company. It is definitely going to be a benefit to your job,
and so if that's enough for them, then great :)
I've had enough trouble convincing my company to send me on the Solaris
training courses (I'm not entirely convinced I need
them to be fair, but I would rather like to get the Solaris Cert).


---
From:	Steve Elliott [se@comp.lancs.ac.uk]
Sent:	Tuesday, March 19, 2002 1:07 AM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?


Erm,
well I've been a sys admin for 12 or so years now.
My C is VERY rusty and very limited.
writing device drivers? ha! no, never had a need for that.

Steve Elliott


---
> 
From:	Merrell, Vince [IT] [vince.merrell@ssmb.com]
Sent:	Monday, March 18, 2002 11:13 PM
To:	'Lumpkin, Buddy'
Subject:	RE: Opinions Needed: How important is an understanding of C Progr ammi ng and Internals to a UNIX System  Admin?

Hey Buddy,

My personal take on the subject is that if a System Administrator has got
the time to learn C, Unix internals and/or write device drivers then he's
probably not doing a very good job of administering the systems he's looking
after.

Perhaps these are the kind of skills an SA acquires naturally over time but
shouldn't really be the skills a company spends good $$ on making an SA
acquire. After all, being an SA doesn't really suggest an interest/aptitued
towards being a programmer does it?? Therefore, spending $$ to push an SA in
that direction may not pay off at all.

Also, be mindful that you're empowering a person to a new level. Say he/she
*loves* what they learn, they may decide they can double their salary
elsewhere and not need to be an SA no more :)

The deciding factor has to be, whether your site will benefit from
upskilling the SA to these new heights. If so then yeah, go do it. If no, I
don't think there's much benefit from doing it.

Be interested to hear the opinions of others, especially your original
conversation.

Vince
---
From:	Gert-Jan Hagenaars [gj@hagenaars.com]
Sent:	Monday, March 18, 2002 11:02 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?

Hi,

I've been a unix system administrator for almost ten years, and I've
not had to write a C program in all that time.

Knowing what things _are_ is important though: you should know what
system calls are, what libraries are, and how they are used.  You have
to be able to edit Makefiles (see?  I'm old school... no ./configure :).

You have to be able to look at source code and understand what's going
on.  It helps.

I've trained system administrators with no C programming background, and
they still do their job well.  So I would say it is not a necessity.

If a company is willing to train a unix system administrator (and I have
yet to find a company that's willing to train beyond the "oh yeah, sure"
at your interview), send them to usenix or lisa and mingle and get to
know people.  _that_'s valuable.

---

CHeers,
Gert-Jan.

-- 
+++++++++++++ -------- +++++ --- ++ - +0+ + ++ +++ +++++ ++++++++ +++++++++++++
sed '/^[when][coders]/!d         G.J.W. Hagenaars -- gj at hagenaars dot com
    /^...[discover].$/d          Remembering Mike Carty 1968-1994
   /^..[real].[code]$/!d         UltrixIrixAIXHPUXSunOSLinuxBSD, nothing but nix
' /usr/dict/words                I'm Dutch, what's _your_ excuse?
From:	Craig Reynolds [craig.reynolds003@cyf.govt.nz]
Sent:	Monday, March 18, 2002 8:08 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ngand Internals to a UNIX System Admin?

Once upon a time, it was considered extremely useful.  Nowadays, it
seems to be discouraged.

Cheers
Craig
---

 -------------------------------
 This email message is intended solely for the person or entity to which
 it is addressed. The information it contains is confidential and may be
 legally privileged. Any review, retransmission, dissemination or other
 use of this email may be unlawful. If you are not the intended
 recipient, please notify us immediately and destroy the email from all
 sources. Thank you.
 Child, Youth and Family Service accepts no responsibility for changes made
 to this email or to any attachments after transmission from the Office.
 ------------------------------

From:	Vinarsky, Boris [Boris_Vinarsky@maxtor.com]
Sent:	Monday, March 18, 2002 6:53 PM
To:	'Lumpkin, Buddy'
Subject:	RE: Opinions Needed: How important is an understanding of C Progr ammi ng and Internals to a UNIX System  Admin?

It depends on the job functions. 99% of the tasks are pretty routine, and do
not require any advanced skills. However, at some point these skill may
become critical, and make a big difference. Even when you use help of a
technical support it is helpful to understand the subject better.

I use some rudimentary C to build PLI modules for EDS tools for my users,
and use some kernel understanding to tune HP-UX kernel for EDS tools.

Boris Vinarsky

---

From:	Thomas Wardman [wardtj@hoser.ca]
Sent:	Monday, March 18, 2002 6:53 PM
To:	'Lumpkin, Buddy'
Subject:	RE: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?

Buddy,

It would all depend on the tasks that a particular Sysadmin was asked to
perform.  In general, a good working knowledge of programming in almost
any language would be valuable.  It's not the skill to know a language,
such as C, that is important.  The important part is the thought process
in regards to problem solving.  Typically, good programming skills will
lead to not bad problem solving abilities.  The best employees can
easily learn a new language in a few hours.

The question to ask is, "If I have all these programming skills, why
would I want to do sysadmin, especially since it pays less..."  That's
exactly the attitude that many people have.  If the person has skills
that enable them to write device drivers, they should be working at some
development company, getting the money they deserve.

Again, it all comes down to scope of the job.  At a smaller company,
these skills would probably be more valuable, while at a larger firm or
institution they may not be.

Hope this helps,

Thomas Wardman
@Hoser.ca -- Get it eh?

---
From:	Steve Sandau [ssandau@bath.tmac.com]
Sent:	Monday, March 18, 2002 6:51 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of CProgrammi ng  and Internals to a UNIX System  Admin?

I find a little knowledge of C to be necessary as an admin, but only
because I compile programs. If I knew C very well, I'm afraid I'd lose
sight of the "big picture" and tend to micro-manage everything by
writing a C program for it. I think shell scripting is much better for
system administration.

If the job entails specialized equipment, being able to write device
drivers might be a real asset. In my case, the company would *never* pay
for a course for me to learn C, no matter what type of administration I
was doing.

I currently administer several Solaris workstations, a dozen or so Linux
boxes, and a few Solaris servers. They run Oracle, Informix, firewalls
and standard Internet services like DNS, mail, http, ntp, etc.

Just my $.02
---

Steve Sandau
ssandau@bath.tmac.com
From:	Nicholas Tang [ntang@mail.communityconnect.com]
Sent:	Monday, March 18, 2002 6:44 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?

Well, I'll start off with a question: is it ever bad to understand more
about what you're working with?

Having said that, there's a whole lot of sys admin work you can do without
knowing how to program in C and without being incredibly fluent in Unix
internals - but they help.  It depends very much on the type of work you're
doing.  Are you doing project work, installs or configs and the like?  Are
you tuning existing boxes for performance and reliability?  Are you auditing
code and/or modifying existing code for the environment and/or situation?
Answers to questions like that really answer your question.  In other words:
it depends on the job and the environment.  It never hurts, but it's not
usually necessary.

If you need an admin that really can dig down into the nitty gritties of the
system, then having someone with those skills and/or training them in those
skills can be helpful.  If not, then it's less helpful, although as I
mentioned, it never hurts.

Nicholas

---

From:	Carl Ma [carl_ma@scotiacapital.com]
Sent:	Monday, March 18, 2002 6:27 PM
To:	Buddy.Lumpkin@nordstrom.com
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?

When I was in university, our teacher,who taught us operating system, drew a 
picture in class - two biases , one is 30 bevel, one is 60 bevel. He said if you 
want to reach the same level, with 60 bevel, it can save you a lot of time even 
thought the process is more difficult. Programming just likes the 60 bevel, if 
you want && LOVE to understand OS better, you should choose this road. You 
should follow the way like:
student -> programmer -> senior programmer -> system admin -> architect

I am lucky to have a good teacher when I was young. It has proved that he is 
correct even though there are a lot of admins with only 6 month school training, 
a lot of misunderstanding of admin's duty. 

That is also why I refuse M$. It leads people to 30 bevel and try to fool 
people.

Above is my .02 cent opinion. :-)

carl

Btw, this subject is off topic of this list. :-)


:Date: Mon, 18 Mar 2002 17:41:43 -0700
:From: "Lumpkin, Buddy" <Buddy.Lumpkin@nordstrom.com>
:Subject: Opinions Needed: How important is an understanding of C Programmi ng 
and Internals to a UNIX System Admin?
:To: sunmanagers@sunmanagers.org
:MIME-version: 1.0
:X-BeenThere: sunmanagers@sunmanagers.org
:Delivered-to: sunmanagers@sunmanagers.org
:X-Original-Date: Mon, 18 Mar 2002 17:41:43 -0700
:X-Mailman-Version: 2.0.8
:List-Post: <mailto:sunmanagers@sunmanagers.org>
:List-Subscribe: <http://www.sunmanagers.org/mailman/listinfo/sunmanagers>, 
<mailto:sunmanagers-request@sunmanagers.org?subject=subscribe>
:List-Unsubscribe: <http://www.sunmanagers.org/mailman/listinfo/sunmanagers>, 
<mailto:sunmanagers-request@sunmanagers.org?subject=unsubscribe>
:List-Archive: <http://www.sunmanagers.org/pipermail/sunmanagers/>
:List-Help: <mailto:sunmanagers-request@sunmanagers.org?subject=help>
:List-Id: The Sun Managers Mailing List <sunmanagers.sunmanagers.org>
---
From:	Christophe Dupre [duprec@scorec.rpi.edu]
Sent:	Monday, March 18, 2002 6:15 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?

On Mon, 18 Mar 2002, Lumpkin, Buddy wrote:

> Specifically, im interested in any opinions for or against, whether a
UNIX System Administrator should learn C, UNIX internals and writing
device drivers (once they are fluent in the two topics mentioned prior).

Here's my personnal opinion on this, which parallels what my department is
looking for when hiring SysAdmin staff.

I think knowledge of several programming languages is a must. Bourne Shell
is a very important as it's the lowest common denominator between all
types of Unix. Another scripting language (like Perl or Python) is also a
strong requirement for heavy-duty scripting.

Basic knowledge of C is a big plus, as a sysadmin often has to compile
packages (and find where the problem is if things do not compile). This is
open-source stuff of course, but also commercial programs delivered in
source form (happens a lot for scientific software). Then also, there are
some things that are hard to do in scripts, like special-purpose SUID
programs, where C (or C++) is required.

Unix Internals should also be well understood - how are you supposed to
troubleshoot problems if you don't know what's going on under the hood ?

As for device drivers, general knowledge of how they work is necessary
(but I think that's included in unix internals), but I don't see actual
development of drivers as a requirement - I've never heard of an admin
having to do that in all my years of admining.

> even more specifically, is it relevant for a company to pay $$ to train
UNIX System Administrators in these areas.

Well, that really depends - I wouldn't hire an admin with no programming
experience and no kernel internals knowledge, except in a very junior
position. And then I would expect him to learn from his peers. I don't
believe in any coursework for unix internals - the best information is in
books (so yes, paying for a few good books is worth it). As for
programming, it's easy to pick up C if you have Java or Perl experience.
If the admin has NO programming experience whatsoever, then yes, it's
worth it as a jump-starter (just look up Computer Science 101 at your
local College).

--
Christophe Dupre
System Administrator, Scientific Computation Research Center
Rensselaer Polytechnic Institute
Troy, NY        USA
Phone: (518) 276-2578  -  Fax: (518) 276-4886
From:	Jay Lessert [jayl@accelerant.net]
Sent:	Monday, March 18, 2002 5:52 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?

On Mon, Mar 18, 2002 at 05:41:43PM -0700, Lumpkin, Buddy wrote:
[long lines wrapped for readability]
> Specifically, im interested in any opinions for or against, whether a
> UNIX System Administrator should learn C, UNIX internals and writing
> device drivers (once they are fluent in the two topics mentioned
> prior).

IMO, a senior sysadmin should be fluent in C, plus at least one runtime
debugger and one source revision-control package.

    You can read section 2 and 3 man pages and understand what they're
    saying.

    You can read /usr/include/* and understand what *they're* saying.

    You can write secure setuid wrappers and other small C programs when
    there isn't any other way to do what you need to do.

    You can debug and fix open-source software.

    You can debug (with truss and a debugger) closed-source software,
    increasing your chances of getting a fix or workaround quickly.

Other languages are lovely, but C is mandatory.

Kernel internals, hmmm.  Again, for a senior sysadmin, you certainly
need a working knowledge of the high-level architecture of kernel
subsystems: I/O, VM, signals, process scheduling.  But detailed
knowledge of particular kernel data structures, etc. would be hard
to justify unless you're running an open-source OS shop, and even
then...  But high-level architecture, yes.

Device drivers?  Yet a bit more esoteric, unless your shop actually
does custom driver development.  In general, I'd rather make sure
a sysadmin knows network protocols.

> even more specifically, is it relevant for a company to pay $$ to
> train UNIX System Administrators in these areas.

You mean budget for a continuing education that includes conference
tutorials, and college/university tuition reimbursement?  By all
means.  That's pretty much industry standard, isn't it?

What isn't industry standard would be salary for time spent in
class for college/university credit hours.

-- 
Jay Lessert                               jay_lessert@accelerant.net
Accelerant Networks Inc.                       (voice)1.503.439.3461
Beaverton OR, USA                                (fax)1.503.466-9472
From:	Deb [deb@tickleme.llnl.gov]
Sent:	Monday, March 18, 2002 5:47 PM
To:	Buddy.Lumpkin@nordstrom.com
Subject:	Re: Opinions Needed: How important is an understanding of C

All I can give you is my experience.  I've been a unix sysadmin since 1989,
and in all that time I have never had the need to write a device driver.
HOWEVER, it depends upon the industry the SA is in, whether or not there is
a need to interface non-standard hardware to some Unix OS.

For the most part, this is a programmer's job.

That said, I think it is extremely useful for a syadmin to understand and
apply unix internals knowledge.  I don't think it needs to be terribly in
depth, but it does come in handy. Understanding what the kernel is, how it
can be manipulated, why some areas should be manipulated and others left
alone - all this is very good knowledge in an engineering environment, for
example (my kind of environment for the last 20 years).

Gotta run,

deb

"If it dies, it's biology.  If it blows up, it's chemistry,
and if it doesn't work, it's physics."
                                        -- University bathroom graffito
t?t
 ~ 
From:	blymn@baesystems.com.au
Sent:	Monday, March 18, 2002 5:20 PM
To:	Buddy.Lumpkin@nordstrom.com
Subject:	Re: Opinions Needed: How important is an understanding of C

According to Lumpkin, Buddy:
>
>Specifically, im interested in any opinions for or against, whether a UNIX System Administrator should learn C, UNIX  internals and writing device drivers (once they are fluent in the two topics mentioned prior).
>

Some knowledge of C is a definite advantage... knowing how make works
as well helps a lot also from the point of view that if you are trying
to install a tool from source and it falls over you can just fix it.

Knowing kernel internals, IMHO is recommended but not essential, you
could get by without them but knowing what goes on under the hood does
make a lot of things less mysterious (like why zombies or processes
in the D state cannot die).

Writing device drivers...mmmm... interesting, less recommended than
kernel internals but does give an even better idea of what is going
on, less mystery but not that useful in day to day running.

>even more specifically, is it relevant for a company to pay $$ to train UNIX System Administrators in these areas.
>

If they are willing to pay for it then great.... I would suggest basic
C and shell programming would be a good thing to have.  Deeper
training is hard to find (at least that is what I have found) and may
be of dubious value, the other thing to consider is that a lot of
admins are simply not interested in that level of detail.

-- 
===============================================================================
Brett Lymn, Computer Systems Administrator, BAE SYSTEMS
===============================================================================

From:	Ian Clements [ian@artisan.com]
Sent:	Monday, March 18, 2002 5:20 PM
To:	'Lumpkin, Buddy'
Subject:	RE: Opinions Needed: How important is an understanding of C Progr ammi ng and Internals to a UNIX System  Admin?

 depends on what you expect to achieve. 

 my opinion is that a certain percentage of a large staff 
should know how to program but once you get beyond the basic
stuff, then you're talking big $$ salaries and then, how often
do you write (or even maintain) device drivers?

 pay the cost to train in the areas you spend time working. as
folks get more sr., then it's ok if they take additional classes.

 on the flip side, say you are a development organization and 
someone comes in that has a lot of potential, then it's worth it
to the organization to spend the time training. the benefit to the
company over time will be well worth the investment. 

ian
---
From:	Douglas Palmer [palmer@nyed.uscourts.gov]
Sent:	Monday, March 18, 2002 5:20 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?

On Mon, 18 Mar 2002, Lumpkin, Buddy wrote:

> Specifically, im interested in any opinions for or against, whether a
> UNIX System Administrator should learn C, UNIX internals and writing
> device drivers (once they are fluent in the two topics mentioned
> prior).

From someone who employees numerous UNIX System Administrators and
numerous programmers -- it's a different skill set. While it may be useful
to train someone on UNIX internals and C as part of a career path (moving
from one specialty to another), it is manifestly *NOT* necessary for a
successful SA to be able to write a C program (though that skill would
never hurt), let alone a device driver.

Just one opinion, of course.

-- DCP


From:	Mark Luntzel [mark@neurosis.net]
Sent:	Monday, March 18, 2002 5:10 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?

I think that it really depends on the primary function of the sysadmin - for me, it'd be ludicrous to expect my company to  train me in the areas you described, as I'm responsible for a set of webservers/appservers/databases and not anything really  low-level such as you describe.

For other applications, it may be advantageous for the sysadmin to learn at least some basic skills. 

Maybe not too much you didnt already know.

With large, sharp teeth, Lumpkin, Buddy chortled:
---
-- 
From:	Dave Mitchell [davem@fdgroup.com]
Sent:	Monday, March 18, 2002 5:08 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin?

On Mon, Mar 18, 2002 at 05:41:43PM -0700, Lumpkin, Buddy wrote:
> Hello All,
> 
> I found myself discussing the importance of C Programming skills and internals with a colleague today..
> 
> Specifically, im interested in any opinions for or against, whether a UNIX System Administrator should learn C, UNIX  internals and writing device drivers (once they are fluent in the two topics mentioned prior).
> 
> even more specifically, is it relevant for a company to pay $$ to train UNIX System Administrators in these areas.


I would expect that only a small percentage of UNIX administrators
could program in C, and of the those, only a tiny fraction would have the
skill or need to write a device driver.

Of course, I am one of those few ;-)


(IMHO...)

Dave.
From:	Richard Grace [rgrace@aapt.com.au]
Sent:	Monday, March 18, 2002 5:06 PM
To:	Buddy.Lumpkin@nordstrom.com
Subject:	Re: Opinions Needed: How important is an understanding of CProgrammi ng and Internals to a UNIX System A

> Any opinions at all are very much appreciated; I will Summarize.

Well, here's mine :-)

I don't consider writing device drivers to be important.
Most critical hardware is well supported on a variety of platforms.

However, C programming, is just as important as shell scripting,
as there is usually poor support for platforms (such as Solaris)
among the free/open source software movement.

I've lost track of the number of applications which were written
by a home Linux hacker which took half a day or more of porting
before they would compile on Solaris.  In particular, it is most
important in this area to understand the compiler options, the
Makefile syntax, how to find libraries and headers, and also the
Imakefile for some applications.

I know most people probably use the packages on Sun Freeware
nowadays, but there are plenty of applications/systems which
are not supported in their distributions.

I hope this makes some sense.

Richard Grace
Unix Systems Administrator
AAPT Limited


From:	Raj, Dilip (SD-EX) [DRaj@gi.com]
Sent:	Monday, March 18, 2002 5:01 PM
To:	'Lumpkin, Buddy'
Subject:	RE: Opinions Needed: How important is an understanding of C Progr	ammi ng and Internals to a UNIX  System Admin?

It depends on the seniority of Unix Admin. If you are a Senior Unix Admin in
a Development Team, then C, Unix Iternals, and Wrtting device Driver skills
will be useful.

Remember, we are a System Administrator not a Software Enginner.

Shell Scripting is more useful for Junior Sys Admin than writing Device
driver.

Dilip


-----Original Message-----

_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers
From:	Mark Montague [markmont@umich.edu]
Sent:	Monday, March 18, 2002 5:00 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?

On Mon, 18 Mar 2002, Lumpkin, Buddy wrote:

> Specifically, im interested in any opinions for or against, whether a UNIX System Administrator should learn C, UNIX  internals and writing device drivers (once they are fluent in the two topics mentioned prior).

Is it necessary to know these things?  No.

"Should" someone know these things?  Debatable.

Does it help to know these things?  Will knowing these things make
someone a better system administrator?  My opinion is "definately yes".
Also, the ideal system administrator should know digital logic design
and computer architecture.

My reasoning is the more you know about how a computer operates the
better you will be able to troubleshoot esoteric problems, and the
better you'll be able to understand limitations of the system and
explain these limitations to others (management, end users, etc.)


> even more specifically, is it relevant for a company to pay $$ to train UNIX System Administrators in these areas.

If the company can afford it, yes, but it shouldn't be the highest
training priority.  The "ideal" system administrator would study these
things on his/her own if the company did not pay.


                Mark Montague
                LS&A Information Technology
                The University of Michigan
                markmont@umich.edu
From:	Mark Pfeiffer [markpf@mlp-consulting.com.au]
Sent:	Monday, March 18, 2002 4:46 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C Programmi ng and Internals to a UNIX System  Admin? 


This is from USENIX 1993, In an email I received that year describing
Systems Administrators. You will note they expect small C programs and an
understanding of some of things you mention, but not full on abilities.

Here is a partial Job Description for a Senior Admin:

     Level IV, Senior System Administrator:
        Required skills:
           Strong inter-personal and communication skills; capable of
              writing proposals or papers, acting as a vendor liaison,
              making presentations to customer or client audiences or 
              professional peers, and working closely with upper management.
           Ability to solve problems quickly and and completely.
           Ability to identify tasks which require automation and automate them.
           A solid understanding of a UNIX-based operating system;
              understands paging and swapping, inter-process
              communication, devices and what device drivers do,
              file system concepts ("inode", "superblock"), can
              use performance analysis to tune systems.
           A solid understanding of networking/distributed computing
              environment concepts; understands principles of
              routing, client/server programming, the design of
              consistent network-wide filesystem layouts.
           Ability to program in an administrative language (Tk, Perl,
              a shell), to port C programs from one platform to
              another, and to write small C programs.
        Required background:
           More than five years previous systems administration
                experience.
        Desirable:
           A degree in computer science or a related field.
           Extensive programming background in any applicable language.
           Publications within the field of system administration.
        Appropriate responsibilities:   
           Designs/implements complex local and wide-area networks of machines.
           Manages a large site or network.
           Works under general direction from senior management.
           Establishes/ recommends policies on system use and services.
           Provides technical lead and/or supervises system
              administrators, system programmers, or others of
              equivalent seniority.
           Has purchasing authority and responsibility for purchase
              justification. 
 


On Mon, 18 Mar 2002 17:41:43 PDT "Lumpkin, Buddy"'s good news was:
---

cheers
mark

------------------------------------------------------------------------
       Mark Pfeiffer        |Email : Mark.Pfeiffer@mlp-consulting.com.au
 Computer Systems Engineer  |WWW   : http://www.MLP-Consulting.com.au
 UNIX Systems Integration   |Snail : PO Box 334,  Oatley, NSW, 2223, Aus
 MLP Consulting  Pty. Ltd   |Phone : 0417 447 538 Intl: +61 417 447 538

From:	Daniel David Benson [dan@spoontail.com]
Sent:	Monday, March 18, 2002 4:44 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?



I don't think UNIX admins necessairly need C, but I do think they should
have a CS degree (this might imply the C skills).  I have met too 
many Admins without the proper computer problem solving skills.
Plus, it's not just C, but also algorithms.  I have seen too many perl 
scripts with no structure.

-Dan



On Mon, 18 Mar 2002, Lumpkin, Buddy wrote:

---
From:	geoff mcnamara [geoffm@rni.net]
Sent:	Monday, March 18, 2002 2:36 PM
To:	Lumpkin, Buddy
Subject:	Re: Opinions Needed: How important is an understanding of C  Programmi ng and Internals to a UNIX System  Admin?

I do not usually have the time to respond to messages the way I would 
like, but this one strikes a nerve for me... YES, unix is founded deeply 
in C.  And too often questions come up as a system admin that involve 
memory leaks, buffer over flows, ipcs, or a gazillion other gotchas that 
have some association with the basics of C.  Learn it, pay for learning 
it, better yet, have someone else pay for it.  I would call it the 
crucial factor between the standard Unix Admin and the "ole salt".

-geoff
---

Original Post:

From: Lumpkin, Buddy [mailto:Buddy.Lumpkin@nordstrom.com]
Sent: Monday, March 18, 2002 4:42 PM
To: sunmanagers@sunmanagers.org
Subject: Opinions Needed: How important is an understanding of C
Programmi ng and Internals to a UNIX System Admin?


Hello All,

I found myself discussing the importance of C Programming skills and
internals with a colleague today..

Specifically, im interested in any opinions for or against, whether a UNIX
System Administrator should learn C, UNIX internals and writing device
drivers (once they are fluent in the two topics mentioned prior).

even more specifically, is it relevant for a company to pay $$ to train UNIX
System Administrators in these areas.

I'll leave my own opinions aside in an attempt to not color any answers.

Any opinions at all are very much appreciated; I will Summarize.

Thanks in advance,

--Buddy





>  -----Original Message-----
> From: 	Lumpkin, Buddy  
> Sent:	Monday, March 18, 2002 4:42 PM
> To:	sunmanagers@sunmanagers.org
> Subject:	Opinions Needed: How important is an understanding of C Programming and Internals to a UNIX System Admin?
> 
> Hello All,
> 
> I found myself discussing the importance of C Programming skills and internals with a colleague today..
> 
> Specifically, im interested in any opinions for or against, whether a UNIX System Administrator should learn C, UNIX internals and writing device drivers (once they are fluent in the two topics mentioned prior).
> 
> even more specifically, is it relevant for a company to pay $$ to train UNIX System Administrators in these areas.
> 
> I'll leave my own opinions aside in an attempt to not color any answers.
> 
> Any opinions at all are very much appreciated; I will Summarize.
> 
> Thanks in advance,
> 
> --Buddy
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers
Received on Tue Mar 19 18:49:21 2002

This archive was generated by hypermail 2.1.8 : Thu Mar 03 2016 - 06:42:38 EST