In the scheme of things, it's pretty easy to run a web-server. Install, for example, Apache, PHP, and MySQL, and you're on your way. But the job, obviously, doesn't end there. Good administrators do dozens of tasks past keeping up-to-date a few programs.

What should a web administrator do to become a good administrator? What steps should they take to learn these skills, and what should they do to employ these skills?

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.
If this question can be reworded to fit the rules in the help center, please edit the question.

The ability to learn and adapt
This is absolutely key. The world is a dynamic place and sooner or later any administrator will have to move to a system they're unfamiliar with. Be able to accept change and make it work to your advantage. A great way to be able to do that is to keep one's eyes peeled on the horizon and examine new technologies as they appear to consider their applicability to your business.

Know the system your administer
Again, this is indispensable. There's no way to fully utilize or protect your system if you don't understand what it's doing. That doesn't necessarily mean understanding how a Carry-Lookahead addder is implemented in your CPU, but understand how PHP interacts with apache to produce its output. Understand how Active Directory works if you're a network admin, etc.

The ability to deal with management
Seriously, you could be the best admin in the world but unless you can convince your boss to buy you that new server, stuff will never get done.

Think fast
I'm not sure what you can do to prepare for this... Play racquetball, maybe? Honestly, this one comes from experience. Murphy's Law will always find and pillage you, so best be prepared to deal with it.

I think the ability to work with the people you're supporting at the right level is important. As a power user/developer I hate it when sys-admins treat me like an idiot or a disruptor when I'm trying to sort out a problem or get something done.

The same is true for development teams: they often throw things onto the sys admin without any context or explanation and expect immediate action.

I think the biggest over-arching key to being a good administrator is solving problems the right way, rather than using a hack. By taking the time to fully understand an issue, fix it completely and automate any applicable pieces of the solution, you will be free to handle real emergencies when they come up and take up tasks of making users lives easier.

+1 for "By taking the time to fully understand an issue" this is key!
–
JJ01Oct 10 '09 at 23:44

Yep. I see junior sysadmins give a user local admin rights and believe they've solve their issues. Nope, that's a workaround. Now you've bought yourself some time to go solve the issue properly!
–
Chris ThorpeApr 1 '10 at 4:19

Lots of good answers here! I especially like the lists of jj33 and Murali Suriar.

I would add to theirs:

Be an active communicator. It doesn't matter whether you're in a large enterprise or a small one. People are counting on you to keep the network and servers "boring" (that is, without surprises). So actively announce upgrade and maintenance downtimes, quickly promote news when you know there's a issue that may affect people, and work with your constituents to identify when they're more sensitive to infrastructure reliability (month-end, quarter-end, early in the morning, whatever). Document the environment and procedures somewhere, anywhere, so that your processes can be distributed, shared, and repeatable. You may think this is going to reduce your job security, but what it really will do is enable you to move on to other tasks.

It doesn't cover any specific technologies (e.g. UNIX, Windows), and you won't find a single "type this command" example in it. It's about all the stuff other than the technical things that goes to make a great system administrator.

A good administrator understands that that they have to continue to learn and grow. They strive to do their best at every effort, admit to failures and learn from them.

They are extraordinarily communicative. Not only are they able to explain complex technical terms to a layperson, but they go out of their way to act as devil's advocate to their own idea to make sure they're giving the best options to their client.

The are active rather than reactive. They anticipate problems and demand, and resolve them, if possible, before they impact anything. When a critical issue is discovered, they quickly and calmly diagnose the problem fully before attempting to fix it.

The best administrators know and accept that there is more than one way to do things, that not every problem is a nail, and that because there is always a better way to do something than how they were planning on they constantly seek to learn new techniques, technologies, and understanding.

A good administrator loves servers, and has more than a few at home even if they already spend 80+ hours a week as a sysadmin.

A good administrator knows that she/he is not a great administrator. Truly great administrators do not exist, there are only those who claim to be great, and those who know they are not great.

I think that communication skills are very important if you want to move from: administrator to: great administrator.

From the application developer side of the line, if the administrator cannot communicate why something is a problem or why things take longer than expected, I can only make guesses about the coming solution (if any).

The more the administrator is able to communicate (preferable in non-admin speak) what is going on or why things will have to wait till Monday, the better I can work with them.

A great administrator is able to distil the essence of what is going on and can tell the easy-to-understand version to his [users|other departments|customers] so that they understand the issue without knowing all the details.

The difference between good and great administrators is not often seen until it's too late.

A good administrator will get the software or system up and running and it'll run great.

A great administrator will get the software or system up and running and again it'll run great. However the great administrator will also have taken the time to understand everything he possibly can about the system and put preventative measures in place to make sure things don't break at the most critical time.

If they do break the great administrator will be able to fix or find a workaround very quickly due to his knowledge of the platform. A good administrator will generally panic and start flapping at this point.