Re: Computer Programming Career

From: Michael Wojcik (mwojcik_at_newsguy.com)
Date: 03/21/04


Date: 21 Mar 2004 20:03:40 GMT


In article <c3iig2$72u$1@news5.svr.pol.co.uk>, "Malcolm" <malcolm@55bank.freeserve.co.uk> writes:
>
> "Michael Wojcik" <mwojcik@newsguy.com> wrote in message
> >
> > 22 years of COBOL experience is a fine thing, but it is little in the
> > way of preparation for becoming competent in C. Most of the
> > language-specific key issues with C have no COBOL analog, or at
> > best a very distant one.
> >
> The choice of language is an incidental to computer programming. Even the
> choice of design methodology is largely trivia. What matters is firstly
> understanding the basic operations that a computer can do, and secondly
> understanding algorithms for specific problems. Whether you use C, C++,
> Java, COBOL, BASIC, Ada or assembler hardly matters.

Utter rot. In theory, certainly all TC languages are equivalent.
In practice, language choice and the programmer's expertise in it often
make a huge difference. The abysmal quality of most software today
is ample evidence that understanding basic operations and algorithms
is not sufficient to produce decent software, since the vast majority
of bugs are in implementation or insufficiently-mature design, and not
in choice of algorithm.

> > But I'd call "a couple of days" rather worse than a mere
> > "exaggeration".
> >
> Well the kwyword you have to learn are
> 1) the variable types (basically just int, char, long, double, float)
> 2) the flow control words (for, if, do, while, continue, break, return,
> switch, goto)
> 3) storage qualifiers - static, volatile, struct, typedef, union
> 4) Preprocessing commands, #define, #include, #if
>
> That's 22 keywords, many of which, like "if", will be immediately obvious to
> anyone who knows anything about computers.

Knowing these will not produce a good C programmer. As evidence I
offer the vast stretches of extant crap C code publically available
which were written by people who knew all of them.

> The main problem is the indirection system, which does take some
> understanding, but shouldn't be too hard someone who understands how data is
> laid out in memory.

Malcolm, how long have you been reading comp.lang.c? There are loads
of C programmers who have used the language for *years* and still make
fatal pointer errors. Why do you think van der Linden devotes so much
of _Expert C Programming_ to clarifying pointer and array confusion?

> I don't see more than about two day's work there. Sure you won't know
> chapter and verse of the C standard, but you should be able to knock out a
> competent "twenty questions".

"[K]nock[ing] out a competent 'twenty questions'" does not qualify as
professional programming where I come from. Maybe it does in the
world of video games, but around here people have to write code that
does actual work, and does it correctly.

> It depends where she wants to work. Most of the more interesting jobs will
> require C.

What's your evidence for *this* claim?

> It is unlikely to do any harm, and it is not a difficult language
> if you already have 22 years experience in programming.

It's a difficult language period. I know more programming languages
than I can remember to list them, and I've done far more work in C
than in any of the others, and I'm a damn good C programmer - at
least relative to the people producing most of the code I read. C
is hard to get right. It's particularly hard to get right when you
have to write grown-up code, with correct resource management and
error handling and resistance to malformed input and robustness
against exceptional conditions.

Anyone who believes different is not paying attention. Read the
past few years' worth of CERT advisories and BUGTRAQ postings. Look
at some Open Source code. Outside of c.l.c, I generally cringe when
I read C source; nearly all of it is bug-ridden, nonstandard, poorly
documented, and sloppy.

-- 
Michael Wojcik                  michael.wojcik@microfocus.com
Viewers are bugs for famous brands.
   -- unknown subtitler, Jackie Chan's _Thunderbolt_


Relevant Pages

  • Re: object system...
    ... for that you need machine language. ... isn't even as fast as other systems programming languages. ... Stroustrup's stated design goal was to enable ... all manner of elegance or abstraction can be sacrificed for speed, ...
    (comp.object)
  • Re: DirectX in HLA
    ... I guess that you have a great knowledge of DirectX ... > understanding by looking at them in assembly language... ... > actually represents, really, is a means to "undo" the OOP so ... > is NOT an "OOPL" (object-orientated programming language), ...
    (comp.lang.asm.x86)
  • Re: DirectX in HLA
    ... I guess that you have a great knowledge of DirectX ... > understanding by looking at them in assembly language... ... > actually represents, really, is a means to "undo" the OOP so ... > is NOT an "OOPL" (object-orientated programming language), ...
    (alt.lang.asm)
  • Re: LSP and subtype
    ... What is the class of problems solvable using UML? ... the language of physics cannot describe. ... whatever paradigm equivalent to 2GL/3GL ... there is still a great need for reuse and generic programming. ...
    (comp.object)
  • Re: Why C Is Not My Favourite Programming Language
    ... If you decide afterall that C programming is just not your thing you ... > C has no string type. ... > compiler take care of the rest. ... Why does any normal language ...
    (comp.lang.c)