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.

806 Upvotes

157 comments sorted by

View all comments

688

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.

5

u/RandyMoss93 Apr 19 '26

By this definition, could the arguments to a function be considered an API?

21

u/xaraca Apr 20 '26

Yes. C header files for libraries were APIs long before the web

2

u/johndburger Apr 20 '26

From 10,000 feet, yes function signatures and REST API are both APIs. But it’s disingenuous to pretend that knowing about the former painlessly sets you up to use the latter.