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

Learning a programming language

Options
  • 20-12-2011 2:17pm
    #1
    Registered Users 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


«134

Comments

  • Registered Users Posts: 7,410 ✭✭✭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 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 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 Posts: 2,791 ✭✭✭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 Posts: 2,791 ✭✭✭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 Posts: 2,023 ✭✭✭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 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 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 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 Posts: 11,979 ✭✭✭✭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 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 Posts: 11,262 ✭✭✭✭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,258 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 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 Posts: 11,979 ✭✭✭✭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 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 Posts: 2,023 ✭✭✭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 Posts: 2,791 ✭✭✭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 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 Posts: 2,023 ✭✭✭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 Posts: 11,979 ✭✭✭✭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.


Advertisement