wait! I forgot a really core part of how I learned to program:

HyperCard.

Our computer room at school was Macintosh, and when I was about 9, I started tinkering in HyperCard because it was there, and because other kids were too. People would share little tips and tricks - I remember having to ask an older boy how to unlock scripting (set the userlevel to 5).

It was the first tool I built end-to-end things of my own in, not just modifications of BASIC listings I loosely understood. I drew out things, scripted them, linked them. If I could draw it, I could make it do a thing.

Hyperscript wasn’t a very good language, but it was real code that did stuff, and it was probably the most empowering environment I’d use for a very long time. It was such a good tool; the Bill Atkinson love is real.

5 Likes

1955 was the year my grandfather got an MSEE. His thesis had something to do with COBOL. “Computer Science” wasn’t a field of study yet. My mom was born a few months later. She was the third of four daughters. Mom also had three brothers.

1973 was the year grandpa used a foreign key for the first time. He was running the accounting project for the F16. It might have been the first foreign key in production outside of academia.

1975 was the year I was born.

In 1980 at Christmas my grandpa asked me what I wanted to do when I grew up. I said I wanted to be a fireman. He replied that I should study computers. He spoke in a deep voice that resonated through his considerable jowls. He had gravitas as the patriarch of his oversize Catholic family. As a five year old I took him very seriously and started saving my allowance.

In 1984 I used by allowance to buy a TRS-80 Color Computer 2 and started to teach myself BASIC.

BASIC progressed to Pascal during high school, but by that time I was starting to question the wisdom of the whole ordeal. Given the values my mother had raised me with, I was more likely to side with war protesters than defense contractors. I saw how the engineering trades had a way of railroading you into certain types of careers. By this time I was as interested, if not more so, in music, and drawing, and theater, as I was in programming. During my senior year in high school I had become the school expert on desktop publishing and laid out the school’s literary magazine and weekly newspaper in Pagemaker. I was the paper’s photographer. I figured I’d study journalism in college.

In 1993 I started college and I was utterly lost. Most of the j-school students wanted to go into broadcasting, and I just couldn’t hang with the big hair. I signed up for programming classes, but that wasn’t working too well either. Why were we studying FORTRAN in class, when after class I was able to explore the newly minted WWW in the SGI lab. The glories of Mosaic. I switched my major to psychedelics and dropped out soon thereafter.

Between 1994 and 1997 I bounced around various technical jobs (tech support for ISPs mostly) and other odd jobs (temp work, construction jobs) and began wandering my way westward from Missouri to California by way of Colorado.

In 1998 I met the woman I would marry, in an IRC channel related to Lycaeum.org. I was traveling (homeless) and she invited me to visit her Boulder Creek house. We lived there for a couple years before buying another house in Boulder Creek that we lived in for another decade. We must have been just a few miles away from @shellfritsch at the time. Pity we never met, but then, San Lorenzo Valley folks had a way of keeping to themselves. In 1998 I was 23 with few prospects and less resume. My true love was 30 and working for Netscape and appeared to have the world as her oyster. She suggested I level up. Which ended up translating to a series of jobs writing HTML, for Cisco, Adobe, others. Also a rather strange job doing escalation tech support for an IBM tape backup system. A 1999 job for a company called Lutris in Santa Cruz gave me a chance to push the limits of the nascent world of CSS.

The 2001 tech crash was hard on a lot of folks, and we were no exception. We had just recently bought a house and also encountered a need for major structural engineering, so I said yes to every HTML contract I could find. After years of this I eventually grew tired of contracting and in 2005 I landed at Yahoo. What a stroke of luck, I was able to level up on JavaScript with the help of folks like Stephen Souders and Douglas Crockford. But something interesting happened in 2006: I had been making prototypes for use in the usability lab, and I started to observe the sessions. It hit me that I was so much more interested in understanding our users and their needs than I was in fixing one more god damn browser bug. I began my transition into UX.

I’ve been trying to improve the UX of software created by major corporations ever since. While we’re getting pretty good at fixing usability issues, we’re still pretty bad (as an industry) at having a coherent and repeatable process for UI engineering that doesn’t drive everyone involved a little bit crazy day after day. And increasingly I am concerned about the ethics of the industry. I feel I am a conscious contributor to surveillance capitalism. It doesn’t sit well with my conscience. But along the way the house turned into a farm in Watsonville. It feels good to be an active participant in the growth of organic food systems, and to be something of a pioneer in the ways and means of very small microfarming. But I’m eager to wrap up my financial ties to the software industry. Just a couple more years before my stock vests…

And maybe a few years after that I’ll be able to return to programming with an artist’s eye. It was what got me interested in the first place, and it was what sustained me through those early days of Pascal… But it turns out that my youthful intuition that computer science would send me into a certain narrow set of career choices was not entirely off base. I’m glad I kept my interests broad, and I’m looking forward to broadening them further still.

EDIT: I keep thinking about parts of the story I left out. Like the guys across the hall in the freshman dorm who were hacking Linux in 1993. It was tough going back then! I can thank those guys for my interest in IRC. I’d never have made it out to California and I’d never have met my wife without that influence. Other weird parallels: One of my favorite websites in the SGI lab that year was Justin Hall’s links.net. He was better than Yahoo at Yahoo’s game at the time. Through him I learned about the chat room spacebar. Turns out my future wife was a member way back when. We were already bumping into friends of friends a decade and a half before we finally met. The internet makes a big world a whole heck of a lot smaller.

21 Likes

my high school offered two semesters of “computer programming” which was PASCAL. I took it freshman year bc friends of mine did too.

I’m not A Programmer. yeah I’ve done plenty of MaxMSP and a little of this and that and the other but it’s not my deepest skillset.

Hi everyone. There seem to be a very motivated/clever/creative/thoughtful group of people here, so cool to read some background stories on programming.

My initial career was design where I inevitably started working on digital projects. I became interested in front end development, UX, server side development, and programming in general.

I know a lot of gurus talk about programming being a means to an end and the important thing is making stuff people will value. But I think I enjoy programming just for the sake of doing it sometimes.

I now work as a software developer and do a lot of coding in my free time too (mostly music related). I’m presently trying to get my mind around reactive programming for work and would like to learn lisp this year for fun.

To address the question ‘How did you learn to program’ directly. I did everything that people say you shouldn’t. I initially jumped around languages, resources, projects etc just trying lots of stuff out. But sticking at it, albeit inefficiently seemed to work out.

2 Likes

ZX81, learnt basic, then Z80 assembly (to hack bootloaders used to protect games, bad kid :wink: ) then, not long after, got a Jupiter ACE, so learnt FORTH…
then did some really big programs on the ZX Spectrum, so that was more programming than hacking.

apart from that… taught myself C/C++ at Uni (whilst they were teaching Pascal/Cobol for some stupid reason), then was a software engineer in the real world, where I really learnt to code properly.

as others have said, you never stop learning, I still improve my C/C++ skills even after 30 years, and learnt all sorts of weird languages for fun along the way.
(even created a few of my own for some unknown reason :wink: )

I found, the more languages you learn, the easier it is to learn more… and they start influencing the way you code in languages you know already.

5 Likes

thanks for the kind words : they make my day !
this is the post : Emergence and Generative Art

i thought : wouldn’t it be awesome if an op could use this ? … mhmh sure ! let’s do it ! :grinning:

1 Like

I don’t really share the same interest in UX but damn if that doesn’t hit hard as I sit here ready to go in and fix browser bugs…

This thread is making me want to learn how to code. Seriously. I’ve worked in a software company for almost 2 decades, but never on the coding side.

As I am certainly not someone with tons of free time, what would people recommend to get started? Which language is most relevant and reasonably manageable as an entry point (only did 2 years of Pascal in school). Any specific classes/books that would be recommended?

Looking forward to any input.

1 Like

my question would be: what do you want to do, ultimately? I found I never learned anything in the abstract; I needed something to apply it to, even if that’d be eventual, once I’d done some abstract stuff. (And: I’m usually pretty good at abstract learning. Just not with code). I also think it helps you get away from reproducing test cases and into thinking about how to model things and apply them.

9 Likes

Learned Basic as a teenager and also did some simple html pages. I didn’t become interested again until my mid-20’s, when I lived in the city near Carnegie Mellon University and University of Pittsburgh. Decided to go back to school to get my masters degree in Information Science, but before that took classes at Pitt, including an intermediate Java course. Java is the language I feel most comfortable with and I mainly work on web services now.

If you’re starting out, I would recommend learning about some of the concepts behind unix based systems before even delving into anything else. Then, learning about C and Object Oriented programming would be another good step. I find that, at least for me, understanding some history puts things into perspective and helps me to retain info.

If you want to try some coding exercises:

http://codingbat.com

1 Like

This is precisely why embedded programming is so much more interesting and non-overlapping to other forms of coding. It’s right at the interface between the physical and the ephemeral.

4 Likes

I don’t remember when I became fascinated with computers; it probably had to do with my very early fascination with space travel and NASA - I remember watching a Mercury launch at my grandparents’ house, and all of the Gemini launches in grade school.

I only know that by 3rd or 4th grade (1966) I managed to persuade my parents to buy me a Digi-Comp I - a plastic digital “computer” with 3 bits of memory - and I was utterly unable to convince any of the other students in my rural WV grade school that this was the greatest thing ever.

On and off through junior high, I pursued the idea of building a more sophisticated version myself, as of course no one would be selling a computer I could afford anytime soon – though in ninth grade the Altair 8080 came into existence, and I remember really, really wanting one! I tried reading the few programming books that our local library had - they were not particularly good, as they were high-level surveys and not meant to teach you how to program. I pestered my parents into a subscription to Scientific American for the Martin Gardner column, where I learned about folks like Donald Knuth, and things like the Game of Life – I ended up doing a science fair project about that, in which I hand-simulated all the possible results of two gliders crashing by hand on paper.

In high school, there was a computer programming course – YAY! But my advisors said it was a “vocational course” and refused to let me take it. (This was during the period that my parents had already planned for me to become a physician, and I still suspect collusion. Instead, I dissected cats and memorized muscles in a physiology course.)

Once I got to college, I got to actually play with an interactive programming environment. The first computer program I actually got to try was CPS, IBM’s answer to BASIC programming – a stripped-down version of PL/1, running over 110 baud modems to IBM Selectric typewriters; the program was a modified mad-lib that built sentences from randomly-selected phrases (this also led to my continuing love of semi-controlled random processes!). I was hooked. My first full-up program was a one-atom simulation of radioactive decay, following one uranium atom’s decay to lead for a side-project in a chemistry class. I had been working as what we’d now call an intern in the inorganic chem lab (a chem major was my compromise on pre-med), and when I compared my programming experience with the chemistry one, I decided that there were far fewer sodium fires, acid burns, and accidental poisonings with hydrogen sulfide in computer programming. And also that it was more fun.

After that, I fell in with the better CS students, learned about OS internals and assembler, transferred into CS, disappointed my parents, who were certain I’d picked a dead-end field (they did perk up when I got a job at NASA), and the rest is history.

3 Likes

I had no idea you were an ex-Yahoo! I started in January 2005, and worked on tools there till 2010. (Remember igor? That was my baby.)

I was in corporate marketing, so my role was not super technical, but it allowed me to interface with most of the different groups in the company. It was a great place to level up in frontend engineering, and a great place to make the crossover into interaction design.

But holy cow, three different photo products that competed with each other? A zillion acquisitions that seemed to lead nowhere? GMs/VPs that created absurdly toxic culture (often to the point of being illegal, yet HR brushed it under the rug) etc etc etc. It’s no wonder they weren’t able to sustain that 2005 high.

1 Like

Yeah - I ended up running afoul of a manager who, in hindsight, was jealous of my good relationship with our user base and contrived to get me fired.Dunno if he’s still there or not.

1 Like

Sorry, continuing my habit of bumping all the Big, Thinky posts from February…

I guess my dad must have learned how to program, maybe as part of his Masters in Mechanical Engineering? In any case, there were a few books on C and C++ on our bookshelves growing up, and I read them as if they were novels. In fact, in middle school and part of high school I would just read books on object-oriented design in C++ and Java purely for fun? One that fascinated me was this insider’s guide to the hackier, living usage of C++. (well, in 2007 or thereabouts, at least :sweat_smile:)

But, since I wasn’t actually using my knowledge, my understanding plateaued. I did once write an attempted implementation of RSA encryption in Java, but when I “finished” it and it didn’t work I didn’t try to fix it. (Probably I was hitting the limits of the built-in math objects trying to use enormous numbers, and in any case I didn’t fully grok the math behind RSA at the time. :joy:)

Haven’t ever gotten serious with programming—studied math and music instead—but my brother and childhood best friend did, so I remain(ed) sort of fluent. One summer in college said friend and I went through most of 7 Languages in 7 Weeks, and I really liked Ruby, Io and Haskell. Another summer working on mathematics research I wrote a cute little Haskell program that (likely inefficiently) ran a little algorithm on graphs, and my advisor ran it on a cluster he had access to :flushed:.

I randomly happened to take a course in college that took us on a whirlwind tour of Max/MSP programming, Python for sound, and little breadboard / Arduino projects. At the time I thought it was all really cool but didn’t integrate it into my music in any real way. In fact, it took getting into modular synthesis to get why programming with patch cables was at all interesting.

So far the only thing I actually use frequently is a little Max patch to massage and route MIDI data. Right now that’s intentional, though. I’m slowly realizing working on a PhD will mean I have brain room for 1.5 other projects aside from research for the next couple years. Making music claims the full slot, and programming comes in and out of the half one along with a whole host of others.

13 Likes

First contact with computers at the university programming with punch cards. (At that time never thought I would make something like that my profession) Few years later (around 1985) just out of curiosity started programming on an PC / MS DOS with DBase a software for a pub. Then learned as much as possible about the internals of PCs, worked for small companies, building PCs, doing support, some development etc. At this time started with C, then C++, Turbo Pascal, Delphi plus SQL on various DB servers and some Web. Over the years got a taste of quite a few languages, most fascinated by LISP. Now still working as a freelancer, leaves not enough spare time for my modular.
So working on the move from business software to audio / DSP software development, maybe even work on some crazy hardware ideas - as my nick says I am a tinkerer :grinning:

3 Likes

So my first contact with programming was Basic on Commodore64 - nothing fancy just writing stupid things on screen. Then there was some QBasic in PC DOS but still nothing more than moving color dot on screen. Then I started playing guitar and getting more into music and my interest in computers faded away almost completely. But when in college it occurred to me that software is everywhere and I would like to know how it works when interacting with it so I went to university of technology and it sparked again my interest in computers and here I am now with programming as my day job and it being as big passion as music.
I am mainly using Clojure now (functional programming and immutable data structures is love) and I am rather disappointed with what passes as OOP now (because I think that Smalltalk idea of passing messages is great but java style of .getSomething().getOtherThing().iAmTotallyBreakingEncapsulation() not so much). But I am also looking to learn other interesting languages (I have been eyeing Haskell and Erlang for a very long time and also I loved my time with Prolog at Uni (contrary to my colleagues)).
If somebody wants to start with programming I would recommend processing.org. They have their own IDE so setting it up is painless and there is a lot of libraries for stuff like midi etc. so you can control synths and stuff like that in no time.

7 Likes

i am in no way a legit developer but have done a ton of coding over the years. i have learned what i know solely by looking at, dissecting and experimenting with code. never once have i taken a course or read a book. truth be told i don’t even make to the end of most of the monome studies, i just start tinkering.

i started in the mid 80s with a ti-99. learned basic and spent countless hours making rudimentary graphics (wanted to design an E.T. game and got as far as the intro screen/animation, and in my memory it is still super cool!). in the 90s i learned html for practical reasons which turned into a living as a freelancer. wrote everything by hand at first, then the wysiwyg programs came out and i could do these “commercial” projects way faster but my html got rusty. also around this time i was using macromedia director to author cd-roms with lingo. lots of corporate training cd-roms and some super awful music ones. this lead to flash and action script. i spent quite a few years developing/designing flash based websites. then, the iPhone came out and soon enough no-one wanted flash websites. by that time i was burnt out on the commercial aspect of it and i dreaded the work. ended up getting a day job doing web things, CSS, html and database U.I design etc. but over the years i have purposefully moved away from that to hardware support and I.T. (i work in a editorial post production and VFX facility). putting creative energy into commercial things is very difficult for me, so hardware and support is easier. i still spend quite a bit of time doing terminal stuff for work but very little coding. now the coding that i do is pretty much Teletype which is creative, immediate and fun! i am hoping soon my schedule will allow me to do the same with norns. how i felt working on the TI-99 as a kid is pretty much identical to how i feel working on tt now.

2 Likes

Over the last two months, I’ve been learning some Python (mostly Pandas, Numpy, Matplotlib) and SQL in my spare time on Codecademy. It is a good introduction, but I will need to start working outside of their system to really learn. I find SQL easy enough for me to grasp, but Python breaks my brain occasionally - it isn’t the language itself but more that programming requires me to think in a new way (which is ultimately a good thing). I also learned some basic HTML/CSS last year using online learning programs and designed one not-too-terrible static HTML website, but I don’t have any real enthusiasm for web design.

I don’t know if I will ever have the chops to be a full-time developer - and probably don’t want to do that for a living. However, I think these skills can enhance my work. Even learning some basics has helped me see how I could eliminate a lot of boring and tedious work I have done cleaning up large data sets manually in Excel.

1 Like