C sharp & C++ for CS Majors using Macs

Discussion in 'Mac Programming' started by Earendil, May 23, 2005.

  1. Earendil macrumors 68000


    Oct 27, 2003
    I have a two part question to request of the Apple community here.

    A little background first. I'm a CS major fresh out of my freshmen year. At this point I am pretty fluent in C++, but that has been (of course) entirely windows based. C++ is pretty cross platform, and in fact most of my projects were also compiled under both Windows and OSX. But there are some things, like reading in from, or outputting to a file that I could not get to work under OSX.

    Is there a book that "teaches" C++ for Apple users, or at least teaches with a cross platform user in mind? Better yet would be a book on XCode, and how to use it in conjuctions with building programs. It would mostly be a refference book so that I can use my knowledge of C++ on my beloved platform. Atm I have too many holes in my knowledge of C++ and XCode to code anything complex for OSX using XCode.

    Questiong number two is smaller (though possibly with more dispute). I want to learn C Sharp in order to increase my chances of getting an intern ship next year. I'm shooting for a specific company that uses both C, C++, and C-Sharp, so it seems like a good idea to pick this language up :)
    As I've pointed out, I'm pretty familiar with C++, so if there is a good book out there that perhaps teaches C-Sharp from the angle of someone versed in C/C++ and just wants to pick up a second language that would be great.

    Also, if there is a forum out there that will accept newbies to OSX programming, I'll happily repost there if need be.

    Thanks guys,
  2. jaseone macrumors 65816


    Nov 7, 2004
    Houston, USA
    Unfortunately I can't help answer any of your questions but I'm sure someone here will be able to... However I was just wondering if many companies if any actually have any C Sharp based projects out there? It hasn't even been on our radar and I haven't heard of any other companies that do...
  3. Foniks Munkee macrumors member

    May 15, 2005
    Try the mono project for C# - mono-project

    C# is getting more and more popular, there are even a number of commercial games being released written entirely in C#. It was designed by a very good compiler/language designer Anders Hejlsberg, the man behind Pascal and Delphi. I've also noticed an increase in jobs for C# developers (at least in Australia) so I don't think it is going away.

    It is an open specification too, so it is not actually under the control of Microsoft, only the actual forms part of the library is (which is considered to be seperate from c# anyway - i.e. it is not covered by the language specification). Much the same way C++ works.

    Sorry - don't know of any books etc.

    [edit] Actually if you are already a good programmer - then pick up "The C# Programming Language" by Anders Hejlsberg et al, its a great guide, but is pretty dry if you have never programmed before. If you are familiar with OOP programming in C++ its great.
  4. Earendil thread starter macrumors 68000


    Oct 27, 2003
    I don't know about the industry as a whole, but this company does R&D on automated drone planes. Learning even a useless language that will help me get a job in the software department here is WELL worth it, trust me ;)
    (Don't ask for the name of the company, I'm not telling)

    That is what I was thinking of. Though from the reviews it might be a little big on the refference aspect and not the teaching aspect. Perhaps I'll pick it up with another book on C#.
    The ideal world would be a comprehensive book on learning C# as learned through XCode :D
    But oh well...

    Can anyone speak for any of these books or their authors? This is just a search for xCode on Amazon.

    Half of them appear to be set for release in June, and at least one of them is schedualed for Sept, so I may not get many opinions on them. But even the ones that have been released have little to none in the way of reviews at amazon.

    Thanks for the replies guys,
  5. csubear macrumors 6502a


    Aug 22, 2003
    My advice is...

    Your going to be in your second year. You may know the c++ syntax very well, but what you need now is to master object oriented design(OOP) concepts. Know c# will help you in the short run, mastering design fundamentals is what is truly imporant. Once you do that you'll be able to design a project in any langauge.

    My advice also would be to do some studing on how operating systems do their work, how the computer hardware does its job (more than just knowing that you plug cpu in to board) Understanding the fundamentals will put you way more ahead of the game and just picking up a second langauge.

    C# is not the language to do this kinda of stuff in. The microsoft enviroment is to auto-magical. It does to many things for you. This only hurts your understanding of how things work.
  6. cubist macrumors 68020

    Jul 4, 2002
    Muncie, Indiana
    C# is not a magical new language by "very good compiler/language designer Anders Hejlsberg". It is, pure and simple, a Microsoft clone of Java, nothing more. Never forget that - and never let any opportunity pass to rub it in the face of Microsoft fanboys.
  7. admanimal macrumors 68040

    Apr 22, 2005
    My advice is to learn how to program in one of the popular languages (C, C++, or even Java) really really well, ideally by writing lots of actual code in it. Once you are very skilled at programming in general, learning a new language is generally reduced to getting used to some syntax differences and a handful of idiosycratic language features. Of course there would be an extra learning curve if you are going from C to some object-oriented language.

    In your situation, I would actually suggest learning Java really well. It is a much more compact language than C++, it is supported very well on OS X, it is more widely used in the real world than C#, and it is very similar to C# (probably even more so than C++). If you get a very good grip on Java, you can pick up most of what you need to know about C# just from reading a book or even some online tutorials or something. Plus you can add it to the list of languages you know.
  8. admanimal macrumors 68040

    Apr 22, 2005
    Haha....that's basically what I just did...I just masked it in a veil of good advice.
  9. Pismo macrumors 6502


    Apr 30, 2002
    I have a CS degree and I think you should concentrate on C, C++, and Java. I was not that crazy about C#. I took a C# class my junior year and it was boring as hell and easy. If you want to apply your programming knowledge to Mac's and PC's, just worry about C, C++, Java, and Objective-C.
  10. Earendil thread starter macrumors 68000


    Oct 27, 2003
    Thanks for the advice, of which I know is very good advice. But let me explain the situation a little better.

    I am currently working at the before mentioned company as a ground support systems guy. I am currently building and putting together the computers that the software runs on (so I'm getting the grasp of hardware one guy mentioned). I'm not working on the drone planes, but I'm part way through my private pilots license, so I know how planes work.
    The classes I will take my sophomore year are more or less set in stone, so there is no changing that. And when it comes to a resume, I can't really say "Oh yeah, and I studied C++ really really hard in my spare time". First off they are going to look at what classes I've taken, what languages I know, my grades, and possibly a project or two.
    They will already know me and who I am, I just need to impress them or show them that I want this job by learning the required languages.

    I have little hope of mastering C++ or C# in the next year, and for what I will be doing (most likely debugging) I won't need to know how to create complex software from the ground up. But I don't want to walk in with a black belt in C++ and see C# code for the first time only to be baffled by the syntax. Plus these guys are moving their code over to C#, it would be good to know C# well enough to understand WHY they are doing this. Obviously someone thinks C# has special benefits to their project.

    C# might be useless to me after this internship, but trust me, working with PhD's in the field of drone AI that is currently being flown over Iraq is a HUGE deal and would be an incredible internship. A letter of recommendation as well as the experience is well worth learning a language I may never use again.
  11. Foniks Munkee macrumors member

    May 15, 2005
    I really just don't want to get into a big MS thing here, it really has nothing to do with the OP's question.

Share This Page