Choosing Careers in Technology? 107
Salandarin asks: "Until recently, I was convinced that my destiny involved a degree in CS, stemming from my love of video games. I've really enjoyed what I've found so far, and I enjoy the art of programming and the study of algorithms. However, from what I'm told, more advanced study requires a strong knowledge of mathematics. Mathematics, much like the hard sciences, are not my interest. Although I'm not ready to abandon CS just yet, I'm starting to examine other options. I enjoy the world of technology more than any other, and as such I would really like to stay here, no matter what field I choose. I am specifically curious about jobs that involve some form of journalism, writing, and/or communication, but I'm open to everything at this point. What other careers are available in technology, for a person like me?"
Some Advice (Score:5, Insightful)
It's not the math, it's the maintenance (Score:5, Insightful)
At work, they hand you a pile of poorly written, undocumented code and tell you to fix it. Programming is often not so much about creating something new, but tweaking what already exists.
Re:There's always working at Best Buy (Score:4, Insightful)
It sounds like you got into comptuers because you liked games and playing around. Then you got into programming and liked some topics and now that you've come up against something hard, you want to pack up your bags and go home to Mommy.
Journalism, like many jobs, is hard work (if done right and well). If you think you love a field, but don't love it enough to go through the hard stuff, the subject is a good line: you can always work at Best Buy.
If you're just starting out and you're going to give up, turn tail, and run from what you think you love because of temporary adversity (it'll be over when you graduate -- you know that), then please, quit now. I certainly don't want you ever working for me.
On the other hand, you can face the Math, get a good tutor, and you might find that it can be different than what you expect. When I worked in education, I found many students hated math because they had rotten teachers and had not done well. They came in with such a poor attitude, they never gave it a chance.
But if you don't want to face some classes that will be over when you graduate to do what you think you love, then start right now practicing the words, "Would you like some fries with that."
Re:What level of study? (Score:4, Insightful)
Algorithms are mathematics (Score:5, Insightful)
I'm having trouble understanding this comment. First you say that you enjoy studying algorithms... and then you go on to say that you aren't interested in mathematics.
Since these two statements don't really fit together, I see two possibilities:
1. Your idea of what the "study of algorithms" is doesn't match mine. Are you interested in finding new algorithms, analyzing how long it takes them to run, and proving that they work? That's all computer science, and thus a part of mathematics.
2. Your idea of what "mathematics" is doesn't match mine. What exactly do you find uninteresting? If the only things you dislike are vector calculus and complex analysis -- hey, join the club. Fortunately, very little computer science needs those.
Got paradox? (Score:3, Insightful)
Of course, if you don't want to get into that field but do application development, then you don't need any more math knowledge than what the basic undergraduate degree will get you.
You're in the wrong field (Score:5, Insightful)
The hacker spirit is an undying desire to know; a hacker never settles for 'black box' explanations or shies away from knowledge because it's too hard.
What confuses me most is how you reconcile your proclaimed love for algorithms with your disdain for mathematics: that portion of CS, more than any other, is pure mathematics. I ask you to check your claim and trying to read, and more importantly grasp the essence, of Knuth's "Art of Computer Programming" without a strong background in mathematics.
I ask you to check your claim and try to design, and truly understand the workings of, a simple full adder circuit without a fair knowledge of quantum mechanics.
Without a love of physics and math you can never become more than a code monkey, the desk jockey equivalent of a construction worker, who can put pre-assembled bits and pieces together but will never gain any true mastery of the material or progress above the millions of other mindless bromides.
Video games (Score:3, Insightful)
If you're going to work in a large video game team, there are less mathematical jobs in the creative and design ends of the work.
If you're looking at journalism, first check out what journalists get paid, then ask yourself whether you'd be content as a superficial and sycophantic copier and paster of press releases.
We are programmers because we don't like math... (Score:5, Insightful)
The notable exception is most areas of machine learning. ML is for computer scientists who were too smart to be statisticians. The math there can be obscene.
I've always liked that CS isn't rigorously scientific, but not so towards the liberal arts that anyone can get a degree in it. You need to be creative but you need to think about the structure of things. You need to think outside the box, but also work within limitations.
Sometimes CS is engineering, many times it is artistry, in some ways it is a true science, and occasionally there is some math.
The nice part about the math, is once you (or somebody) gets it right, you don't have to think about it anymore. Make it a function, use it a million times, forget the math.
Re:You're in the wrong field (Score:4, Insightful)
I disagree. There are plenty of good programmers who dislike the hard sciences and mathematics. As long as you know the algorithms, the data structures, the programming languages, and the APIs, and you know which tool to use at the right time (e.g., don't bubble sort a list of records stored as arrays when a mergesort or quicksort would do [we're talking O(n^2) [slow] performance compared to O(n log n) [much faster] performance, any programmer worth anything should know this]), then you should make a good programmer. You don't need to be Donald Knuth to be a 1337 programmer (although all of that CS/math knowledge surely helps).
However, you can't be a good computer scientist without an understanding (or at least appreciation) of mathematics (especially discrete math), and to a much lesser extent, physics, depending on the subfield. A good programmer, for example, knows that bubble sorts are slow compared to divide-and-conquer sorting algorithms. A computer scientist, however, not only knows these facts by heart, but also should be able to analyze those sorting algorithms and give big-O notations of their performance. If you want to do something such as computer graphics, then you'll need to learn calculus, linear algebra, physics, and graphic design. Quantum computing requires even more physics (to understand what a quantum computer is) and math to figure out how to write quantum algorithms. Numerical analysis requires extensive knowledge in continuous (non-discrete) mathematics, and the list goes on....
Another point: programmers may not be computer scientists, but I wouldn't label all programmers as "code monkeys"; as if programmers were inferior to computer scientists just because they don't do exercises from Concrete Mathematics every night before they go to bed. (This is coming from a CS freshman whose goal is to become a computer scientist; and yes, I'm a math minor and have a liking for physics). That is a tiny stench of elitism that can get you modded down here. There are many programmers out there that know how to apply computer science knowledge to create fast, small, and secure programs. They don't have to be Steven Wolfram clones, but that doesn't make them "code monkeys", either.
Re:You're in the wrong field (Score:3, Insightful)
I agree.
But I think you'll be hard-pressed to find great programmers who hold Computer Science (and yes, I'm being more specific) in contempt.
(I also think there's no shortage of people who think they're great and hold Computer Science in contempt.)
(And yes, logically speaking in the absense of hard data on programmer quality and opinions of computer science, it's hard to push this point any further because courtesy of the previous parenthetical we're firmly in the realm of opinion. But it should be put out for consideration, even if it can't be rigorously proven in the context of a Slashdot comment box.)
couple of things to keep inmind (Score:4, Insightful)
2. Anything you decide to do will have some difficult parts. That is life. If you keep running away from challanges you will never get anywhere. If you truly like writing programs and figuring out complex algorithms, then you should just stick it out with some math that may not be as enjoyable.
To translate (Score:3, Insightful)
In real life you got to fix peoples old smelly peeed on wobbly chairs.
In school a mechanic gets to build a car from scrath with the whole class.
In real life you will be changing the oil on cars that never been washed.
In school a nurse... well nurses pretty much know their job is going to suck.
School is nothing like real life. EVER.
As for CS. Lets be honest here. 99% of what you are learn is out of date or off no use or just wrong. The remaining 1% you can get out of a book.
You will be suprised how many people in IT got the best grades in maths and now end up spending a year getting all the code to be adjusted for a simple tax change. Yeah, that is high science!
Most real IT is just putting to code what somebody else has done. How much of you code does anything more complex then adding up?
There are offcourse exceptions but the not for the average code monkey.
Just like most car mechanics spend most of their time changing oil and spark plugs most programmers just do basic maintenance. Both can make a very good living out of it but it ain't as existing as their school projects.
Re:Video games (Score:3, Insightful)
If someone is mid-way through college on the way to a degree in software engineering and doesn't already love math, it's probably too late for them to change perspectives. It's not too late for them to change majors, however, and pursue something more in line with their natural (and long term ingrained) aptitude. Enjoying Quake III or Myst, and being really good at IM - this isn't a strong indication of an aptitude for software engineering. Opening the
Granted these are just rantings from someone that is entirely undercaffeinated - my position this may change after a few cups of tea.
-1 off topic (Score:3, Insightful)