Where to start programming?

Discussion in 'OT Technology' started by shohan, Nov 7, 2005.

  1. shohan

    shohan New Member

    Joined:
    Mar 11, 2004
    Messages:
    800
    Likes Received:
    0
    Location:
    NC
    I've been thinking about it for a while and I've decided want to start programming. I don't really have an idea of where to start though. I have limited experience in HTML as I used it years ago with notepad and more recently with Frontpage and Dreamweaver. I'd like to start from scratch and develop a good basis so that I could go on to other languages as well without too much conflict.

    Where would be a good place to start? I've taken a look at a few languages, but nothing in depth. What are the main uses for the different languages, limitations, etc?

    .NET
    ASP.NET
    VB
    VC++
    VC#
    Java

    Any links to guides, tutorials, good reading, anything would be helpful.
     
  2. Deevan

    Deevan Active Member

    Joined:
    Jul 12, 2005
    Messages:
    11,719
    Likes Received:
    0
    Location:
    Orlando, FL USA Posts: 4
    Start with C, then go for the object oriented ones. C will give you a good background a help you appreciate the beauty of polymorphism.

    Java or C++ are good steps after C.
     
  3. TenzoR

    TenzoR She is hot hot hot

    Joined:
    Nov 4, 2001
    Messages:
    4,162
    Likes Received:
    0
    Location:
    Toronto, Ontario
    I'd concentrate on learning to design/develop software/application before trying to learn the programming languages: user interface (very important), OOP, etc

    programming is the easiest part of any software development

    any one can just pick up a book and learn teh syntax of any language but not every can write competent code that's useful and not redundant
     
  4. Frequency

    Frequency New Member

    Joined:
    Dec 30, 2004
    Messages:
    7,504
    Likes Received:
    0
    Location:
    PA
    start with C then some design books then move on to c# and c++
     
  5. RyanL

    RyanL OT Supporter

    Joined:
    Nov 30, 2004
    Messages:
    4,584
    Likes Received:
    0
    Location:
    St. Paul, MN
    To once again reinforce what everyone else is saying, start with C and then move on to C++ or JAVA.

    I would stay away from Microsoft centric languages while you are starting, some of them can cause bad programming habits. PHP is another language that is great, but you are better off learning a real language before diving into something like that since PHP has the ability to also cause bad programming habits.
     
  6. Joe_Cool

    Joe_Cool Never trust a woman or a government. Moderator

    Joined:
    Jun 30, 2003
    Messages:
    299,374
    Likes Received:
    580
    I'm going to go against the flow and say Java is a great language to learn on. The syntax is c-style, but it forces you to develop better habits, which transfer well to other languages. In C, it's easy to get into the habit of writing straight-down procedural code, basic-style, which is really hard to unlearn.
     
  7. samm

    samm Next in Line

    Joined:
    Dec 22, 2000
    Messages:
    2,630
    Likes Received:
    0
    Location:
    San Jose, CA

    Java is a great language, but probably not the best one to learn when you first start programming. In my experience, young programmers who learn java as a first language do not understand memory management since java's automatic garbage collection takes care of that.

    I think it is better for first time programmers to learn effective resource management techniques using C, then graduate to using smart, shared, and scoped pointer objects under C++, then learn Java.
     
  8. shohan

    shohan New Member

    Joined:
    Mar 11, 2004
    Messages:
    800
    Likes Received:
    0
    Location:
    NC
    Hey, thanks to all for the replies. I figured C was the place to but wanted some confirmation. Now here comes a real noob question: When you say 'learn C' do you mean Visual C or is there a more basic form of C?
     
  9. Joe_Cool

    Joe_Cool Never trust a woman or a government. Moderator

    Joined:
    Jun 30, 2003
    Messages:
    299,374
    Likes Received:
    580
    C is an ANSI standard programming language. Visual C/C++ is the microsoft development environment for C, with proprietary extensions.
     
  10. Joe_Cool

    Joe_Cool Never trust a woman or a government. Moderator

    Joined:
    Jun 30, 2003
    Messages:
    299,374
    Likes Received:
    580
    I don't agree. I'd rather see somebody learn how to write well-structured code on an easy langugage, THEN learn the more advanced concepts like memory management. You shouldn't have to mess around with malloc() and calloc(), for example, until you have a good grasp of how to write a program and solve a problem.

    Of course, this is one of those unresolvable personal preference questions. :mamoru:
     
  11. samm

    samm Next in Line

    Joined:
    Dec 22, 2000
    Messages:
    2,630
    Likes Received:
    0
    Location:
    San Jose, CA
    Yes, much like the best text editor debate :)

    To the OP: buy the K&R book about C and read it
    http://en.wikipedia.org/wiki/C_programming_language
     
  12. shohan

    shohan New Member

    Joined:
    Mar 11, 2004
    Messages:
    800
    Likes Received:
    0
    Location:
    NC
    Ok, so should I take a look for MS Visual Studio or is there a better suited program for writing C?

    So yeah, I was taking a look at a couple tutorials and I need an editor and compiler, so far, but the ones they mention are Vi and GCC in *nix. Are there any decent Windows programs to do this? Or does Visual Studio cover this?
     
    Last edited: Nov 8, 2005
  13. EvilSS

    EvilSS New Member

    Joined:
    Jun 11, 2003
    Messages:
    5,104
    Likes Received:
    0
    Location:
    STL
    First things first. Forget about languages for the moment. Find a good first-year Comp-sci text (or better yet, go take some courses). It's important to learn the fundamentals first, and they are independent of any programming language.
     
  14. shohan

    shohan New Member

    Joined:
    Mar 11, 2004
    Messages:
    800
    Likes Received:
    0
    Location:
    NC
    Could you elaborate on what I should be learning? First year CS stuff sounds like "This is a mouse" "This is your Start Menu". If so I think I've got that pretty well covered. 4 years in the Marine Corps doing data and 6 years overall doesn't make me an expert but I'm by no means a "user".
     
  15. Joe_Cool

    Joe_Cool Never trust a woman or a government. Moderator

    Joined:
    Jun 30, 2003
    Messages:
    299,374
    Likes Received:
    580
    I think he means more along the lines of "this is how a function works" "this is how a conditional works" "this is how an iterative loop works" "this is what an object is". And maybe even more low-level than that, like "this is what a compiler does" "this is how a memory stack works" "this is how objects are stored on the heap".
     
  16. Penguin Man

    Penguin Man Protect Your Digital Liberties

    Joined:
    Apr 27, 2002
    Messages:
    21,696
    Likes Received:
    0
    Location:
    Edmonton, AB
    Find something you need or want and write it in some language. This is absolutely the best way to learn to program. Doesn't matter what language it is really (although I agree with the C suggestion, it's a good place to start), you'll learn the basics no matter how you start.

    If you're interested in web design, PHP or Perl can be good starting points. They're handy to know for web stuff, so they'll keep you interested, and the offer pretty immediate results.
     
  17. EvilSS

    EvilSS New Member

    Joined:
    Jun 11, 2003
    Messages:
    5,104
    Likes Received:
    0
    Location:
    STL
    No, that's intro to computers for idiots (aka liberal arts majors).

    First year comp-sci classes cover the basics of programming. Functions, Types, structures, and such are one part of it. The other is how to approach writing software. How to decide why one way is better than another, why a certain structure to your code is necessary, how to approach solving unique problems, even how to write good (as in readable!) code and why it's important. The biggest thing you should learn is that the most important aspect of writing software is to have a proper design before you ever write a single line of code.

    Despite popular misconception, you won't learn these things by trial an error. I was programming for 10 years before I took my first year of comp-sci (and yes, I later changed majors for those wondering) and I what I learned in that one year was way more beneficial than the things I had learned on my own in the previous 10.

    You can get all the "how" for a language from any book or website on that language. The problem is you will get very little of the "why". It seems tedious, especially if you don't want to make a career of it. The payoff (besides writing good code) is that you should be able to pick up any language you want to use with little effort afterwards.
     
  18. CyberBullets

    CyberBullets I reach to the sky, and call out your name. If I c

    Joined:
    Nov 13, 2001
    Messages:
    11,865
    Likes Received:
    0
    Location:
    BC, Canada/Stockholm, Sweden
    If you want to start at the basics, be a man and learn assembler. From then work into writing C using ASM for complex subroutines that need optimal optimization :).

    That being said, understand the concepts and ideas first before diving directly in. My suggestion would be Python or Perl.

    If you want a REAL challenge, learn brainfuck :)
    http://www.muppetlabs.com/~breadbox/bf/
     
  19. Corp

    Corp OT Supporter

    Joined:
    Sep 11, 2003
    Messages:
    28,201
    Likes Received:
    0
    Location:
    Providence, RI
    i started with java in high school and am learning c++ as a first year comp sci major
     
  20. CyberBullets

    CyberBullets I reach to the sky, and call out your name. If I c

    Joined:
    Nov 13, 2001
    Messages:
    11,865
    Likes Received:
    0
    Location:
    BC, Canada/Stockholm, Sweden
    in all honesty, it doesn't matter where you start.

    I started with Pascal, moved to C, then C++, then Java, ASM, PHP, ASP, LISP, PERL all around the same time.

    Just understand the ideas, and the syntax will fall in.
     
  21. Joe_Cool

    Joe_Cool Never trust a woman or a government. Moderator

    Joined:
    Jun 30, 2003
    Messages:
    299,374
    Likes Received:
    580
    If you don't want to be a pussy, memorize the opcodes for your processor, and write binary code directly to memory using debug. :eek3:
     
  22. EvilSS

    EvilSS New Member

    Joined:
    Jun 11, 2003
    Messages:
    5,104
    Likes Received:
    0
    Location:
    STL
    Real men start by writing microcode for processors they design with their bare hands (CAD is for pussies!). From there, those VB apps will be a snap! :big grin:
     
  23. Deevan

    Deevan Active Member

    Joined:
    Jul 12, 2005
    Messages:
    11,719
    Likes Received:
    0
    Location:
    Orlando, FL USA Posts: 4
    :eek4: It's like super-RISC instructions...

    MISC? Miniscule instruction set?

    Yeah, starting with any assembly language with have him :run:.
     
  24. Deevan

    Deevan Active Member

    Joined:
    Jul 12, 2005
    Messages:
    11,719
    Likes Received:
    0
    Location:
    Orlando, FL USA Posts: 4
    Fuck that. REAL big men transmit instructions through their processors with two wires and a 9volt.
     
  25. critter783

    critter783 OT Supporter

    Joined:
    Jul 15, 2005
    Messages:
    1,785
    Likes Received:
    0
    I would say start with Java also, because the really important thing to learn first is the object-oriented approach. You can really learn all you need to get going from Java, and then pick up a book like C++ for Java programmers, which explains memory management differences between C++ and Java.
    Also, if you decide to start with C, then do yourself a gigantic favor and forget ALL about Microsoft Visual Studio. You will end up tripping over your own feet in that application. Get a text editor like Notepad++ and a C compiler like GCC, and go to town. There's no reason to use Visual Studio until later down the road when you actually need the Resource editor and GUI editor.
     

Share This Page