Hacker News new | past | comments | ask | show | jobs | submit login

> What they taught me in comp sci classes was horribly outdated or not representative of the jobs available.

Lessons about automata and computability aren't exactly 'outdated' but their application to typical software work seems very indirect/abstract. In any case, that was my experience from a CS degree ~20 years ago, probably similar now if the curriculum is similar.

Dijkstra: "Computer Science is no more about computers than astronomy is about telescopes."




> Lessons about automata and computability aren't exactly 'outdated' but their application to typical software work seems very indirect/abstract

I hear this or similar things often but I don't really buy it. Sure, if you are doing super high stakes things and you need to optimize the hell out of something then you might be able to pull from concepts learned in college but I've seen new grads waste so much time on pre-optimization and honestly it's just not needed for so many things. Also I've had no issues learning concepts/algorithm/etc on the fly as-needed when performance was crucial. My college experience might be different than yours but having an EE teacher rail against and regularly make fun of web development as "not real development", losing 1 point on each answer of my database exam because I didn't put a semicolon at the end, and having to write a C program from scratch (headers and all) on paper for an exam are only a few examples of what turned me off the way my college taught computer science.


I feel the same way as you. In high-school I had a chance to do a "co-op" program (like being an intern for the American's) for a company. I did web development work there. I got offered a job there over the summer and continued to work there for 6 more summers while I went through University for software engineering.

The thing that is funny is that University didn't help me in that job at all. The vast majority of skills I used at the job were self-taught. A good chunk of those were self-taught before I even went to University.

University teaches a lot of theoretical and basically makes you teach yourself the practical. I started to realize that unless I planned to go the academia route and get more into the theoretical, then the degree was pretty useless to me. I ended up not completing the degree because it was just way too hard to stay motivated. It felt like I had to teach myself the important skills anyway, and then listen to stuff I could self-teach myself when I needed to know it.

When I had group projects a good chunk of classmates I worked with sucked at programming. Like they didn't know how to use git, sucked at object orientated program, etc... They would produce code that was just in one big massive single file. It was frustrating because the degree really just made a lot of people book smart, but they weren't actually that hirable.

I actually got to help with co-op hiring while I was in school for multiple years at the company I was with. When we would look at resumes the biggest thing I realized is that the degree wasn't really relevant. When almost every applicant has the identical degree it's not meaningful. What mattered was what kinds of things they did outside of school. What personal projects they had, what their github looked like, did they have their own website, were they involved in groups or starting their own sidegig websites, etc...

Our best candidates were the ones that did a lot of stuff outside of school. And the funny thing is that the majority of those candidates had bad grades. We got the transcripts with every co-op applicant.


Ignoring performance, if you're just doing business-specific behavior logic for whatever process needs to be assisted or automated by an IT system, so often you get complicated parts of that system logic that may get implemented as a tangled nest of if-statements but where the proper mental model actually is a finite state machine/automata - and if you see it that way, you can cover all the possible transitions and improve correctness.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: