Remix.run Logo
chao- 4 hours ago

In the early 2000's, I entered a university at the EXACT trough between the Dotcom Crash and the Web 2.0 Moment. In fact, I transferred from a lower-tier uni to a top-tier CS uni. At the time, they had still retained their "weed out" approach to intro CS (in Lisp) from the late 90's, hoping to keep kids from taking CS while thinking "I'll make a website and money will rain from the skies!"

My new uni completely rejected my previous uni's Intro CS curriculum. They forced me to retake their version: A Lisp-then-Java cycle that was a theoretical whiplash, which initially I resented. Who wants to re-take a class for topics they "already" learned?

By my second year, I saw the light. I understood the approach.

While my highschool friends at other unis had courses to learn {{topic}} and separate courses to learn {{language}}, the uni I was at had a policy of "languages are incidental" for most courses. Professors had a list of the languages that they would accept for projects. "Anything but Perl" was common, although "systems" courses required C. For every class with a required language, it was not taught during class. There would be an optional lab that you could attend to learn at least one of the languages allowed for the course. The expectation was that you could learn enough in two or three weeks before the first project kicked off, and the TAs really were there to help you figure it out (most courses had 20-30 students for 2-3 TAs).

The "bookend" intro courses that taught extreme FP and extreme OOP served as a forcing function that made me realize "Oh, languages really don't matter. Just pick up the details for the paradigm, and get on with the work."

As much as I resented having to "redo" an intro course cycle at first, I am forever grateful for the fearlessness that the overall experienced instilled in me.

tharkun__ 3 hours ago | parent | next [-]

    For every class with a required language, it was not taught during class. 
This.

We did have the oblig "learn language X" course. Which used to be C and had just switched to Java at our uni. But it was just to learn a language.

The Operating System class used Minix in a VM to teach concepts. You were expected to just use a Minix vi (that was fun!) or somehow figure out yourself how to best use something outside while still having a fast enough feedback loop. Nobody taught us C (since we were already a Java language year. You were just expected to figure it out. Quite a bunch of people couldn't and literally quit CS entirely over that course. I loved it!). We had to add a memory compactification algorithm to Minix to pass the course. That was a fun learning experience! And made me appreciate modern (well, I guess this was like 25 years ago now lol!) operating systems.

Scripting languages course: Pick one and do a project and turn it in. That was it. (I turned in something I had written in Perl as a side-job for hire and got an A without doing any course work at all (except for the two initial attendance checked classes)

nextos 3 hours ago | parent | prev | next [-]

> languages really don't matter. Just pick up the details for the paradigm

True. The best programming books also reflect this ethos. Some people think Introduction to Functional Programming (1989) by Bird & Wadler is the best programming book ever.

The language-specific details (Miranda) are limited to a three-page appendix! The rest of the book is language agnostic, provided that your target language is functional.

userbinator 2 hours ago | parent | prev | next [-]

"Anything but Perl" was common

I would probably be the one to choose x86 Asm or APL... or even a mix of the two.

whattheheckheck 3 hours ago | parent | prev [-]

What's the largest project you've spearheaded with your knowledge?

chao- 3 hours ago | parent [-]

I won't oversell myself. I am now in management, and have many close friends who are better programmers than I am, both generalist and specialized!

Because of the era, I was able to be the lead engineer (as a freelance consultant) at a number of startup companies which tragically no longer exist (for reasons of product-market-fit or product-channel-fit). Eventually I started my own, which is a B2B2C marketplace, a blend of ecommerce and event bookings. So the largest project is "a whole darn company that has survived a decade", including a near-death experience from COVID. From a technical perspective, it is not a very interesting project ;) People at Shopify or Eventbrite have seen more technical complexity in both spaces than I have.

While we use AI for many internal processes, we aren't doing anything particularly cutting-edge in the product itself. It's mostly about brand strategy, market alignment, and customer experience. My day-to-day is sometimes technical, but mostly management. And that's the trap, yeah? You get good at something you enjoy, and then you find out that there's more money in doing something different, helping other people do the thing you used to enjoy.

I apologize if that is not a satisfying answer. I am grateful for the very unique university experience I lucked into, but I am no savant.