(I recently posted this on Quora in response to a question along the lines of “Engineers, when did you decide to study Computer Science?")
I have been a full-time software engineer for the last 7 years, and a part-time one for ten years before that.
I have never formally studied computer science.
It wasn’t an option before college (small high school in rural Vermont). And at the otherwise excellent small liberal arts college I attended, it wasn’t one of the available majors.
I learned to program because that was the most interesting thing to do with a computer in the 1980s. Every computer shipped with BASIC. I wrote a lot of programs. I played with every computer I could. I taught computer workshops at the local college. I read computer magazines and manuals.
In college I took the few classes that were available, including one with a disciple of Niklaus Wirth. I learned C, Modula-2, and Prolog. On the side I taught myself some assembly language, FORTRAN, and Forth.
When the web arrived in the ’90s, I started making pages; eventually I realized I could apply my old programming skills to this new medium, and started learning PHP.
After a few years of this I wanted to get more rigorous; I started learning additional languages (most notably Python) and good software engineering practices. I’ve done a few online classes and stints of self-study to help fill in the gaps in my education.
I’ve become a big fan of functional programming. I imagine I would have loved taking a Programming Languages class as part of a CS degree.
These days my focus is not so much on CS, but on being a good engineer: expanding my ability to design, develop, and maintain mission-critical web applications. That’s what I talk about when I guest-lecture for classes in our regional university’s CS department.
That’s my story.