Well, yeah, if you want to use Dr. Carter's tut, you need a C compiler. Says that right on the web page. You apparently downloaded the "Microsoft" version of the examples, so you probably want the Microsoft compiler - the link Bryant gave you in the very first answer.
BUT... if you're running Ubuntu, you might want to go back and get the Linux version of the examples instead. (the differences are very slight, but important!) Dr. Carter mentions on his web page that he uses Linux as a primary development platform. So we know that's going to work.
I honestly think you'll find it easier.
TmX has done us a big favor by reminding us of that magical incantation: "apt-get"! There was a guy, I forget his name, who was complaining that he'd spent all day - maybe it was several days - trying to install Nasm on Ubuntu, and couldn't get it to work. Someone gave him that clue. I usually run Slackware, but I booted Ubuntu from a live CD, just to try this out. "sudo apt-get install nasm", and Nasm was ready to go in about ten seconds. Nice system!
I don't know what "build-essential" gets, but it's what you want. "gcc" stands for Gnu Compiler Collection. There's more to it than just a C compiler - Fortran... Java, I think - a bunch of them. Huge package! And it still doesn't include a linker! "ld" is part of the "binutils" package - which includes other stuff you'll want. I expect this stuff to "be there" in Linux - type "ld", and if it says "no input files", you've already got it. "sudo apt-get install build-essential" will probably update it to the latest version, so is probably worth doing anyway. Thanks TmX!
A linker is a tool designed to do a specific job. We can do that job without a linker, if we want to. We can drive a nail with a rock... but a hammer works better. If you really want to write programs using just Nasm, I can show you examples for dos (easy), Linux, even Windows! But I don't think it's the best way to do it.
Dr. Carter's tut doesn't involve any "C programming" at all, and you really only need the compiler once, to compile "driver.c". After that, you could get by with just a linker (but it's easier to let the compiler figure out the command-line to hand the linker
If you really don't want to mess with C at all, this is not the tut for you. There are other ways to learn... you could read the book and not run the examples, I suppose.
I see the book has been translated into a bunch of languages - and is available in hard copy. Congratulations, Dr. Carter!
Best,
Frank