I can do it if I have to, but I really don't like getting close to the hardware. I guess I like conceptual stuff better than the nitty-gritty... one course I was looking at was, basically, programming with registers. I decided that wasn't me.
I like programming. Not so much the actual code, but... today I had to analyze a small system someone else had put together in order to make some updates. It was really fun figuring out how the files went together - it was javascript and asp using lots of xml files - and playing with it, and I enjoyed myself so much that I managed to do the documentation part in an hour, and that stuff usually kills me.
That's why I want to go to grad school. I don't want to build one tiny part of some huge system. I want to learn how to think up the new idea, and apply it, and watch it come crumbling down around my ears the first three tries. I want to be the best I can be at some aspect of CS - don't know precisely what yet. Maybe AI, maybe systems. I want to be an artist who works with computer languages. I want to have my articles published in boring technical magazines and try desperately to explain to my mother what exactly it is I do for a living... oh, this stuff is my passion. I never ask myself if I went into the right field.
Learning to be good at making golf courses doesn't make you good at golf. This is the time to decide which one you want to be.
There are programmers that are good at making systems, but lousy at understanding the needs of users. There are systems analysts that are good at understanding the needs of users, but lousy at understanding the limitations of the programmers.
I like solving the problem, whatever it is, in as elegant a manner as possible. I like my code to fly clean and fast, like a steel splinter, keen and shiny and very very sharp. When I was told that I would be a computer scientist, a being superior to a plain ol' programmer, I was hurt.
There is still a place for system analysis, you know ... but don't hold yourself aloof from the wide world of computer science. You will find that your knowledge of architecture and assembler code will make program optimization so much easier.
You have to keep us old fogeys up to date, you know!