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

Beginning programming - Hopefully!

Options
  • 30-07-2009 1:48pm
    #1
    Registered Users Posts: 4,944 ✭✭✭


    So yeah, as the title suggests, I'd like to get into programming, though I'm an absolute beginner and have no knowlege of the methods or anything like that. Also I don't kow the differences between the different languages, such as C, C++ or Java or anything like that. I've googled tutorials already, but there's loads, too many just to pick one, and I was hoping somebody could point me in the right direction.

    So, if somebody could tell me where to start it'd be brilliant. Any websites, books or anything would be brilliant, also any hints and tips. Thanks :)


«1

Comments

  • Registered Users Posts: 981 ✭✭✭fasty


    What do you want to program? Stuff for the web? Windows? Games?


  • Registered Users Posts: 4,944 ✭✭✭Jay P


    A bit of everything, maybe? Presumebly I should know what I want to do? I suppose websites, and also programs for Windows. Mostly the programs I guess.


  • Registered Users Posts: 2,494 ✭✭✭kayos


    Java or C# would be options for web and desktop stuff. Each has their good points and you can pick one up if you know the other pretty quickly. But I think what language you use is second to actually learning how to program. The language is only a syntax you use to program.


  • Registered Users Posts: 4,944 ✭✭✭Jay P


    I don't really understand what you mean...


  • Closed Accounts Posts: 72 ✭✭PearlDrummer


    What I think kayos is saying, is that the method of programming remains the same, even if the language is different.

    For instance, if you learn C++, many of the methods and functions are the same as Java. True, they are different languages, but they share many of the same characteristics. This rule applies across the board really.

    An easy language (in my opinion) is PHP, which is used for coding functionality into web pages. There are great resources online with tutorials and guides on how to go about coding. and some of the beginner stuff is very easy to code and it will get you into the rhtyhm of using code-structures.

    The best thing about PHP is that it requires very little set up, and everything you required to develop is free. Most "PHP for Beginners" books will explain how to set everything up on your system before, you start, and will guide you gently into the world of programming.

    Once you get the jist of one language, it really is just a matter of applying your problem-solving skills to different languages.

    I hope that made sense / helps :) !!


  • Advertisement
  • Registered Users Posts: 2,494 ✭✭✭kayos


    Ok example in programming there are certain things you do. Let take an easy example of you needing to check a value entered into a form and if its a certain value (lets say 0) you need to do something special, all other values do something else.

    In Visual Basic 6 the code would look some like this
    If enteredValue = 0 then
     <code for handling a value of zero goes here>
    else
     <code for handling all other values goes here>
    end if
    

    In C# the code would look like this
    if (enteredValue == 0)
    {
     <code for handling a value of zero goes here>;
    }
    else
    {
     <code for handling all other values goes here>;
    }
    

    Now both exmaples are there to do the same thing. But they are written in different languages so there is slight differences in them.

    But what I mean is when coming up with the code in your head you know you need an if statement. Now if your writing in C#, Java, VB6, C++ you still need that if statement. Only difference is the syntax used to write it based on the language you are using.

    So to put it another way I would consdier being able to solve a problem and writing it out in Pseudo code counts as learning to program. Then changing that into something that will work on a computer means I translate the Pseudo code into the language being used (which is coding).

    I think this is not explaining it exactly how I want to but I'm tired and need more coffee...


  • Registered Users Posts: 721 ✭✭✭TheTubes


    You could start with small basic

    its very simple, would be fine to get a grasp of some of the basic concepts like branching, loops, etc. but not much more than that.

    maybe woth just a couple of days at it before moving on.


  • Registered Users Posts: 1,228 ✭✭✭carveone


    I think the thing about beginning programming is that budding developers want feedback pretty quickly. They don't want to write code for a week before their first compile!

    Taking a look at the Visual Express editions (www.microsoft.com/express) should give you a start and they're free downloads (albeit bloody enormous). I'd probably go with Visual Basic and then to C#. They have some decent beginner links like the Beginner Developer Learning Center which should get you started.

    Not to be Windows-centric, Linux installs normally come with C compilers already installed as long as you like C. Should make for a quick start but moving from command line programs to GUI apps becomes quite difficult quite quickly.

    Now I'm a stubborn old programmer who refuses to use anything above C and Win32 (C++? Blah...) so maybe I'm the wrong person to give advice :) But I do remember using Visual Test (Very Visual Basic like, used for app testing) and got little programs up and running really fast. So I'd like VB would be a great intro.


  • Registered Users Posts: 4,944 ✭✭✭Jay P


    What I think kayos is saying, is that the method of programming remains the same, even if the language is different.

    For instance, if you learn C++, many of the methods and functions are the same as Java. True, they are different languages, but they share many of the same characteristics. This rule applies across the board really.

    An easy language (in my opinion) is PHP, which is used for coding functionality into web pages. There are great resources online with tutorials and guides on how to go about coding. and some of the beginner stuff is very easy to code and it will get you into the rhtyhm of using code-structures.

    The best thing about PHP is that it requires very little set up, and everything you required to develop is free. Most "PHP for Beginners" books will explain how to set everything up on your system before, you start, and will guide you gently into the world of programming.

    Once you get the jist of one language, it really is just a matter of applying your problem-solving skills to different languages.

    I hope that made sense / helps :) !!

    Yeah, that makes sense. Presumably, I'd start with something basic before moving on.
    TheTubes wrote: »
    You could start with small basic

    its very simple, would be fine to get a grasp of some of the basic concepts like branching, loops, etc. but not much more than that.

    maybe woth just a couple of days at it before moving on.

    I'm going to start with this, it looks like just what I want! Thanks

    carveone wrote: »
    I think the thing about beginning programming is that budding developers want feedback pretty quickly. They don't want to write code for a week before their first compile!

    Taking a look at the Visual Express editions (www.microsoft.com/express) should give you a start and they're free downloads (albeit bloody enormous). I'd probably go with Visual Basic and then to C#. They have some decent beginner links like the Beginner Developer Learning Center which should get you started.

    Not to be Windows-centric, Linux installs normally come with C compilers already installed as long as you like C. Should make for a quick start but moving from command line programs to GUI apps becomes quite difficult quite quickly.

    Now I'm a stubborn old programmer who refuses to use anything above C and Win32 (C++? Blah...) so maybe I'm the wrong person to give advice :) But I do remember using Visual Test (Very Visual Basic like, used for app testing) and got little programs up and running really fast. So I'd like VB would be a great intro.

    Those two sites look very good. I cant wait to get into Visual Express! I'll take your advice though and use Visual Basic after I use Small Basic for a while. After that, I'll se how I'm going. :)


    Thanks for all the replies, I can't wait to get into all this, I'm really exited now! :pac:

    Also, any more opinions will be greatly appreciated.


  • Registered Users Posts: 2,494 ✭✭✭kayos


    Please dont go the VB.NET route, please! Sorry thats coming from years of doing VB6 *shudder*.

    There is a good reason to why a lot of companies when upgrading from VB6 to a .NET platform went the C# route. And for someone starting out personnaly I think C# would be the best option in terms of being able to swap to say Java.


  • Advertisement
  • Registered Users Posts: 515 ✭✭✭NeverSayDie


    kayos wrote: »
    Please dont go the VB.NET route, please! Sorry thats coming from years of doing VB6 *shudder*.

    There is a good reason to why a lot of companies when upgrading from VB6 to a .NET platform went the C# route. And for someone starting out personnaly I think C# would be the best option in terms of being able to swap to say Java.

    VB.NET isn't to my taste either, but to be fair, it doesn't have much at all to do with VB6, beyond importing some of its wonky syntax. Otherwise, it's more or less on a par with C# in terms of what you can do with it and how it gets done.

    That said, I'd recommend C# too - as kayos points out, its closeness to Java and C++ in terms of syntax is no harm from a future learning point of view. It also gets used more in industry (from what I've seen), and as the reactions from kayos and myself would suggest, tends to be taken a bit more seriously (justified or otherwise). Also, if you happen to have an interest in games development, C# with the XNA platform would be an excellent way to get into that, assuming you want to build games for Windows and/or XBox.

    Visual C# Express is probably as good a place to start as any, and MS and other folks have lots of tutorials available to get you going. Getting beginners/students into this racket is one of the main reasons they launched the Express products, so there's plenty of material aimed that way.


  • Closed Accounts Posts: 12,382 ✭✭✭✭AARRRGH


    I also recommend you don't go via VB.NET. Too much of the code is hidden from you, so you won't get a good grip on what's really happening.

    I recommend you start with C. It's a no-bull****, simple, straight forward language.

    It's also not an "object oriented" language, so you'll have a simplier learning curve.


  • Registered Users Posts: 4,944 ✭✭✭Jay P


    I've started with Small Basic, have I made a bad move with this? I figured it would be a good idea to start with something which is, as the name suggests, basic.

    I'll play around some more with it today, and I'll move onto Visual C# Express hopefully later. So would this be an ok move to make?


  • Closed Accounts Posts: 12,382 ✭✭✭✭AARRRGH


    I really think you're making a mistake with the "Visual" languages. As I stated before, you don't get to see a lot of what's going on in the background, i.e. most of the programming is not done by you.

    You need to learn how to program first. Start with C or Pascal.


  • Registered Users Posts: 4,944 ✭✭✭Jay P


    So could you give me a good place to start? As in a website or a program or something? I'm nearly finished downloading Visual C# Express. Should I ditch this for the moment and move onto something else?


  • Registered Users Posts: 515 ✭✭✭NeverSayDie


    As long as you start with console apps, as you would in other languages, it won't make too much difference - there's no extra code to speak of there. The IDE saves you running the compiler by hand (though you can if you want to), other than that, no different to "Hello World" in C++ on the command line really.


  • Closed Accounts Posts: 7,794 ✭✭✭JC 2K3


    AARRRGH wrote: »
    I really think you're making a mistake with the "Visual" languages. As I stated before, you don't get to see a lot of what's going on in the background, i.e. most of the programming is not done by you.

    You need to learn how to program first. Start with C or Pascal.
    I dunno, I think it's better to start with the "safety net" of something like Java or C#.

    If he starts with C, he's likely to pick up the basics all right, then try some more complex things, see "Segmentation Fault" and spend hours not knowing what the hell he's done wrong, whereas with a more high level language, he'll get informative error messages and learn without those wasted hours.


  • Registered Users Posts: 515 ✭✭✭NeverSayDie


    Specifically, this should get you started;
    http://msdn.microsoft.com/en-us/library/k1sx6ed2.aspx

    ("Hello World" is a traditional thing for beginners/folks new to a particular platform, where you write a very simple app that prints out "Hello World").


  • Registered Users Posts: 981 ✭✭✭fasty


    AARRRGH wrote: »
    I really think you're making a mistake with the "Visual" languages. As I stated before, you don't get to see a lot of what's going on in the background, i.e. most of the programming is not done by you.

    You need to learn how to program first. Start with C or Pascal.

    I disagree. Neither teach you anything about modern object oriented programming and C in particular has a massive learning curve compared to C# or Java when you go beyond simple text based interfaces.

    It's perfectly reasonable to learn C# or the like first and come back to C later on if needs must.


  • Registered Users Posts: 4,944 ✭✭✭Jay P


    I'm so confused.... I don't know whether I should go for C or C#. I think I'm just going to go with C# and see how it pans out.


  • Advertisement
  • Registered Users Posts: 721 ✭✭✭TheTubes


    Jay P wrote: »
    I'm so confused.... I don't know whether I should go for C or C#. I think I'm just going to go with C# and see how it pans out.
    I think C# is a good idea, go for it.


  • Registered Users Posts: 981 ✭✭✭fasty


    Don't worry about being confused, it's a pretty huge field and everyone has their own opinion on what is "best".

    That's why I asked what you wanted to code? It makes the choice of language much easier.

    I think the two best options for someone who wants to make Windows programs are:

    C# and .Net 3.5 -> Free tools from MS, lots of tuts and docs online, some great books too

    Python and pyGTK -> Python is a great one to learn on. pyGTK is a toolkit for making user interfaces using Python.

    Making Windows programs in C is quite difficult. MS provide an application programmer interface called Win32 for it and it's not very intuitive.


  • Registered Users Posts: 84 ✭✭knoxor


    You have to ask yourself what do you want to program for?

    Is it for fun or is it to get a job?

    If its for fun then go ahead and pick any of the mentioned languages. If its for work, I'd recommend searching roundn the various recruitment websites and see which is the most popular language, what one has the most jobs ?

    If its for starting your own business doing websites, then probably php would be a good bet, or you could also look at Ruby on Rails.

    Usually programmers start with the HelloWorld application no matter what language. Its basically the simplest program that you can have in the chosen language. Do a search on that and try it.

    There are so many resources on the web these days, there are also certification courses you can do in the various languages.

    Sometimes the best way is to just get stuck in and try it. Its a good buzz when you get things working for the first time. I can still remember the buzz you get from typing in a few commands and making the computer do the things you told it to do.

    good luck !!


  • Registered Users Posts: 721 ✭✭✭TheTubes


    tbh, you would probably have learned 2 languages by the time you reach a consensus here,
    the whole "which language is best/easiest to learn" always turns into a bit of a religious debate! :)

    whether its for fun or work I still recommend you go with either Java or c#,
    I think most people would agree that these are the two most popular languages posted on recruitment sites.
    Plus they both give you the option of doing command line or desktop GUI or web based development.
    Im a big fan of php/ruby/python etc. and Java is my favourite but I'd still recommend you start with c#,
    i think that with visual studio its fairly easy to get started, where as with the others it can be a bit of a pain sometimes getting an IDE and a runtime and a server setup.

    Even if you don't go with c#, I'd suggest you just pick one and start as there havnt been any bad suggestions on the thread so far (except c, in my opinion I wouldnt start with c, thats just my opinion! no flames please :) )

    ymmv


  • Registered Users Posts: 901 ✭✭✭EL_Loco


    It's always tough asking people what language to start with as most people will have a favourite.

    point being, which has been mentioned already, there are common elements to all programming languages.

    datatypes
    variable declarations
    conditional statements
    loops
    procedures/functions/methods
    (to name but a few)

    The most important part initially is to learn what these are and what they do. It doesn't REALLY matter what language you learn them in, because as soon as you want to change languages you look up how that language performs the things listed above.

    So keep on trucking with whatever you've started with. The concepts are more important when starting than how you're expressing them.


  • Closed Accounts Posts: 12,382 ✭✭✭✭AARRRGH


    fasty wrote: »
    I disagree. Neither teach you anything about modern object oriented programming and C in particular has a massive learning curve compared to C# or Java when you go beyond simple text based interfaces.

    It's perfectly reasonable to learn C# or the like first and come back to C later on if needs must.

    Most people find object oriented programming vastly more complicated than procedural programming. This is the reason most computing courses don't jump into object oriented programming as the first language they teach.

    To become a good programmer, you need to understand what you're doing. C forces you to think.


  • Registered Users Posts: 981 ✭✭✭fasty


    Well, what parts of C do you need to understand before you become a good programmer? Variables, loops, conditionals, data types? Any language will teach those before getting into OO.

    Or are you talking about what's actually happening behind the code when it's compiled?

    Most computing courses these days jump right into Java/C#/VB by the way! Even back as far as 99 that was the case. The year before us did Pascal, we did Java, then C++.

    Funnily enough, I write a lot of C as well as C++ these days and I don't think I was hampered in any way by going OO first. Once you know how to program, you know how to program.


  • Moderators, Technology & Internet Moderators Posts: 1,335 Mod ✭✭✭✭croo


    There is no real answer to "what language?" question as it is typically dependent on the "what task?" question! :) - the right tool for the right job and all that.

    If however the OP is interested in programming in general, as opposed to programming in Java or C or whatever... then UC Berkeley has some great lectures available on youtube... search for ucberkely & CS 61A & CS 61B. There might be more but these are two courses I happened upon and thought were excellent. These do a great job of teaching the basic theories of programming. Of course you don't get the homework, labwork or to ask questions from those but while most books on a programming language will teach you the syntax of the language, these videos will help you come to grips with what it is you want & need to do. Highly recommended. Start with CS 61A; if you were at berkeley CS 61A would be a prerequisite of CS 61B (which is mostly data structures and the examples are in java).

    enjoy!


  • Closed Accounts Posts: 12,382 ✭✭✭✭AARRRGH


    fasty wrote: »
    Well, what parts of C do you need to understand before you become a good programmer? Variables, loops, conditionals, data types? Any language will teach those before getting into OO.

    Actually, you're right, it is possible to use Java (which I like btw) and ignore the OO bits while you write simple code in main().

    I just think a lot of people can get overwhelmed by the syntax and end up getting frustrated and confused. Certainly most the computer science 4th years (yep, final year computer science students) I met last year seemed to be totally bogged down on OO syntax and as a result couldn't really program at all. That's one of the reasons I like Pascal - it was created to teach programming concepts.


  • Advertisement
  • Registered Users Posts: 981 ✭✭✭fasty


    AARRRGH wrote: »
    Certainly most the computer science 4th years (yep, final year computer science students) I met last year seemed to be totally bogged down on OO syntax and as a result couldn't really program at all.

    :/ Really? That's shocking! CompSci students should take responsibility for learning this stuff outside of lecturers and/or courses should be updated to teach the (not that hard) OO way of doing things properly!


Advertisement