Development Choosing a programming lanuage to learn

Discussion in 'Software' started by nukeman8, 6 Oct 2009.

  1. nukeman8

    nukeman8 What's a Dremel?

    Joined:
    24 Jul 2008
    Posts:
    867
    Likes Received:
    17
    Im gonna have to apologise in advanced as im sure this sort of question has been asked loads but i flipped back a few pages and didnt see 1 so im gonna go ahead and post.

    I originally went to college mainly to learn about programming and the various languages, however i got roped into a very generic computer course and as i was young then, i quickly lost interest and learnt bugger all.

    So now that i have spare time and a job that requires me to expand my knowledge a tad, im after learning a programming language and most likely more advanced ones in the future.
    After searching google and a whole morning looking at various languages i felt more confused then i did yesterday.

    Has anyone got a recommendation on a language to get me started, that isnt to complicated but still useful?
    Im mainly after writing applications for websites and standalone ones both for windows at the present. Not sure quite how to describe what im after :wallbash:

    Anyway if anyone has any suggestions that would be great, o and if anyone knows a good book to read?
     
  2. stonedsurd

    stonedsurd Is a cackling Yuletide Belgian

    Joined:
    11 Mar 2009
    Posts:
    7,813
    Likes Received:
    347
    Java sounds like what you need.

    Sorry, can't help with a book.
     
  3. UncertainGod

    UncertainGod Minimodder

    Joined:
    18 Oct 2007
    Posts:
    1,424
    Likes Received:
    26
    I'm currently learning & using C# for projects both on windows & the web and it has to be said that visual studio does help quite a bit with the learning process, plus the express editions are free and I have found several books that are very well laid out and useful;

    Wrox beginning Microsoft Visual C Sharp 2008,
    Apress Beginning C Sharp 2008 Objects from concept to code,
    Sams Teach yourself Visual C Sharp 2008 in 24 hours.

    Also Microsoft have loads of resources online for free in the beginners developer centre.
     
  4. Diosjenin

    Diosjenin Thinker, Tweaker, Et Cetera

    Joined:
    14 Jul 2008
    Posts:
    777
    Likes Received:
    54
    If you're looking to create both web and standalone applications, either Java or Python is what you're looking for. Java is more similar to other programming languages, but Python is easier (though they're both quite easy).

    It's generally easier to use Web tutorials than books. A good Java tutorial can be found here, and a good Python one here.

    - Diosjenin -
     
    Last edited: 6 Oct 2009
  5. nukeman8

    nukeman8 What's a Dremel?

    Joined:
    24 Jul 2008
    Posts:
    867
    Likes Received:
    17
    Quick question while i look at the suggested programs.
    Would it be worth my time learning a easier language then moving up to a different 1? or is Java/Python easy to get on with, with the effort put in?
     
  6. RinSewand

    RinSewand What's a Dremel?

    Joined:
    11 Sep 2006
    Posts:
    1,845
    Likes Received:
    80
    Slightly on a tangent - but a web based language would seem to be the sensible choice with more and more applications being mored over to web portals these days...

    And stay away from VB.Net, I found it easy to learn, but not many people seem to use it in the real world (I am almost certinaly wrong here - but that's what I've found)

    RwD
     
  7. Diosjenin

    Diosjenin Thinker, Tweaker, Et Cetera

    Joined:
    14 Jul 2008
    Posts:
    777
    Likes Received:
    54
    No, that's exactly right. The majority of standalone developers use C, C++, Java, and many are moving to C#. Some embedded or web devs will also/alternately look for Javascript and basic XML experience. VB.net is defunct. Pass it over.

    Python is about the easiest language you can pick up, period. Java is probably next in line, though, so either should suit you just fine.


    - Diosjenin -
     
  8. UncertainGod

    UncertainGod Minimodder

    Joined:
    18 Oct 2007
    Posts:
    1,424
    Likes Received:
    26
    I used to use Java quite a bit but always had issues with it, python was far better but I find it a bit limited which is why I recommend C# now as it has taken all of the good things from the robust & powerful languages and put it all in one nice box and when tied in with ASP.net is superb for web development as well.
     
  9. nukeman8

    nukeman8 What's a Dremel?

    Joined:
    24 Jul 2008
    Posts:
    867
    Likes Received:
    17
    Nothing in particular to pick 1 over the other then?
    Sounds like im going with Java as i believe is more widely used.

    *edit, i hear C# is harder to learn compared to Java/Python?
     
  10. UncertainGod

    UncertainGod Minimodder

    Joined:
    18 Oct 2007
    Posts:
    1,424
    Likes Received:
    26
    I think that is a misnomer because of all of the tech associated with it like LINQ, ASP.net, etc. The core C# is easier than java to get your head around and coupled with Visual Studio can have you making worthwhile programs in hours instead of days.
     
  11. Diosjenin

    Diosjenin Thinker, Tweaker, Et Cetera

    Joined:
    14 Jul 2008
    Posts:
    777
    Likes Received:
    54
    Well, maybe I should rephrase that.

    Java is the language you should go to to learn the fundamentals of computer programming in the context of a language that might actually be used in the context of a Fortune 500 setting. Classes are easier to wrap your head around through Java than they are in most other languages, IMHO. The biggest advantage is fully automatic and fully transparent memory management (learn some C++ - or C, if you really want to torture yourself - and you'll see just how much of a pain memory management can be). There are areas where it gets harder as you get more advanced - but if you're only learning it to learn what programming is generally like before moving on to a more advanced language, just download Eclipse and the Java SDK plugin and you're good to go.

    Python is easy to the point of some programmers accusing it of not really being a programming language (though those programmers are full of it, lol). It has its quirks (whitespace), but generally it's just a language that's very fun and rather powerful for its being so fun. See these xkcd comics [1] [2] for a good surface-level analysis of Python. :thumb:

    C# is a good midpoint between the more automated languages like Java and the more fine-tunable languages like C++. It retains most of the same features and syntax specifics of C++, but memory management is automated unless you want to do it manually.


    - Diosjenin -
     
  12. nukeman8

    nukeman8 What's a Dremel?

    Joined:
    24 Jul 2008
    Posts:
    867
    Likes Received:
    17
    thanks alot for the explanation and thanks for all the replies.
    Im gonna get my head round Java and at least learn the basics and maybe after look at C# or C++
     
  13. Krikkit

    Krikkit All glory to the hypnotoad! Super Moderator

    Joined:
    21 Jan 2003
    Posts:
    23,578
    Likes Received:
    413
    Maybe I'm going completely mad, but I find Java very confusing to try and backwards-engineer now I've got used to C++.
     
  14. Zurechial

    Zurechial Elitist

    Joined:
    21 Mar 2007
    Posts:
    2,045
    Likes Received:
    99
    You're definitely not the only one. I think java reads neatly, but I prefer C syntax - It doesn't seem as kludgy.

    I can't speak for anyone else, but I personally have never found a program written in Java that doesn't feel sluggish or look ugly.
    The idea of a portable language with the JRE etc is nice and all, but in my (admittedly limited) experience it just seems to run like a dog and sacrifice efficiency for the sake of being portable.
    Maybe someone with better knowledge of Java could tell me I'm completely wrong on that count, but once I got used to C, Java just felt like a horrible, slow mish-mash of compromises and workarounds in comparison.

    My recommendation is to just go with C/C++, since once you 'get' C everything else will be laughably easy to learn afterwards, if not slightly frustrating/confusing as Krikkit said.
    I can't speak for C# as I haven't done much with it yet, it does seem pretty nice though.
     
    Last edited: 6 Oct 2009
  15. nukeman8

    nukeman8 What's a Dremel?

    Joined:
    24 Jul 2008
    Posts:
    867
    Likes Received:
    17
    Well i been playing around abit with Java and havent gotten far and i remember doing abit of C++ in college so i guess i have a bash at that aswell.
     
  16. Daedelus

    Daedelus What's a Dremel?

    Joined:
    7 May 2009
    Posts:
    253
    Likes Received:
    12
  17. Krikkit

    Krikkit All glory to the hypnotoad! Super Moderator

    Joined:
    21 Jan 2003
    Posts:
    23,578
    Likes Received:
    413
  18. notatoad

    notatoad pretty fing wonderful

    Joined:
    25 Jun 2004
    Posts:
    3,213
    Likes Received:
    60
    i learned on java, and i always recommend other people do too. C++ and python are nice, but they let you cheat. it is harder to cheat with java, and the way the syntax works teaches important OOP concepts. grab a book by cay horstmann to learn with.
     
  19. UncertainGod

    UncertainGod Minimodder

    Joined:
    18 Oct 2007
    Posts:
    1,424
    Likes Received:
    26
    At this point in time there is no reason to look at C++ any more, C# does everything C++ did but without the clumsiness.
     
  20. BentAnat

    BentAnat Software Dev

    Joined:
    26 Jun 2008
    Posts:
    7,230
    Likes Received:
    219
    I'd also suggest C#, but i will caution that the choice is largely defined by what you want to achieve.

    If you want to learn a windows coding language, C# is good. It's easier to understand than upright C++, and faster to write (watch someone inevitably argue that).

    Web-wise, there's Ruby, if you're willing to dredge through some tuts that were nothing shy of godawful last i checked. Or PHP.
    That's just server side, though... client side on the web you'll almost certainly need some Javascript, and deffinately a good understanding of HTML and CSS.
    i would NOTT recommend going any of the .NET langauges (ASP.NET in VB or C# derivatives) for the web. i find them often bloated due to the good IDE that you're pretty much bound to use.

    as for IDE's that make it easy:
    For .NET languages: Visual Studio, even the express editions.
    for Ruby: I don't know.
    for PHP: Dreamweaver CS2 and up, Notepad++, and (apparently - haven't tried it) Netbeans.
    Netbeans also comes recommended for Java, IMHO.
     

Share This Page