views:

232

answers:

8

How much should a programmer should know about system admin? I mean, obviously the more the better. But for the sake of argument, what is the average a programmer should know?

I have seen my friend ( a programmer) does database schema design, database backup, database tuning, data migration etc. Sometimes I wonder whether he is a programmer or a system admin.

+2  A: 

Having extra skills always helps.

I knew very strong developers who could not connect a printer in windows. Which is kind of funny.

If you plan to do network programming - develop a habit to use ethereal/wireshark and look at packets. Eventually it will pay off.

Zepplock
+4  A: 

This was asked on ServerFault: What sysadmin things should every programmer know?

pgs
Very well located, just saved me an awful lot of typing!
nik
+2  A: 

Know enough that you can solve problems and get stuff done at your Software Engineering job. Don't know so much that people confuse you for a sys admin and start calling you for routine system maintenance tasks. A few suggestions on what you should know:

  • How to log into the deployment system
  • Access logs
  • Install/restart your application on the deployment system
  • Understand your production deployment topology and be able to install an approximation on your development machine(s)
  • Install and deploy your database and other infrastructure services (such as JMS), as well as basic monitoring and troubleshooting

Obviously I'm taking a web-app point of view here. Maybe others can make more general suggestions?

landon9720
There is nothing wrong in 'knowing so much' as long as you are good enough in your engineering or programming work to discourage a distraction with routine maintenance activities.
nik
Yes, good point.
landon9720
+5  A: 

It is critical for a programmer to have a Big Picture view of all aspects of software development, deployment, runtime environment, safety, and security.

Otherwise, "innocent mistakes" can be made that have very costly results, and the net effect is one of diminished productivity (or worse).

Know enough about how things work to satisfy the Big Picture for your environment, but you do not need to know how to make them work.

gahooa
+2  A: 

It depends on what field you're in! When I worked (until recently) developing cluster management software, obviously system administrators and network specialists where among my main "audiences", and knowing and learning more about their tasks was absolutely crucial to my job performance; now that I work developing Business Intelligence software, all that wealth of sysadm lore (while far from useless, of course;-) is quite low-priority compared to understanding the issues facing business analysts, economists, sales / finance / accounting folks, and strategic - level decision makers.

These two fields may be a bit extreme (but I did switch from one to the other less than a year ago!-) but the principle holds - no good answer can be given without some understanding of what application fields you are in, or plan to move into in the future.

Alex Martelli
+1  A: 

I don't get these kind of questions. Its like "how much a programmer should know about life". The answer is always "as much as possible".

First question : Do you like system administration and would you like to know more? If you like that, then learn about it!

If system administration makes you throw up, then don't, learn something else. Do you imagine? You're very good at sys admin but you don't like that, you write it on your resume so you get a job where you get those responsibilities!

Basically, learn as much as you can about things for which you have some kind of passion!

Eric
+1  A: 

I think the less you know(or let people know you know) is better. i remember in one company that people came to our room to seek help with computer problems. i always pretended that I dont know how to help them, but one of my co-workers always help them - they got free IT support and i think that guy was in wrong line of work.

as far as pure admin knowledge thats hard question, most admin i met dont know how to set up or configure application servers, databases, ldaps. so to make those work with good performance you need to give them step by step instruction what to do. that knowledge is really usefull.

martin
Yeah, years ago I had a job where I helped the group secretary with WordPerfect, was teaching another person to program, and was the general all-around goto guy when someone needed help, especially if they weren't very technical. What did it do for me? I got dinged on my annual review for not getting enough done, and when I pointed out how I was frequently helping others, I was told that wasn't my job. I got a new job a couple months later.
PTBNL
Is being the only person who knows how to fix problems with the CEO's blackberry a good way to ensure job security?
Andrew Grimm
A: 

Really depends on which language you program in. I did alot of c/c++ before, not much admin there.

But for web, it feels like half my work is to learn how to be a sysadmin. So much optimizations can be done here with a little knowledge about system configs, server backups and cronjobs.

The setup of our server yielded more performance gain then I ever could optimize in code. Spend a day as a sysadmin for 100% performance gain all over the site or a day as a programmer for 100% gain in a single component? any programmer would choose to be a sysadmin for that day.

And the there is automatic of deployment of our site, database setup/migration. This might be this way because we don't have a "real sysadmin"(startups - choose your own title!), but I can't see how I can program good/fast/reliable web applications without the of knowledge about the system behind it.

And must say, with all the sysadmin knowledge I gained recently, I'm starting to see new possibilities and solutions as a programmer. So my tip is, learn as much as you can about the system behind it, it will pay of.

Daniel T. Magnusson

related questions