tags:

views:

384

answers:

8

I will be hosting a 1 hour session at work aimed at teaching some of our better folks programming. These people are pretty proficient at computers and some are good at SQL. But none of them could create a desktop app or a basic website.

The aim of the class is to get them interested in programming. One of the things I want to do is build a basic windows application and show them that the barrier to entry is not so high.

What sample application would you build? What technique would you emphasize to drive the points home?

+4  A: 

Depends on what business, really. I'd imagine your employees are going to be much more likely to pay attention to a small program that does something related to their job rather than something random.

wfarr
+2  A: 

On those occasions i've explained programming to smart power user non-programmers, i find there's only so much i can show before they've filled their minds and need to digest it. Like a meal, it will take many bytes.

I used to recommend to those who ask for a good initial beginner's project, to try a calculator - limited to one digit, only add and subtract, never mind making it look good etc but that turns out to be about three mouthfuls at once, if they're coming from a cold start.

It's tough enough just to make one simple window with a "quit" button that actually works without crashing. Enough ideas must be grokked just to do that, whether you're using C and the Win API directly, or using Python and wx, or whatever tool at any level. Make that the first session, and yes, assuming you have to cover some basics of the language involved too, that's easily an hour.

Are you limited to only one session? That would be sad. The second session could be where you add buttons, text edit boxes, and try connecting to a toy database. A simple window to form a simple query and get a simple answer. Again, there's enough to grok and mentally digest, i wouldn't go any farther than that given one hour.

DarenW
+1  A: 

I'd put in my vote for a simple Rails blog. Depending on how you want to attack it, you can make it work-related, or put a personal spin on it.

J Cooper
I'll be doing the session in c#, since I don't know any of the starter languages (e.g. Rails, Python, etc...).
AngryHacker
What do you mean by starter languages?
Jules
+10  A: 

First of all, what exactly are the jobs of your "better folks"? If their job is not exactly into software development, teaching programming where it does not truly benefit their work may not have a positive uptake.

On the assumption that "power users" mean business users who like to use their computers/systems efficiently, and you want them to produce things useful in aiding their work (which is not directly programming), it is usually beneficial to expose them to scripting to write some batch or WSH or PowerShell script to automate some of their computing activities. It is easier to get motivated to script out something that can cut down your work, rather than a useless Hello Word GUI.

EDIT: oh i forgot to explain my personal history: I studied Data Communications as a major for my IT bachelors, which is all about training to be a system/network administrator. My first job did exactly that - administrator in a hosting provider. In order to manage Windows systems with better efficiency, I learnt WSH to script my way through all those tedious mindless tasks. I did so much scripting I eventually ended up writing a simple hosting control panel in ASP. Guess what happened to my career after that...

icelava
+3  A: 

I'd stick to scripting (maybe VBScript), although you might even have better luck teaching them some VBA (assuming you use MS Office). Our power users frequently write Excel macros to automate long, monotonous tasks, and an "Intro to VBA" class got them started down that path.

rwmnau
+2  A: 

I agree with the others scripting would be the best introduction. You might also try a little python coding. This is just a little beyond simple scripting.

If this is an above average group, I'd recommend a simple walk through followed by several examples. Be sure to point to where they can get more information. People like this tend to be self starters. Just give them permission and let them know where to find things and they will learn on their own.

Jim C
+1  A: 

It might be pushing too far, but if I thought I could pull it off I'd try to put together a bare-bones chat program based around polling a shared database for updates. If you keep it minimal it's conceivable to slap something workable together, chat/IM is something that people viscerally understand as useful, and the database involvement links it to your users' current knowledge base.

chaos
A: 

To save some time, send them an email helping them download and install something like VB Express (or whatever the free one is called now). Introduce them to Hello World and then make a connection to a db they are familiar with (a development copy) since they know some SQL. From there, populate grids, text boxes, Calendars controls, etc.

With the free tool, they may even work on it in their free time. The best use of your limited time will be to get them kick-started and hopefully you can provide additional guidance.

Good Luck

Jeff O