Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Learn another language, but which one?

Options
  • 25-01-2010 4:43pm
    #1
    Closed Accounts Posts: 31


    I want to learn some other programming language. Should i learn C, C++, C#, .NET? I've learnt Java and know some web development programming langauges, css/php/javascript.

    My main reason is to improve my programming skills. I studied the Information Systems stream in DCU and job prospects are slim. But i'm not learning a new language for a job just yet. I just want to code for fun, improve my programming skills, and develop some desktop application pet project(s). So with the desktop applications in mind what langauge should i learn?

    I've heard C is best used for operating systems, C++ for desktop applications and games. Is that true? or would anyone like to say what the four languages i've suggested are best used for? (Not the pros and cons of the technical features, but the technology they are used for)


Comments

  • Registered Users Posts: 1,002 ✭✭✭jay-me


    SORRY WRONG FORUM :(


  • Closed Accounts Posts: 5,284 ✭✭✭pwd


    .NET is a framework, not a language. It is most commonly used in conjunction with C# and VB.NET. Of these you would be better learning C#, particularly if you have a background in Java.
    I would say C# with .NET would probably be the best way to go. It is used for desktop applications, web applications, and rich internet applications (Silverlight). It would also be appropriate for hobbyist games development - you could make games in Silverlight and in XNA, which is a framework specifically for developing games. C++ would be much more commonly used for commercial games development, but I think C# would be better for pet projects.


  • Registered Users Posts: 9,579 ✭✭✭Webmonkey


    +1 on C# .NET. It seems the most attractive to employers at moment. I never done much with it until recently and I'm impressed with it. It's very Java like too so you should have no problems moving to it.


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    Personally, I'd say learn something you're going to use, if only on a side project. Right now, for me, that's Python (and I'm enjoying it quite a bit). Of the ones you talk about though, I'd probably choose C because it's the most different of the bunch from what you've worked with up to now, so it's the one you'll learn the most from.


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    I've started working with Python too, strangely enough. My course is taking precedence though so I'm not getting as much done as I'd like.

    OP - C, C#.Net or stick with Java. C will teach you loads, C# is easy enough to move from Java too and is in demand.

    One thing you could do is just try to improve your coding skills. Books like Code Complete will help here (even if the examples are C#) and OOP books. As will studying Design Patterns and development methodologies like Agile, Scrum or the Open Process. Its another road to go down.


  • Advertisement
  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    Well, if you're at the stage where it's learn another language or read another book, I'd change my recommendation to reading The Pragmatic Programmer :D


  • Registered Users Posts: 9,579 ✭✭✭Webmonkey


    Sparks wrote: »
    Well, if you're at the stage where it's learn another language or read another book, I'd change my recommendation to reading The Pragmatic Programmer :D
    I really must get that book. Heard it being recommended so much.


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    Some of it seems really obvious and common sense ... until you realise it's taken ten years for your common sense to get sorted out. At which point you realise just how good the book is, because it's the stuff you've forgotten that you've learnt.


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    *purchases The Pragmatic Programmer*


  • Registered Users Posts: 569 ✭✭✭none


    Even before reaching the posts recommending it, I knew I was going to suggest Python. Don't know why. Either because of Bruce Eckel or Google, or, most likely both. Yes, JavaScript would also be up there. I get a feeling that scripting languages will rule the world at some stage.

    Actually, the first language I would unconditionally recommend is Java but you seem to already have it under the belt :)


  • Advertisement
  • Registered Users Posts: 330 ✭✭leahcim


    My main reason is to improve my programming skills

    Learning a new language might not be the best way to go to improve your programming skills. As you probably know Java is used in all sorts of areas from enterprise J2EE application servers, with EJBs, servlets etc, to mobile devices (Java ME) to just plain desktop applications have you explored all these areas.

    If you want a break from Java I would think you should try something other than C++ or C# as they are very similar to java, I'd even avoid C. As other people have pointed out something a bit different for example Python, Ruby, Prolog or even Lisp might be good to learn.

    Also why dont you decide first what kind of software you want to develop then choose the approperiate language. For example if you want to develop for the IPhone then Objective C is the obvious choice or if you are interested in writing software for microsoft windows then a .NET language.


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    leahcim wrote: »
    if you are interested in writing software for microsoft windows then a .NET language.
    Like Python (IronPython to be specific) :D


  • Registered Users Posts: 330 ✭✭leahcim


    Like Python (IronPython to be specific)

    Clever thinking Sparks, combine learning a language that has not derived from C with learning a new framework.


  • Closed Accounts Posts: 4,564 ✭✭✭Naikon


    Learn C or Perl. A tool called 'Valgrind' is pretty important for checking memory leaks which are sadly quite common when dealing with pure C.

    libcg will give you garbage collection in C. Pick something you use and stick with it. Mind you, you should probably learn something like Java or .NET tech if you want to be
    employable in the medium term. C is great for learning the 'guts' so to speak. Productivity might go down because you have to reinvent the wheel alot. If you really want
    to go learn how the machine works, MIPS or x86 assembly is a good bet. Python looks good too, but I don't have any real experience with it. The indentation is a bit funky.


  • Closed Accounts Posts: 31 silsean


    Thanks for all the comments. Glad to see a little debate over it. C# definately seems to be wanted most on monster. I guess i don't want to skip over things so i will study C++ now and if i get back into development i could fly through C#. (i'm obviously not going to be getting a development job in the short term so i have the time to do it right)

    I think a big reason why i want to revisit my development skills is because i didn't really try hard enough in college and know i could enjoy it. This is why i'm doing C++, an older language than perl or C#. Does this sound like good rational to people?


  • Registered Users Posts: 9,579 ✭✭✭Webmonkey


    silsean wrote: »
    Thanks for all the comments. Glad to see a little debate over it. C# definately seems to be wanted most on monster. I guess i don't want to skip over things so i will study C++ now and if i get back into development i could fly through C#. (i'm obviously not going to be getting a development job in the short term so i have the time to do it right)

    I think a big reason why i want to revisit my development skills is because i didn't really try hard enough in college and know i could enjoy it. This is why i'm doing C++, an older language than perl or C#. Does this sound like good rational to people?
    Learning C/C++ will do you good.

    You should have no problem picking up C# later.


  • Registered Users Posts: 84 ✭✭a_l_a_n


    C and C++ are definitely languages which you should be able to work in, but if you've learned Java already, the benefit of learning them is limited.

    I strongly recommend Ruby. It's a delightful language to work in, and will be in huge demand in this country within a few years (we lag behind the rest of the world ... sigh).

    Add in the Rails framework and you will be productive, valuable, and happy in your work :)


  • Closed Accounts Posts: 31 silsean


    I figure a refresher course is in order, hence doing C++ which is like Java and won't be too much new learning.
    From what i understand C is not OO so it's not what i want. If i do ever need to use C i'm sure my C++ should help tonnes. And for C#, perl, ruby and others i guess i could do later. Perhaps if i get my practise with C++ doing small things by the time i'm past the stage with C++ i could do more exciting things with C#, perl, and ruby. Thats what i'm thinking now. The comments you guys made helped, so thanks.


  • Registered Users Posts: 84 ✭✭a_l_a_n


    silsean wrote: »
    From what i understand C is not OO so it's not what i want.

    And therein lies the value for you. You should learn different types of language to make yourself really valuable. Procedural, Object-oriented, Functional. Also compiled and interpreted languages. Strong ones and weakly typed ones. Diversify man.


  • Closed Accounts Posts: 4,564 ✭✭✭Naikon


    silsean wrote: »
    From what i understand C is not OO

    Not quite;)

    Cough

    C has very little in the way of library bloat. It's practically designed as portable assembler.
    If you want garbage collection, fancy OO syntax, gui constructs and such, you need third party libraries.

    It would be a good idea to get a good grasp of the three main programming styles-> functional, OO, imperitive.
    Wish I had more time to learn something like Haskell in more depth :\ Don't focus on one tool is my best advice.


  • Advertisement
Advertisement