Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
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. –  delnan May 22 '12 at 17:45
    
Any recommendations on language? –  ashes999 May 22 '12 at 17:48
1  
It sounds like you are looking for a discrete mathematics book with a programming focus. –  Ryathal May 22 '12 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. –  hugomg May 22 '12 at 19:39

5 Answers 5

up vote 2 down vote accepted

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.

share|improve this answer
    
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. –  ashes999 May 22 '12 at 22:37

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.

share|improve this answer

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.

share|improve this answer
    
It would be easier if we were on the same continent. Sigh. –  ashes999 May 22 '12 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? –  Spencer Rathbun May 22 '12 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? –  Bill the Lizard May 22 '12 at 20:16
    
Yeah, we're using BitBucket/Hg –  ashes999 May 22 '12 at 22:36

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.

share|improve this answer

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.

share|improve this answer
    
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. –  ashes999 May 22 '12 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. –  FrustratedWithFormsDesigner May 22 '12 at 17:54

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.