CS Major doubting programming focus

<p>Hello,</p>

<p>After being out of the country for the past two years I am now finally returning to school to finish getting my degree, a B.S. in Computer Science. I've felt very confident in my major up until recently when it occurred to me that I don't think I want to spend my days stuck behind a keyboard inside a stuffy office for the next 40 years. (This was perhaps brought about by my spouse who gets to spend his days on film sets recording and being active). </p>

<p>But now the question is, if not programming then what? I would like to stay in the realm of science or engineering but there are so many paths in those fields that I feel overwhelmed with them all. I love the idea of doing Physics but I have heard that without a PhD it could be quite hard to get a job. I may want to get a PhD someday down the road but not before I've made a career for my self. I did see mention of a degree called Engineering Physics but they don't offer it at my school. </p>

<p>Anyways, are there any suggestions for someone who likes solving problems, enjoys new technology, is logical, likes astronomy, likes A.I. / Robotics, enjoys clean things (no mucky jobs with bugs or sewage), nothing controversial (nuclear is controversial?), who would like a job in demand that could pay well? </p>

<p>So far I've started looking into:
Computer Engineering - (would this be dull?)
Aerospace Engineering - (Astronautical)
Another specialty under Computer Science that isn't boring?</p>

<p>Look into software engineering. You will utilize both programming and business skills. </p>

<p>There is a misconception that developers work hunched over behind screens all day but that is untrue. There is collaboration and planning involved that doesn’t take place in a cramped cubicle.</p>

<p>Thank you Propane, I know what you mean. In my mind the conditions are exaggerated, I guess the problem I am having is that no matter how much I read about it I cannot picture what my day-to-day life will be like. I have looked into Software Engineering but all of the descriptions have seemed a bit fuzzy. They say it’s different from programming but then the description makes that seem like a contradiction.</p>

<p>It’s really not so bad. What’s the alternative to working in an office? Most white collar careers involve working in offices. And my office isn’t stuffy – it’s nice and sunny with good air circulation.</p>

<p>Your day-to-day experience as a software engineer will vary depending on where you work and what field you go into. I’ve held 3 software jobs so far, and they’ve all been very different places. The closest that came to your description was my first job as a video game programmer – long days of programming in a cubicle.</p>

<p>Personally, I think most of the fields in computer science are pretty interesting, but if you’re interested in A.I., you should try taking an introductory course. The only fields I’m not really interested in are ones like Crypto (I appreciate it and I know it’s challenging, but I don’t want to do it) or software engineering (you can learn that stuff better on the job).</p>

<p>Strangely enough, my brother also works in the film industry and he often says things like, “I’d rather die than work some 9 to 5 office job.” To each, his own, I guess.</p>

<p>Oh I am definitely not knocking office jobs. I am a very fidgety person and I already suffer from pain in my hands from typing and pain in my neck from sitting. So I think I would be better off doing something where I have more opportunity to move around. =)</p>

<p>I would find it appealing to work in a lab doing experiments or building a mars rover, etc, but I know those are only vague ideas. </p>

<p>With software engineering is it like: A company comes to you requesting a design for a new word processing program. They tell you the functions the program should have, like being able to add effects to photos and text, etc. So you and several others use a program like Visual Studio to design it and then hand it over to the programmers who hard code it?</p>

<p>At my company, we have “ergonomics specialists” who can come to your office and help you get a more comfortable setup. But this is a big company, so smaller companies probably can’t offer this sort of thing. My brother has recently been suffering from back pain associated with carrying around a lot heavy camera equipment – so job place injury is probably worse in those kinds of “active” jobs. Most of our buildings also have gyms in them, so a lot of folks get some exercise in the morning – some during lunch.</p>

<p>Most of my work at my current company is actually done in labs. I only go out to my office to check my emails and what not.</p>

<p>Well… I don’t think any company really goes to another company requesting a word processor. There are plenty of word processors out there – and if there is a need for a better word processor, a software company could create it and sell it for a big profit. But I think you’re a little confused. “Software engineer” is just a fancy title for what is essentially a computer programmer. I don’t think there are any companies out there who employ both “software engineers” and “programmers”. Some people use “Software developer”, or simply “developer”. I actually prefer “programmer” because it’s the most pragmatic title. However, I’ve heard that there are companies where they have some software engineers who don’t code at all (they may just do documentation or UML diagrams or whatever). These are probably bureaucratic companies working on large systems and I hope to god I never have to work at some place like that.</p>

<p>Are you worried about becoming a “programmer office monkey”? Is that why you’re beginning to have doubts?</p>

<p>Okay I see know. That’s initially what I thought (that software engineers were essentially programmers) but other definitions kept insisting they weren’t. (Oh and the word processing scenario was a bad example, it was just the first type of program that came to mind). </p>

<p>I guess what I am hoping for is to be able to see short little snippets of ‘day in the life’ type videos featuring these different careers. I tried speaking with one of our college advisers but she kept trying to steer me towards the easiest courses instead of the ones that interested me. For instance I mentioned that I found astrophysics interesting and she suggested I become a weather girl.</p>

<p>I don’t think I have ever heard the particular phrase before. By ‘programmer office monkey’ do you mean the office nerd? If so then no. </p>

<p>Currently I am taking a Visual Basic course (previously I took a Java course but our instructor was ancient and taught us the language but not how to use it), so far everything is making sense and all of my programs are functioning as they should but I find myself getting bored with it. I originally started off with teaching myself html through reading the source codes and from there I enjoyed figuring out what everything meant and how it functioned, and later going through my code to figure out why it was bugging. But now programming just feels like a task rather than a problem that needs solving. </p>

<p>So I guess my problem is a combination of being bored with programming and wanting something where I am doing more than just imputing into a computer.</p>

<p>By “programmer monkey”, I mean someone who’s just treated like a monkey in a cage/cubicle, getting tossed tedious programming tasks that are both dull and mindless.</p>

<p>I think learning java is more useful than visual basic. Try doing a search in your city’s craigslist software jobs listings. Search for “VB” and “Visual Basic” and see how many job listings you find. Then search “java” – you’ll likely find a lot more search results.</p>

<p>It sounds to me like you are getting bored because you’re being taught boring stuff. Few colleges are teaching computer science courses with visual basic these days. And programming is usually just a means to an end. Programming for programming’s sake can be fun when you’re using a really elegant language like Lisp, but not VB.NET. Don’t give up on CS just yet. I think that you’ll find it more interesting once you get into AI or some other interesting specialty.</p>

<p>If you want to learn a fun programming language, i suggest learning Haskell. I really like it, and there is a cool tutorial online (just google “Learn you a Haskell for Great Good”). You can use the language to solve some fun puzzles like the ones on Project Euler (again, google “Project Euler”). Programming can be fun and exciting!</p>

<p>Oh I see what you mean. Yes I suppose that scenario had crossed my mind. </p>

<p>Yeah unfortunately my college CS program required what is called ‘Principles of Computer Programming,’ which was just a clever way of disguising a Visual Basic class. If it had been up to me I would have continued with more Java or gone on to C++ or Python (which is the recommended starter course at MIT). Thankfully though I will be transferring to a better university next year so they should have a better list of requirements and hopefully some A.I. classes. </p>

<p>Thanks for the suggestion of Haskell, I’ll definitely have check it out!</p>

<p>I like Python, too, and there are some great lectures from Stanford and MIT that have been uploaded on youtube and are taught (at least in part) in Python. I have a love-hate relationship with C++ (although I’ve been working primarily as a C++ programmer since I graduated 5 years ago). But learning C++ has definite benefits, and I have great respect for expert C++ programmers.</p>

<p>Good luck, gingerpants!</p>

<p>Thanks Mokonon for all of your advice!</p>