We are beginning to envision a website and class which would aim to show business users how to use a little bit of Python, focused entirely on helping them with their regular workaday duties.
For now, what we have is a gathering of notes and ideas.
About the idea
Original blog post on the idea
The idea is a website and a class designed to show businesspeople a little bit of programming that they can use in the computer tasks they already have. Not to make them into real programmers (at least, not yet), but to show how they can automate some of the tasks that work makes them do anyway.
(If a few of them end up becoming passionate hobby programmers, or even switching careers, and joining the ranks of contributing Python programmers... well, OK, that hope is the ulterior motive from our point of view.)
There are lots of beginning programming guides out there, but as far as I know, they are all aimed either at students, or at people who already know that they want to get deeper into programming; people who want to program for programming's sake. I'd like something for people with a totally different goal. It would differ from regular beginners' classes in that it:
Hopefully, the website will be a great reference, too. At the moment, information about how to do these basic business tasks can be pretty scattered, hidden, and non-beginner-oriented.
I like the title "Computer Programming for Secretaries (and other businesspeople)", even though not many people are literally called "secretaries" anymore, because it's a very unpretentious title - it would emphasize that it's aimed at people who don't feel like they could survive (or may not have the time for) a serious computer programming class.
Topics to cover
- Accessing data in typical business apps (MS Excel, Access, etc.)
- Screen scraping (what is that?)
- Copy a block of text to the clipboard
- Copy an array or list of strings to the clipboard
- Unwrap a block of text
- Do a GroupBy
- Produce a table from a set of tuples of the form: (c1,r1,0), (c2,r1,3), (c2,r2,4)
- Maybe a bit of automatic Scheduling
- Doing a Set Difference / Set Intersection between two lists
- Present a library for approximate matching of names.
- splitting a name field into first and last
- sanitising phone numbers,
- or complex decision-making/formulas that would normally require multiple extra columns, or deeply nested formulas
Common automation tasks
Some common tasks that are probably worth mentioning
- Importing CSV files (using csv)
- Extracting data from XML (using etree)
- Controlling the browser (using webbrowser)
- Simple SQL access via sqlite
- Copying and Pasting to the clipboard programatically
Writing OpenOffice macros in Python would probably be good.
Also Django is quite approachable for setting up a data entry system.