+2  A: 

First:

Most "big servers" are just PCs with extra processors and more memory, often configured in a cluster or farm. If you can set up your $500 PC at home to be a dedicated server, the same principles will apply. Of all the applications in the world, few run on true "big machines" that are modern-day mainframes with specialized operations. The only difference between your single-processor desktop at home is how quickly it can complete its dedicated task, and how many instances of that task can it run in parallel.

The picture you provided is a typical large datacenter, but each individual machine you see there is a single server probably running Linux, Unix, Windows, or possibly Solaris or something. But at the core, just a very powerful PC.

Second:

For your first job, you won't be the one to do this. There's someone else who will set up the servers, and they will give you access to deploy your code. Your second job will likely be the same. Along the way, you'll start learning how do deal with this by necessity - in little bits at first, until you're the expert.

If you're in a huge organization, there's someone dedicated to managing things like routers and load balancers that you don't need to worry about unless you want to learn. If you're not in an organization large enough to justify that, then you probably also are not running systems at such a large scale that you need to know how to admin a $20k Cisco switch. You can download an article on how to do Windows load balancing or buy a $500 balancer and read the manual in 30 minutes. You'll start small and if dealing with that is what you enjoy, the next time you'll work up to a $2000 device. By the time you get to high-end enterprise hardware, it won't seem so intimidating because it's not so different from the last thing you worked on.

The web product I work on runs on a large farm of servers, each with many processors and many gigabytes of memory, and terabytes of disk space. But you know what? They run Windows 2008 Server, which you can download a half-year demo for free and install it on any machine. Every person on our development team has a private development server, also running Windows Server 2008. When we deploy to production, it's essentially just putting our program on a much bigger, much faster version of the same thing.

Rex M
A: 

Dedicated servers don't have to be dedicated to just one task, they may also be used for many different tasks. A dedicated server is named so because it gives one customer full access over the entire server rather than for example shared hosting where the customer only gets to use a certain amount of resources before they are asked to leave.

As for working with dedicated servers, that relies entirely on what OS it is running, if it is running Windows you will most likely be RDC'ing into the server to maintain it, if it is running some flavour of Unix or Linux you will most likely SSH into it giving you a terminal. It varies greatly depending on your end goal!

Optimisation in terms of what? If you want to optimise web applications you load test them, if you want to optimise the data storage you test your application to make sure it is making the best use of the storage backend you have decided to use. The question is vague and does not give any examples of what you are looking for.

Load balancing is an entirely different subject than using dedicated servers. It is a piece of hardware/software that acts as the front end for a bunch of servers and it picks the server with the least amount of load to serve the request to the user. There are many different pieces of software out there that do load balancing, as well as hardware that will accomplish the same feat.

And yes, it is very cliché to think all servers look like that. A server can be your standard off the shelf hardware stuck in a standard PC case. It does not have to be a certain size, it does not have to be mounted in a rack.

As for your school having a very set class schedule and classes, you should consider asking them for a tour of their "datacenter" so you can see what their set-up looks like. You may also consider asking them for more information, and or seeing if they are open to explaining and or helping you learn what you seek to learn!

If you happen to have a second computer lying around, that you can run something like Linux you can start experimenting and learning. It is cheap, and won't cost you a whole lot. Personally I have multiple computers with various different OS's on them so that I can experiment.

X-Istence