Quote:
I wanted to add a sidebar comment:
My first real UNIX job was as a systems programmer, gluing together HP-UX Rocky Mountain Basic (for a test assembly line of production radios) to a Progress database.
My first task, before learning the shell, or even how to set an environmental variable, was to write a C client-server (socket) program using system commands from both Progress and HP-UX RMB to transfer information between the two systems.
I had to learn shell, vi, system admin, etc. as a "side function" in support of being "tossed" into a systems programming job.
So, I tend to disagree that you must reach a "certain level" before you can be a systems programmer. I started out as a systems programmer and learned the UNIX environment in support of my task, not years before given the task.
My advice, based on my experience, is to "jump in feet first" if you want to learn. Do something hard, like create a systems level program to glue to systems together, then learn the rest of the admin skills, to support your task, not the other way around.
That is my take on things, which is a bit different than many of the opinions expressed in this thread.
Actually it's not different than my opinion. I think we differ more on what "System Engineering" is. System programming does not require the same skillset as system engineering as the term is used in the UK and Ireland. System engineering is more about creating system integrations, complete end to end solution designs, creating deployments and the like and usually has little code involved.
Also the industry has moved on, when I started what Neo described was possible or even normal.
I have both systems engineers and systems programmers working for me and they have two very distinct skillsets, most of the SE's could do the SP work to a reasonable level but also have the big picture knowledge only one or two of the SPs could function as SEs.
There is also one other type of job that has not been mentioned, and probably the last place that you can still get a job that allows you to truely jump in feet first as Neo describes. System integration and/or professional services. Some companies provide ground-up solutions for various systems - OS, 3rd part apps and in-house apps or customised and managed custom solutions and all of the admin and system programming that goes along with that. If you can find a company doing that kind of work you can get lots experience very, very quickly.