I have a friend who is in the same CS program that I am in. She is very artistic and has taken some art courses but is more interested in pursuing a CS degree. She has been very motivated to do well and has even used her own money to pay me to tutor her and buy extra books to read to help get through courses. However she has struggled to get through a vb.net course. One of her strengths is that she makes awesome UI's that made mine look like junk. The down side is we spent a ton of time regoing through loops, arrays, etc that she had a very tough time getting. So my question is: what technologies can I point her at that will play to her strengths and hopefully help her learn the rest?
Processing might be a good place to start to learn the fundamentals.
Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is an alternative to proprietary software tools in the same domain.
One of its stated goals is to get "non-programmers started with programming, through the instant gratification of visual feedback." I know I'm more partial to boxes flying across a screen than text scrolling by when I'm learning a programming language.
Flash, I imagine. Fireworks helps people make static websites.
If you don't get logic, there are limited choices. I do remember a coding "language" that used flowcharts to show logic. She might benefit from a program like this.
She might want to also try:
http://www.alice.org/ http://hacketyhack.net/ http://mckoss.com/logo/
or:
get another business-minded person and form a startup - you can do the back-end, she can do the UI part :)
I thought this as a joke but in some ways it might be interesting - Haskell.
If her brain's wired up to have problems with describing things imperatively maybe she'll actually get declarative programming better - why struggle with loops when you can have a map function?