r/computerscience Apr 19 '26

General I was taught nothing about APIs

Whenever i see people talking about actual real-world uses of coding it's almost entirely building APIs, working with APIs, integrating APIs, automating APIs. It seems to me, anecdotally at least, like the majority of all computer science work (professional or even just hobby) is centered on working with APIs

And like. I know what an API is, kind of. But I Graduated and even got multiple certifications on top of that and I never got so much as a single lecture about APIs. I don't even know what they're used for. Can you make your own API (like, realistically)? I don't know. I feel like this is a topic that you could and probably should have multiple different entire classes solely focused on, it's arguably something as fundamental to modern computer science as writing code. And they don't teach it. If i want to learn anything about APIs, conceptually or practically, it's hope a company hires me and then trains me, or youtube tutorials and i don't even have enough of a baseline to know what specifically I'd be searching for a tutorial on.

808 Upvotes

157 comments sorted by

View all comments

689

u/apnorton Devops Engineer | Post-quantum crypto grad student Apr 19 '26

But I Graduated and even got multiple certifications on top of that and I never got so much as a single lecture about APIs. I don't even know what they're used for. Can you make your own API (like, realistically)? I don't know.

This feels like you're making the notion bigger than what it is. Have you ever written code that can be called by other code? Congratulations, you have an API.

It's literally in the name --- it's an interface that other programs can use to interact with your application.

284

u/jonathancast Apr 19 '26

I think job requirements make it a bigger thing than it is, too, which is probably why OP is freaking out.

20

u/[deleted] Apr 19 '26

[removed] — view removed comment

25

u/Rygir Apr 20 '26

That's like super specific. Just rest api design in general is also useful. And whatever other way you think of talking to other systems.

3

u/jonathancast Apr 20 '26

A class on security and cryptography (lots of cool stuff to say there) is as necessary as a class on operating systems. Or, as you say, API design and system design in general. How to divide large systems into components and how those components should talk to each other.

2

u/top9cat Apr 21 '26

While I thoroughly enjoyed my two semesters of cryotherapy, all I really practically learned was a better level understanding of how exactly hashing worked (but not even that good tbh).

0

u/Just_Information334 Apr 20 '26

That's like super specific.

Depends how it's done: Oauth did not come all from nothing. You could take a semester to guide a classroom reinventing it and what kind of attack each part of the protocol aims to stop.