I learned to program...
April 23, 2011 8:26 PM   Subscribe

 
I love this link. Mine isn't all that interesting
posted by localhuman at 8:38 PM on April 23, 2011


"...QBasic. And no one gives a shit."
posted by Bathtub Bobsled at 8:47 PM on April 23, 2011 [12 favorites]


I still write in qbasic.
posted by broken wheelchair at 8:49 PM on April 23, 2011 [1 favorite]


Is this just another site pointing why you didn't pursue a career with your degree and ended up behind a keyboard because (at first) you couldn't believe someone would pay you to hack together webpages in the mid-nineties with no real training and then ended up following this as a career only to be laid off over and over again because corporations (& eventually you) realized even a trained monkey could do your job despite earning accolades and awards thus displacing you along with thousands of others back into the same spot you were when you graduated except with more debt, less hair and a now destroyed self esteem?

or maybe that's just me...
posted by coachfortner at 8:50 PM on April 23, 2011 [20 favorites]


How and why I learned to program can't really be summed up in a sentence, I don't think.
posted by delmoi at 8:51 PM on April 23, 2011


I learned to program Lotus 1-2-3 macros because someone was willing to pay me.
posted by shothotbot at 8:54 PM on April 23, 2011 [1 favorite]


I learned to program in order to automate the process of calling & hanging up on people.
posted by broken wheelchair at 8:55 PM on April 23, 2011 [2 favorites]


Goddamn trained monkeys taking our jobs.

I know it sounds simplistic, corporate and even counter to the hacker ethos but programmers who don't want to get laid off should not think of their jobs as cranking out code, but to provide a solution to a customers problem, producing code is just a means to that end. I guess what is mean is produce products, not code.
posted by Ad hominem at 9:02 PM on April 23, 2011 [7 favorites]


I learned to program Visual Basic in fifth grade because my genius neighbor came over after school every week to teach me.

Then I largely abandoned programming, sadly. One day!
posted by danb at 9:19 PM on April 23, 2011


I learned to program in order to automate the process of calling & hanging up on people.

That you're doing all that in Qbasic leads me to wonder who's getting pranked, exactly.
posted by Blazecock Pileon at 9:28 PM on April 23, 2011 [3 favorites]


There was a time when I could program. Since then every language I knew has died a slow horrible death. Every time I talk to someone who programs, I don't feel at all remorseful about this.
posted by Kid Charlemagne at 9:32 PM on April 23, 2011 [1 favorite]


I learned to program in high-school on an HP2000 Mini-computer using paper teletypes and saving my programs on paper tape. I still have a paper tape of a tic-tac-toe program that I wrote in Basic.
posted by octothorpe at 9:39 PM on April 23, 2011 [1 favorite]


This makes me want to go code something.
posted by bicyclefish at 9:41 PM on April 23, 2011


My 11-year-old just asked me today if "kids can learn how to code."

I guess I had better find the boy some resources.
posted by LarryC at 9:43 PM on April 23, 2011 [2 favorites]


I have told my employers that my goal for us is to get off the Microsoft teat into embedded land, where we have some control over our own destiny. Embedded today is where PC's were in 1985 and the real demands of our industry haven't changed much since then. With a Propeller and a ENC28J60 and a SD card we can do more than we could do with a desktop PC in 1985. My employers like this idea.
posted by localroger at 9:54 PM on April 23, 2011 [1 favorite]


I also started on VB/VBA. Just adding to what seems to be a chorus.
posted by Brainy at 9:56 PM on April 23, 2011


Quick story: after learning some Visual Basic from the aforementioned genius neighbor, I wrote a game called Multiplication Nation for a science fair-type thing at school. it gave you some (ten?) randomized multiplication problems and a few seconds (three?) to answer each one. At the end it printed out the results. Super badass.

Anyway, as I was showing off this marvel of engineering at the fair there was a brownout at the school. A bunch of the parents and teachers in the vicinity immediately turned to look at me -- they thought my program was somehow responsible for fucking with the electricity. I still wonder if they thought it was intentional.

posted by danb at 10:00 PM on April 23, 2011 [8 favorites]


Is this just another site pointing why you didn't pursue a career with your degree and ended up behind a keyboard because (at first) you couldn't believe someone would pay you to hack together webpages in the mid-nineties with no real training and then ended up following this as a career only to be laid off over and over again because corporations (& eventually you) realized even a trained monkey could do your job despite earning accolades and awards thus displacing you along with thousands of others back into the same spot you were when you graduated except with more debt, less hair and a now destroyed self esteem?

Not just you. Except I have more hair now.
posted by drjimmy11 at 10:01 PM on April 23, 2011


(I have nothing in particular against computer science; I think it's cool some people are passionate about it even though I am not personally. But I definitely had the experience of going from "Wow, they'll pay me a lot for this!" to realizing a cubicle job is a cubicle job and corporate life always sucks and even if they're paying you well, relatively speaking, being at the very bottom of the ladder always sucks.)
posted by drjimmy11 at 10:05 PM on April 23, 2011


Oh and that a ping-pong table and complimentary soft-drinks is not a "benefit" for someone over the age of 11.
posted by drjimmy11 at 10:09 PM on April 23, 2011 [11 favorites]


I'm one of those monkeys looking to train myself to program...something I've been trying to start for years now. Anyone use that Hakety Hack! before?
posted by zardoz at 10:26 PM on April 23, 2011


Ok, so fuck you guys. I wrote a graphic adventure for the Apple ][ for a French class contest, with line drawing and color flood fill routines. Unfortunately the teacher didn't really get it and the prize went to the text mode vocabulary quiz - written by the second dorkiest guy in middle school.

Also it was a rather large program and the AppleSoft garbage collection routines (yes, there was GC in 1980) made unconscionable 15 second pauses that were awkward because there was no spinning beach ball.

Other Quixotic accomplishments included printing my term papers with my own custom 14-pixel, proportionally spaced dot matrix font, and also being the supplier for the software to print perfect facsimiles of report cards which were then printed on plain dot matrix printers. (I didn't get fingered since I didn't deal directly with customers)

And before the ladies ask, I am already taken. Thanks for asking.
posted by RobotVoodooPower at 10:45 PM on April 23, 2011 [8 favorites]


From the viewpoint of ~30 years down the road, I learned to program because programming is one of the purest and most efficient ways to create wealth.

Not "money" wealth, but something that satisfies human needs and wants of utility.

Eventually we will have more of a virtual life, as computers get further and further ingrained in our daily existences. If Blizzard offered people a way to live in the WOW universe 24/7, how many millions of people would buy into that?
posted by mokuba at 10:47 PM on April 23, 2011 [4 favorites]


6502 Assembly on the bare hardware. I still have nightmares.
posted by pjern at 10:53 PM on April 23, 2011 [1 favorite]


... As a hobby, in the early 1970s, RSX-11 (A, C and later B) and early "C" on a PDP-11 I bought for super-cheap when we took it off a manufacturing floor in a plant I was working in, in favor of a new IBM System/34. RPGII and OCL on System 36, later moved to RPGIII on System 38 and then, later to RPGIV/SQL/COBOL/FORTRAN and CL on AS/400 or now, iSeries/IBM i/Power Systems. Some C++ (hate it), some Java (in college), some Perl (who hasn't, when he had to?), some Unix shell (mostly bash), enough HTML/CSS to be laughably dangerous, and some, sniff, PowerShell.

Go ahead, laugh all you want at the PowerShell entry. A shell is a shell. Sometimes, it's The Only Way...
posted by paulsc at 11:14 PM on April 23, 2011


I used to copy BASIC out of books for my C64. Stuff that took up many, many pages and almost never, ever compiled, except when one time it did, and I got !! scrolling down between a bunch of >'s and <'s as a skiier. So I started to teach myself to program from scratch. GOTO? Got it. GOSUB? Got it. PEEKing and POKEing to make fart noises? Got it. Adding up the rows in a grid to make sprites? Errrr....got it. Turning all of that into something that did something useful? Not in a million years.
posted by obiwanwasabi at 11:16 PM on April 23, 2011 [3 favorites]


BASIC BASIC on a teletype terminal in the college computer lab in 1976. They also had punchcard machines. Get off my green-striped printout.
posted by oneswellfoop at 11:34 PM on April 23, 2011 [1 favorite]


TRS-80 Model I thru III then on to the Apple ][ and IBM AT.
posted by jadepearl at 11:37 PM on April 23, 2011


I haven't worked in a programming shop for over 10 years when it was about, er, 100% male.

I'm kind of in awe of how many of these are by women.
posted by victors at 11:52 PM on April 23, 2011 [2 favorites]


My 11-year-old just asked me today if "kids can learn how to code."

Check out Scratch and Alice.
posted by honest knave at 12:07 AM on April 24, 2011 [2 favorites]


That you're doing all that in Qbasic leads me to wonder who's getting pranked, exactly.

Calling people and hanging up on them was pretty easy in QBasic. I seem to recall that doing much more than that was a pain in the ass, but I had this kind of extremely low-rent two-player modem-to-modem MUD built at one point. (Text! But with a point and click interface!)

(Ladies, if it helps to quell your disappointment over RobotVoodooPower any, I am both available and considerably younger.)
posted by brennen at 12:16 AM on April 24, 2011 [1 favorite]


victors, as a female programmer, I've been solicited several times in the last week or so to please please please contribute to this site. It's meant to be somewhat inspirational, and I think the intention was to reflect diverse backgrounds, diverse experiences, and diverse starting points on it.

Trust me when I say that the ratio on the site does not reflect the ratio in industry (about femaleness in particular, but probably also professional coders' backgrounds in general). I like the idea, don't get me wrong, but what you're seeing is not representative, and I don't think it's meant to be really. I think it's meant to reassure people who don't feel they belong in the field that, although it feels that way sometimes, they're not alone.
posted by troublesome at 1:11 AM on April 24, 2011 [6 favorites]


This is dumb. What if you don't have (or want) a website associated with your real name?
posted by Afroblanco at 1:58 AM on April 24, 2011


(and lest you think I'm a party pooper ...)

My first programs were Mad Libs generators for the Apple II. But my first REAL programming experience was learning C so that I could modify my WWIV BBS and impress my friends.
posted by Afroblanco at 2:06 AM on April 24, 2011 [2 favorites]


The first computer in our house was a Texas Instruments, TI-99. My kid conned his grandmother into paying for half the cost , he mowed lawns to earn money for the other half. I figured I would make it into a learning experience so we bought the computer and didn't buy any software. "What are you going to do with it now?"

He learned to code.
posted by tomswift at 2:20 AM on April 24, 2011 [1 favorite]


... in 1982, when I was 7.
posted by i_have_a_computer at 2:39 AM on April 24, 2011


I don't know why I learned to program. I was destined/driven to?
posted by DU at 2:51 AM on April 24, 2011 [1 favorite]


There is a programmer with the real name "root".
posted by telstar at 3:08 AM on April 24, 2011


... in basic on a TI-99 before I clearly remember, my dad claims age 7, so that I could write myself some video games. I then switched to C and x86 assembler under DOS. I later got bored and switched to mathematics for university after I found nobody terribly interested in C++, which lacked popularity mid 90s.


I still have a soft spot for the simple & direct translation of object oriented design tools into machine code offered by C++. I'd now however acknowledge the "C++ sucks" criticism leveled by people like Linus Torvalds and many language designers. Except, I'd argue the hands on control offered by using smart pointers instead of garbage collection makes sense for C++.

One should take a moment to reflect on how great an achievement the C language itself represents, especially its pointers. We needed a mid-level language with explicit pointers like C to escape the old world where operating systems, compilers, and interpreters were necessarily written in assembler. Oh, the const keyword is pure genius too.

I view C++ as the slow plodding research language following C's brilliant insights, continually exploring the boundary between C's pointers and less error prone higher level semantics, as well as template meta-programming.

I've always wished for an orthogonal research language taking C's insights the opposite direction into lower level tricks, like structured self modifying code. We could for example have delayed code blocks like {[ ... ]} that means "build the code to build this code at runtime". In fact, the LLVM brings some such optimizations to C/C++, but it's inspiration is Java's virtual machine, not the C/C++ perspective that "the programmer knows best".


I now prefer functional languages like Haskell, OCaml, and Erlang, but Haskell's lazy evaluation make's it's runtime performance unpredictable without herculean profiling efforts, and Erlang is downright slow. All programmers should learn Erlang for it's concurrency and Haskell & OCaml for their deconstruction of the object oriented paradigm, which imho they show as deeply flawed.

I think the world needs a compiled language sporting Haskell's type system and Erlang's affinity for concurrency that provides reliably fast execution speed. There are several approaches here, the most likely being an LLVM based Haskell that learns the optimal choices between eagerness and laziness, but one might instead try building Haskell's type system and Erlang's concurrency into an eager language like ML.

We may eventually even extend an LLVM like tool into the realm of garbage collection, providing all the advantages of C++'s smart pointers under a more friendly garbage collected semantics. That'll be a good day to be functional. Yet, it'll mostly spell the end of C++ sadly, well except for template meta-programming.
posted by jeffburdges at 3:16 AM on April 24, 2011 [4 favorites]


only to be laid off over and over again

If that has been your experience, maybe you should a) learn how to choose your employers more carefully or b) stop kidding yourself about your career choice or c) maybe I've just had it too good and those times are coming to an end and I forgot to plan for the future. Either way, I wouldn't do anything else; the money being a pretty good reason on its own but not the main reason.
posted by jsavimbi at 3:18 AM on April 24, 2011


While I wrote a "graphic adventure" with 4 screens (drawing each LOGO-style, gosh floodfills yes!) in QBASIC when I was 11 on a '86 machine with a switch between 8Mhz and 16Mhz in the BIOS (required at the time e.g. by some games which were unplayable at 16Mhz) I learned a lot more at age 14 when this kid's older brother showed him and his friends how to use a C+ graphics library and make sprites; I ended up porting Super Mario World (SNES) to my 386, including an actual graphical level editor but by then I was too tired to make more than the first three levels (I could only take so much of bringing my eye right up to a TV screen showing a paused Super Mario World on the imported Super Famicom and copying each cel of each sprite pixel by pixel, though getting those bushes with the red apples down was really satisfying)... at least, as a gag I put a hidden weed leaf in the 2nd (forest) level which started colour cycling and make mario blow coloured bubbles. There you go, one sentence.
posted by yoHighness at 3:26 AM on April 24, 2011 [3 favorites]


I learned to program in high school with a pencil and paper in SIMPLE - Schultz's Imaginary Machine Programming Language for Everyone. Thank you, Mr. Schultz.
posted by zanni at 3:28 AM on April 24, 2011


I learned FORTRAN and COBOL in college in the mid-seventies, to buttress a degree in applied math. My first job included writing a payroll app for our small company in APL. I now do Perl and R to analyze aviation economics.
posted by JimDe at 3:54 AM on April 24, 2011


I thought about this a bit more. I think the reason I learned to program was that I thought computers were awesome for as long as I can remember - and I thought that programming them would awesome as well. At 12 or so I learned to program (in C and C++) and it turned out I was totally right!
posted by delmoi at 3:58 AM on April 24, 2011


> 6502 Assembly on the bare hardware. I still have nightmares.

I learned to program on that processor, in assembly, for a traffic light intersection simulation using a 6502 and 6522 VIA, mounted on Veroboard with a liberal sprinkling of LEDs, solder, burnt fingers and spit.

Nightmares shared. Mind you, it was my first exposure to big-endian and little-endian ordering. Which made my adolescent self snicker.
posted by KirkpatrickMac at 4:11 AM on April 24, 2011


I learned to program (in 1975, in FORTRAN) because I was fascinated from a very early age with logic, machines, and math. I learned assembly language in grad school (neurobiology major, dropped out) and began a career as a programmer in 1982. For years I loved it, then it was a job, and eventually it was drudgery, so I retired in 2006 at age 49. I never even look at code anymore. Now I spend my time walking in the forest near my home.
posted by wadefranklin at 4:29 AM on April 24, 2011 [4 favorites]


"We are prisoners of our natural brains. As children we grow, and new programs are layered down, set into the jelly of our brains. When we are young we write many of these programs in order to adapt to a bizarre and often dangerous environment. And then we grow some more. We mature. We find our places in our cities, in our societies, in ourselves. We form hypotheses as to the nature of things. These hypotheses shape us in turn, and yet more programs are written until we attain a certain level of competence and mastery, even of comfort, with our universe. Because our programs have allowed us this mastery, however limited, we become comfortable in ourselves, as well. And then there is no need for new programs, no need to erase or edit the old. We even forget that we were once able to program ourselves. Our brains grow opaque to new thoughts, as rigid as glass, and our programs are frozen for life, hardwired, so to speak, within our hardened brains."

"We should all know the code of our programs, otherwise we can never be free."

- D.Z.
posted by titus-g at 4:56 AM on April 24, 2011 [4 favorites]


"You, all right?! I learned it by watching you!!"
posted by overeducated_alligator at 5:00 AM on April 24, 2011 [18 favorites]


I learned to program because it was a required course.
(which is not to say that I didn't love it, but that's the only reason)
posted by MtDewd at 5:04 AM on April 24, 2011


I learned to program in Fortran when computers were room sized and one had to punch cards. I used it once, to analyze some scientific data and never programmed since.
posted by francesca too at 5:13 AM on April 24, 2011


Python.

Because xkcd told me to.
posted by LogicalDash at 5:26 AM on April 24, 2011


I learned to program using Apple BASIC on my Apple IIc when I was about seven. But when I got to uni, my tutor told me that that simple act would forever compromise my ability to learn correct programming. My brain would be forever broken, unable to grasp basic procedural syntax. Well I tell you what

10 PRINT "WHO'S LAUGHING NOW"
20 GOTO 10
30 PRINT "ME THAT'S RIGHT"
posted by Sutekh at 5:39 AM on April 24, 2011 [23 favorites]


One summer during high school, I got my only programming training when I took a class in punch card Fortran that ran on an IBM 370 . I wrote a biorhythm program that plotted curves on greenbar paper.

Soon afterward, I made the mistake of selling someone on the idea that I could write an inventory program that could track quantities of component parts, sub-assemblies and finished units, allocations of existing parts to orders, and order tracking of projected/ vs. actual completion dates. Using an Apple ][ with 2 floppy drives and 48k of memory. In Applesoft Basic.

Because I didn't know how ridiculous this was, I just went ahead and did it.
posted by Enron Hubbard at 5:43 AM on April 24, 2011 [4 favorites]


"10 PRINT "WHO'S LAUGHING NOW"
20 GOTO 10
30 PRINT "ME THAT'S RIGHT""


I don't think that's gonna work...
posted by tomswift at 5:57 AM on April 24, 2011


thatsthejoke.jpg
posted by LogicalDash at 6:02 AM on April 24, 2011 [7 favorites]


I took a BASIC class my junior year of high school - using Apple IIs when they were available in the school lab. When they were busy, I typed my damn code into a teletype machine and sat there waiting for the military base mainframe to process the code and spit out my results.
posted by COD at 6:02 AM on April 24, 2011


I wanted to play games and there were none. There was a book on Apple basic though.
posted by humanfont at 6:15 AM on April 24, 2011 [1 favorite]


TRS-80 Model I in 1978. Started with BASIC but switched pretty quickly to Z-80 assembly language when I saw the speed it offered on that 2 Mhz processor.
posted by DarkForest at 6:22 AM on April 24, 2011


LarryC: "My 11-year-old just asked me today if "kids can learn how to code."

I guess I had better find the boy some resources.
"

Try Game Maker if he likes playing games. You can just do the drag-and-drop at first, and get into the code when you've got a handle on the environment.

I teach college kids usually, but every once in a while I do Game Maker workshops for high school and junior high kids. I had an 8th grader come up to me last week and tell me he wanted to be a programmer after an hour in the lab goofing around with Game Maker. :) When I see a little kid scowl at the computer because s/he's thisclose to figuring something out - man it just makes me so happy!
posted by SuperSquirrel at 6:27 AM on April 24, 2011


Scratch is another good kid programming thing. Also, my 12 year old learned pygame when he was...10? Maybe 11. He's on to Scheme now...
posted by DU at 6:30 AM on April 24, 2011


I never really learned to program at all, but I did try learning Basic in high school on a teletype/acoustic coupler connection to a time share mainframe in City Hall. Saved programs on paper tape, etc. I got as far as a Fibonnaci sequence/phi generator and that was it. But it was super fun. At that time no one I knew thought that computers were going anywhere, apart from the two friends I used the terminal with (who went on to learn FORTRAN and COBOL). Most people thought it was kind of engineer-y or something to do with shop class.
posted by carter at 6:48 AM on April 24, 2011


... in order to emulate Bryce from Max Headroom.
posted by rlk at 6:48 AM on April 24, 2011 [1 favorite]


I was formally introduced to the idea of programming using BASIC on a TRS-80 and later on a TI99-4a (my father had a nack for finding and buying technology that would soon be abandoned, he chose the TI over an Apple... The TRS-80 was at my school). Then later on an IBM-PCjr with a pirated copy of Pascal.

But I can't say that's how I learned to program. Not really.

I learned to program much earlier, though at the time I didn't know it, playing with LOGO on the TRS-80's at school. Variables, passing variables, looping, functions, recursion even, all the basics of programming and I didn't even know I was programming at the time, I thought I was just making pretty pictures and making my life easier by breaking it into parts I could call when I needed them.
posted by sotonohito at 7:33 AM on April 24, 2011 [1 favorite]


I learned to program...

CODE
posted by WalterMitty at 7:34 AM on April 24, 2011 [1 favorite]


I am pretty sure that the first language I wrote programs in was APL. Yes. I got better, however.

I agree also with other posters - if you get to a certain level, programming is the best way to build "wealth" - not meaning money but meaning a rich life - IF you can get past programming's addictive side.
posted by lupus_yonderboy at 7:48 AM on April 24, 2011


I was 5 when my Dad brought home our first computer, the TRS-80 Color Computer. There were two things you could do with it: type in programs and play game cartridges. By the time I had typed in all the programs in the book I could write my own. So by high school I was acing the courses on BASIC and also found it an easy transition to TurboPASCAL.

Then came first year university, where I was convinced to take the advanced first year computer science class. (I wasn't planning a career in it anyway at this point, I just needed the credits for my Arts major.) This was assembly language and it kicked my butt. Couldn't grasp it at all. So maybe there's something to Sutekh's story.
posted by evilcolonel at 7:58 AM on April 24, 2011 [1 favorite]


Applesoft (FP) basic on a II+, then over to the Beagle Brother's Beagle Compiler for a 15x increase in speed. Never got rid of the flicker, but I used their shape tables to create an awesome flying helicopter game where you could blow stuff up if it got in your way. My friend Brad built me a joystick out of two rotary pots and six miles of bell wire. Sure beat the snot out of blowing through piles of quarters at the arcade.

The Beagle Brothers' two liners were amazing though- they were able to do some incredible stuff on those old machines, and got it into a format where geeky kids were combing the back pages of SofTalk looking for these little mysteries to type in.
posted by jenkinsEar at 8:21 AM on April 24, 2011 [1 favorite]


In 1982 (before some of y'all were born!) in BASIC, on a dumb terminal connected to a DEC that took up the better part of a room, because it seemed like the thing to learn to do.
posted by fourcheesemac at 8:29 AM on April 24, 2011


drjimmy11: "Oh and that a ping-pong table and complimentary soft-drinks is not a "benefit" for someone over the age of 11."

I don't drink much soda(pop) personally but go say what you said in my office and see what kind of reaction you get. There would be rioting if you took away the free Diet Dr. Pepper.
posted by octothorpe at 8:41 AM on April 24, 2011


I love programming. I love taking people's everyday, monotonous, awful, piece-of-shit problems and figuring out ways to either automate or completely get rid of them. My job is to make other people the best they can be at their job. It's awesome. Knowing how to code is like being an architect, a contractor, a builder and an interior designer all in one.
posted by Civil_Disobedient at 8:46 AM on April 24, 2011 [5 favorites]


Hm...I can't even remember exactly why I got into programming. I think a large part of it was because I liked creating something cool with nothing more than commands on a screen and seeing my ideas instantly (well, almost instantly) come to life. That, and I was a hardcore gamer as a kid. Started out writing primitive BASIC games when I was in high school, but didn't do "real" programming until my first job after college. Had to teach myself on-the-job how to write real-time assembly for 8-bit micro controllers - total pain but I muddled through it.

I do remember why I got out of programming - spending endless hours sealed in a cubicle, staring at the same line of code over and over again, not enough human contact - the excitement just wore off after a while. Switched careers and haven't seen a line of code in almost three years. Couldn't be happier (although I envy those of you with a passion for programming...it really is amazing what you can do with it).
posted by photo guy at 8:50 AM on April 24, 2011


In Scheme. Because the music theory class I wanted in first year at university was full.

If only I knew then how that particular fluke would shape my life...
posted by cgg at 8:57 AM on April 24, 2011


Cuz I wanted to make games and I get half way through them then realize I suck at programming ;_;
posted by symbioid at 9:03 AM on April 24, 2011


All the programmers in here should consider participating in Ludum Dare 20, a 48-hour solo video game programming competition that starts next weekend. It's a ton of fun!
posted by a snickering nuthatch at 9:03 AM on April 24, 2011 [1 favorite]


... after a failed attempt in college using Pascal, I really learned to program using Lotus 123 macros to reduce my monthly job to 3 days, then using Focus to completely eliminate my job.
posted by CathyG at 9:04 AM on April 24, 2011


... with Gortex and the Microchips.
posted by antinomia at 9:12 AM on April 24, 2011


As for where I learned to program: first when I was five, copying code from the various computer magazines my dad used to read character-for-character in my Timex Sinclair 1000. But I would actually have to thank LOGO for teaching me at an early age the concepts of variables, loops and iterations, control structures, and functions—the real guts of programming.

LOGO is probably the greatest introduction to computer programming you could give to a child.
posted by Civil_Disobedient at 9:16 AM on April 24, 2011 [1 favorite]


Are there really scores of programmers out their losing their jobs to younger, cheaper "trained monkeys"? This hasn't been my experience. Sure, I've seen cases where in my own career a company has chosen the younger, less expensive, experienced person over myself (someone with a bunch of years of experience under my belt) but I'm going to chalk that up to poor planning and not valuing experience over cost. And in some of those cases, those business are out of business. For the most part though, a good company does in fact value experience and expertise.

It's no different than any field, if a company is loath to hire more experienced folks, or even actively getting rid of experienced employees for lower priced, fresh out of school workers because of cost, they're going to run into problems, no matter the industry or type of employee. I can't imagine it's different in the programming field.
posted by [insert clever name here] at 9:37 AM on April 24, 2011


There are occasionally university professors who mistake their own inability to teach in parallel to students with different levels of preparation for the students being somehow detrimentally prepared.

For example, there are many students who receive calculous credit from AP courses but then do poorly if they retake the courses for an easy A in university. Yet, the same applies to higher level courses that give the impression they're simply rehashing lower level material. "Easy F classes"

We should not try to wedge everyone's learning experiences into some cookie cutter curriculum, but instead organize the material so that all students learn something. For example, there are now many computer science departments basing their introductory course using languages like Haskell that teenagers simply haven't encountered before.
posted by jeffburdges at 9:59 AM on April 24, 2011


I could have sworn I saw pb's name after one of the quotes about how he learned to program on a machine he didn't own and had to make it work on another one--but I may be wrong?

I tried to find it again, but didn't note the permalink. So if anyone finds that one,please do link it!
posted by misha at 11:11 AM on April 24, 2011


Typing in programs from the back of the Vic20 manual in the early 80's, when I was around 7.
Didn't learn anything else until I was 21 and started learning HTML.

My other half (who is a dozen years older than I) was quite the Apple ][ programming geek around the same time. In addition to BASIC, he could write programs from scratch in machine language.
posted by luckynerd at 11:16 AM on April 24, 2011


there are now many computer science departments basing their introductory course using languages like Haskell that teenagers simply haven't encountered before.

For a few years, I helped run a two-week summer camp sponsored by the computer science department at my university. The idea was to bring in smart/motivated high school students in just before they started their senior year and run them through a class that would give them university credit in two weeks, getting them exposed to and interested in computer science (and of course, our university).

Initially the course was essentially the equivalent of the AP CS A test, which, at the time, meant structured programming in Pascal. This presented a little bit of a problem, though, because while about half of the students who came were just generally smart kids who wanted to learn something new, the other half already had been taught the material (and, possibly, passed the AP CS exam). So, widely varying backgrounds. This made things a little tricky, particularly in a situation where the idea was to both challenge the students and provide them with an attractive experience.

The solution eventually arrived at was to teach Prolog. It worked pretty brilliantly at making the playing field more level and exposing everybody to new concepts -- including much of the staff (and myself). The first time most of us helped TA this stuff we were maybe only one step ahead of the students... weird control flow, immutable variables, and rank fear of The Cut. I decided not to major in Computer Science, but I was still one of the few who came back to do this for a few years and eventually got pretty good at the material. Very grateful for that... I had *almost* solidified programming in my mind as what people do with the common OO/structured/imperative languages I knew at the time (even after my brief exposure to LOGO, which I brushed off as a toy). Prolog really opened my mind more than a little bit. I still use some of the concepts I learned and sometimes wish I could use it as a relational query language instead of SQL.

I don't remember exactly when I learned to program. There were encounters with the Apple ][ and Commodore PET that were floating around my childhood... I'd stay after school to play with a few models the school had, or go to homes of other people who had them, playing simple games, occasionally typing in simple programs. The neighborhood parents collectively took a bunch of us kids to a community LOGO class. I sat through at least one adult night courses, trying to absorb whatever I could, even though most of it was over my head. About the time I was 10/11, though, my parents bought us a TI-99/4A. At some point, I just opened the BASIC manual and started typing in examples. Pretty soon I was coming up with my own ideas and trying to get them to work. That's the easy starting place in the narrative, and probably where it began in earnest, but the truth is I'd probably been slowly exposed to a number of the relevant concepts for years before.
posted by weston at 11:34 AM on April 24, 2011 [2 favorites]


For the most part though, a good company does in fact value experience and expertise.

Successful game companies like 'em young and cheap.
posted by Blazecock Pileon at 11:54 AM on April 24, 2011 [2 favorites]


Are there really scores of programmers out their losing their jobs to younger, cheaper "trained monkeys"?

Yes, programmers working on LOB apps at corporations are laid off all the time as their projects reach end of life.Positions on new projects are then filled by either contractors working in house or offshore developers in eastern Europe or India. This is just the way it is done now, gone are the days where a company hires a full time programmer to write an accounting system. They bring on 20 offshore developers, maybe a Microsoft Gold Partner to provide some soft of technical guidance. Your in house architect and PMs then set them on a tight 2 week release schedule, provide the bare minimum of specs and threaten them every time they screw up, which is all the time.

The good news is, if you are young, know Ruby, Haskell or Erlang you can write your own ticket.
posted by Ad hominem at 11:55 AM on April 24, 2011 [2 favorites]


Oh yeah, APL!

Q: How do you sort a word list stored in array X according to word length in APL?
A: X[⍋X+.≠' ';]

I sh*t you not.

Q: Ok, write me a program to find all the primes between 1 and R. Do it!
A: (~R∊R∘.×R)/R←1↓⍳R should do the trick.

Q: Explain it!
A: Executed from right to left, the program does the following:
⍳R creates a vector containing integers from 1 to R (if R = 6 at the beginning of the program, ⍳R is 1 2 3 4 5 6)
Drop first element of this vector (↓ function), i.e. 1. So 1↓⍳R is 2 3 4 5 6
Set R to the new vector (←, assignment primitive), i.e. 2 3 4 5 6
Generate outer product of R multiplied by R, i.e. a matrix which is the multiplication table of R by R (°.× function), i.e.
4 6 8 10 12
6 9 12 15 18
8 12 16 20 24
10 15 20 25 30
12 18 24 30 36
Build a vector the same length as R with 1 in each place where the corresponding number in R is in the outer product matrix (∈, set inclusion function), i.e. 0 0 1 0 1
Logically negate the values in the vector (change zeros to ones and ones to zeros) (∼, negation function), i.e. 1 1 0 1 0
Select the items in R for which the corresponding element is 1 (/ function), i.e. 2 3 5

Example courtesy of wiki.
posted by storybored at 12:03 PM on April 24, 2011 [3 favorites]


I probably got into programming because, as a kid, I was fascinated by HAL900 and the female computer on "Star Trek."

My first experience involved punch cards and mainframes. Which equals I'm old.

I stayed with it, because I love talking to space aliens. I love communicating, and programming is like communicating with an alien. You are trying to make your needs as clear as possible to a non-human intelligence (and also to the other humans who will read the code). You have to learn to think on the alien's terms, within its context. You have to become an anthropologist on Mars.

Also, it's a sort of utopian form of communication. It's hard, but I know for sure that if I'm clear enough, the alien is guaranteed to understand me. That is less apt to happen in human-to-human communication.

I write books, too, and I'm always saddened by the fact that no matter how clearly I write, some readers won't "get it." Usually, when they don't, it's my fault. There's some better way I could have expressed myself, but I didn't.

But there's always the possibility that I coud express an idea as clearly as is humanly possible, and a reader STILL might not get it. Maybe he's not smart enough, doesn't have the the right contextual information or is suffering from some sort of prejudice that hiders his ability to follow my argument.

But though I may not always be able to make myself clear to a computer, I know -- for sure -- that if I DO, the computer will always understand what I'm saying. So I don't need to worry about him. I can completely focus on clarifying my idea.
posted by grumblebee at 12:56 PM on April 24, 2011 [3 favorites]


...when my then-supervisor left me (23-yo-female) in the car while he and the rest of our co-workers went to a strip club; I told our boss and suddenly I wasn't assigned to go out in the field with the guys anymore; left alone at a desk all day with a computer there was not much else to do.
posted by bendy at 1:39 PM on April 24, 2011 [2 favorites]


I guess I had better find the boy some resources.

Python. Python! PPPYYYTTTHHHOOONNN. Just call me the Python core.

Python was what made programming fun for me again. It is the BASIC of the 21st century, except not nearly as cruddy as BASIC. It even has a real-time interpreter, which in my experience is the single most useful thing you can have when you're learning to code. It doesn't hurt at all that it has been highly optimized, has many many add-on modules, and even has two real-time machine code compilers, Psyco and PyPy.

And best of all, Python is a real work language. Most kids want to make games, but when it comes time to get a job in the workplace knowing Python will serve them well. If Python doesn't cut it it's not hard to make a lateral move to Ruby.

The problem with Game Maker is that its code is "sort of like C," but it's not good C. If they really must have a game development package thing, it's not well known but RPG Maker uses Ruby for scripting, and all most of its scripts are user-editable. Possibly a good fall-back.

But when I got to uni, my tutor told me that that simple act would forever compromise my ability to learn correct programming. My brain would be forever broken, unable to grasp basic procedural syntax.

There are some very smart people who have said this, but I am going to contradict all of them my experience is is absolutely not true. It was difficult for me to pick up object oriented stuff, but that's because nearly everyone I ever heard it from did a poor job of explaining it. When you already have a language under your belt and are looking to get another, your needs are somewhat different from those of the student coming to programming for the first time. The more different that second language is from your first, the more you will have to unlearn; I think this makes it look like BASIC users are somewhat spoiled for learning other languages because so many of them are like C.

I was probably helped a bit because after picking up Commodore BASIC I learned some 6502/10 machine code. (Yes, machine code. NOT assembly; I programmed routines using the C64's Programmer's Reference Guide and POKE statements. Now THAT'S a learning experience!) Importantly, that taught me about pointers before I encountered them in C.

BTW, my experience learning BASIC was laughably absurd. I got the computer for Christmas, but Dad gave me the user manual five months earlier, in July! Imagine being a kid who knew he was getting a computer for Christmas in five months, but you have the user's manual now. Imagine the burning intensity with which I stared at each and every page! The operating instructions. The program load command. The list of commands. The programming examples. The copyright page.

There was a simple ball-bouncing program in those pages. I read what the program was supposed to do, but I was having trouble figuring out how it would do it. There were these variables, dx and dy, that determined the direction the ball was travelling in. When the ball hit an edge of the screen, if statements caught it and executed this enigmatic bit of code: dx=-dx. What does it mean?

Wait. When something bounces, it reverses direction. That must reverse its travel direction on the x axis! And the same is done with the top and bottom borders with y!

But why "dx" and "dy"? Is there a list of variable names I'm going to have to memorize? How many? Unless....

Unless the names don't matter at all. Unless the motion of the ball is constructed entirely out of program logic. No one has defined those variable names for me; I invent them out of thin air. What matters is not their names but what I do with them. That was my "monolith moment" for programming, and I think it's what hooked me on it. I was like ten at the time, but I really think it was the first thing I figured out on my own, unaided.

Successful game companies like 'em young and cheap.

This is important to say, and I think should be told to every bright young programmer with visions of developing games in his eyes. It is super easy to get burnt out on game development in the trenches of big-name game development. Everyone wants to make games, so there is tremendous competition for jobs, which drives the price of labor way, way down. And when you get a job, you probably won't get to do the fun stuff for a while. In fact, you may never get to.
posted by JHarris at 1:42 PM on April 24, 2011 [5 favorites]


But when I got to uni, my tutor told me that that simple act would forever compromise my ability to learn correct programming. My brain would be forever broken, unable to grasp basic procedural syntax.

I'm appalled (but not surprised) that an educator said that. It's bullshit. There's no evidence for it at all. It IS true that there are programming paradigms so different from each other that you can't port a lot of knowledge from the one you know to the one you don't. For instance, you won't get far with Scheme if you try to learn it with a Java mindset. That's where people often go wrong. They think, "how can I understand Scheme as a translation of Java?"

But if you go into it like a novice -- and you stick with it -- you'll almost definitely get it in the end. Learn it as if it's something NEW, not just another programming language.

I don't know if this is true, but someone once told me a theory of why the metric system failed to stick in America. He said that the standard way to teach it is by constantly evoking the English system and translating it into metric, e.g. "a meter is x many inches." It's much more likely to stick if you just give up the English system (while you're trying to learn metric) and learn metric as something entirely new.
posted by grumblebee at 2:57 PM on April 24, 2011 [1 favorite]


This is just the way it is done now, gone are the days where a company hires a full time programmer to write an accounting system.

This is simply not true. Companies (that are smart) know there's no end to the benefits a full-time development staff can bring, not just to bottom-line revenue growth but also streamlining existing costs. Off-the-shelf or outsourced software only works when your business doesn't depend on it. The only companies that outsource their development are the companies that can afford to wait months and months and months for an update.
posted by Civil_Disobedient at 4:51 PM on April 24, 2011


This is simply not true

So if you are starting a new project you hire new full-time developers? I agree with you wholeheartedly they full time developers thay learn the business are an incredible asset, but I haven't seen any new full time hires where I am in a long time. I never said I was dealing with smart companies though.
posted by Ad hominem at 5:15 PM on April 24, 2011


...and all I got was this lousy Metafilter comment.
posted by blue_beetle at 5:15 PM on April 24, 2011


thay

C'mon iPad thay isn't even a word!
posted by Ad hominem at 5:18 PM on April 24, 2011


I learned to program because for some reason all of the manuals for our Apple IIGS shipped to us before some needed component of the computer did, and I was so excited to have a computer that I read through every single one. The Applesoft BASIC book was at the bottom of the pile and was the last one I got to, and none of it made sense when I was just there reading it with no ability to try stuff - even my 9-year-old nerd enthusiasm didn't get me through reading a book with mostly code in it. But when the computer arrived there wasn't much more than the sFinder and the Ernest the Explorer how to use your computer disk. So I was very soon back into the BASIC book to try and get some use out of this expensive box. What a joy it was to make a ginormous low-res mode pixel bounce around the screen.
posted by Space Coyote at 6:06 PM on April 24, 2011


I was in 7th grade when the taught us how to program in my middle school in India -- in C of all things! I LOVED it. However, the rest of my class absolutely hated C and the next year they downgraded us all to BASIC. I felt despondent, like I'd had this fun thing in front of me that was snatched away suddenly. I was not however motivated enough to do C coding on my own time on my home computer, but I drew on those skills when I needed to be able to program in MATLAB and C in college. I wish I'd spent more time working on those skills in my own time, because even though I program for my PhD, it is painfully obvious that I haven't quite put in the requisite 10000 hours of practice. Still, there is something about programming that just appeals to my brain.
posted by peacheater at 6:45 PM on April 24, 2011


We may eventually even extend an LLVM like tool into the realm of garbage collection, providing all the advantages of C++'s smart pointers under a more friendly garbage collected semantics.

jeffburdges: have you seen region-based memory management? If not, you might want to check it out. It is my hope that regions will overtake garbage collection as the automatic memory management tool of choice, and they'll be less reason to use languages without it.

LLVM does already have a garbage collection framework, though i'm not sure it would integrate well in the C++ world.
posted by nml at 6:54 PM on April 24, 2011 [1 favorite]


I had a Vic-20 when I was young, and I played around on that but mostly just did a bunch of POKEs to change screen colour. Came home one day to an Amiga 500, and that had some form of BASIC buried in it somewhere. I think this was pre-REXX scripting in Workbench. Even if it wasn't, I never touched that. I tried to fiddle with AMOS and Blitz Basic, but never even began to figure those out.

I can't even remember the name of the first language I really cracked and started to do a lot with. It was some odd HTML hybrid for building web scripts. It was ugly, but I knew what I wanted to build and I figured out enough of the language to do it. Then I moved on to Perl, then I briefly had a job scripting in PHP. Then I went and made films for a few years.

Now I'm trying to pick up "a real programming language", though that's a pretty meaningless moniker. My niece and nephew really like playing with the iOS devices, so I'm trying to learn Objective C to make something for them to play with. I also want to build myself a Markdown text editor for my iPad. I think I've marked out the areas I need to learn to do that. I'm sure I've missed a few things. I'm just hoping that in the meantime I don't find an app that does what I want, and then lose interest in learning more.

Never going to work in any form of programming again, but it is fun.
posted by dumbland at 7:41 PM on April 24, 2011


Oh and that a ping-pong table and complimentary soft-drinks is not a "benefit" for someone over the age of 11.

DISAGREE IN THE STRONGEST POSSIBLE TERMS
posted by danb at 7:47 PM on April 24, 2011 [1 favorite]


But when I got to uni, my tutor told me that that simple act would forever compromise my ability to learn correct programming. My brain would be forever broken, unable to grasp basic procedural syntax.

There are some very smart people who have said this, but I am going to contradict all of them my experience is is absolutely not true.


I think that there are a lot of insecure programmers, or would-be programmers, out there. I hope that not many are turned away from programming, or are made yet more insecure, by the all-too-common famous critical asshole programmer (e.g. Theo, DHH, Linus, or in the above case, Dijkstra).

I think that Dijkstra may have been dealing with particularly inflexible programmers or something, but learning Basic as my first languages (three different dialects in succession) hasn't crippled me to my knowledge. On the contrary- whenever I've been exposed to new kinds of abstractions not present in the languages I've studied up until that point, they feel like something I've been missing all this time- something to enthusiastically embrace rather than something alien (the exception being monads, which didn't click for me until I saw this article).
posted by a snickering nuthatch at 10:03 PM on April 24, 2011 [1 favorite]


I think that Dijkstra may have been dealing with particularly inflexible programmers or something

That's my impression too. Over the last 20 years, it seems to me it's generally accepted that the goto statement is harmful and flow should be handled by the now-familiar structured programming concepts, but I get the impression there was a time this was as controversial as, say, criticizing Object-Oriented programming might be now, and it's tempting to resort to over-strong rhetoric and even insults when fighting that kind of battle.

We're probably better for the fact that it was fought, but I think we're worse for the "cripples the mind" kind of rhetoric, which doesn't match my experience either.
posted by weston at 10:43 PM on April 24, 2011


> 6502 Assembly on the bare hardware. I still have nightmares.

Applesoft BASIC on the ][+, and then 6502 assembly on that same ][+.

Main thing learned: if you wrote spaghetti code with GOTO, you will not improve things by switching to JMP.
posted by jfuller at 6:39 AM on April 25, 2011 [1 favorite]


as controversial as, say, criticizing Object-Oriented programming might be now

I'll do it.

A programming language that *can* do object-oriented programming is fine.
A programming language that *must* do object-oriented programming is evil.

(The same really goes for any feature, such as functional programming. This is why I like loose and open languages like Scheme, Tcl and Python over junk like Java and straightjackets like Haskell.)
posted by DU at 7:17 AM on April 25, 2011 [1 favorite]


Wait, criticizing OOP is controversial? Are we back in 1990 or what?
posted by atbash at 8:24 AM on April 25, 2011


... in 3rd grade, in an after-school LOGO class, and then during hundreds of hours spent sitting in front of my Commodore 64 writing Mad-libs type programs and other experiments in BASIC. I wish something like Inform had been around back then, because I would have gotten into writing text adventures in a big way. My parents gave me an "adventure creator" program for Christmas one year, but it was clunky and frustrating. Somewhere I still have a spiral-bound notebook with about 10 pages of hand-written code for a text adventure consisting entirely of GOTOs, which I knew even then was an unmaintainable way to go about it.

My crowning achievement in BASIC was a program that let you use the joystick to navigate through a "3D" maze (rendered using the C64's handy graphic characters) in search of a randomly placed object. If you found the object and then found the exit, you won. I even wrote a maze editor that could save levels to disk.

I knew of assembly language and made some inroads there thanks to the Commodore 64 Programmer's Reference Guide, but I never truly grokked the system at that level, which I still regret; below the OS level, computers are still mostly a big black box to me.

Then I went off to high school, and although I still used computers all the time I never took any programming classes. They were all aimed at people who were afraid to even touch the power switch. I "majored" in art instead.

When I was in college the web was beginning to explode, and I thought it would be interesting to learn how that worked. I taught myself HTML, which led to a web design job. That led to Javascript, and eventually I got tired enough of maintaining static web sites that I picked up some PERL, then found PHP, and eventually coded myself out of web design and into (mostly) web programming. I've dabbled with other languages along the way; Anyone who tries to tell you that language X sucks and language Y is the One True Language is either too lazy to learn anything else and/or too unimaginative to see that some languages are better-suited than others in certain situations.
Knowing how to code is like being an architect, a contractor, a builder and an interior designer all in one.
That's exactly it, Civil_Disobedient!
posted by usonian at 8:41 AM on April 25, 2011


I learned some BASIC as a grade-schooler, and then got experience with it by typing in D&D programs from Dragon magazine into our IBM PC. Then I learned about WordStar style tags, which, after a good decade of nothing but producing schoolwork, lead me into hand-coding HTML in 1995.
posted by wenestvedt at 8:51 AM on April 25, 2011


In the later half of the 70s, I wrote a simple text-based adventure on the school's shiny new Apple ][+, but it wasn't until I got my first computer job in 1984 that I actually started delving deeply into programming. I really knew nothing but bluffed my way into a test of my programming skills. Given a terminal, a manual for the machine in question, access to an assembly language primer and a couple days of lead time I wrote a decent text-based gui for one of the departments within California's Department of Health.

I've since done many things but that job still lingers in my memory as a 'Good Thing' ™.
posted by schade at 10:31 AM on April 25, 2011


goto statement is harmful and flow should be handled by the now-familiar structured programming concepts,

Check out this exchange with Linus on lkml about using goto in the Linux kernel.
posted by Ad hominem at 12:18 PM on April 25, 2011


Like that back and forth Ad hominem

Bad code is the product of bad programmers; in my experience, a poor programmer will write a poor program, regardless of the availability of "goto."


I resemble that remark! (Seriously, everyone should be forced to maintain the first code they wrote out of college for 20 years or so. It will teach you humility)
posted by shothotbot at 1:03 PM on April 25, 2011


Check out this exchange with Linus on lkml about using goto in the Linux kernel.

Wow. Two people massively overstating their cases at each other.

Linus is correct that well-used gotos can be good decisions, and that the mantra about goto being evil has transcended the principles that gave birth to it and taken on a life of his own. He's out of line in suggesting Wirth and other CS people simply didn't know what they were talking about (and saying "any if-statement is a goto, as are all structured loops" is a really disingenuous argument... sure, under the hood it's all jumps, but you're not writing assembler code for a reason, right?).

His foil is correct to the extent he's arguing that, by and large, goto is no way to structure a program, but seems to have a hard time making a case beyond they're just, um, very very bad, mmmkay?
posted by weston at 1:48 PM on April 25, 2011 [1 favorite]


I learned to program to save my bacon.

My friend's live-in uncle had a C64 that he'd let us plonk around on when he wasn't doing whatever it is he did with it. We were infatuated with a random sentence generator program he got from who knows where but secretly felt it lacked a requisite degree of obscenity. We spent a week or so poking around to see how we might spice it up. The next Friday his uncle left town we broke the application profoundly. In a scramble to not get caught we spent the rest of the night learning enough to fix the thing.

The weekend after that we wrote our own and used our own floppy to save it.

And now I use that same enthusiasm to write installers and cm support code for corporate middleware in a service bureau operation...a situation also lacking sufficient obscenity.
posted by Fezboy! at 1:57 PM on April 25, 2011 [2 favorites]


This goto discussion reminds me of flowcharts. Flowcharts have been out of style for a long time, and for good reason: because of the control constructs in modern programming languages, flow of control is no longer anywhere near the most important aspect of a program to document. On the other hand, when flow of control does become an issue, a flowchart can be a useful aid to figuring out how to proceed (or what's going on with a bunch of spaghetti code). I almost never use them, but once in a great while they come in handy.
posted by Crabby Appleton at 2:00 PM on April 25, 2011


Bite your tongues, all you 6502 nay-sayers. Many (many!) years ago when I was writing FORTRAN and assembly on the IBM 360 as an undergrad, the 6502 -- as embodied in the BBC Micro -- was a breath of fresh air. I wrote an arbitrary-precision integer math library in assembly so I could write a program to find large primes.

Alas, the cassette-tape writer was double-plus-ungood. I still remember the sadness the day I finally turned the machine off and my cool prime-finding program went to the great bit-bucket in the sky. I felt like a parent losing a child.

Not that IBM 360 assembly was bad -- I quite liked it. But it was no match for the 6502, or -- the best architecture and assembler ever created -- the PDP-11.
posted by phliar at 5:41 PM on April 25, 2011


Am I the only one who will admit to beginning with HyperTalk/HyperCard?

I would love to be Bill Atkinson.
posted by spock at 9:21 PM on April 25, 2011 [2 favorites]


A passion for programming is similar to the way some people like to modify car engines or build model trains from raw materials. Not everyone has this itch, but at an early age I was hooked on programming. I think it is wonderful when I see people pick it up in order to solve problems because there are many subject domains that are better solved by asking the domain expert to learn some programming versus asking the programmer to learn the domain. In fact, most of the bad software we encounter is evidence of innefective domain learning by career programmers.

I say this as a career programmer who has learned gradually that being an expert at programming doesn't make me an expert about *your* job.
posted by dgran at 9:05 AM on April 26, 2011


Am I the only one who will admit to beginning with HyperTalk/HyperCard?

I don't think HyperCard was quite my first experience of programming (I discovered DOS batch files and various BASICs somewhere around the same time), but it was tremendously important to me, and it shaped my understanding and expectations of computing in ways that very few things have. I spent some of the most absorbed hours of my life hanging out in the school computer lab, playing hooky from one class or another, hacking away with a copy of the HyperCard book on my lap.

It is a dirty rotten shame that Apple themselves never really seemed capable of understanding the door that Atkinson had opened for them. It is not too hard to dream a universe where some open code and a dose of the network brought us a media-rich web years earlier and with a more democratic toolchain than the one we got.

(For bonus points, there would be a hell of a lot less PowerPoint in all our lives.)
posted by brennen at 9:24 PM on April 26, 2011


But of course I've had that Apple / HyperCard / the Web discussion before, and I'm usually the one saying "that was never going to happen", and of course I'm right for all kinds of reasons. It's still impossible for me to think of HyperCard without feeling that pang of what-could-have-been.
posted by brennen at 9:30 PM on April 26, 2011


« Older Packa Pappas Kappsäck   |   Microbe Wiki Newer »


This thread has been archived and is closed to new comments