1. What specifically did you do/did that relates to computer software engineering?
In my current position, I develop system libraries to be used in developing custom interactive voice applications (i.e., that ubiquitous telephone crap: "Press one to continue in English..."

). My team is also the subject matter experts in our company.
2. On a scale of 1 to 10 (10 being highest) what would you rate this job in your opinion?
I'd give it an 8. To be better, I would need to not have to deal with clueless programmers (don't colleges teach basic programming principles any more?).
3. Is the pay fair and good in your opinion?
I would say so. As the only breadwinner in the house, we are still comfortably middle-class.
4. What likes and interests are necessary for this career?
First and foremost, you have to
enjoy programming. Beyond that, I don't think I've ever met a software engineer who is NOT a technophile. There are also strong subcultures that enjoy Science Fiction/Fantasy, Gaming, Monty Python, etc. You don't
have to like these things, but a certain level of knowledge about them can help.
5. What skills are necessary for this career?
Problem Solving. Logical Thinking. You have to be able to take the customer's problem, break it down into logical pieces, determine how to make each piece work, and how to make them all work together.
6. What is an ideal college/school path to get this job?
You've got me.

I would assume it to be a BS (or higher) in Computer Science. But some of the best I've met don't have that. Some of the worst do. OTOH, some of the best do, too. I think the keys are 4 and 5, above. If youwant it, you'll find a way to get there. If you don't really want it, no amount of schooling will make it for you.
7. What are some postives about this career?
The satisfaction of a job well-done. Knowing that people in your industry / around the world / wherever are using what you made. The fulfillment of the creative urge.
8. What are some negatives about this career?
Deadlines. ("We're going live on Monday. Are you ready?") Dealing with people who don't seem to grasp software (but think they do). Carrying a beeper.
9. Are the work hours flexible/unflexible and how long are they?
Reasonably flexible. I'm expected to work (at least) 40 hours per week, with "core hours" being 9 - 4. My section is on-call 24/7 (we use a rotating beeper schedule). On occasion I have worked several hours across the middle of the night. Not often, but it
does happen.
10. Do you spend more time working by yourself or with co-workers?
Mostly on my own, since we each have our own projects/areas of responsibility. But we do "cross-pollinate" frequently. You never know when something you're working on will benefit (or hurt!) someone else.
11. How did you get this career? Was it hard or easy?
For me, it was easy. I needed to cross-train out of my then career field (weapons maintenance) in the USAF, so I took the CS aptitude test, blew it out of the water, and was immediately offered the opportunity to become a programmer.
12. What is your work environment like or is it at home?
A fairly typical cube farm.
13. What would probably be a typical work day for you in hours?
Get in 8:00 - 8:30, grab coffee, etc. Check email, start back in on whatever I was working on the day before. Lunch-break. Continue working until 5:00. Go home.
Of course, the entire day will be interspersed with emails, messages, and phone calls from other developers and customers needing support. It's also not unusual to lose an hour or two to meetings, as well.
14. How long have you or are you still doing this job?
I cross-trained into the field in 1983, and have been a professional software geek since then. That's over 26 years.
15. Any thing else you would like to say about this career?
Good. A catch-all question.
First, a little more about me.
During the course of my career I have worked on everything from mainframes to PCs. I started out punching card decks to run my programs.

I did system-level programming in assembler code that I eventually wrote a 'B' language interface for (and later updated it to 'C'). I was the first Unix sysadmin for HQ SAC/WWMCCS and wrote the Unix installation scripts that were used worldwide for the system. In the 90s I wrote a NATO-standard messaging system that was used for official message traffic during the Bosnia conflict. I wrote desktop apps and background scripts to improve the Software Configuration Management process for USSTRATCOM's War Planning System. I now work for a major telecommunications company developing libraries and writing standard practices and procedures as we transition from an old, proprietary language to the new, open VXML standard.
Next, a word to your students:
Don't make the mistake of thinking that Java or C#/.NET is going to be all you need to know to be a programmer. Those are just initial stepping stones. C#/.NET is actually quite useless unless you happen to work in a Windows development environment. Throughout my career, I spent only about 6 years in such an environment. What you really need to know is good programming principles. Be ready and willing to learn new languages as they come along, and prove useful. If you understand programming, each new language is just a "syntax change". It becomes another tool in your toolbox, that you can pull out and use when it's needed.
As a case in point, for my current project, I needed to write two libraries, one in CLASS, and one in PHP, to pass data to an already-existing real-time interserver messaging tool. Then I wrote a multi-threaded java app to retrieve the data passed to the tool, parse it, and update multiple databases. Finally, I wrote a Perl script to parse the logs generated by the libraries to ensure that all the data was correctly processed. (The tool is realtime, and may drop occasional messages.)
Oh, and don't become too dependent on fancy IDEs. They're pretty, and if you are not familiar with the language they can be very helpful. But unless you have a complex program (e.g., my Java program above), they can actually slow you down! The very best "IDE" I have ever found is a properly configured vim editor. (I even configured eclipse, for my java app, to use a vim plugin as its editor, in order to not slow myself down too much!) The fancy IDE may not always be available in your current environment. I frequently have to work on our Unix and Linux servers, and they have no GUI installed. I have no choice but to use a command-line editor. I don't even always have vim available. Being able to write, debug, and modify code without an IDE is essential.