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

So, I've decided to teach myself a language

  • 13-02-2007 1:43pm
    #1
    Registered Users, Registered Users 2 Posts: 2,236 ✭✭✭


    Hi,
    I'm in college at the moment but I have a lot of free time on my hands in the eveing and have decided to teach myself a programming language. But which one?I am thinking maybe C,C++,Java or PHP. Which of these is the best or would they be too hard to begin with..also if I do teach myself a certain amount of any given language is there a way I can get certified?

    Thanks,


Comments

  • Registered Users, Registered Users 2 Posts: 744 ✭✭✭cold_filter


    I think Java is good to start with as its taught as the primary language in most colleges now so there is quite an anbundance of resources, I found it a good base to start learning other languages from.


  • Closed Accounts Posts: 8,478 ✭✭✭GoneShootin


    Speaking from a job perspective, PHP at the moment is not what I would call a great salary earner. If you look at any recruitment site you will see plenty of jobs for JAVA/Microsoft based languages. Personally I'm playing around with the notion of learning a Microsoft .NET language, but time is not my friend!


  • Registered Users, Registered Users 2 Posts: 2,236 ✭✭✭techguy


    I'll have a look into java and some microsoft ones.. Is C/C++ microsoft aswell??
    Where should I start if I want to teach myself java?? Anybody know of any good books out there?


  • Registered Users, Registered Users 2 Posts: 744 ✭✭✭cold_filter


    Any college book shop/easons, though they can be quite expensive so maybe an older edition, also you'll need an environment, i used jbuilder that was a few years ago though, just take your time read the book and as my lecturer said one day everything will just click and you might not have to look at a book again to program in that language, obviously try and put theory into practice as much as possible and practice,practice practice


  • Registered Users, Registered Users 2 Posts: 2,719 ✭✭✭ARGINITE


    Start with java.
    Try this to start you off with learning java Java tutorials.
    Its not bad and its free.
    As for an IDE try eclipse. Also free.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 213 ✭✭underpants


    techguy wrote:
    I'll have a look into java and some microsoft ones.. Is C/C++ microsoft aswell??
    Where should I start if I want to teach myself java?? Anybody know of any good books out there?

    The main microsoft "language" is/was Visual basic. I'd say, avoid at all cost if you really want to learn a proper programming language. VB isn't even entirely object orientated. The latest microsoft language is C#.

    C# would be another possible place to start. But I'd agree that Java is probably the best way to go. Whatever you decided, the basic concept behind both is very similiar so if you learn a few basic bits of code for java then you'll easily be able to apply that to c, c++ or c# once you check the format.


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


    underpants wrote:
    The main microsoft "language" is/was Visual basic. I'd say, avoid at all cost if you really want to learn a proper programming language. VB isn't even entirely object orientated. The latest microsoft language is C#.

    C# would be another possible place to start. But I'd agree that Java is probably the best way to go. Whatever you decided, the basic concept behind both is very similiar so if you learn a few basic bits of code for java then you'll easily be able to apply that to c, c++ or c# once you check the format.

    The current version of VB and the previous version of VB, both being VB.net, are fully object oriented languages as all .net languages are required to be.

    Classic VB did have a bad name and wasn't considered a proper programming language by some (possibly because it was made of lego and balsa wood or something ;)). The reason for this is that classic VB may have been more forgiving of bad code - but you can write bad code in any language. Sure it wasn't object oriented but neither are a number of languages out there including C, not that I'm comparing the two. It was an event driven language. When it came to developing business apps on Windows the were few languages to match it at the time.


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


    If your going the c++ route try gcc, free and means your coding for linux as well. better to avoid bad habits earlier then later.


  • Closed Accounts Posts: 461 ✭✭markf909


    Java or C# would be a good way to introduce yourself and both languages seem to be in demand in the jobs market.

    C++ is far from an academic language and is probably best left until you can be confident in your core programming skills.


  • Registered Users, Registered Users 2 Posts: 2,236 ✭✭✭techguy


    Java it is.. I have downloaded the developers setup file. I installed it but it got all messed up (having to type C:\program files etc) Whats the best way to set it up?
    And whats netbeans, should I leave that for another day?
    Whats and IDE ?

    Whats the best way for me to begin writing,compiling and executing code??


  • Advertisement
  • Closed Accounts Posts: 619 ✭✭✭Afuera


    techguy wrote:
    Whats the best way to set it up?
    And whats netbeans, should I leave that for another day?
    Whats and IDE ?

    Whats the best way for me to begin writing,compiling and executing code??

    You've kind of answered your own question here... An IDE is an Integrated Development Environment. It generally provides a convenient way to write, compile and test code. NetBeans is a decent IDE which Sun provide, so I would recommend you start with that.


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


    NetBeans is free with Java, but you can also get eclipse www.eclipse.org. I've played with Netbeans (I'm an Eclipse fan) and I can say that it really is just a matter of what your happy with.


  • Registered Users, Registered Users 2 Posts: 37,485 ✭✭✭✭Khannie


    I've been using netbeans for the last few weeks and I'm very impressed with it. It integrates a bunch of useful features and is decent for GUI creation.


  • Closed Accounts Posts: 413 ✭✭sobriquet


    Hobbes wrote:
    If your going the c++ route try gcc, free and means your coding for linux as well. better to avoid bad habits earlier then later.
    Slightly OT, but I don't quite get this. It implies that someone learning to code on linux from the get-go won't learn bad habits. In my experience it only means that they'll become less windows-centric, not better programmers.

    If I were recommending a first language I'd say Python. Very neat, flexible in the types of programming it allows, and it better allows someone to learn to write programs rather than learn a language syntax and a class library. Still, the OP has decided to learn Java so it's a moot point.


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


    windows is designed to give a programmer bad habits so that they stay on windows. They tried the same with Java but failed.


  • Registered Users, Registered Users 2 Posts: 2,300 ✭✭✭PixelTrawler


    Id pitch in if its not too late and recommend c# myself. Theres a hell of a lot of resources out theres plus you can get the express editions of visual studio 2005 for free from microsoft.

    Its a fairly easy language if you want to learn an object orientated language.

    Also theres a lot of jobs for c# developers - you also have the option of going into asp.net and working on the web.


  • Registered Users, Registered Users 2 Posts: 15,065 ✭✭✭✭Malice


    How about MUMPS? I've just been reading an excellent article on it here. On a serious note, I would also recommend C# It seems to be the one most in demand.


  • Closed Accounts Posts: 7 tchelyzt


    Stay away from Microsoft. Learn Objective C on an Apple Macintosh. Or else, for the sheer heck of it try an elegant list-processing language like Scheme.


  • Registered Users, Registered Users 2 Posts: 2,236 ✭✭✭techguy


    Seems to between C# and Java..
    Java wins this time because I have the IDE set up. Now all I need to do is learn the actual language. Are C# and java related in any way? Maybe C# will be next..:rolleyes:


  • Closed Accounts Posts: 8,478 ✭✭✭GoneShootin


    tchelyzt wrote:
    Stay away from Microsoft. Learn Objective C on an Apple Macintosh. Or else, for the sheer heck of it try an elegant list-processing language like Scheme.

    Ya because that's where the big money is at!


  • Advertisement
  • Closed Accounts Posts: 413 ✭✭sobriquet


    techguy wrote:
    Seems to between C# and Java..
    Java wins this time because I have the IDE set up. Now all I need to do is learn the actual language. Are C# and java related in any way? Maybe C# will be next..:rolleyes:
    OP, you've settled on Java, and that's a fine choice, plenty of people start learning to code with it. Ignore everything else, don't worry about C# or what'll earn you money.

    Get your development environment set up, and write your first program - hello world or whatever. Find a good introductory book, read it, and work through the exercises. Go well into the book, cover as much as possible.

    Once you're comfortable with writing reasonably complex programs, set yourself a fairly complex task (for example, writing a simple webserver is easier than you'd think, but hard enough to be a challenge for a novice; or perhaps a simple game) and break the problem down until you can solve it. I find having something like this to work towards is more rewarding, and you learn more.

    C# and Java aren't specifically related, but are semantically and syntactically quite similar. Very similar in their design goals and the design choices made to meet those goals.


  • Registered Users, Registered Users 2 Posts: 2,236 ✭✭✭techguy


    Thanks sobriquet,
    You don't by any chance know any good books worth starting off on??


  • Registered Users, Registered Users 2 Posts: 2,236 ✭✭✭techguy


    Thanks sobriquet,
    You don't by any chance know any good books worth starting off on??


  • Closed Accounts Posts: 413 ✭✭sobriquet


    It's been ages since I learned Java, but the titles Java For Students and Thinking In Java ring bells. No idea of quality. I'm assuming by the way that you're learning to code from scratch? No previous experience? Have a root through Amazon etc and read the reviews.

    Google should be your first port of call. There's massive amounts on coding for just about every language and topic, and beginners are well served. There should be some that even start with setting up the IDE and writing your hello world app. Google like mad, make note of good sites and read as much as possible. The answer to just about every query you could come up with is out there. Get used to hitting google when you stumble on something, chances are some other beginner has asked the same question already.


  • Registered Users, Registered Users 2 Posts: 2,236 ✭✭✭techguy


    Thanks been looking on amazon but the amount of books on the topic is crazy..
    I have some experience in QBasic but I haven't got much faith in it because it so outdated and you can't do much with it..
    Im just wondering now should I stay with the basic family??


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


    I would recommend Python or Ruby, as they're easy to learn but rather nice all the same.

    Possibly Scheme.
    techguy wrote:
    I have some experience in QBasic but I haven't got much faith in it because it so outdated and you can't do much with it..
    Im just wondering now should I stay with the basic family??

    Nah, that family is now effectively dead. VB.NET is little but a dressed-up C# (which is just as well; real VB was a bit of a nightmare).

    In response to another question, Java and C# are very similar.


  • Registered Users, Registered Users 2 Posts: 2,236 ✭✭✭techguy


    I would like to stick to something a little more mainstream like java or a variant of C so it will be Java for me i'm afraid..


  • Closed Accounts Posts: 413 ✭✭sobriquet


    techguy wrote:
    Thanks been looking on amazon but the amount of books on the topic is crazy..
    Google the book titles, try to find a few reviews. Don't sweat it though, if you stick with coding you won't be long leaving your beginners book behind. Just find one or two with some good reviews and plough into them. Google all the tutorials you find, read them, bookmark the good ones and come back to them. As you decide you want to learn a particular topic (say, network sockets, parsing strings, or file access), google for tutorials on them, repeat the process.
    techguy wrote:
    I have some experience in QBasic but I haven't got much faith in it because it so outdated and you can't do much with it..
    Im just wondering now should I stay with the basic family??
    Why wonder? QBasic and the basic family is, as rsynott said, all but dead. Even official MS Basic is (or was, they're diverging now) a syntax skin on the C# semantics. Java is fine. Learn Java. Get your Java IDE, books and tutorials, start the learnin'. In fact, you could start now.
    techguy wrote:
    I would like to stick to something a little more mainstream like java or a variant of C so it will be Java for me i'm afraid..
    I'd actually agree with rsynott that ruby, python or scheme are better languages for learning to code. However, Java is fine. Not because it's more mainstream, but just because... well, it'll do. If it makes you feel more comfortable that it's mainstream, grand. No working (or hobbyist, for that matter) programmer I know has stuck with the same language all the time. Different languages allow you to express solutions to problems in different ways, learning many will make you a better programmer even if you don't use them day to day. Bear in mind that to become a good programmer there's all sorts of other things to learn aside from an actual language - algorithms and data structures, design patterns, etc etc. Picking a mainstream language isn't a shortcut to absorbing all this.

    Hm, that was rather long. But, eh, in short: dig in and have fun!


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


    techguy wrote:
    I would like to stick to something a little more mainstream like java or a variant of C so it will be Java for me i'm afraid..

    Well, first of all, Python is quite mainstream. Besides, once you learn one (imperative) language, others will follow easily. I advised the languages I advised because they are easier to learn than Java in the first place, and will give you exposure to some programming concepts you'll never see in Java.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 12,356 ✭✭✭✭dulpit


    techguy wrote:
    Thanks sobriquet,
    You don't by any chance know any good books worth starting off on??


    I know I'm kinda just popping up late in the game but I'm using Java: How To Program by Deitle & Deitel... If you can get a copy with the cd it's very helpful, combine it with the api's etc. and you'll be fine...

    On an aside, what is it with people and this Microsoft bashing? An earliest post mentioned how programming in windows gives you bad habits so that you will only be able to code in a Windows environment? Now am I been naive or do people seriously over-estimate Mr. Gates? Did he set out to destroy all other O.S's with things like that? I'm sick and tired of people continually telling me (including lecturers...) that Linux or Mac OS is far superior in all ways to Windows... And yet who really cares? Windows works for me and everyone else, so give it a rest! Rant over...:)


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


    dulpit wrote:
    On an aside, what is it with people and this Microsoft bashing? An earliest post mentioned how programming in windows gives you bad habits so that you will only be able to code in a Windows environment? Now am I been naive or do people seriously over-estimate Mr. Gates? Did he set out to destroy all other O.S's with things like that? I'm sick and tired of people continually telling me (including lecturers...) that Linux or Mac OS is far superior in all ways to Windows... And yet who really cares? Windows works for me and everyone else, so give it a rest! Rant over...:)

    No, this one is correct to an extent. Program in, say, Linux, and you can program for most other Unixes, a variety of exotic realtime systems, and various embedded things with little difficulty. The same tool-chain, more or less, is used. Windows has its own tool-chain, and is really a bit of an island. Windows has case-insensitive filenames; most operating systems have case-sensitive ones. Windows is single-architecture, more or less; if you program for Linux your programs will have to work on tens of architectures. A Windows programmer never needs to think about byte-order unless they write drivers or similar. Certain techniques common in the Unix world aren't an option on Windows; the one that springs to mind immediately is fork.

    Of course, you more or less CAN'T learn to program in certain languages on Windows. Common Lisp, for instance, lacks a free full-featured Windows implementation, and the relative difficulty of compiling things on Windows makes using add-ons for things like Python difficult.

    And to add insult to injury, Windows ships with only an alarmingly bad text-editor.

    It's not by any means impossible to learn to program on Windows, but I suspect it's easier elsewhere.

    Saying that this was deliberate on Microsoft's point is a little odd; it's merely that Windows has followed a different evolutionary path than most operating systems, and carries a legacy from its toy operating system past.

    On VB: http://www.ddj.com/dept/windows/184403996


  • Closed Accounts Posts: 183 ✭✭Scuba_Scoper


    I would like to offer my 2c.

    Stop, stop, stop. !!!

    OK, now the justification for my 2c :)

    I see this kind of post all over the net and the answer is usually like the way this thread and others progress. Java, C C++ C# VB etc etc etc.

    Teaching yourself a programming language is a useful exercise but to be honest you are putting the cart before the horse. What you need to do is learn how to program. The langage you use is trivial and the ones you know are just the tools you will use to accomplish the task of programming.

    In a professional environment, we (programmers) never say "I am going to use <insert languauge>. Now what is the problem." It goes rather differently and coding languages are usually the last part of the equation. The scenario plays out from a design focus first then a detailed specification and the language will just fit in when solving the equation/problem.

    There is no best language to learn how to program but a language that will not suck you in to "its" way of doing things is a good bet. In the good old days you started with a "low" level language like C because you learned ALOT about how the machine works, paying attention to things like allocation of memory for your program and good memory management. I feel that plunging straight in to "higher" level langagues like C#, Java and VB.net do not offer the same low level understanding that older programmers got and this leads to sloppier amd wasteful programming techniques.

    This is probably balanced out by you young bucks being smarter than the older generation but meh :)

    In my view the best way to program is to just do it. Dietel & Dietal are a fine starting point for any novice programmer and focus on the art of programming and not the syntax of the language. Pick a language that you can use on whatever hardware you have. It doesn't matter which OS you use. They are all very good at what they do. There is no best one.

    Coding at your keyboard is a habit you must break before you start.

    Identify a problem. - on paper
    Think about the soloution.- on paper
    Break it down to smaller problems.- on paper
    Think about the smaller problem.- on paper
    Break that down until you can manage that problem.- on paper
    Write the code to solve all the small problems. at your keyboard.

    Then get into the infinite loop of debug,fix,debug,fix improve...........


    This is how we do it in the real world.

    Once you learn how to program, learning a new language is bit like driving
    rental cars. They all do the same thing but each will have its own way of
    getting you to where you want to go.

    Hope some of this helps - I have been a programmer on and off for the last 15 years.


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


    Teaching yourself a programming language is a useful exercise but to be honest you are putting the cart before the horse. What you need to do is learn how to program. The langage you use is trivial and the ones you know are just the tools you will use to accomplish the task of programming.

    There are, however, programming techniques which you can't learn in certain languages. This is why I recommended some high-level languages with functional abilities (a little marginal in Python's case) as a starter. Learning a slightly more mainstream language (Java, C#, whatever) once you've learned one of these is trivial. Then having a look at lowish-level programming (C, maybe) could be an idea, then some form of assembly and maybe a hardware description language for fun. :)

    And then, of course, there are concurrent and real-time languages...


Advertisement