basic motor problems

Hello All ! I'm new to Arduino coding and I have some basic questions.

What's the best way to control the speed of a motor?

I built the DC motor set up that comes with the saprkfun kit,
and I've actually been controlling it with the standard blink code.

How might vary the speed of the motor?

I'm guessing it has to be a PWM thing, and I'm not
sure how to implement it in the language.

Secondary (but perhaps more important) question:

Are set ups of multiple motors at varying speeds possible
on a vanilla arduino board, or is some sort of motor shield
necessary? I've heard tales of motor control boards, and I'd like
to know if I can do what I need without buying lots of parts.

Thanks!

Very few motors are capable of being driven directly by an Arduino because of the amount of current they draw; even tiny phone/pager vibra motors can draw much more than the Arduino I/O pins can supply.
So, yes, generally, you are best buying a shield, at least to get you started, or until you are comfortable with wiring transistors.

Good to know, but how would I alter to voltage to control the speed of my tiny hobby
motor? I'm sure this is simple, but I don't know where to look it up.

how would I alter to voltage to control the speed of my tiny hobby motor?

If your motor IS small enough to drive directly from an Arduino pin (hard to believe), you can connect it to a PWM pin, and use analogWrite() to write a value between 0 (no on time) to 255 (full on time) to the pin. The motor will think it is getting a variable voltage, thus it will run at different speeds.

If you want to control the speed of the motor but not change its direction, then you can use a transistor or mosfet to drive the motor, and drive the transistor or mosfet from a pwm pin. This is quite easy to do.

If you want to control the direction as well, then you need an H-bridge. This is usually implemented using the L293d chip (for low-current motors), or L298n chip (for higher current motors), or transistors and power mosfets (for even higher current motors). As a beginner, you would be better off buying a shield or board that uses one of these chips rather than try to wire it yourself.

What is the voltage rating of your motor, and do you know its stall current?