Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

My First Computer, Advice Please

  1. Mar 19, 2006 #1
    We got a flyer in the mail today that I'm able to deliver flyer's in my area, and my sister thinks I'll earn at least $100 a month by doing this two times a week two hours a day.

    I've got the patience and with this job I want to start saving up for my very own computer, the only problem is I don't know what to buy.

    I want to be a programmer when I earn a living on my own some day, so I was wondering if you guys could give me suggestions for buying a computer that would be suitable for a programmer including the type of Operating System it has and etc. if at all possible.

    I would really appreciate ANY help on this. After all I cant go asking a company's site what brand of computer I should buy :rolleyes:, so the only logical idea is to ask people with experience.
     
  2. jcsd
  3. Mar 19, 2006 #2
    If you want to learn programming really well, I would recommend a powerful computer, it makes life much better.

    learn linux though for OS, but keep windows. Mac really isn't that great for programming work, linux is prolly the best (if i am wrong, correct me).
     
  4. Mar 19, 2006 #3

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    physicsCU, eveything you've said is basically wrong. You really don't need a powerful computer at all to learn how to program; I have no idea why you'd come to that conclusion. In fact, any computer made in the last ten years would run Linux quite well, and that's all you need. In fact, the computer you have now is certainly adequate. If your hard drive is small, you might consider buying a larger one so you have room for a Linux distribution, though.

    The languages that you'd start with (ANSI C, or Java, or Python) are available and behave identically under Linux, Mac, and Windows. It comes down to personal preference. Keep in mind that you'll probably end up using the computer for more than just programming.

    I do suggest a Unix variant (MacOS X or Linux), as some exposure to Unix will help you understand computers in general better. MacOS X is as good (or better) for programming than any other kind of Unix. Again, I have no idea why physicsCU claims what he does.

    - Warren
     
    Last edited: Mar 19, 2006
  5. Mar 19, 2006 #4
    Ah, chroot, thank you for correcting me.

    I forgot that those languages run the same in Linux, however, I did recommend linux to him as the best option.

    I do a lot of numerical work in MATLAB, that is why I said i powerful computer is best. For just python programming or C, you are right. But for what I do, I notice a huge difference running stuff on my powerful computer versus my laptop. and a powerful computer DOES help with speed, you know that as well as i do. So if he is set on buying a new computer, he wants to be as future-proof as possible.

    It is a smart idea to keep windows around, because sometimes there are issues if he gives code to someone working on windows. It can happen, so if he has windows he can check that himself.

    Again, thanks for correcting me, but there is no need to act in the manner you did. You simply have another opinion and another methodology. However, don;t you think its best that he hear from people who use computers for different things so he can see what different applications need on the hardware side?
     
  6. Mar 20, 2006 #5

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    physicsCU:

    Why on earth did you make the assumption that he was talking about scripting in MATLAB? I assumed he meant general-purpose programming languages, since he just said we wanted to learn how to program.

    The speed of a computer has very little do with learning a programming language -- the majority of the design cycle is spent in the editor, simply typing (or editing) code. Particularly when you're writing short, simple programs, compilation and runtime are insignificant compared to the amount of time spent writing.

    I just don't want to see wScott waste a lot of very hard-earned money on some fancy state-of-the-art computer when he'd learn programming just as well on his current PC -- and he definitely would.

    wScott, I'd strongly suggest putting the money you earn into a few good programming books instead of buying a new computer. (Let me know if you'd like some suggestions.)

    - Warren
     
  7. Mar 20, 2006 #6
    I also assumed he meant general programming, however, I was giving him another point of view. If he can see different ways that people use programming and knows what he wants to do, then he can make a better choice as to what he really needs.

    You make a good point about most of the programming time being spent actually writing, but if you have a faster computer, the code runs faster. I know I notice that running matlab or even python.

    I agree, he should try to save his money. But perhaps he needed a new computer anyway. Just trying to offer a different viewpoint of program work, that is all, not trying to start an arguement here.

    and actually, can you recommend me a python book, i am learning it using the built-in tutorial, but it doesn't really help me since I want to make programs that output graphics and such (example would be a simple game in python). Thanks!!!
     
  8. Mar 20, 2006 #7
    Well I thank you for both of your help, and I don't even know what MATLAB is, but thanks for the suggestions anyways.

    I guess I should of asked for books anyways, I just want my own computer so I don't have to put passwords on all of my documents and such.

    Could you recommend some books for me, and physicsCU apparently, that are cheap to buy and aren't full of bs?
     
  9. Mar 20, 2006 #8

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    I recommend most of the O'Reilly books, like "Learning Python." I strongly suggest you avoid any of the "LEARN SOFTWARE ENGINEERING IN 3 HOURS" type books, because they're 500 pages long yet contain about 50 pages of actual worthwhile material.

    You should start with Python or Java or C, in my opinion. Python is probably the 'coolest' and easiest of the three, but is still an "up and coming" language and is not used everywhere. C and C++, on the other hand, are used everywhere -- whether you like it or not, you're eventually going to have to learn both if you become a professional programmer. They aren't the friendliest languages, however, and you might be better off starting with Python.

    Particularly since you plan on self-teaching, I'd say Python is the best language to start with.

    If you really do need a new computer, you can get a basic one, certainly adequate for learning programming, for no more than a couple of hundred dollars. You might also consider looking around at school and corporate auctions in your area -- sometimes you can pick up a good lightly-used computer for practically nothing.

    - Warren
     
  10. Mar 20, 2006 #9
    Thanks for the idea on languages, I'll search my library database to see if there are any books related to that author.

    Do you know of a way that I can find corporate auctions in my area?

    EDIT: What's O'Reilly's first name?
     
    Last edited: Mar 20, 2006
  11. Mar 20, 2006 #10

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    O'Reilly is not an author, it's a publisher.

    - Warren
     
  12. Mar 20, 2006 #11
    Ahh okay, thanks for that. I found the site, and although the book isn't available through my public library I think I'm going to save up for it.
     
  13. Mar 20, 2006 #12
    Now that I see the cover of the python book, i think that is the one my EE friend used to learn python, and he made a program to play tetris, so I am figuring its what I am looking for too.
     
  14. Mar 21, 2006 #13
    Tetris with Python? Going to be cool.

    Chroot, does the OS affect the Python language? I don't think it should but just ou of curiosity. I have Windows.
     
  15. Mar 21, 2006 #14

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    wScott,

    Python programs should run identically on any OS. The windows and buttons may look a little different, but they will function identically.

    - Warren
     
  16. Mar 21, 2006 #15

    -Job-

    User Avatar
    Science Advisor

    Most of the time you don't really need a book though. There are plenty of tutorials on the web, for example, for C, i use the following site as a reference:
    http://www.cs.cf.ac.uk/Dave/C/

    If it's your first language then book might be a good idea, but you'll see that programming languages are similar enough. Books can be expensive.
     
  17. Mar 21, 2006 #16

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    That's a good point, Job. You can certainly get started with a language using nothing but online tutorials. On the other hand, you might have some trouble figuring out things like GUIs without some kind of reference. You can often find snippets of code demonstrating various things all over the net, but they often are not discussed as well as they would be in a book.

    Here's a good tutorial for Python:

    http://docs.python.org/tut/tut.html

    - Warren
     
  18. Mar 21, 2006 #17
    Thanks you guys.

    Chroot, I found two resources so far but i'll make sure to give that a looksie.
     
  19. Mar 22, 2006 #18

    -Job-

    User Avatar
    Science Advisor

  20. Mar 22, 2006 #19
    Thanks for the link -Job-, but I'm not ready to take on C/C++ just yet.
     
  21. Mar 22, 2006 #20

    jtbell

    User Avatar

    Staff: Mentor

    When you're learning your first programming language, you're learning not just the nuts and bolts of that particular language, you're also learning how to program in general: how to take a vague idea of the problem you want to solve, sharpen it up and figure out an overall design or strategy for writing a program to solve it. It's like learning how to solve "word problems" or "story problems" in math, physics, etc., only harder.

    Even for just the "nuts and bolts", most Web sites just give you bits and pieces. That's fine if you know which bits and pieces you need to know about, but if you're just starting out you're not likely to know that.

    For both of these reasons, if you're just starting out, I strongly recommend getting a good introductory textbook for your first language, that also discusses general aspects of program design. After you've mastered one language, it's fairly easy to pick up new languages in bits and pieces because you have some idea of what to look for.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?