Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> * Database Systems (relational algebra, SQL)

Because a lot of companies have moved on to NoSQL databases and key value stores.

> * Concurrent Programming

Because many languages use lightweight threads (fibers, coroutines, etc.) now that don't involve context switching.

> * Network Programming

Because these days barely any company does anything beyond web requests and nobody implements these from scratch. No DNS lookups, no ACKs, no manual buffer writing and reading, no marshalling, etc.



> Because a lot of companies have moved on to NoSQL databases and key value stores.

The value of learning database systems is learning how to model and represent data. All entirely relevant to NoSQL and key value stores.

> Because many languages use lightweight threads (fibers, coroutines, etc.) now that don't involve context switching

Concurrent programming is everywhere. It is not just something that has to do with threads. Even a simple CRUD app with a React front-end and DB back-end is a concurrent system. If your ever used a Promise or async/await in JS, you're dealing with concurrency.

> barely any company does anything beyond web requests

You still need the basics and at least an understand of what DNS is, what a firewall is, etc.

No one here is saying that graduates need to have mastered all of these different areas. But they should at least be able to recognise them when they hit problem later on in their careers. I've worked with junior web developers in the past who had no idea that they're working with a concurrent system.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: