Introduction to programming

Posted:
in General Discussion edited January 2014
Can anyone recommend any books/websites/applications I can use to begin my first foray into application development/programming though not necessaril Mac-related?



I was planning to pursue a graphic arts/video production degree but it's looking more and more like I'll be limited to an engineering school; both computer engineering and computer science are offered as majors. If anyone knows anything that can help me acquaint myself with modern languages and programming environments, I'd be much obliged.
«1

Comments

  • Reply 1 of 35
    [quote]Originally posted by cooop:

    <strong>Can anyone recommend any books/websites/applications I can use to begin my first foray into application development/programming though not necessaril Mac-related?



    I was planning to pursue a graphic arts/video production degree but it's looking more and more like I'll be limited to an engineering school; both computer engineering and computer science are offered as majors. If anyone knows anything that can help me acquaint myself with modern languages and programming environments, I'd be much obliged.</strong><hr></blockquote>



    Good luck finding a school to study Mac programming. You will most likely have to learn on a Wintel and then teach yourself the cool Mac stuff. Good luck in your endevour!
  • Reply 2 of 35
    cooopcooop Posts: 390member
    Thanks. Is there any way to program for a Wintel on a Mac with or without Virtual PC?
  • Reply 3 of 35
    The first stuff you do will probably be in ANSI C or C++, where the code itself is platform independent for the most part; however, you'll still have to compile your software for the platform it needs to run on, since, as you probably know, when you compile something, your code is translated to machine language which depends on a specific OS and processor. But with ANSI C/C++ you could write and test the code in Mac OS and then just recompile it with a Windows compiler.



    When you're comfortable with the basicis, though, you'll want to make programs specifically for a platform. You could probably get by with Virtual PC, but I'm thinking it would be rather sluggish. The best way to program for Windows would probably be with a cheap PC and Microsoft Visual C++. You can obviously still write your code on the Mac, but you'd have to test it and compile it under Windows. If you're a bad programmer like me who has to test small amounts of simple code repeatedly just to get it to compile, it'd be less of a hassle to just go PC all the way.



    You might want to look into Java; it might help with some of the cross-platform issues, and it's a lot like C++. Hopefully someone else will be able to tell you what you can do with it; I don't know enough about it but it might be a good option for you.



    Chances are you'll have to use Windows or some other PC system eventually. I only had to submit ANSI C++ code for the first year programming courses that I took, so I did that work on a G3.

    For my second year course, I had to write x86 assembly and had money for a computer, so I bought a PC.
  • Reply 4 of 35
    cooopcooop Posts: 390member
    Thanks for the information. Can you recommend any ANSI C books that I can use to get started?
  • Reply 5 of 35
    Check out <a href="http://www.codewarrioru.com"; target="_blank">www.codewarrioru.com</a>

    excellent place, it is a course online for free all you have to do is order the book
  • Reply 6 of 35
    yurin8oryurin8or Posts: 120member
    [quote]Originally posted by speechgod:

    <strong>



    Good luck finding a school to study Mac programming. You will most likely have to learn on a Wintel and then teach yourself the cool Mac stuff. Good luck in your endevour!</strong><hr></blockquote>



    I learnt programming basics with Scheme on vax and pc's...later went on to cobol, C, Eiffel, Smalltalk, C++, Java.



    Learn the fundamentals, then specialise.
  • Reply 7 of 35
    spotbugspotbug Posts: 361member
    [quote]Originally posted by cooop:

    <strong>Can anyone recommend any books/websites/applications I can use to begin my first foray into application development/programming though not necessaril Mac-related?</strong><hr></blockquote>



    I don't have a specific book in mind, but you'll want to start with a (text) book on straight ANSI C. Hopefully the book you end up with won't even mention a particular platform - it shouldn't. Back in my day ('83 or so) K&R was the book.



    After you understand C, move on to C++. A lot of people learn C++ while they learn how to program for a particular platform. But, again, ANSI C++ is not tied to a platform.



    [quote]<strong>computer engineering and computer science</strong><hr></blockquote>



    You're probably aware of this already, but just in case: Computer Engineering is more hardware oriented. Computer Science is more software oriented. At least where I went to school, that's how it was. From your question, it sounds to me like you're more interested in Computer Science.
  • Reply 8 of 35
    spotbugspotbug Posts: 361member
    [quote]Originally posted by cooop:

    <strong>Thanks. Is there any way to program for a Wintel on a Mac with or without Virtual PC?</strong><hr></blockquote>



    You can do Wintel development on your Mac with Codewarrior and Virtual PC. It's harder for debugging, but you don't have to buy another computer. I (and at least one other developer I know) have done this for "real" software.
  • Reply 9 of 35
    cooopcooop Posts: 390member
    Is CodeWarrior the best Mac C/C++/Java compiler?
  • Reply 10 of 35
    cooop, what you really want is REALbasic. It allows you to write applications for Mac OS 9, Mac OS X, and Windows, all from one environment on your Mac. REAL Software also offers academic price breaks!



    <a href="http://www.realsoftware.com/"; target="_blank">http://www.realsoftware.com/</a>;



    Oh, and ignore the REALbasic badmouthers who will say that it is bloated, bad, etc. It is easy to use and creates perfectly fine applications. Plus, it teaches you a lot about Object-Oriented programming. Try the demo and see!



    For questions about it, I suggest that you join the REALbasic NUG mailing list. There are many people there, myself included, who are more than happy to help you get started and answer any questions you have.



    To subscribe: [email protected]

    Digest mode: [email protected]



    PS - No, I don't work for REAL Software. i'm just another satisfied customer.
  • Reply 11 of 35
    spotbugspotbug Posts: 361member
    [quote]Originally posted by cooop:

    <strong>Is CodeWarrior the best Mac C/C++/Java compiler?</strong><hr></blockquote>



    For Mac C/C++/Java development you've basically got two choices: CodeWarrior or Project Builder.



    I would say CodeWarrior is the best (my opinion). Project Builder comes free with OS X (!!!!), but it's OS-X-only. CodeWarrior will let you do Mac OS 9 and Mac OS X (and Windows) development.



    [ 06-17-2002: Message edited by: spotbug ]</p>
  • Reply 12 of 35
    irishirish Posts: 8member
    [quote] Good luck finding a school to study Mac programming. You will most likely have to learn on a Wintel and then teach yourself the cool Mac stuff. Good luck in your endevour! <hr></blockquote>



    There are several schools that make it quite easy to do CS/CE stuffs with a Mac.



    [quote] I would say CodeWarrior is the best (my opinion). Project Builder comes free with OS X (!!!!), but it's OS-X-only. CodeWarrior will let you do Mac OS 9 and Mac OS X (and Windows) development. <hr></blockquote>



    Codewarrior's compiler is the best one avaiable on the Mac platform hands down, esp. for AltiVec programming. However, PB is certainly not a Mac only dev platform. If you notice, it is also great for Java.



    Now to say that it only runs on OSX would be correct.
  • Reply 13 of 35
    thuh freakthuh freak Posts: 2,664member
    REALBasic is REALLY BAD to learn on. You should definitely NOT learn it to start. Especially if you are learning to get a jump on college. While it has some strong suits, the whole paradigm that it adhers to is bad. Prog'g in other languages (aside from vb) is nothign like it.



    I think many colleges start their cs (and similarly major'd kids) on java (mine did, and so did some of my co-workers). It's fairly simple, and (like some1 else mentioned) very similar to c++. c/c++ are the most popular languages, so eventually u'll prolly want to learn them. i didn learn it from a book, but from class and adding to c++. I suggest codewarrior's beginner's cd, "Discover Programming..." if its still in production, for learning c, c++, and java. That's what i learned on (after i learned the now nearly archaic BASIC).



    Some1 said that Project Builder can only make MacOSX progs. I haven't tried it, b/c when i went X i didn intend on going back, but you can make carbon progs (which should work on OS9, and possibly 8.x with carbon extensions).
  • Reply 14 of 35
    gilboitgilboit Posts: 6member
    Hey cooop I was just going to post a thread like this. I am getting into robotics/software egnieering and was wondering the same. I am currently messing around with lego mindstorms and NQC(not quite c) for the Mac, sing a usb ir tower . NQC is close to C and that's why I went this direction. I also have the learning edition of Codewarrior and might purchase the full package later on.



    Anyways, I was checking for Mac robotics pages out there - NADA, NOTHING.



    I was trying to figure out what type of software a roboticist might use and what platform but I haven't found much of anything. I was also thinking of getting OSX just because of it's Unix core. There might be some languages that run on Unix. Guys, what do you think? <img src="graemlins/hmmm.gif" border="0" alt="[Hmmm]" />
  • Reply 15 of 35
    gilboitgilboit Posts: 6member
    here's a site that might help



    <a href="http://www2.swarming.net:4444/webring/"; target="_blank">http://www2.swarming.net:4444/webring/</a>;
  • Reply 16 of 35
    [quote]Originally posted by thuh Freak:

    <strong>REALBasic is REALLY BAD to learn on. You should definitely NOT learn it to start. Especially if you are learning to get a jump on college. While it has some strong suits, the whole paradigm that it adhers to is bad. Prog'g in other languages (aside from vb) is nothign like it...

    </strong><hr></blockquote>



    Could you please elaborate on this?
  • Reply 17 of 35
    mcqmcq Posts: 1,543member
    cooop:



    It's definitely a good idea to learn ANSI-C... depending on what university you go to, they'll either start you off with either C or Java. I currently go to the University of Florida, and they teach CS courses in Java, which I find relatively easy to learn and probably easier for the beginner to pick up. If you learn C first, you'll most likely have no problems learning Java later on. Speaking of which, I should probably start making an attempt to learn C...



    As for books, this one seemed to get pretty good customer reviews at Amazon:

    <a href="http://www.amazon.com/exec/obidos/ASIN/0131103628/qid=1024378700/br=3-1/ref=br_lfncs_b_1/104-5482949-2623946"; target="_blank">The C Programming Language</a>
  • Reply 18 of 35
    rick1138rick1138 Posts: 938member
    [quote]



    I am getting into robotics/software egnieering



    <hr></blockquote>



    If you are interested in v-bots go to <a href="http://www.spiderland.org"; target="_blank">www.spiderland.org</a>



    [ 06-18-2002: Message edited by: Rick1138 ]</p>
  • Reply 19 of 35
    thuh freakthuh freak Posts: 2,664member
    [quote]Originally posted by graphiteman:

    <strong>Could you please elaborate on this?</strong><hr></blockquote>



    i think rb is bad for learning because, when ur beginning prog'g, u shouldn' do GUI shyt. theres a lotta under the hood shyt a person should learn. plus, apps made with better languages are faster (especially those in procedural c), and can take advantage of lower level things. finally, the way my teacher explained it to me when i was learning to prog was: the easier the language the less power it has. and rb is just too easy .
  • Reply 20 of 35
    [quote]i think rb is bad for learning because, when ur beginning prog'g, u shouldn' do GUI shyt. theres a lotta under the hood shyt a person should learn.<hr></blockquote>



    There's a lot of in the dictionary shyt a person should learn too. Sorry, I can't help myself.



    The point is good though: concentrate on the fundamentals first, so they aren't an issue when you want to do more complicated stuff. On the other hand, I don't think it hurts to experiment just to give yourself a taste of what you'll be able to do later on -- keeps you interested.



    [quote]finally, the way my teacher explained it to me when i was learning to prog was: the easier the language the less power it has. and rb is just too easy<hr></blockquote>



    I think that 'empowerment is more important than power' is a better saying.



    What attracted me to programming was HyperCard, and that transparently taught me object oriented programming -- a very empowering concept that I think is still cool (there's more to be discovered by people).
Sign In or Register to comment.