On Wed, 21 Apr 2004, Abhinav wrote:
[color=blue]
> Hi Darrell,
>
> Darrell Grainger wrote:[color=green]
> > On Tue, 20 Apr 2004
user@domain.invalid wrote:
> >[color=darkred]
> >>Hi all,
> >>
> >>At the outset, I regret having to post this slightly OT post here.
> >>However, I strongly feel that people in this group would be the best to
> >>advise me on my predicament.[/color]
> >
> > If this is more about you as a programmer and less about the C programming
> > language you might be better served posting to comp.programming.[/color]
>
> Thank you for pointing me to the appropriate group :)[/color]
I assume all future messages regarding systems programming will be
directed to comp.programming or some other appropriate newsgroup.
[color=blue][color=green][color=darkred]
> >>I am working as a QA in an MNC in India, since I graduated in September
> >>2003. I am working in a QA role which requires me to do some Winrunner
> >>automation, and modifying/creating a framework in Perl for Automated
> >>Regression Testing of some command Line utilities (written in C).
> >>Although the job is financially rewarding, I am not sure I am as
> >>satisfied with my job, and would like to move over to Systems
> >>Programming. Since C is the defacto standard for this, I am trying to
> >>learn C.[/color]
> >
> > Seems reasonable. Not all systems are programmed in C though. Again, if
> > you posted to comp.programming it might get a better response. So far it
> > seems like you are interested in systems programming and believe this is
> > the same as being interested in C.[/color]
>
> Actually, yes : I am interested in a career in Systems programming. My
> interest in C is because, AFAIK, C is the primary language used for
> system programming, and being familiar with it to a small extent, it
> might help in starting with this combination.
>
> I am really not aware of other languages used as widely as C for systems
> programming. Would be great to know, though.[/color]
A good majority of systems programming is in C language. Some like more
strongly typed languages. It restricts the programmer but it also protects
them as well. If you like the freedom C allows and are diligent enough not
to shoot yourself in the foot then there is no reason you cannot do
systems programming in C language.
C language is a more popular language. As such there is a lot of
documentation, tutorials, resources, etc. available for it. Unfortunately,
some is bad or misleading. Be skeptical. Ask WHY. Ask it a lot.
[color=blue][color=green][color=darkred]
> >>The problem is that since I am in QA, in am not having any 'real' feel
> >>of systems programming. I am having access to the souce, but my job does
> >>not require that I go through it(I am doing this on my own, though).[/color]
> >
> > Looking at the code will tell you what that system is doing. Unless the
> > code is incredibly well documented a lot of the design decisions will be
> > missing. In other words, you will have WHAT that system is doing but you
> > might not be able to deduce WHY it is doing it.
> >[color=darkred]
> >>I would like to know what approach I should follow in getting my self a
> >>working knowledge, so that I can present a good case for myself in an
> >>interview.[/color]
> >
> > There are at least two things here. 1) you want to be a good C programmer
> > and 2) you want to be a systems programmer. If I was interviewing you for
> > C programming I would ask you technical questions to see that you know how
> > to program in C language. If the job was programming a system I would also
> > ask you theoretical questions about how you might design the system and
> > why. If I was hiring someone to be a systems programmer I would not assume
> > a good C programmer is a good systems programmer. Nor would I assume a
> > good systems programmer is going to be a good C programmer (unless they
> > had written a system in C previously).[/color]
>
> Thanks again for an excellent demystification of my own question :)
> This raises a question in my mind ..
>
> You have mentioned that a Systems programmer is 'unattached' to a C
> programmer. In this case, could you suggest how I go about learning
> 'systems programming', decoupled with 'C programming' ?[/color]
Not so much decoupled. There are concepts and information that does not
apply to only C language. When you write a program, any program, you need
to decide WHY you are designing it the why you are. You have to define
data structures and algorithms. This can be done with little or no
knowledge of the language you will implement the program in. For example,
the concept of a red-black tree is a standard data type. I can program
them in C because I know C. Last time I taught them I used Java and C++.
You can learn about Systems Programming independent of any particular
language. Once you actually attempt to apply what you learn you will have
to learn a language. Seems C language will be your language of choice.
I'd suggest you learn the basics of C language here and the basic concepts
of systems programming in the appropriate newsgroup. Once you the basics
down try implementing them in C.
--
Send e-mail to: darrell at cs dot toronto dot edu
Don't send e-mail to
vice.president@whitehouse.gov