General Question

cynicaldeath's avatar

Computer Science Majors, what do you do?

Asked by cynicaldeath (220points) February 23rd, 2011

I am studying in mechanical engineering. Although we have an awesome program, I realized that I am not as interested about the mechanical aspects of a device when compared to the software aspects. So, I am aiming to transfer to software engineering. However if I fail to transfer, computer science is my second choice. What subjects do you study? And what projects you do? Are there any warnings/tips for me?

Observing members: 0 Composing members: 0

6 Answers

jerv's avatar

Well, if you want something that will be in demand then I think networking is a good bet, as is database work. There is a shitload of raw data out there, and people crave information, so anybody who can turn data into info (the purpose of a database) is da man.

Regular programming (like applications) is a bit trickier and probably best done as a hobbyist unless you want to spend a lot more time and effort keeping your skills current than actually using those skills. Besides, you will acquire decent programming skills almost by osmosis.

One trap you might want to avoid is becoming tied to a specific platform if possible. Sure, being able to program a 6502 processor in assembly language may be cool, but how many people nowadays write code for the C-64 or Apple ][e? Detailed knowledge is good, but over-specialization is dangerous.

koanhead's avatar

From Wikipedia :
“Computer science deals with the theoretical foundations of information and computation, and with practical techniques for their implementation and application.”

Briefly, theoretical computer science is lots of difficult mathematics and mathematical logic. If you enjoy that sort of thing it should be hog heaven. Applied computer science is more about programming / metaprogramming and design of things like architectures.
It’s a very, very large and complicated subject, and what you might study as a computer scientist depends on the branch you choose to study.

jerv's avatar

I think it safe to say that the most satisfying major cannot be found unless/until you answer this: What is it about software that entices you?

For me, software only holds magic insofar as it allows me to complete tasks, so my own computer skills tend towards the hardware end of things or using existing software to do things like, say, making an RPG character generator spreadsheet in OpenOffice. I like playing with information and massaging it in ways that I cannot manipulate it in my head.
On the other hand, @koanhead likes to make the computer do things that it doesn’t want to (at least not with existing software in default form) and enhance it’s functionality, so he is a bit more of a programmer than I am. Both of us are quite knowledgeable in computer science (a combined total of about 60 years experience with them), but our skills are very different with surprisingly little overlap.

So what do you want out of the computer? What do you want to do with it? What part of computers gives you a warm fuzzy? Once you answer that, it’ll be easier to pick a major.

robmandu's avatar

As someone who reached his senior year studying Mechanical Engineering, and then switched majors to Computer Science, I think I understand where you’re coming from. (On my college transcript, my “free electives” are populated with courses like Fluid Mechanics, Materials Science, Thermodynamics, Diff Eq, etc.)

While Computer Science does cover some obvious programming courses (C, Java, Assembly), it also explores a lot of areas that are not so obvious to the uninitiated. A lot of course effort is spent in understanding the underlying concepts of how computers “think”. So, you’ll spend time in esoteric areas like Discrete Mathematics and Finite Automata. You might also get to work on building a virtual CPU that can run simple programs, study Data Structures, Networking concepts, HCI, etc.

At the end of your Bachelors studies, you’ll have a lot of foundational knowledge without much in the way of specialty. Think of yourself at that point as a blank slate upon which you can start to gather knowledge about a particular business or technology.

Beyond all of that, also make sure to hone your interpersonal and communications skills. I won’t say programmers are a dime a dozen, but your value can definitely be multiplied if you’re able to work directly with customers and management to address all aspects of solution definition, delivery, and support.

Currently, I work as a Technical Architect for a large software firm. And there is no end to my continued education. I have to keep up with my company’s ever evolving technology offerings and I also work to maintain industry-standard certifications and recognition.

I enjoy my work. There’s always something new to work on and improve. Customer needs and technology are constantly evolving. The only drawback is that my family and friends are always wanting me to fix their PCs.

cynicaldeath's avatar

Oh man, I don’t know exactly how to express why I like programming. Somehow, I just…get excited about it even if the code I’m writing is really boring.

I guess what I like most is that I have the “power to create” using codes. I could tell the computer to do whatever I want it to do as long as I know the codes.

Also, you guys mentioned about…difficult mathematics. How crazy are we talking about here? I’m decent at the engineering math (mainly just calculus stuff, systems of differential equation, multi-variable integrals, that sort of stuff), I don’t hate it but I don’t like it. Do I need a passion for math to enjoy computer science?

robmandu's avatar

ME has more theoretical math requirement than CS. But, in CS, you have to learn how to write code that does math in a way that accommodates the built-in precision limits of the hardware you’re working with. In short, it’s like writing some of the subroutines that might be used in a software package like Maple.

And no, I do not perform any calculus in my day-to-day job. That’s not my specialty. But I work with lots of stats guys who also apply some diff eq concepts for predictive analysis themselves.

Answer this question




to answer.

This question is in the General Section. Responses must be helpful and on-topic.

Your answer will be saved while you login or join.

Have a question? Ask Fluther!

What do you know more about?
Knowledge Networking @ Fluther