Could you elaborate on why you don't think someone coming up could learn to code in the same way, as some would say that the amount of information and code out there has never been greater as a whole?
Because there isn't the encouragement there once was. Nowadays software makers have tried as hard as possible to hide the workings away from you and discourage fiddling. Although you can learn television maintenance by reading books on how television works generally and learning electronics, its no substitute for the amount of learning gained by getting the back off and almost killing yourself by grabbing hold of the high-tension wire :).
This is, of course, the natural progression as computers have become more appliance-like and less machines of wonder. When cars first came out, the owners had to learn how they worked sufficiently to prime pumps, turn cranks, oil, turns, strip and otherwise maintain their machines. Now they are more reliable but you can't learn how a car works by taking it to bits any more.
Also, although there is a lot of material, modern computers are too sophisticated when it comes to getting you hooked. With the old home computers one could get instant gratification by writing a program which drew a space-ship on the screen in 10 lines of BASIC. Nowadays you'd have to learn COM + Win32 + DirectX just to get a black rectangle. The 'activation energy' required for kids to get exciting things on the screen has increased exponentially over the past decade. The lack of home-programming magazines is also a problem although some the the Linux magazines here in the UK are starting to carry beginner's programming articles again.
Finally no machines come with BASIC + a programming manual in the box any more. When I was a kid programming was Just What You Did with a computer since commercial software was thin on the ground. I guess what I mean to say is that today's computer landscape doesn't encourage hackers like it once did.
I couldn't agree more. I seem to have the required impetus - .001 to start a project of my own. I have a bunch of ideas, enough C++ and python knowhow to code the logic of an application, but no knowledge of decent gui interfaces, which to use, and how to use them. (I would definately use python though, as I am a hard core pythonian.) Plus, I'm so flippin busy all the time.
Speaking of python, something I've been toying with is working up a project for people who know how to program but want to learn python. I am a very hands on kind of learner, and it seems to me that there isn't a really good resource out there for someone who is a experienced programmer to learn it in a decent way. I know this because I've been trying to teach it to my boyfriend. There isn't anything he really wants to program at the moment, so I can't just help him do that, and showing some of my code to him isn't really a good way to learn the language. Its kinda embarassingly hard to show something python without some kind of something to demonstrate. I figured something that does some kind of simple mp3 organization (similar to what iTunes does) would be a good first python project because it deals with dictionaries (yay) and shows you how to deal with the file system in python. As for putting this together as a resource, I would have links to some of the different python mp3 modules (id3-py looks like my favorite), a link to the python quick reference, an introduction to the basics of how to make python go and installing modules, and some useful tidbits of code (and maybe just my code for doing it). I'm not sure if this would be worth it, but I still plan on doing it when I get some time.
Oh, and through some surfing, I noticed this: Web-apps are the legacy apps of the future. Its an interesting idea, and an interesting site that I forgot existed for a while.
Oi, I think thats enough for today.
4 comments:
Whoa! It's kinda weird to read this post, cuz it's really sorta like Drunken Batman vs. Kuro5hin Guy. Sorta. Inadvertantly.
See, Drunken.. (let's call him DR, typing out Drunken Batman is pretty weird. 8-) ) Ok. *ahem* DR is rightly complaining about the opacity of newer programming to newbie programmers. Programming languages etc may have kinda sucked back in the day, but at least you had the option of getting in there and messing around with the guts. I so completely agree with that.
So, this other guy is bitching about how web apps are the next legacy apps.
I'm curious what you think... but me, I think he's forgetting a couple things.
1st of all, web stuff for the most part amounts to scripting. It's structured that way because of compatibility & also file size concerns. The thing that attracted me to web stuff in the 1st place is that pretty much EVERYONE can see it, as long as they have a browser. That's becoming sort of not true, as people use all sorts of weird stuff, but for the most part it's still the case.
Secondly. While I don't disagree with this guy that web apps can be insanely annoying, for the moment I'd rather have it that way than the current appliance-like state of Real Programming. I'm also a tinkerer by nature (big news there, ay? ^_^), and I find things I can' tinker with off-putting. HTML etc may be pretty loopy, but obviously, in some rudimentary way they work well, or they wouldn't have been around so long. It's not like some big Corp is foisting html on us.
Plus, my mind boggles with WTH we could replace it with. I'm sure there *will* eventually be something, but I somehow don't think that HTML will be the NEXT app to go. In fact, now that I think about it - it just may be the oldest app still in use??
I'm having KVM switch problems.. but only minor buggy problems... and I somehow managed to forget to sleep last night?
The point being - considering my current state, I'm really very proud of this comment. ^_^
I forgot a step in some of my logic, that html is very tinkerable. And that's why I like it. Besides the mostly-compatible-with-everything-ness... Oh, and it can rarely crash a machine. To my knowledge. Scripting can, true, but... but...
Oh, forget it. Too brainfried- I have to give up. 0_o
Well, I don't see them as in opposition. I agree very much with what Mr. Wareham said because well, it's true. One of his points is that computer language has expanded and become so complex (as opposed to basic) that its hard to even start, much less do anything or fiddle around. Now, this other guy is talking about legacy languages, which he defines as stuff that is old and crazy, (maybe even highly cludgey) and we've come up with a much better way to do things now (such as objects, whee!). Now, in reference to web stuff, it's highly cludgy, not well supported, (and for reference, its been known to break browsers) The whole thing is a patchwork of stuff, and while specific bits are better supported and documented, on a whole its, well, crazy and highly cludgey. The amount of stuff you have to learn to put anything other then a very simple webpage up is crazy. Even html is kinda illogical (as shown by the adults trying to learn it in my CSE 97A class), and it can be highly unpredictable.
I think that the reason web stuff got to be this way is because its powered by the internet (that is, noone in particular). There's noone really in charge, (but there are people who will make suggestions). That and the internet grew ridiculously fast, so people just kinda threw stuff in there and it either took off or it didn't (or there was a crapload of money thrown into it by some big company). So, yeah.
As for the tinkerability of real programming: I would say its highly tinkerable. In HTML(etc) you tinker to get things to do what you want. In real programming, you tinker to get faster runtimes, cooler features, and as much out of the OS and libraries as you can. There are loads of interesting little things hidden away in all the hundreds of libraries of stuff in your OS (like the function that Mr. Wareham used). Real programming is making your computer do new and useful (or interesting, or both) things! What more could a tinker fiend want?
/rant? Ah, I dunno. I'm tired ^^
Hm.. I can't post /rant in carrot brackets because its bering parsed as an html tag. heh.
Post a Comment