As I’ve mentioned earlier, I’m trying to learn Python. Python is a high level programming language. Or as the Pythoneers themselves put it:
Python is an interpreted, interactive, object-oriented programming language. It incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes. Python combines remarkable power with very clear syntax. It has interfaces to many system calls and libraries, as well as to various window systems, and is extensible in C or C++. It is also usable as an extension language for applications that need a programmable interface. Finally, Python is portable: it runs on many Unix variants, on the Mac, and on PCs under MS-DOS, Windows, Windows NT, and OS/2.
The text above? Pure gobbledygook to me. And not the Harry Potter kind. Wikipedia is slightly less convoluted:
Python is a widely used general-purpose, high-level programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C. The language provides constructs intended to enable clear programs on both a small and large scale.
So what’s my point? My point is that it is very difficult to find teachers gifted with both the incredible skill to make something that is complex understandable, and with the ability to talk to people without wrapping stuff up in sentences like “interpreted, interactive, object-oriented programming language”. I mean, I understand what each word means. I just don’t get what it means when it’s strung together like this. And that’s my point. I know I have tendencies to become all jargon-y when I talk about game design or user interface design. And I know a guy at work who talks about diegetic interfaces for instance. Anyone not familiar with the word diegetic doesn’t stand a chance understanding what that is all about. The perk with having a specific language for a speciality is of course that you can be more precise, which is great. But that also requires an audience with access to the terminology you are using. Normally, programmers – not that easy to understand.*
I’m sure this seems pretty trivial to programmers. To me, as an outsider it is NOT. I’ve tried SO many times to learn different kinds of ways of talking to my computer or my browser in a way that they’d understand, but it’s been like learning a new language with a different syntax on my own. In that language. Meaning that I’ve never understood the lessons, much less the language.
In short – that tutorial? Good stuff. Also, I got a bunch of helpful hints from Mondi at work yesterday. He said three words (he said more, but these were the ones he wanted me to focus on):
I’m sort of looking forward to seeing how I can use all this stuff that I’ve learned. At the same time, I’m terrified that as I get to the more complex areas of Python, I’ll stop understanding each thing I’m doing and give up. Not yet though. So far, so good.
Now if you’ll excuse me, I’m settling down to a day of Python. I’ve got my Burn, I’ve got my Kraftwerk and I’ve got a matrix runny code desktop image. It’s important to set the mood.
Point? Everyone should have a shot at learning this stuff. It’s good stuff and despite my earlier misgivings, it’s actually not that hard once the teacher speaks your own language.
* This is not quite fair though, as I’ve met a lot of programmers who actually know how to talk to non-programmers (I LOVE YOU GUYS! *waves*). But I’ve also met a lot of texts that are trying to teach me stuff and fail due to jargon.