Ever wondered how to get your computer to do more than just clicking on an icon, leaving you to enter some data into some application window (browser, mail client, …) and be more or less pleased at its overall outcome? Ever wondered how on earth to get your computer actually processing your data, solving your problems in a way more suitable for your every-day work? Maybe even tried to, careful as could be, get closer to the idea of “writing programs” for your machine but so far hesitated, scared by the overall complexity and skills set required to get this done?
Well, maybe it could be easier than that. “Python For Informatics: Exploring Information” is (the starting point of a growing) text book aiming at enabling people to use the Python programming language (known best for being concise, very readable, easy to get started with and, overally, being modestly friendly to starters while, at the same time, allowing one to do all eventually to be done with a programming language these days) for exploring data, learning to solve tasks “programmatically” by writing Python scripts, making use of the many smaller and bigger features this language offers. The book, written by Charles Severance, published under a Creative-Commons license and building upon the foundations of the likewise readable “Think Python: How to think like a computer scientist” offers a straightforward, concise introduction to doing basic things with Python as well as understanding a bunch of basic concepts of computer programming in general and also provides a little more material (audio recordings, slides, …) to make things more accessible to you.
Well… though I still mainly use Java for my everyday productive work, I then and now have been sort of “in admiration” of Python because of its elegance and accessibility and because of, at times, just seeming “a good language to get a job done”. Right now, also looking at the Opportunistic Developer Week held by Ubuntu GNU/Linux community at the moment, and also making heavy use of Python (and the quickly development framework), I see an interesting tendency (or, well, let’s better call it an “option”…) for the future of computing: Make end users more “productive” again. Make creating smaller (and maybe, as well, bigger?) programs as easy/difficult as using a spreadsheet and a word processor, and allow people for quickly sharing and, in a community, growing small, custom projects into larger ones eventually addressing the needs of more than just one user. This really could push forth a whole new culture of contribution and collaboration to open source or software libre which by now, all too often, just seems limited to downloading and installing stuff. And, eventually, it ultimately could end in the set of tools available being broader than ever. Not all too bad, isn’t it? :)