Computer Science Dilemma!

Dabisu
Unregistered
 
Post: #1
Hi, I switched over to Macs not too long ago, and I love it. I really want to get into game programming, and I plan to major in Computer Science in college. However, I found out the college I was planning on going to teaches everything on Windows. I would've been fine with anything but Windows, like Unix or Linux.

I know the actual programming language is the same no matter what OS, but the API is different. I feel a bit worried about learning to do everything in Windows, and I don't want to get so accustomed to programming on Windows for my class that I won't be able to work as well in OS X. I’d feel more comfortable working with Unix, because OS X is based on Unix.

Has anyone else had this type of problem before? I know some of my concerns may sound stupid because I'm not that well informed on the subject. Is it not that big of a deal, is it easily overcome?

Any feedback would be great, thanks!
Quote this message in a reply
⌘-R in Chief
Posts: 1,260
Joined: 2002.05
Post: #2
If it's anything like my school (which is one of the top publicly-funded in the country), they won't even teach you Windows-specific APIs very much. Yes, you'll learn Visual Basic if you take an interface class, but they don't teach you the Win32 APIs for example. It's all about the language and solving a problem, and after that it's a bunch of random junk like assembly language, the core of how an OS works, simulation of event-based systems, how to be a good little engineer and waste 49 hours of a 50 hour project on use case and other assorted UML diagrams and specs, Java, writing technical papers, business communication, how programming languages work, then lots of choices for electives which is where all of the interesting stuff actually is. The school is not there to teach you Windows, it's there to teach you everything else, doing it on a Windows machine (or Linux depending on the class). The amount of windows stuff I've learned after three years is basically non-existant. I know sys("clrs") or something like that will clear the console in DOS, and that's it.
Quote this message in a reply
Moderator
Posts: 608
Joined: 2002.04
Post: #3
APIs are easy enough to learn. That's not what you're going to school for.
Quote this message in a reply
Dabisu
Unregistered
 
Post: #4
Ok, thanks guys! That makes me feel a lot better about going to this college. Maybe I'll stop back here later with something I'm working on after I start school.
Quote this message in a reply
Moderator
Posts: 1,140
Joined: 2005.07
Post: #5
You won't really know until you go there. If you find it inadequate, you can always transfer to a different school.

And just FYI, you need to be careful: a lot of schools are moving to teaching pure Java. Unfortunately, with Java, you miss out on a whole aspect of programming: pointers. (this is ignoring the myriad of other problems) I'm fortunate to be going to a school that teaches in Unix (namely Solaris) with some Java, but also other languages including C, C++, assembly, and probably a few others. (unfortunately, the class I'm taking this quarter is offered in C and Java, switching every 2 quarters, and this happens to fall on a Java quarter and I can't delay taking it. Cry)
Quote this message in a reply
Member
Posts: 469
Joined: 2002.10
Post: #6
akb825 Wrote:You won't really know until you go there. If you find it inadequate, you can always transfer to a different school.

And just FYI, you need to be careful: a lot of schools are moving to teaching pure Java. Unfortunately, with Java, you miss out on a whole aspect of programming: pointers. (this is ignoring the myriad of other problems) I'm fortunate to be going to a school that teaches in Unix (namely Solaris) with some Java, but also other languages including C, C++, assembly, and probably a few others. (unfortunately, the class I'm taking this quarter is offered in C and Java, switching every 2 quarters, and this happens to fall on a Java quarter and I can't delay taking it. Cry)
Agreed. My school (SJSU) teaches Java primarily. While this is good on a conceptual level, it often presents absurd implementation restrictions (even in classes SJSU offers). e.g. In my Information Security class we had to implement TEA and RC4 encryption algorithms for the first homework. This is almost impossible to do with Java because of the need to do 4-byte unsigned int math. Had I not been fluent in C (which isn't taught or required), I might've ended up like my friend Joseph (who only knows Java) who turned in an incomplete and non functioning implementation.

---Kelvin--
15.4" MacBook Pro revA
1.83GHz/2GB/250GB
Quote this message in a reply
Member
Posts: 338
Joined: 2004.07
Post: #7
I managed just fine at UCLA- a lot of stuff was on Unix and had to be submitted via telnet, so in many classes I never needed to even touch a windows box. The only obstacles there were classes that used a specific program that was only on Windows. For instance, in the assembly class we used a program that emulated a CPU, which was windows only, and there was a windows-only program used in the computer architecture classes. For these I had to either use a roomie's computer, or just go down to the labs on campus.

Justin Ficarrotta
http://www.justinfic.com
"It is better to be The Man than to work for The Man." - Alexander Seropian
Quote this message in a reply
Member
Posts: 49
Joined: 2006.07
Post: #8
I just finished my sophomore year of college and have programmed only in UNIX for my classes, but was able to learn enough about Carbon windows and event management to put up an OpenGL context and respond to keypresses (basically everything Mac-specific that I need for my game) within a week. The hardest thing for me has been learning to use Xcode, not learning the APIs. ZeroLink really threw me for a long time. If you search my name you will see all sorts of posts where people have helped me with linker problems.
Chances are your classes won't even use real APIs for any platform a lot of the time. I had a class last quarter with a section on multithreading and they had their own thread library made for the class. The idea is to simplify things so you are learning the concept instead of struggling with obscure syntax.
Quote this message in a reply
Krazygluon
Unregistered
 
Post: #9
I had a CS professor who had a very useful quote: "You don't go to school in CS to learn A language, or AN API. You go to learn the core skills of programming and computer science that allow you to pick up any API, language or architecture and do computing with it"

I would shy away from any school that teaches windows-centric programming because it likely isn't going to teach the stuff mentioned in that quote (things like pointers, data structures, what EVERY OS has to have in it to work, a little bit of assembly, etc)
Quote this message in a reply
⌘-R in Chief
Posts: 1,260
Joined: 2002.05
Post: #10
You can't not learn about pointers and data structures, no matter what platform you're on.
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  old computer software anddrew 2 2,895 Dec 13, 2007 12:07 AM
Last Post: AnotherJake