What computer should I get?
As a student advisor in the Computer Science and Engineering Department
at UCSD, a question I often get is: "What computer should I (or my
son or daughter) buy to use at UCSD?" I've put together this web
page so I don't have to repeat the same answer so often.
Do I need to buy a computer?
The short answer is: No.
Every computer science course at UCSD provides instructional labs with
all the computer equipment you'll need. Many students
at UCSD do not own their own machine.
However, you might still want one, because
-
It can be convenient to work from your residence hall room (or, in the
case of a laptop with wireless networking, from anywhere on campus).
- You can do interesting things to your computer that you can't do
on the laboratory machines -- like install your own software,
experiment with hardware, etc.
Okay, if I'm going to have my own computer,
then...
... what computer should you get?
To write
term papers, surf the Web, send email, and write and compile
programs, almost any Apple or Wintel machine will
do. However, to get the most out of the educational
experience of owning a computer, you should have a machine that is:
- Capable,
- Flexible and expandable,
- Able to run software
to imitate the computing environment used in the teaching
labs of the courses you will be taking at UCSD. (Most of UCSD's courses use
a version of Unix or Windows NT/2K/XP.)
A very nice desktop system that meets these requirements
can easily be bought new (or used) for less than $1000.
Also, good used and even new laptops are available
for that price.
A laptop computer will cost somewhat more for the same
computing power, and will sacrifice some ergonomics, but can be quite
usable for getting work done, plus offering the convenience of portability.
Laptops also typically use less energy than desktop machines.
You might want to read the
discussion on this general topic on
Slashdot.
I used to try to make specific hardware recommendations. But specific
recommendations rapidly go out of date as hardware availability changes.
So here are some general recommendations.
(Note that Apple products are also
worth considering. Their main disadvantages are
that they cost somewhat more for the same performance,
and the releases of Java for Mac OS X tend to lag one version behind
those for other platforms.)
- Processor: There is always some range of processor speeds
available from chip vendors. The newest and fastest CPU's are the
most expensive, and are never the best deal unless you absolutely need
their speed and features; and for hacking code and generally doing
coursework, you do not need them. The cheapest Intel or AMD
chip currently available will be just fine. (If you want to run a
Windows operating system, those manufacturers are almost the only
options now.)
- Memory: Spending money on more memory is better
than spending money on a faster processor. Get 512MB minimum.
- Storage: Any hard disk drive you can buy new will be big enough (I'm
not talking about building huge MP3 libraries here).
Also,get a CDROM/DVD combo drive.
-
Video: Get a XFree86
supported card or integrated video chipset.
If you get an inexpensive one, you will be less tempted to spend
time playing games.
- Network: UCSD
NetOps recommended card, or integrated chipset. If you
get a laptop, get builtin wireless 802.11b capability.
- Keyboard and mouse: whatever you like
- Monitor: 15" SVGA minimum.
Larger monitors -- 17", 19" and even 21" or more --
are more expensive, but nicer on your eyes. One disadvantage of laptops is
that for the same money, they have smaller screens and are not as nice
ergonomically to work at for long periods.
-
Operating systems: Dual boot Windows XP, and a free Unix
(Linux,
NetBSD,
OpenBSD,
FreeBSD
)with
X
Comments:
If you are building a desktop, I recommend custom-building
your system from components,
so you get the educational
benefit of knowing what's inside it. If you buy components
locally you may get better access to technical advice and warranty
support.
You can spend less if you buy a used machine. Also,
Dell sells factory reconditioned systems
at a reasonable price. Even something as
antique as a used 486-66 system with 16MB RAM will work adequately
with Linux, if you can find or already have one in good shape.
And (of course) you can spend more if you want; a faster processor,
more RAM and disk, sound, a high-end video card and a big monitor are
nice, but cost more.
A note about operating systems: Windows costs money to
buy. Contact swdist@ucsd to ask about campus licensing
arrangements, or visit the software section of the
UCSD Bookstore. However, since it is not used
in all that many CSE courses, having it on your machine is not essential.
Comparatively, the availability of free Unix-like operating systems
and utilitites, including source code, provides a tremendous learning
opportunity, and installing, using, and contributing to one of these
projects is highly recommended. The links above or below are places
to start:
The Linux Center project
Linux Gazette Front Page
Linux Today news
Slashdot: News for nerds
You can easily install both Windows and Linux
("dual boot") with lots of applications on a 20GB disk (you can
also have DOS, Win95/98, BeOS, OS/2, etc. if you want, though at some
point you'll want more disk!) and switch among them.
Linux installation guides explain
various ways to do this.
For more detailed information that stands a chance of being
at least somewhat up-to-date, do a
web search
or
groups search
on Google.
Now that I have a computer, what compilers should I get?
Most CSE programming courses use C, C++, or Java as languages of instruction,
and use Unix environments. If you want to closely approximate the course
lab environment, the
GNU
gcc/g++ compiler, available free with any Linux distribution, is excellent
for C and C++. For Java,
ports of the JDK
for many operating systems are available.
For Windows, C/C++ and Java development environments are available from
Borland, MetroWerks, Microsoft, and others.
Have fun!
If you have comments or suggestions, email me at kube@cs.ucsd.edu
Prof. Kube demonstrates his renowned hacking technique