Development Best programming language to start off with?

Discussion in 'Software' started by J05H11E, 31 Aug 2010.

  1. Elledan

    Elledan What's a Dremel?

    Joined:
    4 Feb 2009
    Posts:
    948
    Likes Received:
    34
    I program for a living mostly in C++ as does my best friend and esteemed colleague, and we both rarely if ever use more than pointers to pointers. Beginners should never have to touch anything more complex than single pointers and references. If they can't grasp those concepts, they're not cut out to be programmers to begin with.
     
  2. deadsea

    deadsea What's a Dremel?

    Joined:
    9 Oct 2009
    Posts:
    197
    Likes Received:
    6
    Seems like 2 different kinds of teaching philosophy. Gentle introduction so as to not scare ppl off or the throw them in the deep end and it all gets better from there.

    But if you're ever going to deal with assembly, you should consider starting with C. The trauma with pointers help somewhat.
     
  3. Elledan

    Elledan What's a Dremel?

    Joined:
    4 Feb 2009
    Posts:
    948
    Likes Received:
    34
    I prefer the bootcamp approach to learning :)

    C was meant to make ASM easier to begin with, so it's literally only a single step above it. Simplifying writing more complex programs, but not to such an extent that you lose touch with the underlying hardware.

    I wouldn't call pointers a 'trauma', BTW. More a very good lesson in how computers function :lol:
     
  4. shau

    shau What's a Dremel?

    Joined:
    3 Mar 2011
    Posts:
    47
    Likes Received:
    2
    I work for an investment bank as a developer for their market software. c++ for that kind of stuff but it is niche and difficult. I learnt java at uni. But if you are in UK I would say C#, it is microsoft with good support and it is taking over the market. Pushing java out of the way....Although java is still used it is now more niche, so definitely c# for me
     
  5. lp rob1

    lp rob1 Modder

    Joined:
    14 Jun 2010
    Posts:
    1,530
    Likes Received:
    140
    I can't recommend C#. It has strange syntax, such as putting everything in a class, and forced you into OO (object-orientated) programming. Compared with an almost-assembly language like C++, it feels clumsy. C# also forces the programmer to follow certain things. When I want to program something, I want to have full control over my program, not to be forced into doing it one way because of the language. This is also the reason why I favour OpenGL instead of Direct3D and Boost.Asio instead of Winsock.
     
  6. Xlog

    Xlog Minimodder

    Joined:
    16 Dec 2006
    Posts:
    664
    Likes Received:
    66
    At the end of day you should first learn basic concepts and move from there, OOP is anything but basic.
    My favourite quote about OOP:

    I like my Uni's approach: Software engineering, first semester, asm course:
    First assignment: print string to screen
    Second assignment: XML parser
    Final assignment: disassembler.
    Oh the fun that was :D.
     
  7. Elledan

    Elledan What's a Dremel?

    Joined:
    4 Feb 2009
    Posts:
    948
    Likes Received:
    34
    I absolutely agree. I normally prefer procedural programming for this reason. The use of interfaces in header files (in C/C++) provides enough of a compartmentalizing effect that it makes extending and maintenance very easy.

    The main effect of OOP (like what I'm dealing with in C++/Qt on a daily basis) is having to deal with so many abstract types, inheritance out of the wazoo (makes for fun reference docs) and a Google query every ten minutes to figure out how someone else did a particular thing because it's not intuitive, and the docs are too convoluted to provide an easy/quick answer.

    The C# docs are a complete nightmare too, BTW. I had the honour of using C# for a project a few years ago, and getting anything useful out of those docs as a newcomer to the language was a nightmare. The C# syntax itself isn't hard, it's basically C++ with hints of Java, it's the docs which make it a nightmare. That's one of the reasons why I wouldn't recommend it. Well, that and the fact that C# is basically Windows-only :p

    XML parsers are one of the worst things to inflict upon anyone :eeek: You have my sympathies :)
     
  8. AshT

    AshT Custom User Title

    Joined:
    9 Jul 2009
    Posts:
    996
    Likes Received:
    31
    I've been reading through a few books and while i appreciate it's probably good to start with printing text to a console window, followed by loops and array management, I'm getting a bit bored.

    Are there any books geared towards C/C++ and OpenGL that will be good for a beginner to dip their toes gently in to the world of game programming?
     
  9. theevilelephant

    theevilelephant Minimodder

    Joined:
    5 Jan 2006
    Posts:
    1,334
    Likes Received:
    36
    While I would seriously advise learning the basics thoroughly first, I do understand that when the only output is in a console window, things can get boring. Game programming is a fairly advanced topic as it requires not just an understanding of whichever language you are working in, but how to work with images, sound files, 3d objects and a bunch of other stuff often at the same. Don't let it discourage you, I remade snake after 2 months of learning java and made a little platformer a few months later. It is fun and frustrating in fairly equal measures but it certainly encourages you to learn.

    In terms of books, choose one that deals with a particular language and walks you through some example games. I used "Killer Game Programming in Java" because I had to learn Java for uni, but I'm sure there are equivalents for other languages.
     
  10. lp rob1

    lp rob1 Modder

    Joined:
    14 Jun 2010
    Posts:
    1,530
    Likes Received:
    140
  11. star-shell

    star-shell What's a Dremel?

    Joined:
    7 Mar 2011
    Posts:
    29
    Likes Received:
    0
    It really depends on your application. If you are wanting to go into procedural, then start with Python. If you need to go for object oriented I would suggest jumping into C#.
     
  12. microsoftPerson

    microsoftPerson What's a Dremel?

    Joined:
    27 Dec 2010
    Posts:
    614
    Likes Received:
    15
    Web programming is a beast of its own to consider if you have not. In many ways web applications will be the future of personal computing.

    The web is exactly where Google is focusing their efforts right now and with good reason: so many people are moving to portable computing devices for everyday tasks. Right now, for that reason, a lot of the money/work is in programming applications for iphones/android/blackberry - I think that designing applications for the web is the future because there are so many different devices populating the market that programming for any one particular device will become a bad idea as it alienates a large market share of people who use a different device.

    This is a somewhat basic list, but PHP, MySQL, JavaScript, and AJAX are where I am investing my efforts and with great results so far. Sorry if this is not the kind of programming you were talking about, but it is my hobby/career so I thought I'd chime in.
     
  13. lp rob1

    lp rob1 Modder

    Joined:
    14 Jun 2010
    Posts:
    1,530
    Likes Received:
    140
    OpenGL has a companion web standard called WebGL. It uses JavaScript as the programming language, but gives so much more power. It will be finalised with HTML5.
     
  14. azazel1024

    azazel1024 What's a Dremel?

    Joined:
    3 Jun 2010
    Posts:
    487
    Likes Received:
    10
    HTML is you want to broaden programming language pretty far is a good "first" to figure out some of the most basics.

    My path was Basic, Quick Basic, HTML, Visual Basic, Pascal, XML, C++, ASP, Java. Probably another half a dozen in there that I know odds and ends of because of work, Cold Fusion, Cobol, CICS and a couple of others I know snipits of. I am not a programmer though. I head up a team of programmers and systems analysts though (I started as a systems analyst with a programming background)

    For a real programming language, I'd say Java is a pretty good one. Its used by a lot of companies and gives a pretty solid grounding in object oriented programming. If you aren't interested in programming for the web, I'd focus on C++ instead of Java. At least that is my preference, I only use Java when programming for a web application and I use C++ for non-browser based applications. Just a personal preference though, you can use java for non-browser based stuff.
     
  15. fulei1979

    fulei1979 What's a Dremel?

    Joined:
    16 Mar 2011
    Posts:
    20
    Likes Received:
    0
    Different languages having their strength and weakness. I think JAVA is a well structured OOP which is a good starting point. Personally I use C++ a lot mainly because the balance between the scaliability and speed.
     

Share This Page