views:

83

answers:

7

Hey everyone,

I'm a GUI designer/interactive musician wanting to improve my programming chops. I already know the basics(variables, loops, arrays, if/else, some logic), but I'm looking to learn in a structured way. I've seen some great books/tuts on Python and Processing (and even Flash)that aim to teach the fundamentals of programming in a fun and accessible. I've drooled on these books and considered learning Python many times, but to be honest, I don't know if these languages could be usefull for me on a professional sense. I need something directly related to interactive interface scripting/programming and JS seems to be my best bet (I've been trying AS3 but the OOP stuff made it somewhat hard for me).

I know JS can be fun (Jquery is). But I just can't find learning sources that are as compelling as the aforementioned material. All I find are tutorials and books that teach web development topics, such as form validation and ajax. I've tried looking for JS game frameworks, but all of them seem to be built for experienced developers and lack documetation or begginer's tutorials.

So, any directions on finding the joy in JS? Perhaps suggestions on other UI-focused languages ? Thanks for reading this long question.

A: 

If you are really looking for the joy of GUI programming, then I suggest you C#. Get yourself VS 2008 or above.

Just imagine, you have a great GUI designers that allow you to script you layout through drag and drop, and all you have to do, is to fill in the proper event and the program will just run like magic. Hand coding is kept to the minimum

Ngu Soon Hui
+2  A: 

Have you had a look at Head-First Javascript? It seems to me to be a programming tutorial that's not inferior to the best ones available for, say, Python -- sure, it deals with web programming too (while a Python-based book might not), but, why's that extra info a bad thing?

Alex Martelli
I'll definetly take a look, Alex. I've heard nothing but good advice about the head-first series. But then I saw a negative review of the JS version that made me get away from it. Perhaps it's time to reconsider.
Midipixel
A: 

Any programming language popular enough to have books written about it that you've seen in stores will be professionally useful to you. I think you have a good approach in looking for something that excites you. If those Python books make your heart race, pick one up and dive in. If you find something else that you love, go for it. You're gonna need that love to get you through all the hard work and frustration of learning to program.

Nate C-K
Good advice, Nate... that's exactly my point. Although my ultimate focus is scripting interactive behaviour (and not system development), all I want is something that keeps me excited enough so I can go through the frustration phase. Tackling AS3 has been very disapointing on that regard.
Midipixel
The "frustration phase" is a permanent feature of programming, I'm afraid. But that's what makes success satisfying in the end.
Nate C-K
+1  A: 

Javascript isn't so much a "joy" as it is a "necessary evil". jQuery just makes it less evil. Actually that's not entirely fair: part of the "evilness" of Javascript is just all the cross-browser difference, not the language itself (which is actually quite modern).

But like learning anything, I don't think it's all that fun if you're just learning for learning's sake. Even a good book, tutorial or other resource won't do that (at least for me). I find it far more rewarding (and successful) if I have something in particular I'm trying to achieve or do.

If you know basic control structures and syntax then you know enough to pick something and try and implement it. You'll get stuck along the way (a lot early on) as you try and figure out actually how to do things. You'll probably do some of them really badly but that's OK. All that experience gives you a useful context when you do more reading and can appreciate the actual problems that something is discussing or solving.

cletus
I agree with you Cletus, but sometimes I feel I'm missing the required knowledge to achieve the desired results. Maybe I just should keep trying, but the promiss of other languages often get in my way.
Midipixel
There are always new languages and greener pastures (which basically explains Ruby on Rails). Success is measured in what you get done however, not in what you could do as soon as you learn new technology X. At some point you just need to pick something and use it to get something done.
cletus
It's not JavaScript that is evil, it's the DOM, which is an entirely different standards body and where the cross browser issues come into play
Justin Johnson
@Justin: And where exactly did I **not** say that? (hint: read the first paragraph carefully).
cletus
A: 

You might want to take a look at Tcl/Tk. Although the language is sort of arcane, and the library is at least in principle available in other languages, notably python and perl, the toolkit in its native language is really very clear and concise.

TokenMacGuy
A: 

I think you want to work on web interface programming not GUI (windows forms).. Jquery is the best way to go and when it comes to web dev there is no escaping from Javascript.. I try and comiple some good sites .. give me some time

Fawad Niazi
A: 

I suggest finding the joy in JavaScript. It sounds to me like your market may be in the browser, in other words, downloaded applications aren't what you're looking for. If this is the case, you don't have much of a choice: JavaScript or Flash.

If you had trouble with OOP, I suggest you find the joy in that first. As the joy of both JavaScript and AS3 (as you already know) can only be found once you find the joy in OOP, which will server you far better as a programmer in general.

As far as books, I recommend, JavaScript The Good Parts by Douglas Crockford, who is widely considered one of the top authorities on the subject.

Justin Johnson
OOP makes me sad, Justin! :D I know it's the best way to build scalable software but I wonder if it's the best solution for someone who wants to primarily script behaviours.Anyway, note taken. I think all languages tend to evolve to OOP anyway...
Midipixel
In JavaScript, OOP is not so much about scalability. It's really the heart of the language in the "everything's an object" sort of way.
Justin Johnson