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

Programming newbie

  • 03-06-2007 5:00pm
    #1
    Registered Users, Registered Users 2 Posts: 945 ✭✭✭


    I want to learn to program, but I do not know almost absolutely anything about programming (ie. What's a compiler? / never understood an error message in my life kind of nothing :o ). This extends to which language to pick. I've some experience with HTML and CSS, and I'd like something simple that I can play around with.


    What programming languages should I consider picking from?
    I imagine I'm going to be asked What do you want to do with it? and to be honest I don't know. I'd like to be able to develop a small program or two to run on Windows XP or my own plug-in for Firefox perhaps or program my Nabaztag to do a few new tricks even. Come to think of it I'd like to be able to program in a language that works on different operating systems, I suppose if I could do that I'd be well pleased.


    I've trying reading wikipedia articles for Java and C++ but a lot of it went straight over my head. Are there any online resources you'd suggest, ones that explain technical terms clearly? Or teach yourself books that are especially useful? (I don't mind buying a book if its good, as I learned HTML using one, but I've also read some that were no help whatsoever)

    Any advise would be greatly appreciated.


Comments

  • Registered Users, Registered Users 2 Posts: 9,579 ✭✭✭Webmonkey


    To be honest, starting with C++ or JAVA may be a bit hard, but not possible.

    I would start on some less strict languages such as PHP. This is a web scripting language but the programming structures such as If, whiles elses are similer.
    Once you get the hang of this you could move onto Java or C++, or even C. C is more strict and low level but it does give you a bit more appreciation for what goes on in a lower level.

    Some people say that starting with Assembly and computer articture will give you a good foundation - well it might but I believe for a new comer this would be really impossible but then some will argue this.

    I can tell you now that knowing HTML/CSS will will you in NO way what so ever with programming. These are just markup languages.

    By the way a compiler converts human readable code into a computer language/machine code.

    By yourself a book - best way is to self teach yourself. I know there are a lot of tutorials but a book would suit you best as the same coding techniques will be used throughout. On internet tutorials, people may have different ways of coding and this might confuse you at the begining.
    Lots on amazon :)

    Check this one out: http://www.amazon.com/PHP-MySQL-Development-Developers-Library/dp/0672326728

    This will also give you an insight into Databases and querying them which is always useful to know if not crtical if you plan on moving into a career later stages.


  • Registered Users, Registered Users 2 Posts: 23 Clik


    Have u considered VB.net express. Its free from the microsoft web site and there's lots of free material to get u started.


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


    To be honest, starting with C++ or JAVA may be a bit hard, but not possible.

    tby I would suggest that is the way to go pref C (if you are going Java you may as well learn c#).

    C will be cross platform windows/mac/Unix etc

    it will teach you all the basics and give you a good understanding of what the higher level languages (java/c# etc) hide

    it might hard to get started but once you are up and running away you go

    there are loads of free compilers and tutorials out there

    as for html/css etc that is not programming just markup like setting text in word to Bold although I do think Css is more an art and some ppl are extremely gifted


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


    amen wrote:
    (if you are going Java you may as well learn c#).

    I wouldn't restrict myself to a single platform from the off.

    Java's a reasonable first language IMO.


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


    Clik wrote:
    Have u considered VB.net express. Its free from the microsoft web site and there's lots of free material to get u started.
    You've really taken to VB.net haven't you? :)


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 614 ✭✭✭dent


    Why not try Ruby

    Its a fun language. Lots of useful information and tutorials here.

    http://www.rubyonrails.org/

    First Tutorial http://www.onlamp.com/pub/a/onlamp/2006/12/14/revisiting-ruby-on-rails-revisited.html


  • Registered Users, Registered Users 2 Posts: 23 Clik


    Evil Phil wrote:
    You've really taken to VB.net haven't you? :)
    Are u using VB.net Evil Phil?


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


    Nah I'm C#, but yeah I'm a .net man too.


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


    tbh whatever you take, only take one and learn it well before moving on to another. If you start dancing between C/C++ Java/C# your going to end up confused.


  • Registered Users, Registered Users 2 Posts: 6,424 ✭✭✭440Hz


    Have lectured C modules for first years in Comp Science and Comp Eng, its the primary choice for beginners who want to get a good introduction to programming concepts and as a preparation/first step for something more powerful. My advice would be to start there.


  • Advertisement
  • Closed Accounts Posts: 68 ✭✭nuada


    I think one of the best languages to start off with is Python. Of all the high level languages out there it reads most clearly and is a good intorduction to the concepts of programming without making you learn all the syntax overhead of something like C of Java. Also as it's an interpreted language you don't need to go through the whole edit compile run steps.
    There is a great tutorial at http://diveintopython.org which gets you up and running very quickly with some real world applications.


  • Closed Accounts Posts: 17,208 ✭✭✭✭aidan_walsh


    Khannie wrote:
    I wouldn't restrict myself to a single platform from the off.
    He wouldn't be with C#. Some platform specific APIs perhaps...


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


    The fact is your never going to get a definative answer so you need to ask more questions on what you want to do. :)
    a5y wrote:
    I'd like to be able to develop a small program or two to run on Windows XP or my own plug-in for Firefox perhaps or program my Nabaztag to do a few new tricks even. Come to think of it I'd like to be able to program in a language that works on different operating systems, I suppose if I could do that I'd be well pleased.

    Based on your selection. Java. first up Java will work on all operating systems. There is no platform specific APIs in it, which means what you learn to run on Windows will run on Linux, etc without having to learn other stuff.

    You can create applications that look like windows programs and the more recent IDE programs (IDE= integrated development environment. notepad on steriods) will allow you to draw your dialog and attach code.

    Firefox plugins are not Java, they are a mainly mixture of XML (XUL files) and javascript. Java is not javascript but syntax is easy to get used to coming from Java and XML files you will get used to in Java as well.

    You are from the offset also working on an OOP (Object-Orientated Programming langauge) which means you can get into habits sooner then later that something like "C" won't give you.

    Then from a future standpoint it would easier to migrate your knowledge to .net, J2EE / Webservices if that is the direction you want to take.


  • Closed Accounts Posts: 2 safronlove


    I think to start with c and then you can go to any programming language once you are familiar with c then will be easy to adopt any programming language.


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


    He wouldn't be with C#. Some platform specific APIs perhaps...

    In fairness, nobody really uses c# on unix / linux or at least I've never heard of anyone in industry actually using it on unix / linux except as an afterthought for porting. For applications that require speed and portability, it's c++ or c, otherwise it's java or perl depending on the nature of the software.*



    *(before anyone goes mental at me over the joys of python or some other language....it's a generalisation....sure...people use Ruby etc.....but they're not part of a base OS install at enterprise level)


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


    Can we stay on topic folks? We've debated the pros can cons of the various languages many many times before.


  • Registered Users, Registered Users 2 Posts: 180 ✭✭marcphisto


    I reckon C is probably your best bet to start learning. The deitel and deitel book is probably the best book to learn programming from. More details here http://www.deitel.com/Books/C/CHowtoProgram5e/tabid/1704/Default.aspx

    It should get you started pretty quickly and will give you a good grounding in programming.

    hth


  • Closed Accounts Posts: 4,943 ✭✭✭Mutant_Fruit


    Khannie wrote:
    In fairness, nobody really uses c# on unix / linux or at least I've never heard of anyone in industry actually using it on unix / linux except as an afterthought for porting.
    Quite a few distro's are shipping Mono as part of their base install. Ubuntu, Red Hat, Suse and probably more i don't know of ;)

    It is gaining popularity.

    The only thing about C is that it is tough to get your head around pointers. You need to manage your own memory, and it's hard to see yourself progress as there is no quick fancy output. You may be better off starting with Java or C# to learn the basics and then once you're familiar with the basic programming concepts you could move on.

    To be honest, i'd say i'd find C much easier to get my head around after working with C# for so long (not that i had much trouble with the C we did in college ;) ).


  • Registered Users, Registered Users 2 Posts: 945 ✭✭✭a5y


    Thanks everyone, this has been really helpful. I'm probably going to try and stick to learning one language at a time, although html is different from learning to programme it did teach me one relevant lesson: that when I tried learning both HTML & CSS at the same time I found it extremely confusing.

    While I haven't yet decided which language I'm going to learn this has helped narrow the field greatly. Ultimately it may come down to picking a name out of a hat, though I've a few friends who programme too, so the langauges they already know may be a deciding factor (its always always handy to show someone something that isn't working and ask them why).

    Again, thanks a million everyone. :)


  • Registered Users, Registered Users 2 Posts: 950 ✭✭✭jessy


    a5y wrote:
    I want to learn to program, but I do not know almost absolutely anything about programming (ie. What's a compiler? / never understood an error message in my life kind of nothing :o ). This extends to which language to pick. I've some experience with HTML and CSS, and I'd like something simple that I can play around with.


    What programming languages should I consider picking from?
    I imagine I'm going to be asked What do you want to do with it? and to be honest I don't know. I'd like to be able to develop a small program or two to run on Windows XP or my own plug-in for Firefox perhaps or program my Nabaztag to do a few new tricks even. Come to think of it I'd like to be able to program in a language that works on different operating systems, I suppose if I could do that I'd be well pleased.


    I've trying reading wikipedia articles for Java and C++ but a lot of it went straight over my head. Are there any online resources you'd suggest, ones that explain technical terms clearly? Or teach yourself books that are especially useful? (I don't mind buying a book if its good, as I learned HTML using one, but I've also read some that were no help whatsoever)

    Any advise would be greatly appreciated.

    What I would normally say to someone who wants to learn how to program is to not worried about the language you pick; the ability to developed software is language independent! however in your case you just seem to want to learn it as a hobby, there were a good few people on here who recommended C, I would not, as I could only imagine the look on you face after you spend hours and hours trying to understand a few basic concepts write a few lines of code and then only to see a DOS window appear saying "hello World"!!!, what not try to build a little on what you already know? Maybe start to add a little functionality to the Web pages that you have built, a little bit of java script could go a long way. It would also get you familiar with variables, condition statements and loops.

    This should get you started: http://www.w3schools.com/js/default.asp


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


    Khannie wrote:
    In fairness, nobody really uses c# on unix / linux or at least I've never heard of anyone in industry actually using it on unix / linux except as an afterthought for porting. For applications that require speed and portability, it's c++ or c, otherwise it's java or perl depending on the nature of the software.*

    A fair few people use Mono for real things, these days, especially for web applications and so on. Some patent nastiness surrounds it, however, and there are issues with running graphical apps on MacOS.
    Khannie wrote:
    *(before anyone goes mental at me over the joys of python or some other language....it's a generalisation....sure...people use Ruby etc.....but they're not part of a base OS install at enterprise level)

    Really? A number of Linux distributions come with (and are sometimes dependent upon) tools written in Perl and Python, and lots of companies use Python. I'd prefer to use Python over Perl any day, but that's largely personal preference.

    I'd personally advise first learning Ruby or Python, then C. (My personal favourite is Common Lisp, but it has a bit of a learning curve). In particular, you should NOT learn PHP as a first language; it's very odd and may end up teaching you bad habits.


  • Registered Users, Registered Users 2 Posts: 1,423 ✭✭✭Merrion


    My advice would be to learn a bit about programming before you worry too much about choosing a programming language.

    For this get hold of a copy of "Code Complete" by Steve McConnell and maybe either "Code" by Charles Petzold or one of the many "Data Structures and Algorithms" type books.


  • Registered Users, Registered Users 2 Posts: 304 ✭✭PhantomBeaker


    nuada wrote:
    I think one of the best languages to start off with is Python. Of all the high level languages out there it reads most clearly and is a good intorduction to the concepts of programming without making you learn all the syntax overhead of something like C of Java. Also as it's an interpreted language you don't need to go through the whole edit compile run steps.
    There is a great tutorial at http://diveintopython.org which gets you up and running very quickly with some real world applications.

    I'd agree that Python is a good one to start off on... but then I'd say that about most of the current-gen scripting languages (it's a matter of taste from there)

    The only thing I'd say is that while I, personally, LOVE Dive Into Python, it is intended for those who have programmed previously.

    In which case, I'd actually recommend Ruby, if only because of that cool little site with a live interpretter ( http://tryruby.hobix.com/ - it's SO cool, even though I don't know Ruby at all). I think it's an excellent way to learn your way around a language.

    Aoife


  • Registered Users, Registered Users 2 Posts: 1,287 ✭✭✭joe_chicken


    My heart says C but my mind says Java...

    If you want to get into good programming habits then Java is perfect for forcing you to write your code with objects (may seem like a pain, but gets simpler). It also has a huge number of cross-platform libraries that'll have you writing network/graphics/business apps in no time.

    C is the daddy of all modern programming languages. If you understand C well enough you can make computers do back flips for you. The problem with starting off with C is that a) it's probably going to be a while before you can do anything really meaningful with it b) you'll get into bad programming habits, and won't be inclined to start designing with objects in mind when you start large programs.

    I think I'd wait until after learning either of those before I learnt a scripting language (Perl, Python, Ruby...)

    But probably the most important thing to remember is there is no magic formula... every language has it's strengths and weaknesses, and every time you start a new project you should weigh up the cost of a) learning a new language that will do it easier b) learning a new API for the language you already know c) getting someone else to do it :)


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


    My heart says C but my mind says Java...

    If you want to get into good programming habits then Java is perfect for forcing you to write your code with objects (may seem like a pain, but gets simpler). It also has a huge number of cross-platform libraries that'll have you writing network/graphics/business apps in no time.

    Of course, whether object orientation of everything is a good thing is down to individual preference, or philosophy. :)
    C is the daddy of all modern programming languages. If you understand C well enough you can make computers do back flips for you. The problem with starting off with C is that a) it's probably going to be a while before you can do anything really meaningful with it b) you'll get into bad programming habits, and won't be inclined to start designing with objects in mind when you start large programs.

    While C is certainly worth learning, calling it the daddy of all modern programming languages is pushing it. There are hordes of programming languages with different design philosophies (logical, functional, etc.) which are very much worth taking a look at. That's part of the reason I recommended Ruby or Python; they are both somewhat usable for functional programming.
    I think I'd wait until after learning either of those before I learnt a scripting language (Perl, Python, Ruby...)

    I always wonder a bit about this term 'scripting language'. It refers to function rather than fundamental design difference, and tends to get slapped on just about every dynamic language. Python running on the .NET CLR, say, is about as much a scripting language as C# is. :)


  • Closed Accounts Posts: 1,788 ✭✭✭jackdaw


    surprised no one has mentioned it but Deitel & Deitel have excellent books on
    programming , perfect for the beginner

    http://www.amazon.co.uk/s/ref=nb_ss_w_h_/203-9223092-4102330?url=search-alias%3Dstripbooks&field-keywords=deitel+%26+deitel&Go.x=7&Go.y=13&Go=Go


  • Closed Accounts Posts: 1,788 ✭✭✭jackdaw


    btw if you are doing this for a hobby .. DONT !!
    programming is a pain in the ass that brings nothing but **** ..


  • Registered Users, Registered Users 2 Posts: 995 ✭✭✭cousin_borat


    jackdaw wrote:
    btw if you are doing this for a hobby .. DONT !!
    programming is a pain in the ass that brings nothing but **** ..

    Quoted for truth!


  • Registered Users, Registered Users 2 Posts: 950 ✭✭✭jessy


    jackdaw wrote:
    btw if you are doing this for a hobby .. DONT !!
    programming is a pain in the ass that brings nothing but **** ..

    I’m Afraid I don’t agree with this at all! i think that it can be quite enjoyable!! Personal preference though.


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


    jackdaw wrote:
    btw if you are doing this for a hobby .. DONT !!
    programming is a pain in the ass that brings nothing but **** ..

    I'd strongly disagree with this; programming can be a fascinating hobby, though obviously it's not for everyone.


  • Registered Users, Registered Users 2 Posts: 995 ✭✭✭cousin_borat


    lighten up, the guy is having a joke.

    As per previous suggestions Java is as good a place as anywhere to start.


  • Closed Accounts Posts: 1,788 ✭✭✭jackdaw


    of course im joking!!!!

    it can be frustrating at times but its quite a reward when you get a
    niggling bastard of a problem solved!!!

    So i still stand by my original post .. Deitel & Deitel books are excellent
    for beginners...


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


    I had a big reply written up and I lost it. Damn power cut. :(

    Every language has a big list of pros and cons. Language wars are common when trying to guide a newbie. Fact of the matter is, the language you choose should always be the best for the job. I wouldn't really listen to the Java heads on here, who talk of write once run anywhere because at this moment in time, how is that a benefit for you now though? It's not.
    If you're picking up a language purely for getting dirty with programming, and getting used to the concepts (variables, functions, scope, etc etc) then I would recommend C as a starter language - for many reasons. Firstly, it's a procedural language. I firmly believe before anyone ever learns OOP, they need to dabble in procedural fun for a few months.

    If I were you what I would do is have a read through http://publications.gbdirect.co.uk/c_book/ before buying any C books, and please please stay away from The C Programming Language (all editions) for now. That book is NOT a book to be read by someone who is unfamiliar with the C language and also with programming concepts.
    Once you are familiar with C, I would then take a look at The Pragmatic Programmer before looking at any other languages. Once you've read this, read it again and then you have a few choices to make. Do you want to go the Java route, C++ route, C# or stay with C and possibly do some lower level coding.

    To be honest, by the time you've gotten comfortable with C, and read the Pragmatic Programmer I'm pretty sure you'll know what you want to do at that stage. This is definitely the path I recommend to get introduced to programming. Once you've done it, you'll know if this is for you.


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


    After the Pragmatic Programmer I'd recommend Code Complete 2 by the Microsoft Press.


  • Registered Users, Registered Users 2 Posts: 945 ✭✭✭a5y


    scojones wrote:
    I wouldn't really listen to the Java heads on here, who talk of write once run anywhere because at this moment in time, how is that a benefit for you now though? It's not.

    Concerning the write-once-run-anywhere aspect of Java that's a good point and one I hadn't really given much consideration.

    Currently I'm using an oldish Windows XP box, and in the next month I'll be getting myself a laptop (probably a 2.16Ghz white Macbook). For this reason I thought the write-once-run-anywhere bit was important.

    (Though with the boot camp and parallels desktop stuff maybe this isn't as important; I imagine until I actually use the thing I won't know for definite one way or another)

    DISCLAIMER.
    This post is not intended to be be Windows V Mac flamebait or Java Vs C++ flamebait. Its just kinda turned into that on its own. Honest! :D


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


    From the point of view of learning to program, this isn't an issue; both Windows and MacOS have C and C++ compilers.

    Once you actually start writing applications, of course, Java applications are likely to be more easily made platform independent than C/C++ ones.


Advertisement