[Slightly OT] Pointers on shifting to Systems Programming from QA

U

user

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.

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.

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).

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.

Any pointers to projects that would help me, as well as resources
(especially online) would be helpful.

Presently I am wading through the C Faqs...and of course lurking around
this group, but since I am not really applying what I learn, it is hard
to retain or become confident in it.

Thanks and regards
AB

--
 
D

Darrell Grainger

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.

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.
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.

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.
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).

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.
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.

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).
Any pointers to projects that would help me, as well as resources
(especially online) would be helpful.

Presently I am wading through the C Faqs...and of course lurking around
this group, but since I am not really applying what I learn, it is hard
to retain or become confident in it.

If you want to be a good C programmer, pick something to program. Make it
something interesting but less complex than a system. Start applying what
you learn from here and the FAQ to everything you do.

Once you can program small concepts in C then learn how to design a larger
project. Hang out in comp.programming or some other newsgroup that relates
to your final goal (e.g. if you want to program DSP or embedded systems
hang out in comp.dsp and/or comp.arch.embedded).
 
A

Abhinav

Hi Darrell,

Darrell said:
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.
Thank you for pointing me to the appropriate group :)
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.
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.
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.




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).
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' ?
If you want to be a good C programmer, pick something to program. Make it
something interesting but less complex than a system. Start applying what
you learn from here and the FAQ to everything you do.

Once you can program small concepts in C then learn how to design a larger
project. Hang out in comp.programming or some other newsgroup that relates
to your final goal (e.g. if you want to program DSP or embedded systems
hang out in comp.dsp and/or comp.arch.embedded).
Thanks a lot !
 
D

Darrell Grainger

Hi Darrell,



Thank you for pointing me to the appropriate group :)

I assume all future messages regarding systems programming will be
directed to comp.programming or some other appropriate newsgroup.
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.

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.
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' ?

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top