Do what you enjoy. Do you enjoy coding? Then be a programmer. I'm one. It's tons of fun, but you need to have a certain kind of personality for it. It's not for everyone.
Do you like to build things? Do you like to learn how things work just to satisfy your curiosity? Do you enjoy 8-10 hours a day, every day, staring at a computer, searching thousands of lines of seeming gibberish for the single misplaced letter that's been causing your program to fail for two hours? Do you have an obsessive attention to detail, unhealthy amounts of perfectionism, and an inhumanly long attention span? Do you think that spending an hour writing a program to solve a problem you could do by hand in 10 minutes is not at all a waste of time? Do you want to invest in learning new skills and programming languages on a constant basis for the the rest of your life, just to keep up with technology? If the answer to most of those questions is "no", then don't be a programmer.
The good things about being a programmer: You will know a lot about something extremely useful. You will make lots of money (for a reasonable definition of "lots"). You will be doing something highly enjoyable (if you enjoy computers). Programmers wrote the MB on which we're posting. Programmers wrote the browser with which you're reading this text, and the internet protocols by which that information was delivered to you. Computer science is in its infancy; you can easily do something no other human being has ever done. Computers make a difference in this world like few other things can.
You will be able to read this and think it's cool:
+$++s+\\\s q\\\+++s+s$\$$\$\$$s/s\\\s.s.{q`!^\/s\.`^q\s.\. \s.s.s q\d*q\q*\*`}(*^\q`\`!-\``qes+q _es)/$_+s _$\_$_$\_$\__s+s+++s+print
How easy it is to get a job should only matter to a limited extent. If you don't enjoy your job, it doesn't matter if it pays well and is easy to get.
[qq=Samuraid]IMHO, computer engineering is a great field because you can do just about anything a computer science graduate can, as well as build computer hardware, circuits, and useful embedded systems.[/qq]
I disagree. Computer engineering and computer science are different fields. CS is not a subset of CE. They overlap on the assembler language level, if that; they're looking at it from entirely opposite directions. I was a CS major; I was roomates with a CE major. I took as many architecture classes as he took programming classes. I could as much design a CPU as he could write an XML parser. Hardware vs. software is a fundamental and important difference.
On the other hand engineers tend to make much more money.