How to start programming?

Discussion in 'OT Technology' started by nish81, Aug 10, 2006.

  1. nish81

    nish81 OT Supporter

    Joined:
    Jul 6, 2006
    Messages:
    11,182
    Likes Received:
    0
    Location:
    london
    I'm interested in learning to program. I've had basic experience with HTML, CSS, Python, (very basic) and had a quick look at PHP, Java and C++. So just wondering, but does anyone have any tips concerning how to 'start' learning? I mean, what language should I start with, etc.
    Two things I dont have are constant internet access and a place to buy/borrow programming books, (i.e. they aren't available where I live).
     
  2. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    The best first step, I've discovered, is to have something that you need the computer to do for you. It can be very hard to force yourself to organize your thoughts and to learn what is, essentially, a different language, just for the hell of it.

    If you're diligent about trying to solve every problem you have by writing a program, you'll get to be a good programmer in no time. That said, it's virtually impossible to become a great programmer without formal training.
     
  3. nish81

    nish81 OT Supporter

    Joined:
    Jul 6, 2006
    Messages:
    11,182
    Likes Received:
    0
    Location:
    london
    I like the sound of that, but many of the problems I've had with computers to date either involve command prompt, or hardware, or general stuff that doesn't involve programming, just a lot of Google.
    I'm going into grade 10 now, after that I think there's a computer sci course that I can take, so I guess that would come under formal training?
    Just another question, but has anyone taken Computer sci in IB before? (IB = the last two years before uni). Just wondering what it's like.
     
  4. Peyomp

    Peyomp New Member

    Joined:
    Jan 11, 2002
    Messages:
    14,017
    Likes Received:
    0
    Get a beginner's C programming book and work your way through it. This will teach you the fundamentals. Perhaps someone else can recommend a good C book?
     
  5. fr00t

    fr00t New Member

    Joined:
    Jul 31, 2006
    Messages:
    31
    Likes Received:
    0
    To learn C, I'd reccomend C Programming, and then just coding applications which would be of use to you using the man pages (or MSDN library I believe for Windows) as a reference. That said, I believe the OP said he couldn't buy/borrow any books!

    However, you could always download tech books for free (and legally!)
     
  6. Coottie

    Coottie BOOMER......SOONER OT Supporter

    Joined:
    Jun 6, 2006
    Messages:
    32,407
    Likes Received:
    0
    Location:
    OKC
    Most public libraries have programming books that you can check out for free. If you live in a larger city, the libraries are interconnected and they can order something for you from one of the other libraries.

    There are also a lot of language resources on the web.
     
  7. Peyomp

    Peyomp New Member

    Joined:
    Jan 11, 2002
    Messages:
    14,017
    Likes Received:
    0
  8. Corp

    Corp OT Supporter

    Joined:
    Sep 11, 2003
    Messages:
    28,201
    Likes Received:
    0
    Location:
    Providence, RI
    the first experience i had with programming was junior year in high school. i took classes in java junior and senior year, and am now going to college for comp sci. the classes really depend on your teacher though, my teacher was the head of the math department, and easily the smartest person i've ever met, so the classes i had in high school were excellent, college on the other hand havent been any good so far.
     
  9. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    No, I didn't mean problems with the computer. I meant problems with other things that would be a lot easier to solve if you had a program to do the tedious work for you. Like...renaming all your mp3s so they all have the same "<artist> - <track> - <title>.mp3" or something like that. Or, you could pick something that your computer can already do, but it doesn't do it well. I'm not sure what that might be, since Windows XP is pretty good these days, but maybe if you have an old computer with Windows 98 on it, you could try to modernize it, or something.

    I dunno. I have a hard time doing anything if nobody's going to benefit from it, so that's what I tend to think about. One of the first programs I wrote (not counting "Hello World" or the Christmas Tree program) was a VB4 program for my dad to keep track of legal documents that he had to work on, so he could know who needed what, when it needed to be done, and when he actually finished it. I called it DeadLine; it was hellishly challenging and it took me five versions before I got it just right, but I'd say I learned a good half of what I know about basic programming from that one project. I was 13 at the time; ten years later I still build my own programs to solve my own problems. I still have that program and it still works, but of course nowadays it's obsoleted by MSOutlook.

    That was the sort of problem I was talking about. Actually having it used by someone made it vastly more interesting for me. Instead of thinking about what kind of program I could write to test out my ability to do x, I was instead thinking about whether I could make x work. How can I make it work? Oh, that's how. Oh wait, I just figured out a better way to do it. Can I make it easy to use without making it useless? Etc.
     
  10. nish81

    nish81 OT Supporter

    Joined:
    Jul 6, 2006
    Messages:
    11,182
    Likes Received:
    0
    Location:
    london
    If that is the best option, then I'll look for such a book where I am, but like fr00t said, it's pretty hard to find one here.
    Thanks for the link! :)
    Unfortunately, I don't live in much of a literate place, and there is only one library that I've seen here - it doesn't have much in the way of programming material.
    Thanks for the link! Reading it right now :x:
    I hope that'll happen for me when I take comp sci in IB..my current IT teacher is not that great, but thank god he just left. Wonder who I'll have next year..
    Ah, now I get what you meant. Yeah, I've had a few of those problems pop up from time to time..next time one comes up, I'll try some programming on it :x:

    Well, I'll check my school library, (the only one here) for a C book when school starts on Monday. Thanks for the replies! :wavey:
     
  11. Clarity

    Clarity New Member

    Joined:
    Feb 14, 2006
    Messages:
    3,309
    Likes Received:
    0
    At first I thought that was all sarcasm, but in about 0.1 of a second, I began to wonder why you changed the quotations to periods.
     
  12. Peyomp

    Peyomp New Member

    Joined:
    Jan 11, 2002
    Messages:
    14,017
    Likes Received:
    0
    If you can't find anything locally, then amazon.com is your friend.
     
  13. nish81

    nish81 OT Supporter

    Joined:
    Jul 6, 2006
    Messages:
    11,182
    Likes Received:
    0
    Location:
    london
    Sarcasm? How? And not sure why I changed the quotes, guess i thought maybe it would be too long. so much for that...

    Speaking of amazon, there's an order of mine that they haven't delivered for extremely weird reasons..thread in On Topic
     
  14. waterypoop

    waterypoop New Member

    Joined:
    May 19, 2006
    Messages:
    23
    Likes Received:
    0
  15. tyrionlannister

    tyrionlannister New Member

    Joined:
    Jun 13, 2006
    Messages:
    710
    Likes Received:
    0
    Location:
    New York
    You need books if you want to do this seriously. Bum a few bucks from your parents and buy them used off of Amazon if you need to. Tell them to be glad you're not spending the money on crack.

    First, get a good book on your chosen language. (Core Java 2, Volume I:Fundamentals from Sun if you choose Java). This will give you the fundamentals of the language, and show you the basics of object oriented programming. Don't just read the examples, code them yourself. You'll learn faster.

    Second, get a copy of Code Complete: Second Ed from Microsoft Press. This book does a great job of teaching some of the so called "best practices" without being language specific. There are examples to view, but no problems to solve. You'll want to go through that other introductory book first.

    Since the best way to learn is through practice, you need problems to solve. A good place to find them is TopCoder, but since you can't get online very often then you should find a used copy of Programming Challenges, by Steve Skiena, and start working through those. There's even a website for the book which will allow you to submit your work. Some of the examples here will be difficult, but I guess that's the point of a "challenge."
     
  16. Penguin Man

    Penguin Man Protect Your Digital Liberties

    Joined:
    Apr 27, 2002
    Messages:
    21,696
    Likes Received:
    0
    Location:
    Edmonton, AB
    C Programming - A Modern Approach by K.N. King

    It might be a bit quick for someone who has never programmed before, but I think it'd probably suffice. I'd highly recommend it to everyone as a superb C reference, actually.
     
  17. Peyomp

    Peyomp New Member

    Joined:
    Jan 11, 2002
    Messages:
    14,017
    Likes Received:
    0
    I strongly recommend against learning Java first. Once you go high level, everything at a lower level seems like a waste of time. But its NOT. You're learning how computers actually work, in C. And that will make you a better programmer than a guy who learned Java first, even if you spend your whole career doing Java or Basic or something.

    Don't learn C++ first because its too damned complicated. Learn functional C.
     
  18. Schproda

    Schproda New Member

    Joined:
    Jul 9, 2006
    Messages:
    442
    Likes Received:
    0
    Location:
    Memphis, TN
    Start at the bottom. The first two classes I did were IBM Basic and Pascal. It isn't a matter of what is popular now, but having a basic idea of how variables, logic subroutines and things play with each other is a good basis to start on. If you're thinking about doing programming as a career that's okay, just remember what's out there now. Are you thinking computer programming or for the web?
     
  19. Coottie

    Coottie BOOMER......SOONER OT Supporter

    Joined:
    Jun 6, 2006
    Messages:
    32,407
    Likes Received:
    0
    Location:
    OKC
    Man that's a kick ass article. Having worked in business for ~10 years before returning to University to pursue my CS degree, I can attest to a lot of the advice given in that article. Much of it is excellent for not only surviving but thriving in the corporate environment.

    Thanks for the link. I'm more excited then ever to graduate because I've got many of those issues already under control. Now I just have to develop more programming/project skills.
     
  20. Penguin Man

    Penguin Man Protect Your Digital Liberties

    Joined:
    Apr 27, 2002
    Messages:
    21,696
    Likes Received:
    0
    Location:
    Edmonton, AB
    :werd:

    A procedural language is also a better choice than an OO language because you can't really appreciate the power of OO until you know something about programming. If you try to learn Java as a first language, you end up learning a bunch of magic incantations (how many beginning programmers understand "public static void main(String args[])"?) that make your programs work, but that you don't really understand or need to understand.
     
  21. Peyomp

    Peyomp New Member

    Joined:
    Jan 11, 2002
    Messages:
    14,017
    Likes Received:
    0
    Right, and you don't have to be a C whiz, but you should start there, master basic pointers and memory allocation and be able to make your own linked lists, etc. and write text-based programs that interact with data structures and then move on.
     
  22. Penguin Man

    Penguin Man Protect Your Digital Liberties

    Joined:
    Apr 27, 2002
    Messages:
    21,696
    Likes Received:
    0
    Location:
    Edmonton, AB
    :werd: If you can't write your own linked list in C, you're useless. It's a pretty basic thing to understand and to implement.
     
  23. Peyomp

    Peyomp New Member

    Joined:
    Jan 11, 2002
    Messages:
    14,017
    Likes Received:
    0
    Once you can, you should never do it again though :) STL ftw.
     
  24. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    Okay, so you're all arguing about which language to use. Am I the only person who cares what the guy's motivation is?
     
  25. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    Heh...reminds me of how I used to get yelled at for writing my own, bare linked-lists for my programming assignments in college.

    "You shouldn't be doing that! It's dangerous, all you have to do is misplace ONE pointer!"

    "You saw my code, and you ran it too. Am I misplacing any pointers?"

    "No, not this time."

    "So it runs perfectly? That means I'm getting an 'A', right?"

    "...yes..."
     

Share This Page