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

C programmer looking to learn a new language, what should it be?

Options
  • 05-04-2005 8:15pm
    #1
    Closed Accounts Posts: 134 ✭✭


    I graduated from college and am now working as a junior software engineer at a small company. I studied electronic engineering in college and have a very good knowledge of C (this is the language of choice for the company i work for), and a little bit of C++ but thats about all.
    Realistically i dont see myself staying with the company forever and so i would like to build up my knowledge of a few other languages so as not to limit myself.

    I will begin looking at night courses in the summer, can anyone recommend a good college/course/language that will stand toward me when i decide to leave the company I'm at.

    Thanks.


«1

Comments

  • Closed Accounts Posts: 888 ✭✭✭themole


    java would be a good bet.

    very popular at the mo


  • Registered Users Posts: 4,072 ✭✭✭muckwarrior


    I reckon C# would be even better. .Net is on the rise and C# shouldn't be too hard to pick up for a C/C++ programmer.


  • Closed Accounts Posts: 134 ✭✭JimboPope


    I have downloaded a couple of eBooks on C# and i'm quite enjoying learning it, I want to get a qualification, something in writing, just to have the piece of paper, where would be considered a good college for C# or Java programming close to the city centre.


  • Closed Accounts Posts: 26 Selket


    C# is a good entry point into learing java. Basically its MS' attempt to convert java programmers. There is quite a bit of similiarites between them but is also closely linked to C++. I learned it as a back end way into learning C++


  • Registered Users Posts: 4,072 ✭✭✭muckwarrior


    Selket wrote:
    C# is a good entry point into learing java. Basically its MS' attempt to convert java programmers.
    Have to disagree there. Visual j# is Microsoft's java rip off. C# is superior to java and is mainly derived from C++, not java. Also, when comparing C# to Java it's probably actually better to compare J2EE to .NET the latter of which is also superior IMHO.


  • Advertisement
  • Registered Users Posts: 999 ✭✭✭cregser


    I always say C# is like C++ and Java mixed together. If you've ever done any win32 programming you'll love C#. It makes it so easy!

    I say Java or C#. IMO, Java is well established but C# is the way for the future.
    People I know complain Java can be pretty tough to learn. It's a strict language.

    I'd also like to know were to get proof of your knowledge on paper. It might be something like a distant learning course.


  • Closed Accounts Posts: 1,010 ✭✭✭kasintahan


    Java's a piece of piss, if you know C then most of the syntax will be obvious to you.

    If you've never done object orientated programming before then you'll find it a bit weird (I did, coming from C and ASM), but it's fun to program.


  • Registered Users Posts: 21,264 ✭✭✭✭Hobbes


    cregser wrote:
    I say Java or C#. IMO, Java is well established but C# is the way for the future.
    People I know complain Java can be pretty tough to learn. It's a strict language.

    Can you cite where you are getting that from? Most businesses I know of are moving away from MS and J2EE is king vs .NET. Of course I could be wrong, thats why I want to see where your getting the stats from?


  • Closed Accounts Posts: 3 Malecon


    I would give python a try .. (www.python.org)
    An excellent OO language that is relatively simple to learn,
    If you value programmer productivity .. it is the way to go ... IMO, far better than Java, c# etc.
    You can still use you C knowledge to write any speed critical extensions that you might want :)


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


    What OS are you working with JimboPope?


  • Advertisement
  • Closed Accounts Posts: 134 ✭✭JimboPope


    Its all embedded system stuff, no OS as such. Although its all very close to posix. Same kind of commands and that.

    I think C# might be the right one for me, I've dabbled a little and find it fun to learn.
    Does anyone know of a college that does night courses in this?


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


    I learned it myself although I had some Java which helped. Microsoft Ireland have an educational page. You could try there.


  • Registered Users Posts: 15,443 ✭✭✭✭bonkey


    cregser wrote:
    People I know complain Java can be pretty tough to learn. It's a strict language.

    Strange to see these two comments beside each other. I've always considered strict languages to be more consistent, and thus easier to learn.

    jc


  • Registered Users Posts: 15,443 ✭✭✭✭bonkey


    JimboPope wrote:
    Its all embedded system stuff, no OS as such. Although its all very close to posix. Same kind of commands and that.

    If thats the general arena (i.e. embedded systems) that you intend to stay in, then I would guess that C++ or Java are more likely to be relevant than C#.

    jc


  • Closed Accounts Posts: 1,502 ✭✭✭MrPinK


    Yeah, java is definitely the more logical choice in that case. Specifically look at J2ME, which is java for embedded systems.


  • Closed Accounts Posts: 7,230 ✭✭✭scojones


    JimboPope wrote:
    I have downloaded a couple of eBooks on C# and i'm quite enjoying learning it, I want to get a qualification, something in writing, just to have the piece of paper, where would be considered a good college for C# or Java programming close to the city centre.

    You have your qualification already - I feel that you don't need anymore. Companies will look at your qualification and then look at your experience. This has been discussed a countless number of times on boards already, I think the experience will matter more than another piece of paper.

    You are already qualified, now just add to your knowledge base (you will be doing this for the rest of your career) not to your wall of achievements.


  • Registered Users Posts: 950 ✭✭✭jessy


    JimboPope wrote:
    Does anyone know of a college that does night courses in this?

    TBH if you know how to program then it should only take you 2-3 week to pick up the syntax of another language; you don’t need to take a course in it. If you get stuck with any concepts just post here and you should get loads of help.


  • Registered Users Posts: 4,072 ✭✭✭muckwarrior


    MrPinK wrote:
    Yeah, java is definitely the more logical choice in that case. Specifically look at J2ME, which is java for embedded systems.
    Java may have J2ME but C# has .NET compact.


  • Registered Users Posts: 15,443 ✭✭✭✭bonkey


    Java may have J2ME but C# has .NET compact.

    When it comes to embedded systems, .NET cannot and does not hold a candle to Java.

    The OP comes from an ES background, and may wish to stay in that arena even when he/she leaves their current company. If they do, I can guarantee you that .NET is (and will be for the forseeable future) of far, far, far less import than Java.

    Simple example....show me the .NET-Card specification, and check how widely used it is. Then check the Java-Card specification and check how widely used it is. Then explain to me why MS can comepte with Java in this regard.

    Oh - and as for the whole Enterprise Framework stuff....show me .Net (not Mono, .NET) running on an AS400, a Sun Enterprise server, or any other enterprise-level, non-MS-software-supported hardware, and I'll agree that .Net having a nicer-to-use toolset is actually a significant factor.

    jc


  • Registered Users Posts: 999 ✭✭✭cregser


    Hobbes wrote:
    Can you cite where you are getting that from? Most businesses I know of are moving away from MS and J2EE is king vs .NET. Of course I could be wrong, thats why I want to see where your getting the stats from?
    I was careful to put IMO in there. I was expressing an opinion, not a fact! I don't have any hard figures to show you.

    It's just my opinion that C# is a lovely language to program for and tries to cater for people coming from Java, C++, and VB. Windows is the most prevailent OS today, and I'm guessing that programs written for it will be looking at C#. It all depends on how much MS embraces .NET in the future and how much everyone embraces MS in the future.
    Bonkey wrote:
    Strange to see these two comments beside each other. I've always considered strict languages to be more consistent, and thus easier to learn.
    Well I've learnt Java now and I like it. But I've noticed a lot of people complaining that it's difficult to learn. Maybe it's down to a lack of discipline. If your coming from C, you're probably not used to strict syntax. It's been a little while since I've programmed in C, but I remember there being a number of ways to do the same thing. And even if you made a mistake, it would compile and you could debug and troubleshoot from there. Whereas Java simply doesn't comile untill everything is perfect and someone learning Java may find compiler errors cryptic. It's difficult to learn when you can't get past compilation.

    [EDIT:] But as this topic has progressed, I agree that Java would be more relevant for embedded systems. It's more interoperable.


  • Advertisement
  • Closed Accounts Posts: 26 Selket


    Have to disagree there. Visual j# is Microsoft's java rip off. C# is superior to java and is mainly derived from C++, not java. Also, when comparing C# to Java it's probably actually better to compare J2EE to .NET the latter of which is also superior IMHO.

    Sorry, didn't explain myself properly. When I said that it was closely linked the C++ I meant that it was coming from a C background. Also by saying that it was a good entry to java I was talking about how it has some similiarites, more so than any of the other C languages.

    I fully agree that J# is MS' java but didn't C# come before J? In otherwords Ms 1st attempt. I also recommended it because the person asking comes from a C background and thought this might be easier for them to pick up quickly IMO


  • Registered Users Posts: 21,264 ✭✭✭✭Hobbes


    cregser wrote:
    Windows is the most prevailent OS today,

    Only on the desktop. Its lagging behind on the enterprise level.

    With the way new things are going the client can be a thin one (rich client or browser).
    Whereas Java simply doesn't comile untill everything is perfect and someone learning Java may find compiler errors cryptic. It's difficult to learn when you can't get past compilation.

    IDE's can take the pain out of this (although you should stick to notepad if you are learning for the exam). Also some JREs are more friendly in the error messages. IBMs JRE has better errors then Suns in this regards afaik.
    But as this topic has progressed, I agree that Java would be more relevant for embedded systems. It's more interoperable.

    True. I think if you come from a C/C++ background it might be good to look into Symbian OS as well. You can write your stuff in C and will run faster then J2ME.


  • Closed Accounts Posts: 134 ✭✭JimboPope


    At this stage I don't know if I want to stay in the embedded systems area. If i'm enjoying it and getting a decent salary out of it then sure but the reason I want to do some other languages is so as I wont pigeon hole myself.
    If bigger and better oportunities come up outside ES then I would like the programming know how to take them.
    Maybe I'll look at the J2ME stuff and I'm sure I'll learn enough from there so as to be comfortable picking up java and C#.


  • Registered Users Posts: 4,276 ✭✭✭damnyanks


    You can use the .Net compact framework for mobile devices as well. Of course its no where near as mainstream as Java enabled phones but Microsoft have enough money to make a go at it.

    It's funky if you have Visual Studio. My phone has Windows CE its handy for a little screw around :D Never tried J2ME though.

    As far as I know Symbian use there own version of C. At least when they create their own applications / services / whatever. How it differs I do not know. My C is still rather basic :) I can do a Binary tree weeeeeee


  • Registered Users Posts: 4,003 ✭✭✭rsynnott


    Selket wrote:
    Sorry, didn't explain myself properly. When I said that it was closely linked the C++ I meant that it was coming from a C background. Also by saying that it was a good entry to java I was talking about how it has some similiarites, more so than any of the other C languages.

    I fully agree that J# is MS' java but didn't C# come before J? In otherwords Ms 1st attempt. I also recommended it because the person asking comes from a C background and thought this might be easier for them to pick up quickly IMO

    No, no it didn't. Microsoft have had their horrible, horrible Visual J for YEARS. (It started the whole MS JVM problem)


  • Registered Users Posts: 950 ✭✭✭jessy


    cregser wrote:
    If your coming from C, you're probably not used to strict syntax.

    Can you explain what you mean by this.

    cregser wrote:
    It's been a little while since I've programmed in C, but I remember there being a number of ways to do the same thing.

    And theres not in java???

    cregser wrote:
    And even if you made a mistake, it would compile and you could debug and troubleshoot from there.

    What C complier were you using?


  • Moderators, Society & Culture Moderators Posts: 9,689 Mod ✭✭✭✭stevenmu


    cregser wrote:
    Well I've learnt Java now and I like it. But I've noticed a lot of people complaining that it's difficult to learn. Maybe it's down to a lack of discipline. If your coming from C, you're probably not used to strict syntax. It's been a little while since I've programmed in C, but I remember there being a number of ways to do the same thing. And even if you made a mistake, it would compile and you could debug and troubleshoot from there. Whereas Java simply doesn't comile untill everything is perfect and someone learning Java may find compiler errors cryptic. It's difficult to learn when you can't get past compilation.
    To be honest I found Java easy to learn for almost the exact same reasons. I much prefer being warned at compile time about problems than having to debug later, altough learning how to debug is important. Generally I found the compiler errors pretty good, whenever they were a bit cryptic it was usually down to a misplaced bracket so I'd start checking them first.

    In the whole Java vs .Net debate, I think that both are great platforms, but both have their strengths and weaknesses. In general I think it's fair to say that .Net is better for small developers and SMEs. It's great for quickly developing small business type applications, scales up to more complicated infrastructures quite well, is very easy to pick up and is better integrated with windows which most SMEs still rely on. The only Java IDE I've used was an early Visual Cafe but I can't imagine any of them being as good as Visual Studio which really is incredible. On the Java side the obvious plus is platform independance which makes it great for larger enterprise situations which have mixed or non windows infrastructures. J2EE is supposedly better for developing complex enterprise level applications and I believe it's very good at interfacing with legacy systems aswell.

    On the whole I don't think it's fair to say one is simply better than the other, it depends on what you want out of your platform. The company I'm work for develops with Progress4GL and they asked me to look at a new platform. I ended up recommending .Net mainly because VB.Net was much closer to Progress4GL than Java, which makes upskilling cheaper and easier, and all our customers are completely windows based, the only devices we'd be targetting are pocketpc or windows mobile based anyway.

    edit:
    On the jobs front, I'd imagine there'll be plenty of jobs with both in the years the come. I think the main difference is that there'd be a higher percentage of entry level positions with .Net, the same way there's lot's of low-level VB6 jobs out there today. Similarly I'd guess that a higher percentage of Java jobs will be at higher levels (= higher pay).


  • Registered Users Posts: 4,003 ✭✭✭rsynnott


    stevenmu wrote:
    edit:
    On the jobs front, I'd imagine there'll be plenty of jobs with both in the years the come. I think the main difference is that there'd be a higher percentage of entry level positions with .Net, the same way there's lot's of low-level VB6 jobs out there today. Similarly I'd guess that a higher percentage of Java jobs will be at higher levels (= higher pay).

    Are many people actually employed to write desktop apps in VB? I always got the idea it was more of a hobbyist thing.


  • Moderators, Society & Culture Moderators Posts: 9,689 Mod ✭✭✭✭stevenmu


    I remember when I was job hunting just over 2 years ago there's was loads of VB6 jobs in the listings. In one place I worked, a big financial institution, they had their own VB programming team maintaining their own applications. Most of it seems to very basic stuff, just maintaining and making small changes to custom apps or custom front ends for access. I think it's stuff like this that gave VB it's reputation as not being a real programming language. Altough there's much more to VB than just having a form with a few buttons slapped on it, it's very good at doing that and that's often all it's used for.


  • Advertisement
  • Registered Users Posts: 1,421 ✭✭✭Merrion


    I'd recommend learning SQL - either SQL Server or Oracle flavour, to a high level of proficiency, rather than learning another procedural/oo language.


Advertisement