my dog learned polymorphism*
The moose likes Jobs Discussion and the fly likes How does Java relate to Computer Science Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Careers » Jobs Discussion
Bookmark "How does Java relate to Computer Science" Watch "How does Java relate to Computer Science" New topic
Author

How does Java relate to Computer Science

HaoZhe Xu
Ranch Hand

Joined: Nov 03, 2003
Posts: 222
I am going to do Computer Science next year in Melbourne Uni, but there's only C involved in that course, so do I have to abandon Java and get familiar with C?


[url]Olnex.net[/url]
[SCJP 1.2, SCJD, SCWCD]
Marc Winder
Greenhorn

Joined: Nov 26, 2003
Posts: 6
No, don't abandon Java! C and Java are similar in syntax so you should not have a problem there. It will be taking a step back as far as OO goes and many other improvements that Java made over C but stick with Java. I wrote C code for a few years before I started using Java and I found Bruce Eckel�s, Thinking in Java, very helpful. It�s meant to take a C programmer into Java but you may find it helpful going the other direction too since it points out the major/minor differences along the way. Try and look at it as reverse engineering

Good luck!
Linda Pan
Ranch Hand

Joined: Sep 24, 2001
Posts: 96
I asked someone a similar question. This person suggest jumping right in and learn Java.
danny liu
Ranch Hand

Joined: Jan 22, 2004
Posts: 185
Xu:

Abandon C and learn java.

Dan
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 15957
    
  19

I worked with C for years and even pioneered an early C++ compiler product. Nonetheless, if they're planning to teach basic CS using C, I'd be worried. C is a language full of tricks. For basic algorithm learning, you don't want to be learning language tricks, you want to be learning about the algorithms themselves.

Now that Java implementations rival C for execution speed, I almost never code in C. Java's feature set (e.g. standard classes) is much, much richer, and there's less temptation to use language tricks to accomplish things.

However there is still a place for C. Places where a JVM environment isn't appropriate or perhaps even possible. Like OS kernels and device drivers or low-level access to I/O devices and system services. So to be a real CS heavyweight, you really ought to know Java AND C.

Like me!


Customer surveys are for companies who didn't pay proper attention to begin with.
Mark Herschberg
Sheriff

Joined: Dec 04, 2000
Posts: 6037
Computer science is a set of ideas about mathematical relations. Practically speaking, these releations are often expressed and made useful through programming. Most CS programs employ one of more languages to provide a concrete medium in which students can work with these ideas. E.g. a stack is an interesting concept, but it feels more real when you start poping things off of one rather than just looking at some markings on a blackboard.

Your school has choosen C as the medium. Learn it. Learn Java, too (well, it looks like you already have). The languages are not mutually exclusive. Most of the concepts you know from Java will apply to C. You need to learn pointers, but it's not that hard. The only other tricky part is that C is proceedural, not OO-but I suspect it's easier to go this was than from proceedural to OO.

So don't give up on Java, even if you don't use it much for a year or so. I'm sure you'll use it in the future, and knowledge of C can only help you.

--Mark
Robert Chisholm
Ranch Hand

Joined: Jul 18, 2004
Posts: 69
IMO languages are a fairly small part of the big IT puzzle. You should know at least 2 or 3 after graduating from a post-secondary school. And depending on what you do after you graduate, you'll probably pick up a few more. Is the curriculum all C? or is C for the intro courses?

You should pick a language to focus on that is job-worthy: and take some advanced courses in it. For instance, I would tell someone it's fine to take an intro C course... but I'd also recommend an intro Java course over an advanced C course because I find that I'm rarely using C anymore in the work-place.

Also, as Mark pointed out, programming languages are often used as the vocabulary for algorithms and mathematical/IT concepts. In those cases, the language is really irrelevant. It's the concept that you need to grasp -- not the syntax.


SCJP 1.4<br />(WIP) SCJD B&S v2.3.3
HaoZhe Xu
Ranch Hand

Joined: Nov 03, 2003
Posts: 222
Thank you all!
what is IMO?
Joyce Lee
Ranch Hand

Joined: Jul 11, 2003
Posts: 1392
Hello HaoZhe,

IMO = In My Opinion

You can find a list of acronyms here.

Joyce
Eric Lemaitre
Ranch Hand

Joined: Jul 03, 2004
Posts: 538

Hi HaoZhe XU !

I made much C language, for about 6 years, it is an excellent language but of 2nd geneation, so just above assembly language, but still very close to machine (you access directly to memory areas through "pointers"). Yes, C is full of tricks but it is fast, simple, and exists on all platforms, so don't hesitate to learn it at school if you need it.It is an excellent language but loosy typed and low level (not object oriented at all).

But modern development is object oriented and Java (or $Soft's copy C#) is the best language to learn for an awful lot of good reasons. If you want to find a job you need Java so you simply need it. It is best high level language available right now.

Your shcool is right to carry on learning C for in Computer Science you learn about hardware ALU, registers, DMA, ..., so near machine C is perfect. But computers are used to develop software and modern development relies on object oriented models which are not longer tied to machine, best proof is that Java VM defines his own primitive data types so as to run the same way of any platform thanks to adapted runtime. So C and Java philosophies are totally different but both are excellent and useful.

In conclusion learn both, C for school and Java for work, simply don't forget their philosophy (low level near machine, high level object oriented). But think immediately about Java certs because as you have none in your scholarship you will need some acknowledgement.

Best regards.


Eric LEMAITRE
CNAM IT Engineer, MS/CS (RHCE, RHCX, SCJA, SCJP, SCJD, SCWCD, SCBCD, SCEA, Net+)
Free Online Tutorials: http://www.free-tutorials-online.net/
Billy Tsai
Ranch Hand

Joined: May 23, 2003
Posts: 1297
how long is computer science degree in university of melbourne?


BEA 8.1 Certified Administrator, IBM Certified Solution Developer For XML 1.1 and Related Technologies, SCJP, SCWCD, SCBCD, SCDJWS, SCJD, SCEA,
Oracle Certified Master Java EE 5 Enterprise Architect
HaoZhe Xu
Ranch Hand

Joined: Nov 03, 2003
Posts: 222
3 years
1 extra year (honour) for a further study (a project)
Svend Rost
Ranch Hand

Joined: Oct 23, 2002
Posts: 904
Hi,

I found this on your universities homepage:

"All students will be introduced to a range of modern programming paradigms, including procedural programming (e.g. C), object oriented programming (egC++), functional programming (e.g. Haskell), and logic programming (e.g.Prolog)."

After learning the above programming paradigms, learning Java will be
anything but hard. After all, the syntax (like others also mentioned)
is very similar - it's the way you think and the way you solve
problems that matters.

- Svend Rost
[ August 14, 2004: Message edited by: Svend Rost ]
HaoZhe Xu
Ranch Hand

Joined: Nov 03, 2003
Posts: 222
but in the open day the stuff told me the language that will be used is C.
if i can choose to use java, of course i will.
Sania Marsh
Ranch Hand

Joined: Jul 12, 2004
Posts: 469
I took C, C++ and Java in school, I got A+ on all those courses, but I didn't know even 50% of what I needed to be able to get a normal job. So, I think no matter what you learn in school, you should do 3 times more work than what school requires. Go to Monster.com, see what's hot out there, and if your school doesn't offer it, learn it yourself, buy a book and read it. You will never find school that teaches you all the hot stuff, because then it wouldn't be a school, it would be one of those expensive courses. School is suppose to give you a base logic, teach you how to think, so that you can move on on your own.
Get certified, it will be a good proof that you are at a level recent grad should be.
I really believe it is very important to understand pointers even prior to learning Java, and you will learn them taking C, C++ or data structures with C. Yes, it is tricky and may be little hard to write linked list in C, but now you will know how Java's collections are built. I realized it is much easier to learn programming stuff if things make sence. Knowing C's pointers will explain lot of Java's tricks.

One tip on learning any language - learn it so that you can teach a class 5 moths later. Make everything clear, it may take time to understand OO related stuff, but some day it will become easier than simple math. Take your time, if you have to write 100 small programs to test everything about, for example, Polymorphism - do it! Even if it will take 3 sleepless nights, you won't regret it.
HaoZhe Xu
Ranch Hand

Joined: Nov 03, 2003
Posts: 222
I went to monster.com:
http://www.monster.com/geo/siteselection.asp
but there's no australia in the list, so i selected from the drop-down list, but nothing happened? Who can tell me the address of Australia monster?
Sania Marsh
Ranch Hand

Joined: Jul 12, 2004
Posts: 469
I didn't mean to look at monster for jobs in your area, you can just figure out what most employers are looking for. You can do that as well with any job search engine in australia.
HaoZhe Xu
Ranch Hand

Joined: Nov 03, 2003
Posts: 222
what about dice.com?
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How does Java relate to Computer Science
 
Similar Threads
Master of science or just Master?
Looking for a programmer Job
Anyone considering a PhD in computer sciences any more?
Computer Science Degrees
Jobs in Java?