Rage against the APIs
Sun, Feb 11, 2018Often times new engineers start off by learning how to use APIs. (Closed-source http interfaces to make phone calls, view weather data, deploy slack bots, etc.)
This is sometimes really great! You can get started coding quickly and produce something pretty impressive in very little time. Sometimes, though, developers will start valuing their engineering skill by the number of APIs they’ve mastered. This makes total sense for things like hackathons or even some interview take-home assignments, but it’s missing one of the most important parts of engineering.
Reading code!
An API generally has a specification, is fairly well documented, usually bug-free, and has absolutely no way of reading the code behind an http wall. Does that sound like any production code you’ve interacted with? Probably not! You learn to code by reasoning and understanding large problems, not by interacting with already-specified solutions.
And what happens if you encounter a bug? In any normal development environment, you’d just read the code that was causing the bug. With an API, you throw up your hands in despair.
Again, APIs are a great way to enable developers to use closed-source engineering work. They’re all about sharing and an important tool in your toolbox!
I just think when you’re using one, you’re losing many hard problems, and all the learning that goes with solving them. You’re left with exporting these hard problems to http requests. Actually creating something worthy of an API is where the fun is at and I hope more new developers get to dig into meaty experiences like that.