PDA

View Full Version : Computer Science question



dxfoo
10-17-2005, 07:27 PM
Being a student in Computer Science, is it a general necessity to know C/C++ instead of all the other fancy top-market advertising languages such as Java/VB/C#? I'm no stranger to each language, btw. I feel I need to "focus" on one, though. Each language has their own obstacles.. I don't see a point to do that with 3 languages when I'm looking for a general language that can best help me for CS. I believe its C++, because it's still powerful, even after MS's deprecated language hallway. I guess I need confirmation?

Thanks,
Phil

sean
10-17-2005, 08:02 PM
C++ is the best option in my opinion. It offers an excellent combination of high-level abstraction and low-level power. It's very popular and versatile. Though it's good that you're also planning on maintaining proficiency at several points in the spectrum. But C++ is my recommendation right now for what to focus on.

rockytriton
10-17-2005, 08:21 PM
If you are going for a degree in CS, learn C++ (or C, but c++ is more widley used of the two in the real world). If you want to just use the higher level languages like vb/java/c#, then go for an Information Systems degree, but they are about as worthless as the paper they are written on. I think our janitors all have IS degrees.

dxfoo
10-17-2005, 10:03 PM
Thanks for the responses. I'm glad to say C++ wins :)

Rashakil Fol
10-17-2005, 11:34 PM
How about you just learn all of them.

B0bDole
10-17-2005, 11:36 PM
CS at my University is C->Java->C++->asm... in that order, don't ask why.

rockytriton
10-18-2005, 07:21 AM
it makes sense to me. Teaching asm first would be a sure way to get people to drop out of CS programs, though, I probably would have liked it.

dxfoo
10-18-2005, 09:09 AM
Rashakil Fol, if you try to learn them all, are you trying to write in your resume that you can speak english, spanish, german, italian, as well as hebrew, too? This is gauranteed to give you a Mcdonalds job. It's the same thing for programmers. In the past, programmers had assembly/C for most real-world solutions. They were experts at a few in general, and "then" focused on algorithms, etc. that can be applied. A language should be 10% of a solution, not 100% of your study. Today, programmers are given a multitude of languages. It's like a developers market. I talk to programmers today and most of them can't go "beyond" the basic language because they're too busy learning every language they can. At the end, they're like what rockytriton mentioned: janitors. I agree that they'd probably go for CIS majors (Linguistics?) because they're not focusing on where the science should be. Most teachers I talk to in college suggest one focused language like C/C++, and a minor like Java. To anyone, don't focus on many languages because you're less competent for a later job position. Focus on one or two, because learning APIs, efficient networking, databases, graphics, devices, etc. with a single language never ends. You just get better at getting the job done with a few focused languages.

Whew :)

This is the way I see it:

"Why should I give you this job?" the interviewer asks.
"I know every computer language very well!"
"How many projects have you completed?"
"None, but I studied every language very well!"
"So you can build operating systems?"
"Sure, I can do operator overloading!"

Hilarious, but true :) As I said above, I'm no stranger to each language. I'm just ready to take the next step.

dxfoo

Prelude
10-18-2005, 10:18 AM
>A language should be 10% of a solution, not 100% of your study.
The language is how you express solutions, so it's very important that you understand the language you're working with well. But if you only focus on one or two languages, you're missing out on viable options. For example, if I only knew C and Java, I would have more trouble with a program that's heavily text processing oriented than if I knew Perl as well. If you get really good at one language, but can't claim competency with any others, that's a sure way to lose your marketability. Employers want a broad range of skills. This is the way I see it:

"Why should I give you this job", the employer asks.
"Because I know C++ inside and out", you say.
"We don't use C++, do you know Java?"
"No, but I'm a fast learner, and I know all about general programming, so it'll be easy to learn Java."
"Okay then, we'll be in touch...have a nice day."

And here's the amazing secret. You don't have to be an expert to write good code. Most C++ programmers only know a fraction of the language's features and libraries, yet they manage just fine. Being capable will get you a job, being proficient will help you keep the job. So your priority when looking for a job is to meet their requirements, which means being capable with a number of languages. Once you have the job, you can work on honing your skills. Seeking perfection is a worthwhile endeavour, but starving to death in the process is generally a Bad Thing(tm). ;)

dxfoo
10-18-2005, 10:41 AM
Hmm, how many times do I have to say I'm not a stranger to each language? I use all of them on a daily basis. I still feel a focus should be made, and I think we already covered that.

rockytriton
10-18-2005, 11:38 AM
here's an even more realistic one in my area:

"Why should I give you this job?" - The employer asks
"Because I'm an expert in Java" - You say
"Do you know Swing?" - employer asks
"yes, inside and out." - you say
"Do you know J2EE?" - employer asks
"Yes, inside and out." - you say
"What development environment do you use?" - employer asks
"JBuilder" - you say
"Have you used WSAD?" - employer asks
"No, but I'm a fast learner" - you say
"Thanks, we'll get back to you" - employer says

There are sooooo many people out there, especially who know java and say they know J2EE that they pretty much pick and choose on little details like what IDE you use. It's pathetic but that's how the management at the last few places I've worked have been. They filter out a list of people who use the exact same tools that we use, so we usually end up getting someone less competent on the programming side and more competent with knowing where the build button is for the IDE we use.

Prelude
10-18-2005, 12:39 PM
>Hmm, how many times do I have to say I'm not a stranger to each language?
Zero, because I don't care. I was disagreeing to some extent with your response to Rashakil Fol, not telling you what to do.

dxfoo
10-18-2005, 01:39 PM
Oh, okay. For my plan after graduating from CS, I don't see how Java/C#etc could fit in with it. That's why it's not a focus. Most likely I'll be displining in AI for games/robotics which almost requires C++ instantly. At any rate, I'm just glad we all have a sense of direction where to go.

Dante Shamest
10-18-2005, 02:09 PM
I'm in my final 4th year of my Computing degree, and they've not taught C++ at all. However, so far they've taught me alot of other languages during my years here.

C
C#
Java
Prolog
PHP
JSP
CLIPS
Haskell
Postscript

My professors say their aim is to teach us the fundamentals of Computing Science, and to be exposed to as many programming paradigms as possible.