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

Trying to learn programming .... still !

Options
  • 25-05-2010 10:44pm
    #1
    Registered Users Posts: 580 ✭✭✭


    Hey everybody !

    Me again ! Still grinding away at OOP... waiting for the moment when it all just *clicks* in my head.

    I originally started my quest into this strange new world back in Summer '09
    Started by watching allot of the CBT Nuggets videos on SCJP. Went through allot of the examples and played with them a bit. Started to get lost a few videos after OOP :o

    Then I started a N+ course so had to give up on java for awhile.

    Been reading "Java - A Beginners Guide 3rd Edition" since March... Good book very detailed in explaining everything... BUT not really giving any real world examples of why you would use such things :confused:

    Ive gotten 1/3 the way through this book and I have given up with trying to read it from cover to cover.

    Currently now im reading another java book " Beginning Java - Game Programming "
    Reason for this being ... I have an interest in games and hopefully I should be able to see some of the theory and concepts that ive learned at work. Other than reading command line output :(

    Finding this subject hard to grasp ! I get computers, hardware, networks, software..... but development ! :eek:

    Im starting to look at courses ! Java Primer on IACT looks good to me
    http://www.iact.ie/iopen24/product_info.php?products_id=38
    But pricey imo for a 3 day course - €1,300

    Can anyone recommend a fairly short full time course that could help me get to grips with all the theory with actual real world examples ?

    If not just post something anyway ! Opinions, Experiences ... or whatever !


Comments

  • Closed Accounts Posts: 7,145 ✭✭✭DonkeyStyle \o/


    Tyrant^ wrote: »
    Been reading "Java - A Beginners Guide 3rd Edition" since March... Good book very detailed in explaining everything... BUT not really giving any real world examples of why you would use such things :confused:
    Oh God yeah, I had such a mental block about OOP when I started learning Java. Somehow I found OOP made a lot more sense to me in ActionScript 3. And after doing some AS3, I found Java made more sense... maybe you could learn Flex/AS3 if you don't fancy splashing out for Flash.
    I still find Java way too verbose for the simple things I want to do... right tools for the job and all that though I suppose.


  • Registered Users Posts: 2,119 ✭✭✭p


    Maybe start learning something like Processing. It's Java based but you can make simple games in it. (Start by getting aball moving around, then make a paddle and see if you can make a version of pong)

    I wouldn't worry about OOP too much at the start. Learning the basics of programming first. Learning OO without a context is very confusing because you're learning it before you actually need it.


  • Registered Users Posts: 47 bundaegi


    You could try BlueJ. It's a free integrated Java environment specifically designed for learning about OOP with Java. There are a number of different tutorials and resources on the BlueJ site to help you start using it. Also, it has an associated book.


  • Registered Users Posts: 87 ✭✭pigman2000


    i think - that college and it's 'deadline seat-of-the-pants-style' ways, are the only way to learn programming and OO especially. you have to take a project, and try doing it - it only clicked for me in 3rd year! when i had to do a little project and boom that was it...
    in my job now i'm trying to learn some scripting languages and become proficient in them, and continuously learning C++ but i only learn truely when stuff goes to the wall and i sink or swim...


  • Registered Users Posts: 206 ✭✭theblacknight


    I think it's important to make distinctions between some concepts here. You should learn how to program - and by that I mean the logic behind programming, what is going on in the processor and memory, and why you use variables and loops and these other programming constructs. Learning C is great for this, it is a very small language that gets you close to the internals of the machine, great for learning to properly use programming constructs. When you understand that you can make the jump to objects. Try to remember that objects are just a way of managing and presenting your program logic, making it more maintainable and extensible. Objects generally represent real world items, like a car object, that stores some information about the car. You can then associate code with this object (in its methods) and use this objects in other program code.

    I also think it's a bad idea to jump straight into game programming, as it is very hard and you will quickly find that you need a good solid understanding computer science to be able to write games. Processing is good fun and easy, but if you want to learn OOP stay away from it, as it may just distract you further.


  • Advertisement
  • Registered Users Posts: 580 ✭✭✭Tyrant^


    Thanks for the replys

    Dont know about trying to start off with another simpler language... the different syntax might just mess me up completely


    And im just going to fire out this thought I have about programming in general....
    But I will also need some code example to help me explain...
    class Triangle
    double area;
    int height;
    int length;
    public static void main(String [] args) {
    [U][B]int x = 0;[/B][/U]
    [U][B]Triangle [ ] ta =new Trlangle[4];[/B][/U]
    while ( x < 4 ) {
    [U][B]ta[x] = new Trlangle();[/B][/U]
    ta[x].height = (x + 1) * 2;
    ta[x].length = x + 4;
    [U][B]ta[x].setArea();[/B][/U]
    System.out.print("triangle " +X+ "area");
    System.ouLprintln("= " + [I][U][B]ta[x].area[/B][/U][/I]);
    [U][B]x=x+1;[/B][/U]
    }
    [U][B]int y = x:[/B][/U]
    x - 27;
    Triangle t5 = ta[2];
    ta[2].area = 343;
    Syatem.out.print("y = " + Y);
    System.out.println(", t5 area " + t5.area);
    }
    void setArea() {
    [U]Area[/U] = (height * length) /2 ;
    }
    }
    

    Output ::

    triangle 0, area = 4.0
    triangle 1, area = 10.0
    triangle 1, area = 18.0
    triangle 1, area = 28.0
    y = 4, t2 area = 343

    This is an exercise in one of the books im reading on Java. The parts underlined where left out in the exercise and I was giving a bunch of code snippets to fill the gaps some right and some wrong by using the output given to me.

    Took me probably 30 minutes to fill out most of them and I couldnt figure out the ta[x].setArea(); or int y = x ; (I gave up and looked at the answers:o)

    Im beginning to think Im not going about it the right way to figure it out.... What im doing is trying to go through the full loop mathematically in my head and ending up getting completely lost !

    Is this normal when trying to start off :o
    Will all this just click in the end ?

    The exercise is from Head First Java
    (Head first was actually the first book I got on the subject. Had to put it down and read an Absolute beginners book... after going through a few chapters of that finding Head First: Java easier second time around)


  • Registered Users Posts: 580 ✭✭✭Tyrant^


    Guess people dont understand what im trying to say ! :D


  • Registered Users Posts: 4,277 ✭✭✭km991148


    Never really done excersises like this, I alway find it easier to try and look at real world examples, or try and design something simple yourself. Dont be affraid of mistakes as you will make plenty and learn from them (which sounds cliched but is true). The comments from theblacknight are true also, while learning how to use a language, learn what it means and what is happening behind the scenes. This will ensure that you know what is going on and improve your understanding.

    The more real world examples you see the more you will be able to see different (good and bad) designs. DOnt know the best way about getting real examples (other than checking out/getting involved with open source stuff.. but carefule as there are a lot of complex or bad projects)

    Also keep with the books.. one ex may take half an hour, but soon you will get them in no time.


  • Registered Users Posts: 2,534 ✭✭✭FruitLover


    p wrote: »
    Learning OO without a context is very confusing because you're learning it before you actually need it.

    This is why I don't like the idea of using Java as a first language - it throws you in the deep end with regard to OOP.

    I'd recommend trying something like Python, where you can get to grips with the basics (of a pretty intuitive language in the first place), then progress to OOP once you're comfortable. I personally learnt OOP by moving from C to C++, so this might be another option if you'd prefer to start off lower-level.

    Edit: also read up on software design - this may give you a better insight into the importance of OOP.


  • Registered Users Posts: 6,433 ✭✭✭run_Forrest_run


    I agree with FuitLover, start with an easy language to learn the concept of programming and then when you are comfortable with such concepts (basics like loops/recursion, if/else, switch you can move into OOP.

    I started programming with C (in College) and then moved to Java after year 2 and I must admit I had trouble grasping the OO concepts but once it clicked everything fell into place.

    If it hasn't been mentioned already I'd recommend the 'Head First' series for learning OOP.


  • Advertisement
  • Registered Users Posts: 31 El Hamos


    Hello Tyrant,

    If you want a good grounding in object orientated programming and are willing to put the time in, check out the Open university UK courses Object orientated programming with Java (M255) and Putting Java to work (M257). There is also software development with Java (M256) which studies software development from planning/design/test to implementation and is a good follow on from the first two. You can do these course as stand alone courses or towards a further qualification. I cannot recommend these courses highly enjoy. I like you, started trying to learn object oriented programming from books (including head first into Java) waste of time, could not master it. The material from the OU is excellent and I have not looked back. I now only have one year left for a Degree in computing:D


  • Registered Users Posts: 159 ✭✭JayMul


    I tried learning programming from a book but it just wasn't possible for me. So I just started doing this course & I've learned a load in the first year, I can now program OO fairly well using C#. The software development course looks good too, but a little less intensive from what I have heard.


  • Registered Users Posts: 7,869 ✭✭✭The_B_Man


    You should try these online tutorials:
    http://articles.sitepoint.com/article/getting-started-java
    these take you as far as OO. You should read through the Sun docs as well.

    then practice on
    http://codingbat.com/


  • Registered Users Posts: 4,257 ✭✭✭SoupyNorman


    Tyrant^ wrote: »
    Guess people dont understand what im trying to say ! :D


    Hi there, I can seriously empathize with you. I'm just finished a course which covered ‘Introduction to java' and 'advanced java' modules, now I’m not without my criticisms of the delivery methods used to teach the material but I have to say that it’s just not an easy topic to learn and furthermore master. I personally don’t believe folk will get very far trying to teach themselves in the majority. JAVA can be the best and worst language to begin learning, the best as it sits pretty high on the language hierarchy and really drives home the concept of object orientated programming, however it’s an extremely unforgiving language and sometimes hours can pass while you try to call a method or constructer (much of my hair was torn out).

    If JAVA is your main objective then I would suggest enrolling in some kind of course to give you that kick-start. Online, this is by far the best link I’ve come across http://www.20papercups.net/category/java-vtm-tutorials/ …I rewatch these tutorials all the time even for refreshing myself on primitive data types.

    Personally I don’t think I’ll be pursuing JAVA mastery, I already have decent SQL ability so I’ve taken to PHP recently which is a perfect compliment to SQL. I find PHP nice to work with, much more forgiving but operates on the same principles of OOP programming, principles I learned from JAVA!!!


  • Registered Users Posts: 2,800 ✭✭✭voxpop


    The basics of Java arent that difficult and I think it will finally click at some stage - then you can move on to abstract classes and interfaces, which imo are a level up from your basic OOP. Java has come along way since I started with it at 1.3 and now with decent free gui tools like eclipse, that will syntax highlight and do code complete - leaning Java basics shouldnt be that hard.

    The basics are really understanding that you have a class - the code you write. You can then create objects from this class and act on those objects. Everything(pretty much) in java is an object. Inheritance is just creating a more specific version of a class. So circle is a more specific example of shape. Inheritance allow you to have the shared methods in the superclass(shape) and the specific methods in the subclass (circle in this instance).

    Probably the best way to actually learn the language is to think of a smallish project for yourself, something that actually does something (rather than the abstract examples in books)


Advertisement