2

I'm teaming up with a guy who has no programming experience. We're using a tool to make our game (RPG Maker) that has an event-based system that allows you to do pretty much everything you want. They have a GUI and a simple text editor for events.

My friend has no programming experience. None. I need him to understand basic stuff, like control flow (if/else, do/while), variables/constants, etc. What can I use to teach him this, bearing in mind that I don't care about specific language syntax?

Ideally, I'm looking for a "programming" book that talks about these ideas (perhaps visually) and doesn't care much about code. Does something like this exist? My "google-fu" failed me.

4
  • 2
    You can do it using some pseudo-code-like notation that does not have an implementation, but then you might as well use some (lightweight) language so he can actually experiment rather than staring at code he can't try out. Commented May 22, 2012 at 17:45
  • Any recommendations on language? Commented May 22, 2012 at 17:48
  • 1
    It sounds like you are looking for a discrete mathematics book with a programming focus. Commented May 22, 2012 at 17:50
  • Im sure someone, somewhere, must have written an introduction to the RPGMaker language for non-programmers. It will be much easier to move on to more advanced topics once he goes through that. Commented May 22, 2012 at 19:39

5 Answers 5

2

One of the "Learn X the Hard Way" books might be a good way to go. In particular Learn Ruby the Hard Way is an interesting one. It gives tutorials that your friend can follow and learn some programming and just use one of the interactive Ruby terminals to work the tutorials. He will have also learned a useful language when he is done.

1
  • Winnar. Ruby is a fun language that's easy to learn online (tools like you pointed out); it teaches the basic concepts; plus, RPG Maker coincidentally uses (and exposes) it as the underpinnings. This made the most sense in my case. Commented May 22, 2012 at 22:37
6

When I was a kid I was teamed up with other kids and given the task of instructing a Martian how to make a PBJ sandwich. The Martian knew English but not any of the assumptions one takes for granted in normal conversation. The teacher played the part of the Martian and we had to eat the result.

Some teams forgot to specify assembly so they just got a couple pieces of bread, one with PB the other with J.

Some teams forgot to specify which side of the bread to attach so they got things like inside-out sandwiches and sandwiches with PB on inside and J on out.

One team got very, very close but then said, "...and press them together." That one made a mess.

It was supposed to be a lesson on cultural norms but it speaks quite directly to programming as well.

4

That's kind of like teaching math without all those nasty symbols and numbers, since he doesn't need to care about the difference between roman numerals and arabic. Part of the concept is wrapped up in the implementation, either a pseudo language or a real one.

Luckily, you have a language available to you. Show him the concepts and walk him through what is happening in that. Not only does he learn the idea, but also the implementation he will need to use.

Also, since these ideas apply across languages, have him work through something like A Byte of Python. It goes over these concepts, and has a REPL for easy experimenting. Then, as noted in my comment, show him those concepts in your current language, to connect the two.

4
  • It would be easier if we were on the same continent. Sigh. Commented May 22, 2012 at 19:16
  • @ashes999 in that case you may want to wait on doing this until he gets up to speed. Build a lot of little tiny projects that demonstrate one idea (for loop, if/else), and give him a chance to see them in action. Also, use that to work out the bugs in your repository system...You are using a repo, right? Commented May 22, 2012 at 20:02
  • More like teaching someone how to play a musical instrument without letting them actually play the instrument. Sure, you could read a book or listen to lectures on music theory, but how effective would it be? Commented May 22, 2012 at 20:16
  • Yeah, we're using BitBucket/Hg Commented May 22, 2012 at 22:36
0

Try Karel the Robot, available on the web and in book form. That's not quite right, actually -- the web page is just a sort of user manual for the language. The book explains the ideas. Get the book, then use the web page to help with the tools.

0

You could use flow-charts (maybe process and sequence diagrams too) or pseudo-code to get started, but eventually you will have to move to Real Code. I think what you are trying to do would be akin to teaching someone to play the violin with only sheet music and no actual instrument. The problem-solving aspect of progamming may not require a specific programming language, but solution implementation sure does.

2
  • He has a scripting language ready at his fingertips. I don't want to make flow-charts if they already exist. I just need to teach the basics. Commented May 22, 2012 at 17:49
  • @ashes999: Then it might be best to teach using the immediately relevant materials: The scripting language for your game and maybe a few simple flowcharts to get started with it. It might be a little more work at the begining, but it will be much more relevant to the whole project. Commented May 22, 2012 at 17:54

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.