Search Unity

Teaching a teenager - Looking for suggestions

Discussion in 'General Discussion' started by wccrawford, Oct 24, 2016.

  1. wccrawford

    wccrawford

    Joined:
    Sep 30, 2011
    Posts:
    2,039
    My niece is interested in learning to make games. Originally, I was going to start off with something "easier", but I've decided to go with Unity instead. Probably once a month or so, my wife (pro QA Tester) and I (pro Programmer) will meet with my sister and her daughter and help them learn to program. We'll probably meet for 2-4 hours each time, but I'm totally open to staying longer if she's really into it. I just don't think I can count on their attention for that long with something as frustrating as learning to program. (I'd love to be wrong about this.) Being there as a mentor might make it easier, so there's that.

    I'm looking for suggestions on making this an easier or more engaging process. A few years ago, my niece looked at Scratch and enjoyed playing with it and re-working other people's work. So she's not completely new to programming, just mostly so. She also has some art ability, so I expect that to help make things more motivational.

    My current plan is to start super simple with something easy. Maybe dropping images from the top of the screen and making them disappear when tapped. Then add scoring, a timer, etc. This is totally off the top of my head, and I'm totally open to ideas here for easy first projects.

    As for the process of teaching... I'm a big fan of having the person *do* things. I'm thinking maybe I program it in front of her once to show her how, then walk her through doing it again in a blank project of her own.

    So... Any and all suggestions are welcome here. Thanks!
     
    GibTreaty likes this.
  2. Pagi

    Pagi

    Joined:
    Dec 18, 2015
    Posts:
    132
    I agree with letting her do things. Also please do not make it a chore for her. Making games is really hard, and it is easy for newbies to not get seemingly trivial things at first.

    My cousin wanted to make a game too, so I showed him some basics in C# and later some basic and so on. About a month later I am teaching him again, telling him what to do, and he doesn't know how to declare a variable or why a method has a type in front and variables in parentheses. I tried for a few hours, but it seems he doesn't know or get anything, so I let him to it, maybe he isn't ready for it yet.

    Back to making it a chore: I despise most subjects at our school. Because of the way it is taught, it looks uninteresting, bland and pointless. I started to neglect school and began learning programming, drawing, making sounds and all other game things. So far I love it, even though I make myself do it several hours a day. Obviously the next year I took an IT seminar(elective compulsory) and we learn things about hardware, programming, history and basically everything I already learned before. But with the style of that teaching, I would never even think about a programming career. It just really put me off, how we learn things at the school that I already know, but they are barely recognizable, hidden in obscure, meaningless definitions, and the teacher himself doesn't really know more about the subject than what he puts into our notes. Just don't make that mistake, programming is a magnificent thing to do.

    Sorry for that rant, I am probably not yet out of that teenager state of hating school.
     
    wccrawford likes this.
  3. wccrawford

    wccrawford

    Joined:
    Sep 30, 2011
    Posts:
    2,039
    I was lucky and learning programming young from teachers that made it fun for me, at least. And I took it from there. I later met the other kind of teacher in my search for more schooling, and that was a bummer.

    I'm totally dreading that I might accidentally make it a chore, which is what prompted this post. I really want this to be fun for her, and not a boring slog. I will looking to be flexible when we're working on something, but I want to go in with some kind of a plan, at least.
     
    Pagi likes this.
  4. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Let em loose on the learn section. Then make yourself available to answer questions.
     
    theANMATOR2b likes this.
  5. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    (Not a coder)
    Consider providing examples of how a specific point of learning/teaching - is used in real life, and if she is into a specific type of game - using that type of game to give examples - I think would be really great for her to retain the information.

    I can't even provide an example because I'm code illiterate - but as a stupid simple example of a variable (array?) for a color change in (the type of games she likes) a character selection screen.
    I think this would go a long way in retention of the topic you are teaching her.
     
  6. Jingle-Fett

    Jingle-Fett

    Joined:
    Oct 18, 2009
    Posts:
    614
    The thing that helped make things really click for me (being primarily an artist) was when I started to understand the general structure of programming code, how stuff fit together. I started to visualize classes as boxes that held stuff and then functions as boxes inside that box which did stuff--kind of like a class being a Lego set and the functions/variables being the individual pieces. When a class references another as a variable, it's like when another Lego set can be built from lots of smaller sets. Functions like Update were kind of like motors where you plug gears and wheels in to make a car move. And so on.
    Once I started seeing the code that way, it sort of just took off from there and I was able to start teaching myself, doing my own thing and actually understanding what I was doing.

    So my advice would be to try to find a point of reference she already understands and use that as a comparison point. If she's into Barbie dolls for example, maybe the dollhouse is a class and the bathroom, faucet, etc. are the functions. Once the general concepts are understood, it should sort of become self-sustaining and it's just a matter of gradually introducing new tools and techniques.

    Another thing that would help a lot would be to start with a visual scripting tool (like Antares Universe or Nottorus or Flow Canvas). The benefit is that it lets you start doing stuff right away in a user-friendly drag and drop manner and she can start having fun (its less technical while using the same skills). Make an example node graph and let her fiddle with it. It gives a chance to learn the terminology, the frequently used commands and stuff, while at the same time having hard constraints that prevent from making errors (can't plug a boolean into a float for example, it just won't let you). It allows you to experiment and learn the rules and you can see what's going on in the background when you hit play.
    Being a visual tool, it also helps create a sort of bridge or translator between the way she's used to thinking and the more abstract way of thinking in code.

    For a first project, maybe just start by making a cube move around and then add features to it organically.
     
    Last edited: Oct 25, 2016
    theANMATOR2b likes this.
  7. wccrawford

    wccrawford

    Joined:
    Sep 30, 2011
    Posts:
    2,039
    She has specifically asked for my help in learning this, and I'm happy to help however I can. The question is just "how".

    I've already encouraged her to strike out on her own with the existing tutorials on the web, if she likes.
     
  8. wccrawford

    wccrawford

    Joined:
    Sep 30, 2011
    Posts:
    2,039
    I plan on actually working through super simple games with her, and I hope to address things like that as we go. :)
     
  9. wccrawford

    wccrawford

    Joined:
    Sep 30, 2011
    Posts:
    2,039
    Thanks. I'll consider that metaphor if she seems to be struggling with the concepts. She took to Scratch pretty easily, so I'm hoping that C# won't be too much of a stretch for her.

    I'll gladly buy her Playmaker or something of the sort if that helps her, so a visual scripting solution is definitely an option. But I want to try with C# first, I think.

    I don't know if she's "an artist" so much as someone who can do art. I feel like she's kind of a "jack of all trades". Sports, art, logic... She seems rather capable in everything she puts her mind to. (I'm obviously quite proud of her!)