Hacker News new | ask | show | jobs
by Rounin 1380 days ago
In some specializations of programming, you're going to need a lot of those things. For instance, working with game engines, scientific simulations, image or signal processing, finance, or simply making the base software and libraries that other people use, can involve a lot of CS.

In larger corporations, the programming is often much higher level, and consists more of stringing together libraries and frameworks and entire systems so that they fulfill a business purpose. Even simple programs can take hundreds of megabytes of memory and have tens or hundreds of dependencies beyond anyone's control.

If you want to keep practicing your algorithm skills, you might try something like https://projecteuler.net/ , which is very mathy, or https://checkio.org/ , which is a bit more user-friendly, and get some practice there. As for OS theory, there are always open-source operating systems one can contribute to, though I suspect many of them would consume a lot of a person's time.

1 comments

I was surprised to see database normalization in OP's list. Working at a modest-size company, database normalization was something I dealt with all the time. It was up to the devs to do table design, if you didn't normalize you'd end up with a mess.
I've never seen someone even mention the word normalization when working with databases, but the knowledge is useful to intuitively design more sensible tables. Perhaps many people don't realize they are doing it?
I know I didn't until I took a database class in grad school. (I'd worked with databases before and was taught them as a kid by my dad, but I needed some kind of 'proof' for CV purposes). I didn't call it 'normalization', I just considered it to be part of future-proofing/not wanting to be bothered if new uses showed up.
All I know is don't store duplicated data in different tables