|
|
View Full Version : My Comp Sci Predicament
Ok, so here's what happened:
Today, I went to school to pick up my timetable and get pictures taken. As usual, the table had one or more mistakes on it. But I noticed two spares. Spares that I should not have and DO NOT want. They are located in the blocks that computer science 30 and 35 are supposed to be.
So I catch the guidance counsler on his way out, even though the female dog at the office desk is telling me that I cannot talk to any of them, under *any circumstances*, until after school starts. Anyways, I start talking to the guy, and I ask him (he knows me fairly well, BTW): So, what's up with these two blanks. I know there's supposed to be computer science located in these blocks..
Apparently, the course had been cancelled due to low enrollement. Most knew that enrollment was low, but the worst that was ever supposed to happen was a merge between computer science classes..This coming after 2 full semesters that our tight unit had already taken (10/20). We were learning Java and looking forward to a very exciting year.
Now, I wouldn't have be so upset if the school would have bothered to call me and say that there would be a big hole in my grade 12 year. I would have even been appreciative if they asked me what I might want to replace the course with. But they didn't, and I'm naturally pissed. I spent a good portion of my summer learning Java, menage a uno style (by myself, in english) to get ahead. And it could all be at a major loss.
What's more, I have a very good feeling that the teacher (he's a really nice guy,) was unable to get the textbooks, either through indeciseveness or having been late with book requests.
But that doesn't really matter anymore. I have to move on. And hence my predicament -- After much work on Java, it's unlikely I"ll be taking any courses on it in the future. Although I do have a good deal under my belt, there are better and more practical languages for my purposes. I've always wanted to have a solid foundation in programming, and for that I need a language. So there is a choice: I continue with a bloated and slow language that will likely remain confined to the internet, yet that I've already learned a lot about already (Java), OR I begin studying another, possibly more usefully language such as C++ that I've had no experience with, and that deals with a completely different concept of computer science (non-object oriented)?
What should I do?? Continue with Java, learn C++ or some other language, or drop the whole language bit and focus on something else like brushing up on my primary language of english?
Aside from being angry, I'm not sure whether this is a curse or a blessing, but I intend to make the most of it.
-Thanks.
Angelus 08-27-03, 10:48 PM Umm, C++ is object oriented. C is not. And what you do really depends on what kind of career you want.
My mistake. I was always under the impression that C++ was much different in that it organized a program around the code. That's what I've been told anyways.
No matter, computer science is not a career I'm interested in. I just thought I might take it up as a hobbie (Fun, creative, and great exercise for the brain.) But maybe I'm just wasting my time? So the most beneficial thing would be the word of experience.
Is this kind of a hobbie a waste of time?
Do I need to take university courses to attain a solid foundation in a reasonable amount of time?
So many questions..
testify 08-28-03, 02:04 AM Java is bloated? Pfft! That's right...PFFFT! I would say continue with Java. I love it far more than I ever did C++. First off, it is is no way, shape, or form restricted to the internet.
It is great for making local app's because they so rarely OS dependent. A friend of mine is very serious into making a new java editor (with java). He has spent over 8 years I believe on it (he tried doing it on C++ twice, but always came back to java).He recently asked a a few of my friend and I to start helping him out with it. Needless to say I am so excited, because it will help me learn so much more.
That's the thing about java....you can never stop learning about it. If you are getting bored with it you can always go over to some MFC Wizard template maker. But me, I prefer to make things on my own, the way I like it.
Angelus 08-28-03, 09:18 AM Java's fine for writing programs that aren't memory intensive, but because it isn't a compiled language it comes with a lot of overhead. If you wanted to do things like games, or other graphics or memory intensive apps c++ would be the way to go.
bigjnorman 08-28-03, 07:30 PM C++ is very much like Java. If you know Java, learning C++ is not difficult.
Here is a good C++ reference:
http://www.cprogramming.com/tutorial.html
Another suggestion...
You might look into C#.
C# isn't widely used in any sort of academic environment that I've ever heard of. C# is also a proprietary product. There are no compilers for C# other than Microsoft's. If you want that kind of easy of use. You already have it in Java. Using GJC it is even possible to native compile Java.
Learn the big three. C, C++, and Java. Most of the programming I do is in what I like to call, C+ since it is object oriented (a la C++) but primarily C coding style ( for instance I hate streams, and prefer to use printf()). Going from C to C++ is a breeze especially if you already understand the OO concepts from Java.
-AntonK
Everything AntonK says about C# is true, but it does have some upside as well.
1) It is strictly OO (C++ lets you do everything in the old C fashion)
2) It has a very nice and clean OO syntax (well, I found it nice anyway)
3) It compiles to an .exe (or .dll)
Basically, it is everything I like about Java but in a fully compiled language.
I still do alot of maintenance coding in C, but mostly work in the J2EE/EJB environment.
btw... AntonK, have a link to GJC?
Edited to add: Never mind on the link... I found it.
okinrus 08-29-03, 05:54 PM I wouldn't be suprised if C# is used in distrubuted computing courses, especially because of the MS free stuft, but haven't taken any such courses at my college. I haven't tried it, but but I don't think GCJ can compile awt and swing code to an .exe. Java isn't too slow if you have a new computer, but mines a pentium two and most java code runs kind of slow. C++ and java are so similar that you could probably learn both at the same time as a hobby.
testify 08-30-03, 12:05 AM Basically, it is everything I like about Java but in a fully compiled language. You don't like the fact that java is OS independent and that C# can only be run on windows? This is one of the greatest advantages that java has over C#, it's not tied down to micro$oft.
Blindman 08-30-03, 08:36 AM You don't like the fact that java is OS independent and that C# can only be run on windows? This is one of the greatest advantages that java has over C#, it's not tied down to micro$oft.
Ha ha.. The power of microsoft will win this easily. C# is OS independent... MAC, WINDOWS, and soon LINIX. Then the world...
If you dont like C# try C++, C, VB, VBscript, JavaScript. They all compile into the same op-codes. Just in time compilation was experimeted with with JAVA, now microsoft make it an effective solution with dotNet. The SUN will fall..
It does not matter what language you use. After a few years experiance you should be able to programme in any language.
Originally posted by testify
You don't like the fact that java is OS independent and that C# can only be run on windows? This is one of the greatest advantages that java has over C#, it's not tied down to micro$oft.
Well, even java has some platform dependency issues.
There are two fast jre's. The one for windows and the one for Solaris. (Unless others have be released since my last check). If I am writing software that must perform well, I can't really use java on any platform but those two.
But, mainly I am writing java to run on windows machines....
Thanks for the insight guys!
For now I think I'll stick with Java. After a while, I'll move on other languages (transition shouldn't be too hard if you guys are right.) As suggested, it's a very versatile. That's the main sticking point for me.
Oh -- and The fact that I plan on using linux from now on (just decided on it a couple of days ago) as my main OS also makes Java the most practical choice. Anybody know of a developement kit like IBM visual age for linux?
Esoteric 08-30-03, 06:08 PM Originally posted by Xerxes
Thanks for the insight guys!
For now I think I'll stick with Java. After a while, I'll move on other languages (transition shouldn't be too hard if you guys are right.) As suggested, it's a very versatile. That's the main sticking point for me.
Oh -- and The fact that I plan on using linux from now on (just decided on it a couple of days ago) as my main OS also makes Java the most practical choice. Anybody know of a developement kit like IBM visual age for linux?
Word of advice, switch majors and do computer science at home. I taught myself visual basic and am now lerning c+ (while i major in Mechanical Engineering).
Ever heard of outsourcing?. My brother in law majored in economics, but bought all the books and did computer science at home. Now he is working for Cisco as a network engineer and is a bonafied computer scientist (with a degree to fall back on if he is ever outsourced). think about it, its the reality.
No kidding?!
I was actually planning a degree in economics, myself. Now Computer science always sounded like an interesting uni course, but I was always told that the job prospects are very poor. BUT if I can pull it off, outsourcing would be an excellent thing for me to try. Especially if I can use it to land a nice job -- doing something fun. Thankyou for the information, Esoteric.
Of course if it doesn't work out I'll always have economics. speaking of which...I'm about to sell some stocks at a 350% profit:D
Good news everywhere..
EDIT:: Could you explain the concepts of 'outsourcing' a bit more? I assume it translates roughly as homeschooling for university students, right?
Esoteric 08-30-03, 07:09 PM Originally posted by Xerxes
EDIT:: Could you explain the concepts of 'outsourcing' a bit more? I assume it translates roughly as homeschooling for university students, right?
Lol, no. Outsourcing means "outsourcing" your jobs overseas for cheaper labor, inevitable consequence of globilization. There are a lot of Indian IIT grads who would be willing to do you computer science job for 70 percent less income.
http://story.news.yahoo.com/news?tmpl=story&u=/techtarget/20030813/tc_techtarget/919147
testify 08-30-03, 11:38 PM I know this is a bit off topic, but can anyone tell me who exactly is developing the middleware (I think it's called) for C# on linux? I just knew that stupid .NET C# wasn't being moved over to linux, but I thought that there wouldn't be any C# at all.
If you dont like C# try C++, C, VB, VBscript, JavaScript. They all compile into the same op-codes. Just in time compilation was experimeted with with JAVA, now microsoft make it an effective solution with dotNet. Can you tell me the point of MS doing this? I mean, why have 5 languages that compile into the exact same code?
Blindman 08-31-03, 03:18 AM Can you tell me the point of MS doing this? I mean, why have 5 languages that compile into the exact same code?
To give the customer a choice and to support exisiting code and skill sets.
The middleware is called a virtualMachine. Every computer that runs JAVA or C# must have a virtualMachine to run the code. Its job is to convert the op-codes into machine readable code (native assembly). There may also be a few CPU's that can use JAVA op-codes directly.
testify 08-31-03, 03:31 PM Sorry, C#.net does not use a Virtual Machine. From what I have understand all of the languages in the .NET package compile into a an executable .exe, including C#.
To give the customer a choice and to support exisiting code and skill sets. That's why they chose to support C# instead of an already concrete language like Java ( even though they are OH SO CLOSE to being the same syntax ). From what I can see, M$ is trying to take a big chunk of all the java writers and move them over to C#.NET while in the process of getting people to learn all the other .NET languages. Can anyone say monopoly?
Originally posted by testify
Sorry, C#.net does not use a Virtual Machine.
Oh yes it does. Specifically C# gets to compiled to byte codes conforming to the CLI (Common Language Infrastructure), to be able to run on a CLR (Common Language Runtime). All languages for the .Net framework compile to the CLI byte codes. Basically C#/CLR/CLI is a copy of Java with one addition: Language independence.
So, to summarize:
Java: write once, run everywhere.
.Net: write in anything, run on windows.
If you are interested in real language(off course C is my other favorite;)) learn Perl! and VC++.If you have time you could do a little advanced stuff on C like Socket programming,TSRs,Window programming etc.
For building Commercial application though Java,VB and C# are among the favorites of mine...
bye!
Blindman 09-03-03, 09:43 AM .Net: write in anything, run on windows. and any machine that can run CLI op-codes. Microsoft has no secrets here and anyone that bothers can write a "just in time compiler" for any system, even for washing machines...
|