Hacker News new | ask | show | jobs
by ozzythecat 1688 days ago
You don’t need a CS degree, but I do think a few classes are going to give you a foundation - operating systems, data structures, algorithms, a networks course, and if you’re interested, a compilers course.

Everything else isn’t necessary to be a successful programmer or “software engineer”, even at a FANG or even start up, in my opinion.

I don’t think a computer science curriculum is useless, but not all parts of it are really meant for a job. It’s just theory, and you’ll forget it. I think at least in my area, I’ve consistently applied principles from the courses I listed.

I do think a significant problem is the way that these topics are taught. My data structures and algorithms professor did not teach anything at all. He would ask us to read chapters, and his lectures would regurgitate the written words from the chapter in his words. I don’t think that he’s teaching. The kids who did well on the exams learned it outside the course, or they already knew the material. And I think that’s sort of the biggest problem. I remember sitting in class, and we went over merge sort. He asked the class about runtime complexity, and none of us could answer it except one kid who already knew the material. And the professor looked at the rest of us like we were idiots. In reality, he never actually taught us how to think about runtime complexity or space complexity.

I’m a staff/principal level now at a FAANG company. If I think about what classes or what experiences led me to my current level, my data structures course was probably the most useless. I don’t have a single positive things to say about it.

I passed with an A by memorizing things. The professor didn’t care, and I remember going to office hours and he would be annoyed that I even showed up. Unfortunately the professor is still teaching over a decade later.