Choosing Careers in Technology?
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?"
I am a professional programmer, I make a 6 figure salary, and I suck at math. Good programmers are efficent with linguistics and are able to think in terms of structure and process. If that sounds like you -- strugle with the math like I did. If not, consider something else.
Religion is a gateway psychosis. -- Dave Foley
Math is just something you really can't escape in technology nowadays. Don't sell yourself short when it comes to math. Even if you end up hating it you can always tell yourself that at least you understand that it really isn't your thing and you can go from there. I don't know how much math you've currently taken but I would say give it a while.
If you find you really hate it, and can't tolerate it being apart of what you do everyday than I would suggest journalism. I'm currently considering getting into science writing. You could be a tech reporter.
Does this sig remind you of Agatha Christie?
Keep in mind that CS began as a branch of the mathematics departments at many universities. Probably at least partially because of this, deep theory is extremely mathematical.
On the other hand, if all you want to do is program, you don't need that much math. What you get in a typical undergraduate CS curriculum should be enough.
The biggest shock for me, when I started programming professionally, was not the pain of higher-level math, but the pain of maintenance. In school, you work on a project for a few weeks, maybe with one or two people, hand it in, and it's over. You never have to think about it again.
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.
What are you eating? isItVeg?.
Don't dismiss software development just yet. There is much more involved in building good software than mathematics. You might see some beyond-basic math in a CS degree, but in the real world, most of the time that stuff will be useless.
However, the fact that you like playing videogames or find technology amusing is not any good indicator you will like the stuff. The good thing is that you can get your feet wet before you make a decision. There are some introductory books that teach general programming concepts and at the same time teach the essentials of a programming language (back in the day, Pascal was the language of choice for that, I guess today most will use Java).
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.
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.
Tarsnap: Online backups for the truly paranoid
If you want to do CS "for real", and not just have it as a job skill, then yes, you'll need quite a bit of mathematics.
On the other hand, programming, by itself, is not really worth all that much as a skill by itself outside the actual field of CS. Somebody who only have skills as a programmer is not going to find themselves in any great demand. You need to have something else that is relevant for the business field you will find yourself working in. A "programmer" is always going to lose out to a "[chosen field skill] with documented programming skills".
What I mean is, if you aim to work with programming in, say, the financial sector, then having a solid, documented skill set in economics or revision wil be at least as important as programming skill. If you're aiming for some technical field, you will need at least a bachelor's degree in subjects relevant to the field, whether it means a degree in chemistry, mechanical engineering, combustion physics, medicine or whatever. And always, always, "people skills" matter and are important, no matter what field you choose, since you will always be dealing with people.
Programming skills are a lot like mathematical skill. for most fields, it is a tool, not an end in itself, so you need to know your target field first and foremost. The lone exception is if your chosen field is CD (or mathematics) itself, but then you need to go a a lot deeper into the field; a doctorate will not hurt at all at that point.
Trust the Computer. The Computer is your friend.
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.
Without a love of hard science and mathematics you will never be more than a mediocre programmer.
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.
Technology Writer! There are journalists and writers who just write about technology, new and upcoming trends, even how-tos in coding. These people also get some nifty benefits, such as presspasses (free admission due to press-hood) to Microsoft conferences (WinHEC and PDC, to name a few).
You might fit into the little niche for writers who talk about upcoming trends in coding and solution development.
Viable Slashdot alternatives: https://pipedot.org/ and http://soylentnews.org/
If you want to program the guts of a video game (physics engine, motion control) I don't think there's any alternative to knowing math well. Math is just a tool like a programming language is a tool. Try approaching math with the perspective "I'm putting a tool in my hand and learnng to use it effectively". Math also teaches a disciplined style of thinking which may save your neck when you attempt a large project.
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.
Becoming a lawyer? Practising law requires the same analytical abilities that you need for CS, but lawyers also write a lot. And we need more lawyers to advocate for peaceful, productive uses of technology, since there are a lot of people up on Capitol Hill trying to stifle creativity and free communication just to make a buck.
This post expresses my opinion, not that of my employer. And yes, IAAL.
Unbeknowst to me, potassium bromide was used as a sedative; its meaning expanded to included sedative men: dullards.
A BS in Computer Science should be easy to get with only average math talent. Can you get a B in Cal I? You can handle the math in CS. Once you get out, you can probably forget it.
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.
I see a lot of negative comments here, and so I thought I would post something that his hopefully helpful.
Firstly, I have to say that a lot of the comments here should be heeded, Computer Science is a hard science, and is as mathematical as any other hard science, and more mathematical than some. In light of this, you should first think about you're statement that you do not care for hard science or mathematics. You may find that this is not true, instead you may find that what you really find is that you are primarily interested in those areas of mathematics and science which directly relate to computer science, and find it loathsome to be forced into required math and science courses which you do not see as directly related to CS. If this is true, then I urge you to push forward, you will often find that at the beginning of you're education, things seem disjointed. It is not until you near the end of you're education that those disperate elements of you're education begin to form a cohesive whole. If, on the other hand, you decide that hard math and science is not for you, then you should seriously consider changing you're major.
Computer Science is not the only technology related field of study, and it is not the only vector to working in a technology related job. I would say that you may consider looking into Computer Information Systems, which focuses less on algorithms and hard programming, and instead takes a look at how systems work together at a higher level, desiging those systems on that higher level, and resolving computer and business sytems into a cohesive and useful technological infrastructure for business. This will mean that you won't do much hard programming, though there may be some programming involved. Instead, as you expressed a desire for, you're focus will be on communication within a buisness. Writing documentation on the design of the system, interacting with people, departments, managers, and users. You act as a lieson between the developers and admnistrators and the business side of things.
I'm in a very similar situation as to yours, except I started out in CIS and realized that my interest in mathematics and hard science meant that I should have chosen CS instead of settling for CIS as my major. I'm getting ready to graduate this term and I have to say that I would suggest you don't make my mistake, and find the major that really suits you.
If analysis and design does not suit you, you may also consider other fields such as working as a technical writer, a technological reporter, or (if you're evil) working with marketing. There are a lot of areas where people need someone who can act as a translator between technological people and systems and others.
Famous Last Words: "hmm...wikipedia says it's edible"
If you are interested in technology, there's some fields of study that most computer geeks aren't aware of: Broadcast Electronics Technology and Telecommunications Technology. Both are typically 2 year programs at a technical institute. Broadcast engineers (actually technologists) deals with the installation, repair, maintenance , design of radio, television and video/audio production facilities. Here's a link to the Southern Alberta Institute of Technology's (SAIT) website on the Broadcast Technology program with a nice short video.
Telecommunications conjours up ideas of phone systems but it is much more than that. In 1996, a milestone occured in telecommunications. It was the first time that more data then voice was transmitted via the phone networks. Telecommunication is the backbone of the Internet!
Every ISP, MAN or WAN ends up running through the telecommunications system. Computer networking ends at the router where it connects to the phone system, then the data magically appears at the destination router. The movie Warriors of the Net refers to the telecommunication's network as the Wild West where networking runs wild with little rules! Quite the opposite is true but it illustrates the point on how little is known about telecommunications from the computer industry.
Every residence, business and government office has a phone system and data communication network that connects to its head or branch office. There is a major convergence going on where cable companies are offering voice service and data service along with their cable service. Phone companies are offering data and video services on their networks including cell phones. It is truly an interesting era!
Here is SAIT's Telecommunication website that I am currently updating to include VOIP and PBX labs based on Astericks software. And ys, I am biased as I am an instructor at SAIT teaching these disciplines.
Good luck in your search, I hope that this information opens your eyes to other possibilities.
...and a hard science and engineering too. You don't learn to program with a CS degree (well maybe at mediocre colleges you do), you learn algorithms, computer architecture, Operating System theory, etc.
Here is the most important thing to know about college: Do a degree in something you love, not something at age 17-18 you think you want a career in (cause odds are you haven't experience enough to figure this out yet...I know this was the case with me). After an MS in Electrical Engineering (with a 3.9 GPA), I've finally figured out this major was not for me.
Get a degree in English, Linguistics, Language, something you love...then figure out what you want to do for a career.
Seriously though... if you like writing, you could become a tech journalist. You know, like the guys who write for Wired, Popular Science, ExtremeTech, PC Gamer magazine etc. You could be covering E3 or benchmarking video cards and combing through the data. Or you might be at a future Apple WWDC reporting on Mac OS XI (eleven or "zye"?), or in Cambridge meeting some MIT prof about his flying car. Eventually perhaps you'll author a definitive history of SGI (it truly was an amazing company). I wouldn't call these serious "tech" jobs, but it sounds like you want to get paid to have fun related to tech, preferably involving journalism. Tech journalism would bridge your interests pretty well I think.
/. submission was accepted, congrats. You're already published. Well, kinda.
And hey, your
I was in a very similar situation as an undergrad in college--I had always wanted to be a programmer and was interested in both algorithms as well as data structures such as linked lists and tree-structures (I know...slightly odd interests for a teenager) Anyhoo, after having issues with calculus I ended up going a completely different direction and got a BA in communication.
After college and some technology-related jobs (Though nothing in programming per-say) I ended up working for a software company where the love of technology along with the communication degree has ended me up in the role of a project manager.
I've read a few articles in reent times that have all suggested the best way to, "Make it" in the technology world is to diversify your skill set to include project management...I have to say that so far from my experience that wisdom seems to be holding true.
It is true that you need some good mathematical foundations to truly excel. It is also true that those who never realize this rarely make it much past "mediocre", by my admittedly-high standards. However, the math you need to be good at may not be the math you are thinking.
When most people say "math", they're thinking Arithmetic (the manipulation of numbers with few or no "variables"), some Algebra, and maybe Calculus. These maths are nearly useless for day-to-day programming, unless you are dealing with a clear and obvious exception, like game engine programming, writing a CAD program, etc. This is not to say they are completely useless; at the very least they are brain exercise of a calibre hardly attainable anywhere else, and that's nothing to spit at. But in general, this sort of math is not useful to programming, and you can be borderline atrocious at all three of those disciplines and be fine.
What you really need to be good at is "discrete math", which at best gets mentioned in high school cirricula as "sets" and then ignored pretty thoroughly after that. It's still true that what you do in the classroom doesn't bear much resemblence to programming (I've only had to do something even remotely like a proof two or three times in 10 years of programming), but the things they are trying to test you on do matter a lot. Think of it like the exercises you'll do on a basketball team or something; you're not going to do a lot of running straight to half-court and right back again 20 times in a row in a real game, but it's good exercise. And you can still be good at playing basketball even if you don't do the exercises, but you'll be better if you do.
Some examples of things that the discrete math theory will talk about that I find many people are very weak on:
1. the math you need for software and the math you do in college in general is very different from the math you see in high school. There are much less numbers and formula memorization and there is a lot more conceptual thinking.
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.
If straight CS is not something you are interested in, perhaps you should look at Informatics. Informatics is a relatively new field of study applying computer technology to other established fields. For example, bioinformatics applies computer science to biology, studying the genome, and using computer modeling to understand how our bodies work at the molecular and cellular level. Wikipedia has an entry in Informatics that explains the connection better than I could in a simple slashdot post, and links to many of the informatics sub-domains talk about work that is being done in those fields, from Human Computer Interface to Health Informatics, Chemical Informatics to Lab Informatics, the field is opening up fast and students are needed. Being a former CIS major who is going into Health Informatics, I can say that I enjoy the prospect of applying my knowledge of computer information systems to the health care industry to help the doctors, nurses, and clinicians do their jobs better, more efficiently and grant them access to information that would not have been easy to come by in the past.
So far the program does not delve into the depths of detail that are seen in many of the other programs. And while knowledge of bits and bytes might help me do my job better, it is more important that I understand the concepts of what clinicians need, and what technology can provide, so that I may bridge the gap between both fields. Instead of Computer Science where you understand a computer as an entity, Informatics allows you to apply knowledge to various fields in ways that experts in one field or another would not find obvious. Consider Informatics to be the jack-of-all-trades degree that allows you to push information technology beyond the "a computer on the desk" mindset and into the future of computer technology.
I haven't lost my mind!
It is backed up on disk...somewhere...
If you want to be an academic, then you have no choice but to getting deep into math. But if you perhaps are interested in less theoretical research or application of cutting edge technology then look around for a CS program that fits you. On the other hand, if you are not looking for graduate school and want to finish CS and start working, you will be more than prepared for a lot of technical work.
Don't listen to the people who say you need math or other sciences in order to do computers. In general, the people who say that tend to be people who don't know anything about computers.
I was never very good at math, never really took any chemistry or biology, but did get into physics and electronics a bit. However, I was insanely into computers. Since then I've done lots of work programming, system and network administration, and all sorts of other computer-related work. A decade ago I started a technology company that has allowed me to challenge myself in so many different ways ever since.
My theory about the math thing is that math is a well understood and traditional area of study which has similar problem-solving requirements that computers do. Coming up with the set of rules that make a proof come together are quite similar to building a program.
Because math is more easily and generally understood and taught, the people who have the skills required for computers probably have had more exposure and training related to math. For example, when I was in elementary through high schools, we got to play with computers, but I only had one semester of classroom instruction in computers, but I pretty much had a math class every semester for 12 years.
I feel that you can learn and hone the same skills through working and playing with computers directly, not using math as some gateway drug... It's worked fairly well for me.
So, what can you do in computers without math? Programming, human factors, and even business and management can use technical people in it. In short, whatever you want to do.
As Joseph Campbell says, "follow your bliss".
Sean
1) systems administration, where at most you are writing cron jobs or bash scripts.
[ an understanding of programming is a huge benefit though. ]
2) Writing Articles / Books on specific topics, such as Administration of Windows Server2003
[ requires a very good knowledge of the subject, as well as excellent language skills. ]
3) Data Base Administration, which requires excellent logic skills, and usually knowledge of sql plus an in depth knowledge of the engine being used.
Systems level, graphics, and game programming are the areas that really require an excellent understanding of mathematics, application development, web scripting are "programming" skills that are far less math intensive.
J. Henager: If the average user can put a CD in and boot the system and follow the prompts, he can install and use Linux
Computer Science is a branch of Mathematics. You cannot be a Computer Scientist without being a Mathematician. You have to know Discrete Mathematics, Automata Theory, Complexity Theory, Algorithmics, Graph Theory and other mathematical stuff. It is not possible enjoying studying algorithms without enjoying mathematics at the same time. Perhaps you should question yourself why you dislike Mathematics, and what do you think Mathematics is? I bet you had a bad maths teacher in school, or you do not really know what maths is.
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.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
If you look at Concrete Mathematics, isn't it fair to say that discrete math is relatively more important than continuous in a CS setting?
Maybe you don't fret about the what so much, but isn't the why of it what matters?
I've been getting more into math lately because it's useful and almost completely free of the nonsense going on within 'culture' these days.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
I studied engineering in university, and it involved a lot of advanced math. If I had known that leaving high-school I probably would not have taken it, since when I left high-school math was *definitely* not one of my interests. Had I followed my academic talents I would have chosen music or journalism.
That would have been a big mistake, since it was not until 2nd year university that I discovered I had a previously unknown interest quite a talent in advanced math, and achieved straight As in all my match courses.
Don't let thoughts like "that will be too hard" or "I'm not interested in all the courses" deflect you from your end goal. If a CS degree is what you think you want, go for it. It is no sin to enter something and *then* decide it is not for you. But if you never even try, you will always be wondering "what if..."
Life is like a web application. Sometime you need cookies just to get by.
I/O is the hardest part of programming a piece of software.
:)
Especially if you got to interface with a lot of middleware.
Once that's taken care of, the actual data processing can be a piece of cake if it is not too complicated.
"Most people discover that they are bad at math the same year they have a bad math teacher."
John Mighton (PhD mathematician, Governor General's award winning play writer.) has started a very successful math tutoring program in Toronto. He contends that learning math is a lot like learning language; anyone can do it. Math ability is highly over-rated. Most people who can't do math just got behind at some point and, because math builds on itself, continued to get farther behind.
Find a tutor with a good track record. Find the skills you are missing. Don't take any university math courses until you're ready for them. With a little clueful work tutoring, you can pull off an 'A' in your next math course. It isn't that hard once you are on the right track.
One of my buddies once got into a post-grad math course that was beyond his depth. (He was a mere engineer and all the other students were mathies.) He came home every evening opened the text and worked out every example. He'd copy down the problem, attempt it, check his solution and if he got it wrong, he would read the solution in the book, close the book again and try it again. He ended up doing better than most of the math students.
If you have a problem with math, fix it. You can do it. It is worthwhile. Even if you don't use the math you learn, it will influence your ability to solve problems and help you to communicate with other technical people.
http://www.jumptutoring.org/
Unless you are going to do scientific (e.g. matlab) or security programming (e.g. create a new encryption schema), you probably won't ever use your advanced math skills. I have been programming for 6 years and have never needed them, other than in an interview where they asked me. I have been given lead programmer on all major projects at all the places I have worked, so I guess I am not the worst programmer out there. Considering I don't use all those advanced mathmatical algorigthms, that's not too bad, I guess. I do, however, use all my computer, programming, and database course knowledge. I also always go and extra step with the language I am using to know them inside and out at even the lowest level (e.g. how to reverse engineer them and why, compiler priorities, etc.). I think that is what matters most.
1. If you don't like math, then you don't like computer science. Period. This also means that many career paths are closed to you. You might be able to squeak out a CS degree, but you probably won't get far or be happy in the field. 2. You say that you don't like math, but it may be a bit early to say that. Most people enter college knowing no math. I say this from experience teaching college math and cs, and from the experience of graduating high school with no math skills - but eventually completing an master's degree in math. Give it a chance. 3. If you really don't like math/cs, that doesn't mean that you can't work in the computer field. I have a good friend with a humanities degree who has a very successful career as a project manager in the computer games business.
We have too many 'technology' people now, in this slowly diminishing 'market'. We are bursting at the seams and dont need any more, including you.
Go be a cop or something.
---- Booth was a patriot ----
A BS in Computer Science should be easy to get with only average math talent. Can you get a B in Cal I? You can handle the math in CS.
... yea ... those of us that took differential equations (DifEQ) are going to have to disagree with you on this one.
Ummm
All I can remember about DifEQ was that it was like the Star Trek of wild ass math - you have a seriously nasty equation that you need to take the derivative of, but nobody on this planet can do it so you get Scotty to beam you to a planet in a parallel time space continua, and in the process the nature of the equation transforms slightly into something you can calculate. You do your math there, get an answer, have Scotty beam you back to Earth and the answer changes form into the Earth form. I believe there were drugs involved in the process, but it was college so we may be talking correlation, not causation.
If the OP sucks at math, he can still do 'computers and tech' but perhaps a bachelors degree in 'software engineering' isn't how he is going to get there. It doesn't take a BS/CS from the Dept of Engineering to program Java or design a network, current HR requirements not withstanding.
Glonoinha the MebiByte Slayer
But I agree with the parent - if you are willing to attack your hard classes, perhaps with help, thats a good sign. And thats not just for math. It is the attitude that matters - if your thinking goes "this is hard, I quit", practice saying "Do you want fries with that." If instead you think "this is tough, I need to work harder" you can probably succeed in almost anything you want to do.
Problems worthy of attack
Prove their worth by fighting back.
I used to be a Postgres DBA and now manage a team of them. I have 3 new hiring authorizations that I've been trying to fill for over 6 months now (in Toronto, see www.afilias.info if you're up for a challenge). Consider the cost of an Oracle license and you'll get an idea of why there's such demand. The math requirements for a DBA are pretty limited, but you have to really understand relational algebra, or at least the practical applications of it.
On a not-so-related note, I thought I'd share the analogy someone else made for me when I was looking at what direction to go with computing.
A programmer is like an electrician: they need to know best practices and then implement them. Mathematical knowledge required is pretty limited.
A computer scientist is like a physicist: they work on discovering the science. This of course involves lots of math.
A software engineer is like an electrical engineer: their job is to apply the science to solve problems. In the process they create best practices. There are very few software engineers around, and the position has yet to really be formalized. The math requirements there are more practical but still pretty substantial.
Hope this helps you find your way.
It isn't likely to be going away anytime in the near future.
A degree in CS or related and a CISSP makes a good door-opener.
And, there are so many aspects to the field, you can basically pick your fave area and self-train for it to get started and then work up to certification in that specialty.
Am there, doing that, T-shirts not allowed,
T_O_M
you NEED to be good at math to excel in CS, but you almost definitely have no idea what math is yet. Sure you know about some subsets of it, and ability and enjoyment of different branches tends to be highly correlated, but you should try it out.
if you get to your Junior year and can't cut it, most schools have a CS Lite program you could get into, like Management of Information Systems.
We need managers who have at least tried the CS programs. To many managers are lost when it comes to what it takes to develop any decent application
Or you could just do what many of the professional programmer I know did:
go to some crappy school that just teaches you how to use java, and maybe a little c/c++, and you can get a job programming the same way that a machine operator gets a job pushing a button.
"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."
No. Computational science (computer science is a bit of a misnomer, since computers are just the physical representation of a Turing machine) is loaded with lots of information that is not out of date or wrong.
If you are in a job situation where all that you learn and use regularly is something easy to pick up from a book and changes periodically, you are in a technical occupation. People who change oil on cars are in a technical occupation. Compared to those grease monkeys, people with real CS degrees who have taken their theory and understand the true breadth of CS are like the mechanical engineers who design engines, know exactly how to measure and project how an engine will perform given a situation, have an understanding of the minimum strength values the chasis needs along certain axis to resist the twist of the engine in its mounts, etc.
Actually writing program code into a computer or reading someone else's program code and fixing it is such a small part of CS.
Data structures and common algorithms for manipulating them, modelling problems, proving correctness, designing network protocols, understanding principles of HCI, knowing the basics of processor design, how databases work, etc, the list of CS topics is very long!
Your statement, "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!" shows how you don't appreciate this.
Modeling complex tax law changes is certainly not research, but it's still a big project given how labrythine tax law is. It's a lot of domain-specific knowledge to draw on. You have to get it 100% correct if you don't want to be drawn and quartered by your customers. It's software engineering.
Do you think that physics is not a science because people who are mechanical engineers know physics?
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
I know exactly how you feel.
I went into college in 2000 all gung-ho about getting a degree in Computer Science. Though I excelled in my classes and enjoyed the work, the math was really getting to me. As I advanced up into more advanced levels of calculus I realized:
1) I don't like math that much.
2) I'm not particularly good at.
Unfortunately at my school you do need 18 credits of advanced math for the CS major. Believe it or not, I actually switched majors in my 8th semester, graduating in 5 years (that includes a 1 year study abroad to Asia).
Though it took me longer to figure out what I wanted to, one job later and nearing a year since graduation I have found my niche. It's a field that my liberal arts degree led me to, but my tech knowledge will allow me to prosper. I am a technical recruiter hiring IT consultants like many of those who post on slashdot.
I am making more money than I would be programming or doing any other entry-level IT position. Also, I get to work more with people, which is something I am suited for anyway.
There are plenty of IT related careers out there. Just don't be afraid to try new things and the sky's the limit!
Good luck.
...I enjoy the art of programming and the study of algorithms. ...Mathematics, much like the hard sciences, are not my interest.
The only problem with this attitude is that mathematical constructs lurk beneath so much of what you will have to deal with in the real world. And, like it or not, most programming has to deal with real world stuff.
I had the worst scores on my SATs and ACTs in math before I entered college, so... I became an engineer! I remember struggling with some of the advanced math courses (differential equations especially, I think; diffeq washed out a lot of engineers). I went to talk to my professor for the class because I was seriously thinking about dropping it and changing my major. He explained it to me this way:
"Brains times effort is a constant. If you have more brains, you might spend less time getting the concepts. Less brains, you spend more time. But everybody can get to the same point."
Now, mathematics was not my interest either. But electronics was and I quickly learned that electronics without mathematics was not possible. So I buckled down, learned the math I needed and graduated as an engineer.
The funny thing is that so much of the real world is governed by mathematics that I found uses for math in so many day-to-day real-life situations that it beacme an amazingly useful tool for virtually everything. Many ad hoc solutions that people apply to everyday things can be formalized and analyzed with a mathematical approach that actually leads to deeper and better understanding of the entire process. That is simply not possible and you can't even realize it until the mathematics background is instilled in the first place.
I also do a lot of programming in my work. What I found and what I think you will find is that any programming you do will be enhanced and improved with mathematics knowledge. As one quick example, take games. Many of the newest advanced gaming engines are being improved by adding real-life physics to the models, incorporating inertia, Newton's laws of motion and gravity effects to make game motion more realistic. Understanding and implementing these kinds of things takes a lot of mathematics.
Now, as for other fields that you might consider that are still technically oriented, have you considered technical writing? I did a long stint as a technical writer at one point and, although the money is not quite as good, I found that there is a real lack of people out there that have both the technical knowledge and command of the English language that it takes to be a good technical writer.
The point is not that calculus per se is important, but there's such a thing as "mathematical sophistication", the ability to think like a mathematician. He's sayng that you need that degree of logical thinking, not L'Hopital's Rule.
Of course, you could be like me, a total math geek but didn't know it in Calc I --- didn't show up until I got past the calculation stuff and did real math.
Journalism is certainly an option, although computer journalism is often geekier than you might imagine. Technical writing, human-interface design (had any psych classes?), marketing or pre-sales technical support can be fun.
Don't, however, give up on a technical path. People with technical backgrounds who can also write a sentence in whih noun and verb agree in number, and paragraphs witha topic sentence, and all that nasty English Comp stuff, are rare. If you like public speaking as well, you're really rare. And valuable.
(I tell my undergrads this all the time, usually when they're complaining that I make them write comments grammatically. They never believe me until they go get jobs.)
A BS in Computer Science should be easy to get with only average math talent. Can you get a B in Cal I? You can handle the math in CS. Once you get out, you can probably forget it.
As an EE, there are a couple of things I've noted. I went back to school because I knew I could do it, though I thought the math (and electrical engineering is notoriously math-heavy) was going to simply be a bitter pill that I had to swallow.
With a 52% in Grade 12 math, I went back ten years later and got a 71% in OAC (effectively Ontario Grade 13) calculus. I took it again in summer school just before university, and scored a 95% without even cracking open the book.
High school math was boring as hell, all to do with crap like factoring polynomials and slopes of line segments. (When the hell am I ever going to care about the slope of a line segment?)
Then came calculus.
Calculus is arguably the most elegant and powerful human rationalization and discovery. It touches your life everywhere and describes infinite things you can't even begin to imagine. And it requires no intelligence to do well in calculus courses - just attend classes, follow along with examples, and do your homework. Math requires practice.
In order to perform operations of the calculus, you do need those silly things from high school - the ability to factor a polynomial, or to find the slope of a line segment. Once you've got those things, just read the book and do the homework over and over.
My favorite thing about math is that you only need to do enough problems to learn the technique. Do little refreshers every now and then, but once you've got it, you've got it.
University math courses I've taken? Calculus, Differential Equations I and II, Vector Calculus, Linear Algebra, Statistics, Economics, Systems and Simulation (complex transfer functions). All of those courses were pure mathematics. Everything else was four years of applying mathematics from those courses to the analysis of physical phenomena - who's kidding who, my class on Electromagnetic Waves was essentially a course on nothing but rearranging and using http://en.wikipedia.org/wiki/Maxwell's_equations>M axwell's Equations. I am two university credits away from a degree in mathematics, and I'm seriously considering doing them just for the minor.
The elegance of some of this stuff is incredible. e^(i*pi)+1=0 is my personal favorite; I'm considering getting it tattooed.
Oh, and by the way, don't fear the word "calculus". It means "small stones", as used for counting.
Fire and Meat. Yummy.
lim f(CS)=MIS
GPA->0
'Nuff said.
Why don't you try blogging? :)
Free your mind!
programing != computer science
People in all sorts of desk jobs spend hours, days, or weeks performing boring repetitive tasks that should take a programmer minutes. Subjects like computer science and economics should be taught at an early age.
I think this is probably the most amusing explanation of Laplace transforms I've ever heard. Really, though, it's not that hard, was it? Every degree at my school requires differential equations, but you hear a LOT more complaining about infinite series in calc 2.
Where I went to school, Diff EQ wasn't even required for CS majors. And it wasn't even that hard.
I've been getting more into math lately because it's useful and almost completely free of the nonsense going on within 'culture' these days.
Reading that made me sad.
Slashdot - where whining about luck is the new way to make the world you want.
Right -- most paid programming doesn't even require calculus. Think about it -- most ecommerce requires... well, arithmetic, and that's about it. Look at the applications you use and think about the "hard" parts of programming them -- for the most part, it's not the math; it's simply dealing with the complexity of the functionality. Programming complicated apps elegantly is hard, but not because of any math involved. If you were actually only interested in incredibly difficult algorithms and mathematical computations, you'd actually start limiting the projects you can work on (since you'll either be in the academic world, or solving arcane data-crunching problems... and these tasks are not for everyone).
Personally, I'm a fairly successful independant developer with a BA in Music. I completed enough courses for a CS minor (but ironically couldn't declare it because the school's software could only handle one minor, and I had already completed an English minor). I had some luck getting my first developer job (as a "software engineer"), but once I had solid experience and good contacts and went out on my own, it wasn't hard to keep getting new projects independantly.
My strengths that I draw on most are basic ability at understanding and organizing complexity, and good communication skills (and this goes far beyond good grammar; you also have to be good at dealing with all kinds of people and sensing *what* to communicate!).
The degree you can put on your resume does, of course, make a difference -- but don't be too hasty about ruling out possible tech careers just because you don't like high-level math. You don't really specify what your original plan was (beyond "going on in CS"...), but unless you intended to stay in academia, it's likely there's quite a lot out there still open for you. And your communication and writing skills will help you no matter *what* you end up doing.
I went to college to do a CS degree about 15 years ago, and like you, I was into the technology but dreaded the threat of mathematics. I saw it as a necessary evil, gritted my teeth and got on with it.
What I found astonished me. The mathematics work I was being asked to do was actually pretty interesting, and could be applied directly to programming. The terrible, terrible calculus problems I'd struggled with in high school all went out of the window. Instead we were studying things like Graph Theory, basically a whole field of study hiding behind the travelling salesman problem; Infinite Set Theory, talking and learning about infinity is always cool especially in a logically rigourous fashion rather than just drunk in the pub; Group Theory, officially the study of symmetry which sounds boring and trivial (it's not) and it crops up all the time when studying algorithms.
None of this is relevant to my work now, because I eventually became a manager and the only computer-based work these days is e-mail and spreadsheets. Such is life.
-- Nick "Hallo this is Beel Gates, und I pronounce weendows as
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.
You just described my Liberal Arts Degree. Advanced thinkers in any field think about these.
Dialectician. Archology.
Sadly, I wasn't required to take it, went down the wrong road of prereqs until I found myself staring at my first F ever. Once that happened, I had to retake it (summer school, similar F) then next year (different instructor, A-)
Math had been fun and easy for me until then. It truly hurt my brain to sit through class, homework was utterly impossible. I had a breakthrough (or breakdown) and wound up understanding it enough to use it, which I had seen fellow students doing ever since geometry. I didn't have the heart to take any math classes since.
I've met people who say DifEQ is easy, and when I show them my final they generally scream. I had a 10 page solution that the TA said "good work, concise" and he didn't have a sense of humor.
Man, you really need that seminar!
Forgive me for ignoring the specifics of your request, but I couldn't tell you the first thing about jobs in programming or CS. I'll leave the minutea of that to my fellow posters.
What I can tell you is that many people end up working in a field that they never envisioned themselves being in while in college. Perhaps this is not quite as true with highly-specialized technical jobs, but there's always the case where your talent (measured by abilities and experience) will be paramount to your degree. And if you ever find yourself having a great idea and have the skillset to execute it but don't see any employer taking a chance on it, do it on your own.
The gist of what I'm saying, is your specific degree is not quite as important as the many decisions you'll be making your career after you graduate. The degree is only a starting point, and it no longer surprises me how varied that starting point is.
Small potatoes make the steak look bigger.
roflmao good one!
The Christian in me says it's wrong, but the corrections officer in me says, 'I love to make a grown man piss himself.'
Plain and simple the vast majority of CIS/IT programs are absolutely worthless. For a BS in CIS, they give you an intro to what a computer is. You will have one programming language that will take 2 semseters to work with (the year long work is worth about a .5 semseter java class in CS-100). You may be introduced to several others for a grand total of 1 week each (that is 2-3 classes). You may learn about a DB; That is how to do a select * from table, perhaps an insert, update, and delete. You will not find out what a subquery is, let alone a join, or even a predicate on a select. Most PhDs programs that I have seen in CIS do not even measure up to a half way decent BS in CS, Software Engineer or CE program. Here is a a weak CS and strong CIS program. Even then, the CIS is worthless. Really not worth hiring.
Look, a BS is 4 years of a life. That is nothing in the scope of things. Most people today view the degree as a job, not as an education. If somebody is looking at the degree, then you have to think where you will be in 20-30 years. Assume that you do not go back to school. Then you need the best field that will leave you opportunites in the future. Your best bet is CE, followed by CS or SE. The CE will enable you do hardware and create your own hardware. The CS/SE will offer you the best chances for LONG term jobs esp. if combined with a business degree.
If you decide to go back for an advanced degree, then go after an MBA in management or something similar.
Finally, my degrees; First one was in Microbio/Genetic Engineering back in early 80's. After working in the field for several years and seeing multiple civilian projects converted to DOD work, I obtained a CS degree. Since then, they offered the CE degree. That is where the money (and jobs) is.
I prefer the "u" in honour as it seems to be missing these days.
Ok, here's a piece of vocational advice you won't hear often on slashdot. It is, however, something that I have lived by myself and that I hold largely responsible for the fact that I'm pretty contented at work and at home.
Whatever you do, do not try to turn your hobby into a job.
In other words, if you, as I have been for much of my life, are a big fan of computer games and enjoy amateur programming, do not aim towards working in the tech sector. Why? Because you are moving yourself into a situation where your work and your hobby are the same thing.
Isn't that a good thing? Doesn't it just mean that you're always going to love your job? No. Not in the long run. What it means in the long run is that when you get burned out on a job (which is something that everybody is going to go through at some point), you're also going to find a hole in your personal life. There are other reasons too. Having the same interests at work and at home means that you're going to find (unpaid) work creeping into your home lift much more easily. You're going to end up with narrower social and business networks. Perhaps most importantly, if you're ambitious, you're going to get locked into a narrower set of skills.
I faced a decision point over my future at the age of 16, when I had to decide what I wanted to do for my A-Levels. A-Levels, for those of you who aren't familiar with the joys of the British education system, are 2 year courses that most UK students take between the ages of 16 and 18. Until recently, you would be expected to take just three subjects to specialise in (which has expanded to 4 or 5 since my time, but is still a remarkable degree of early specialisation compared to many other countries) and both your choices and your predicted grades would be essential in determining what your options would be with regard to University. The choice I faced was whether to go for maths and the sciences and aim for a tech career, or to go for something else entirely. I decided to do Latin, Ancient Greek and English Literature.
After graduating from university, I first went into HR. This was great for a while, particularly as dealing with people issues in my working life made for a nice contrast from dealing with machines in my spare time. When I started to get bored, I changed paths and now work for the government on transport policy. I enjoy my job, have decent prospects and can still enjoy messing around with computers when I get home in an evening. I've got very different social networks based around work and home lives and, in general, consider myself pretty content. I even find that i can use skills gained from my hobby in the workplace on a pretty regular basis and, when this happens, it's treated as a bonus, rather than something that's demanded of me.
By contrast, most of the people I hung around with at school (and who thought I was mad for picking the A-levels I did) are now in tech jobs and are thoroughly burned out. Their work and their play has all merged into one to the point that they no longer find it easy to care about either. Their single-minded focus on a particular field has left them dependant upon the whims of the tech sector job market, with little real career security (the kind that comes from being able to market yourself more widely if your current field dries up, or even if you just get bored).
To summarise, don't assume that an interst in all things techie necessarily means that a tech career is right for you.