People like me are widely misunderstood. I am disappointed when people think of computer geeks as practitioners of soulless, mechanical endeavors. I like to think of what I do as an art and a craft. Yet I agree my job is steeped in arcane acronyms and daunting terminology that makes it seem like a form of witchcraft for geniuses.
As ubiquitous as computers are today, the layperson probably has a more intuitive understanding of the esoteric job of woodwork/carpentry. So to help friends, family, and humanities students what I do, I will draw the parallels between my occupation and those of woodworkers:
An artisan is involved in the aesthetic and usefulness of a piece of work. If the task was to build a chair, the artisan would make sure that the chair was comfortable to sit in, could be stowed away conveniently and would be pleasing to look at.
This computer analogue of that artisan is a "designer" or "hacker." They have good knowledge of computers and programming but their job is not to think about that. They instead think about whether the overall product is usable for the final user.
The builder's speciality is in the precision and skill of his hands. He is the one who carves raw lumber into a useful piece of wood. A builder prides himself in making this transformation while producing as little scrap wood as possible and using the fewest cuts. He turns the craftsman's schematics into reality.
This is most like the job of a "programmer" or "developer". This type of work is the one that immediately comes to mind when thinking of computers. Programmers write computer code that makes different pieces of software do their bidding. To do this efficiently requires attention to detail and experience.
The craftsman is concerned with the structure of the work. He concerns himself with finding out the strength and suitability of different woods, the load-bearing capabilities of nails and fasteners, and the overall stability of frames. A craftsman innovates by exploiting the capabilities of these components in novel ways.
In the computer world, such people may be known as "computer engineers" or "software engineers" (they are rather different, but that is not important here). They quantify the behavior of the underlying components of the whole and how to efficiently put them together. Like scientists, they collect data and metrics but they are involved in the practice more than pure theory.
Imagine if botanists who study tree composition started calling themselves "woodworkers". It is true that some discovery about the biology of oak trees could possibly benefit the construction of furniture. But the relation is not immediate.
Similarly, "computer scientists" are mathematicians masquerading as people that work with computers. The imaginary computers they study run on proofs and formulas, not hardware and code like real computers. Many of their discoveries advance the field in practical ways but not in ways that are immediately apparent.
It's rare that a geek falls squarely into exactly one of these categories. It's not even a spectrum per se. For example, I am an "artisan" and an "craftsman" but my code is not particularly good, so I'm not a "builder".
For more sagely advice on the spectrum of occupations within "computers", read the Paul Graham's famous essay, Hackers and Painters