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
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

Learning a programming language

  • 20-12-2011 1:17pm
    #1
    Registered Users, Registered Users 2 Posts: 610 ✭✭✭


    Not sure if this is the right forum. If it is not, mods please move it.

    As part of my new year's resolutions, I am looking to learn a computer programming language. I have done some programming in Java (back in '99 - '01), Logo ('88 - '92) and VBA ('03), but have forgotten nearly everything I learnt from them.

    I will be using the knowledge for writing programs to do maths based problems, and hopefully teach/encourage my daughter (10yo) to learn to program.

    I am looking for some recommendations for an easy to learn language, that I don't need a massive amount of software for, and that is widely used on websites, office work, etc.

    Many thanks,

    Clauric


«1

Comments

  • Registered Users, Registered Users 2 Posts: 7,521 ✭✭✭jmcc


    Python. (Not sure about office work though but it is very useful for some backend stuff.) The alternative (for website stuff) would be PHP.

    Regards...jmcc


  • Registered Users, Registered Users 2 Posts: 8,070 ✭✭✭Placebo


    Python? i would recommend Java. Documentation heavy, many simple compilers, its OOP [Object-Oriented Programming], i picked up other languages with ease after, from PHP to actionscript.

    Objective-C may also be an option, apps and whatnot.


  • Registered Users, Registered Users 2 Posts: 47 bundaegi


    Python is a nice language to learn but I second the recommendation to revisit Java. It's a widely used, well supported language and once you are proficient you could even try Android App development.

    It might also be worth looking at Processing as a starting point. It's a Java-based language with a simplified syntax.

    Also, I'd highly recommend Scratch as a language to introduce your 10yo to programming.


  • Closed Accounts Posts: 9,183 ✭✭✭dvpower


    Java or a .NET language (C#, VB.NET).
    There are heaps of online resources for these languages as well as powerful free IDEs and heaps of code samples. These are the most popular general purpose languages with massive developer communities.


  • Registered Users, Registered Users 2 Posts: 2,793 ✭✭✭John_Mc


    dvpower wrote: »
    Java or a .NET language (C#, VB.NET).
    There are heaps of online resources for these languages as well as powerful free IDEs and heaps of code samples. These are the most popular general purpose languages with massive developer communities.

    Yeah +1

    You can easily move from Java to .Net C# and vice versa as they are very similar in terms of syntax and both are OOP


  • Advertisement
  • Closed Accounts Posts: 5,064 ✭✭✭Gurgle


    Learn C, all of the above are based on / extensions of it anyway. If you want to throw yourself in the deep end with OOP then go for Java.

    I wouldn't bother with .NET, its a failed experiment by Microsoft and will be a fading memory in another few years.

    Python is a bit silly, which is why its got the name. Its good for an 'enthusiast' (read: ubernerd) who appreciates the sheer multi-faceted multi-ness of it, not so useful though if you just want to get something done.


  • Registered Users, Registered Users 2 Posts: 2,793 ✭✭✭John_Mc


    Gurgle wrote: »

    I wouldn't bother with .NET, its a failed experiment by Microsoft and will be a fading memory in another few years.

    Absolute rubbish.


  • Closed Accounts Posts: 5,064 ✭✭✭Gurgle


    John_Mc wrote: »
    Absolute rubbish.
    The more people who focus on learning .NET now, the fewer I have to compete with for work in the future :D


  • Registered Users, Registered Users 2 Posts: 2,040 ✭✭✭Colonel Panic


    Gurgle wrote: »
    Learn C, all of the above are based on / extensions of it anyway. If you want to throw yourself in the deep end with OOP then go for Java.

    I wouldn't bother with .NET, its a failed experiment by Microsoft and will be a fading memory in another few years.

    Python is a bit silly, which is why its got the name. Its good for an 'enthusiast' (read: ubernerd) who appreciates the sheer multi-faceted multi-ness of it, not so useful though if you just want to get something done.

    Is this actually a serious reply?


  • Registered Users, Registered Users 2 Posts: 610 ✭✭✭Clauric


    Thanks for all the replies. The consensus seems to be Java for me and possibly Java/Scratch for my daughter.

    One final question: what is a good JDK to use and where to find a good tutorial (book or online resource/wiki)?


  • Advertisement
  • Closed Accounts Posts: 410 ✭✭JohnathanM


    Clauric wrote: »
    Thanks for all the replies. The consensus seems to be Java for me and possibly Java/Scratch for my daughter.

    One final question: what is a good JDK to use and where to find a good tutorial (book or online resource/wiki)?

    A couple fewer C# users in the world. Lovely. ;)

    Run through this thread for books and things: http://www.boards.ie/vbulletin/showthread.php?t=2055685846. Thinking in Java might be a good first read (perhaps others know better), and you could do worse than visit here: http://www.javaranch.com/.

    First time out, stick with the basic Sun JDK which you can also download with an IDE: http://www.oracle.com/technetwork/java/javase/downloads/index.html


  • Closed Accounts Posts: 5,064 ✭✭✭Gurgle


    Is this actually a serious reply?
    Of course its a serious reply.
    I will be using the knowledge for writing programs to do maths based problems, and hopefully teach/encourage my daughter (10yo) to learn to program.

    Any recommendation other than C or Java is completely inappropriate.

    They are the defining languages for structured and object oriented programming respectively. Of course VB is another option. It doesn't bring anything special to the party, but at least its got some lineage in the history of programming.

    (Incidentally, .NET isn't even a programming language. It's just an extra layer in the shìte that separates your code from your processor.)


  • Registered Users, Registered Users 2 Posts: 2,781 ✭✭✭amen


    Incidentally, .NET isn't even a programming language. It's just an extra layer in the shìte that separates your code from your processor

    and how exactly is that different from Java then ?


  • Registered Users, Registered Users 2 Posts: 7,157 ✭✭✭srsly78


    Gurgle wrote: »
    Any recommendation other than C or Java is completely inappropriate.

    Unless you care about getting a job.

    C and Java are completely inappropriate for some types of development.


  • Registered Users, Registered Users 2 Posts: 11,989 ✭✭✭✭Giblet


    Gurgle wrote: »
    Learn C, all of the above are based on / extensions of it anyway. If you want to throw yourself in the deep end with OOP then go for Java.

    I wouldn't bother with .NET, its a failed experiment by Microsoft and will be a fading memory in another few years.

    Really? What makes you say that? C# as a language is constantly being improved while Java struggles to implement any of the newer features correctly. See closures and generics. If anything, it's being more widely adopted every day. So no, it's not failed. That just sounds like favoritism for other languages. Worried about getting to the metal? You have the VM in Java? You can write in IL using .NET.

    What language you do choose nearly comes down to a career choice these days, as I would expect any decent programmer to be able to pick up any language, regardless. I've done a few game engines in C++ and beyond that, I haven't found a use for it, but that's me, ymmv. I work on a large e-Commerce platform now, and more and more, the language you use is a tool to apply knowledge about any specific domain, and choosing the right battles. You're not going to write a Web based app in C++, and probably won't get much mileage out of phone apps unless you know Java and Obj-C. I started out in C, left it behind, then came back to it years later. It's just syntax for solving problems, things like memory management just need experience, a language isn't going to teach the thinking behind how to manage it.


  • Registered Users, Registered Users 2 Posts: 377 ✭✭irishdude11


    Gurgle wrote: »
    (Incidentally, .NET isn't even a programming language. It's just an extra layer in the shìte that separates your code from your processor.)

    C itself is just another layer of ****e separating (assembly) code from the processor. C was great when it arrived and people didnt have to code in awkward and time consuming assembly anymore. Nowadays .NET/C# is great in that people dont have to code in awkward and time consuming C anymore. Unless performance is absolutely critical why would anyone program something in C where it will take them much much longer to get anything done.


  • Registered Users, Registered Users 2 Posts: 11,264 ✭✭✭✭jester77


    hmm, I would first ask what it is you want to achieve? Any goals or projects that you are looking to complete?

    A language is just a tool, some tools are better than others for a particular job! There would be no point learning ruby and then trying to write an app for ios/android, or developing a basic website with java, etc.


  • Moderators, Business & Finance Moderators Posts: 10,611 Mod ✭✭✭✭Jim2007


    Clauric wrote: »
    Thanks for all the replies. The consensus seems to be Java for me and possibly Java/Scratch for my daughter.

    One final question: what is a good JDK to use and where to find a good tutorial (book or online resource/wiki)?

    Have a look at Microsoft Small Basic, kids like instant gratification, not hours of theory and compile errors. Once they are hooked and want to do something some thing a bit more serious you can introduce a more complex language.


  • Closed Accounts Posts: 5,064 ✭✭✭Gurgle


    Giblet wrote: »
    Really? What makes you say that? C# as a language is constantly being improved while Java struggles to implement any of the newer features correctly.
    C# is a perfectly good language, when I used it first it struck me as a C++ implementation with Java style syntax.

    But C# != .NET.

    You can get compilers for C# that build native applications rather than using the .NET framework.
    What language you do choose nearly comes down to a career choice these days, as I would expect any decent programmer to be able to pick up any language, regardless.
    Yes, exactly.
    Learn how to program first, then pick up whatever tools you need from year to year. The tools change, the programming skills don't.
    I started out in C, left it behind, then came back to it years later.
    Starting to see my point now?


  • Registered Users, Registered Users 2 Posts: 7,157 ✭✭✭srsly78


    No.

    Teaching C to a 10 year old is doing it wrong. Use java or c# or python or other high-level language.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 11,989 ✭✭✭✭Giblet


    Gurgle wrote: »
    Starting to see my point now?

    I left it behind 1 month after I started, I cut my teeth on Java. The point is to learn programming using whatever language you require, no specific language will teach you that, just the application of a mindset. .NET is fine. It's no worse than the JVM. Have you actually used .NET lately? 4, or 4.5? The benefit of using .NET is using a managed language and JIT IL interpretation.


  • Registered Users, Registered Users 2 Posts: 1,419 ✭✭✭Cool Mo D


    Gurgle wrote: »
    Learn C, all of the above are based on / extensions of it anyway. If you want to throw yourself in the deep end with OOP then go for Java.

    I wouldn't bother with .NET, its a failed experiment by Microsoft and will be a fading memory in another few years.

    Python is a bit silly, which is why its got the name. Its good for an 'enthusiast' (read: ubernerd) who appreciates the sheer multi-faceted multi-ness of it, not so useful though if you just want to get something done.

    This reply is just weird. C and Java are very important languages, but C in particular is not beginner friendly at all, and Java is pretty awkward to just write something simple in. .NET is all well and good, but it's Microsoft only.

    Learning Python is a great idea. It will be much easier to learn, and if you want to just get something done, will take you a fraction of the time that C or Java would. It will run a bit slower, which is irrelevant unless you want to develop a bleeding edge game, or process tons of data.

    Python also has excellent and easy-to-use maths libraries - NumPy and SciPy.

    It's also possible to write web application, graphical applications, or short scripts easily in python, and there is a really good, freely available introduction to programming available for python, How to think like a Computer Scientist..

    TO pick up programming you are best off learning a language you can do useful things in fast - think python, ruby, perl, php or javascript, not C, C++, C#, or Java.


  • Closed Accounts Posts: 5,064 ✭✭✭Gurgle


    amen wrote: »
    and how exactly is that different from Java then ?
    Java works on everything, .NET (without getting bogged down in details) doesn't.
    C itself is just another layer of ****e separating (assembly) code from the processor
    :confused: It's compiled into assembly code.
    Unless performance is absolutely critical why would anyone program something in C
    Performance is ALWAYS absolutely critical :D
    where it will take them much much longer to get anything done.
    I think that's one of those little fibs...


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


    Gurgle wrote: »
    Learn C, all of the above are based on / extensions of it anyway. If you want to throw yourself in the deep end with OOP then go for Java.

    I wouldn't bother with .NET, its a failed experiment by Microsoft and will be a fading memory in another few years.

    Python is a bit silly, which is why its got the name. Its good for an 'enthusiast' (read: ubernerd) who appreciates the sheer multi-faceted multi-ness of it, not so useful though if you just want to get something done.
    Believe it or not there's a wide and varied world of programming outisde of whatever it is that you do. You might use C day in and day out, but there's lots of other people doing lots of other things with lots of other languages. Including C# and Python.


  • Registered Users, Registered Users 2 Posts: 2,040 ✭✭✭Colonel Panic


    Real programmers use the right tool for the job and don't get caught up in language wars and trolling. I dunno why people are still entertaining Gurgle, he doesn't know what he's talking about.

    I would much prefer be able to teach in a language with a low cost of entry to get across the importance of data structures and algorithms rather than getting bogged down in a something low level that notoriously gives you enough rope to hang yourself with and nothing more.


  • Registered Users, Registered Users 2 Posts: 2,793 ✭✭✭John_Mc


    Real programmers use the right tool for the job and don't get caught up in language wars and trolling. I dunno why people are still entertaining Gurgle, he doesn't know what he's talking about.

    I would much prefer be able to teach in a language with a low cost of entry to get across the importance of data structures and algorithms rather than getting bogged down in a something low level that notoriously gives you enough rope to hang yourself with and nothing more.

    +1 Absolutely spot on.

    His comments are verging on trolling - which is surprising for a moderator on here


  • Closed Accounts Posts: 5,064 ✭✭✭Gurgle


    Giblet wrote: »
    Have you actually used .NET lately? 4, or 4.5? The benefit of using .NET is using a managed language and JIT IL interpretation.
    Better, one of my colleagues is using it. He sent me his client application, I tried to run it on my brand new, fully updated Win 7 PC.

    Did it work?
    Of course not, I didn't have the correct version of .NET :rolleyes:


  • Registered Users, Registered Users 2 Posts: 7,157 ✭✭✭srsly78


    Surprisingly .net apps must be bundled with the appropriate .net framework :rolleyes:

    My graphics software also crashes if directx isn't installed! Shocking stuff altogether.


  • Registered Users, Registered Users 2 Posts: 2,040 ✭✭✭Colonel Panic


    If you build a C++ application in VS2010 and gave it to someone without the correct runtime installed, what would happen?

    If your colleague created an installer, it would've managed dependencies for you. This is a fact of life with computer programming, stop using his failure as confirmation bias.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 11,989 ✭✭✭✭Giblet


    Gurgle wrote: »
    Better, one of my colleagues is using it. He sent me his client application, I tried to run it on my brand new, fully updated Win 7 PC.

    Did it work?
    Of course not, I didn't have the correct version of .NET :rolleyes:

    I wouldn't be able to run any application without the correct dependencies.


  • Closed Accounts Posts: 5,064 ✭✭✭Gurgle


    Giblet wrote:
    I wouldn't be able to run any application without the correct dependencies.
    srsly78 wrote:
    Surprisingly .net apps must be bundled with the appropriate .net framework
    My graphics software also crashes if directx isn't installed! Shocking stuff altogether.
    If you build a C++ application in VS2010 and gave it to someone without the correct runtime installed, what would happen?
    If your colleague created an installer, it would've managed dependencies for you.
    I do understand why there was a problem, my point is that there shouldn't have been a problem.

    As for the trolling comments:
    The OP asked for advice on where to start programming, I recommended the long-established standard languages over the current selection of professional tools.

    Yes of course these tools are useful for particular types of application, otherwise they wouldn't exist. But its hardly helpful advice for someone who hasn't done their first 'hello world' yet.


  • Registered Users, Registered Users 2 Posts: 7,157 ✭✭✭srsly78


    The OP has already done "hello world" in several languages. Troll more :)


  • Registered Users, Registered Users 2 Posts: 5,246 ✭✭✭conor.hogan.2


    John_Mc wrote: »
    Absolute rubbish.

    It is at the core of Windows 8, oh no wait it is not.

    Also to call python a non useful language for GTD is nonsense Google use it heavily for GTD fast and prototyping etc.


  • Registered Users, Registered Users 2 Posts: 2,040 ✭✭✭Colonel Panic


    It is at the core of Windows 8, oh no wait it is not.

    This doesn't really prove anything. The .Net framework isn't going anywhere!


  • Registered Users, Registered Users 2 Posts: 5,246 ✭✭✭conor.hogan.2


    This doesn't really prove anything. The .Net framework isn't going anywhere!

    No, but it is not on the upswing by any means. It will of course stay around and used a lot for a long time.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 2,040 ✭✭✭Colonel Panic


    Very true. I think that's the nature of things though. Look at how rarely C and C++ are updated!

    There's still a lot happening with .Net as a framework for interfacing with Azure and ASP.Net MVC. Plus there's the Windows Phone side of things too. The Nokia Lumia is selling very well so we could see Windows Phone 7 get a bit more of a foothold.

    A lot of things developed for .Net like the rendering backend for WPF and XAML for defining interfaces have been ported to work with native code for Win8. .Net applications will still be able to use these things as well!


  • Registered Users, Registered Users 2 Posts: 5,246 ✭✭✭conor.hogan.2


    Windows phone 7, the sleipnir of mobile operating systems.


  • Closed Accounts Posts: 9,183 ✭✭✭dvpower


    Gurgle wrote: »
    The OP asked for advice on where to start programming, I recommended the long-established standard languages over the current selection of professional tools.

    In terms of software development as an industry, .NET languages (introduced in 2002) are long established.


  • Registered Users, Registered Users 2 Posts: 7,231 ✭✭✭Fad


    Real programmers use a magnetized needle and a steady hand....


  • Closed Accounts Posts: 2,616 ✭✭✭8k2q1gfcz9s5d4


    Gurgle wrote: »

    I wouldn't bother with .NET, its a failed experiment by Microsoft and will be a fading memory in another few years.

    trolls like the stop me from posting a lot in this forum.

    The amount of people that always say what ever language they use is the best, ignoring what might actually be the best option for the OP. not only in this thread.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 377 ✭✭irishdude11


    Gurgle wrote: »
    I do understand why there was a problem, my point is that there shouldn't have been a problem.

    Your point is nonsesnsical. Your colleague was at fault, it had absolutely nothing to do with .NET.

    Go onto any jobs site and look the amount of jobs going in C and C#. C is hardly used for anything besides games. Actually, is it even used for games anymore, even ID Software have moved to C++...


  • Closed Accounts Posts: 2,616 ✭✭✭8k2q1gfcz9s5d4


    jmcc wrote: »
    Python. (Not sure about office work though but it is very useful for some backend stuff.) The alternative (for website stuff) would be PHP.

    Regards...jmcc

    Python isnt used that much, it would be the one of the alternatives to PHP!


  • Closed Accounts Posts: 287 ✭✭rambutman


    Gurgle wrote: »
    I wouldn't bother with .NET, its a failed experiment by Microsoft and will be a fading memory in another few years.

    I don't normally reply to posts on this board but this time I had to - what a load of crap. What about all the companies that are developed both web and windows based applications at the moment?

    Sure even VB which was superseded around 2000 by .NET is being used a plenty still (rightly or wrongly) and there's still jobs in it.

    What points you to say it's a failed experiment?

    OP - go for C# or Java


  • Registered Users, Registered Users 2 Posts: 7,521 ✭✭✭jmcc


    Nothing sums up the argument better than this:
    http://www.youtube.com/watch?v=d8Oe9SteE3M

    I also think that Java is a perverse language but even it has its uses. What I see a lot is people who have been forced to learn Java in college trying to inflict it on other people. It is the Pascal of the 1990s. However for some things, like Big Data work, it is quite useful.

    Regards...jmcc


  • Registered Users, Registered Users 2 Posts: 7,521 ✭✭✭jmcc


    Python isnt used that much,
    It depends where you work and what you do. While it isn't the language du jour of the average web developer (PHP seems to be), it is very useful for certain tasks and doesn't have an extremely steep learning curve. Of course I could have recommended Tcl but that might have been going a bit too far for some people here. :)

    Regards...jmcc


  • Registered Users, Registered Users 2 Posts: 7,521 ✭✭✭jmcc


    Gurgle wrote: »
    The more people who focus on learning .NET now, the fewer I have to compete with for work in the future :D
    I'm surprised you haven't mention COBOL. They need people for that too and you sound like just the candidate. :)

    Regards...jmcc


  • Registered Users, Registered Users 2 Posts: 2,152 ✭✭✭dazberry


    Back in the late 80s anyone we knew that was into C was as "arrogant as fcuk"**, and having seen the book Born to Code in C we just rolled our eyes as that sort of summed up the mentality of it all...

    To far char star star and beyond :)

    and for the record, I always preferred Pascal, but maybe that's just because I'm a bit verbose :D

    ** I am not for one minute suggesting this applies to Gurgle || !&Gurgle.

    D.


  • Registered Users, Registered Users 2 Posts: 648 ✭✭✭Freddio


    everything referenced here is either server side or has to be compiled. I can't imagine a 10 year old trawling through debug logs.

    Javascript would be my suggestion, you don't need compilers, servers or development environments and there is great documentation on w3schools.com

    You can build mathematical programs, web GUIs, and if you did want to take it further, you can program iphone and android apps with it


  • Registered Users, Registered Users 2 Posts: 11,989 ✭✭✭✭Giblet


    Freddio wrote: »
    everything referenced here is either server side or has to be compiled. I can't imagine a 10 year old trawling through debug logs.

    Javascript would be my suggestion, you don't need compilers, servers or development environments and there is great documentation on w3schools.com

    You can build mathematical programs, web GUIs, and if you did want to take it further, you can program iphone and android apps with it
    Until someone suggest you just use jQuery for **** that doesn't need it.

    Actually, it's a fair point, you could make a sandbox app, leverage some document.querySelector and do some cool things quite quickly to get your kid interested.


  • Registered Users, Registered Users 2 Posts: 8,070 ✭✭✭Placebo


    surely a compiler that highlights your error is better than something like javascript [i guess you could look at the console], while the effects are great in jquery i dont think its good for getting the grisps of programming, for example: i think its crucial the kid knows different types of variables instead of just using var. And jquery sytanx is awful as well !


  • Advertisement
Advertisement