Udupa, people have suggested Python as a flexible language that will help

Try it. Try the various other recommendations as well, as long as they aren't say C or perl you should be able to coast along in them for long enough to decide whether you like the language or not.

I'll second both of these:

for the latter, it helps to understand that programming is full of "holy wars" on the "my brother and I against my cousin" principle. (this is not unique to technology fields: I note that among riders, there is often strong antipathy between those who wear cowboy hats and those who don't, and among those who don't those whose tack is brown vs those whose tack is black, etc. etc., when to the remaining 98% of the population they are all lumped together as "doing something with horses"). Taking the 98% view, programming in any language involves working at a level of precision which is unfamiliar to nearly all neophytes, and unpalatable to most.

        "I really hate this d****d machine
        I think I'm going to sell it
        it never does what I want
        but only what I tell it"

once you've written a few programs, and have decided that you do, in fact, enjoy this variety of riddle ("doing something with programming") enough to actually spend large amounts of time doing it yourself, then it's worth looking around for languages which suit your tastes, inclinations, and aspirations.

for the former, I have found Python to be very flexible: on the conceptual side, one can model most, if not all, of the ideas presented in http://www.willamette.edu/~fruehr/haskell/evolution.html in Python, on the shoot-yourself-in-the-foot-several-million-times- per-second side, there are modules which allow you to JIT raw machine code to your heart's content, and on the a-quick-kludge-to-do-X side, Python has a large user base and a wide variety of packages for the times when one has no aspirations beyond being a glorified plumber. (see also http://yosefk.com/blog/the-cardinal-programming-jokes.html for more literal takes on this last metaphor)

That last point is why "tastes, inclinations, and aspirations" are so important. Someone who is paid to code will choose environments which minimize time to market (or, even worse, process variation!) in their line of business. As a hobby coder, you have the luxury of looking for environments where almost all the stuff you don't like doing is provided, and almost all of what you'd like to do is feasible. After all, the revealed preferences of most visitors to alpine resorts is that they take lifts to the tops of the runs, but descend themselves.

-Dave

(as for those people who ski one or two runs, and sit around in the restaurant the rest of the day: their programming equivalents are found online, providing most of the heat in our holy wars)


Reply via email to