I looked for APIs to do something. I found a bunch of APIs that will do the job I want. How does one pick between them when all of them will do the job in the right language/framework?
This also made me think of another question. I’ve heard of interviews for tech jobs asking people what tools they’d use to solve a certain problem. I figure the way I’d do that is exactly how I tried to find an API. Just directly look for a tool that can do your job online, see what the options are, and only click the ones that actually do what you want. I am very entry-level (recent CS grad, wish me luck) in the learn-more-by-doing stage, and am wondering if you’re expected to have a deep knowledge of most of the tools out there or what, and how one does that.
Here’s a little textual flowchart to help you out when selecting an API:
Is it free? ├Yes │ └Is it open-source? │ ├Yes │ │ └Is it mature? │ │ ├Yes │ │ │ └Is it memory-safe? │ │ │ ├Yes │ │ │ │ └Is it sufficiently cross-platform? │ │ │ │ ├Yes │ │ │ │ │ └Does its license work for your use case? │ │ │ │ │ ├Yes │ │ │ │ │ │ └Consider it. │ │ │ │ │ └No │ │ │ │ │ └Don't use it. │ │ │ │ └No │ │ │ │ └Don't use it. │ │ │ └No │ │ │ └Don't use it. │ │ └No │ │ └Don't use it. │ └No │ └Don't use it. └No └Don't use it.wondering if you’re expected to have a deep knowledge of most of the tools out there or what
Employers expect you to be able to learn a tool on the job, whether that be an application or a programming language. The specific code or language matters less. As Linux Torvalds once said, “Bad programmers worry about the code. Good programmers worry about data structures and their relationships.”
Employers care most that you understand the principles and can adapt well. That said, being familiar or having experience does help in the field, so you should try to have some experience with using the APIs relevant to your use case, and have read their documentation at least briefly. You will accumulate knowledge over time.
But rest assured that technology is not a monolith, and there is not one person alive who has a deep knowledge of the majority of tools.
Some things to check:
- does it do what you need?
- license
- Who is behind it, company, org, some person?
- liveliness? How often is it changed, released?
- how do they handle security?
- who is using it? Community?
- cost (for commercial use)
- previous release notes, what has been changed, breaking changes?
- history, how long does it exist?
For the first question, I would base my search on things like the extensiveness of the results, authentication, pricing, usability, etc. If you don’t have any specific criteria right away, try making a few calls and playing with it to see if it will be what you needed. Some APIs I’ll find its missing this one thing that makes another api a better choice. This is something you’ll get better at with experience.
And no youre not expected to know all the tools, there are about an infinite out there. Generally youre expected to be familiar with some of the tools of the job but knowing more can’t hurt either. Take things one thing at a time and make some simple project with what you’ve learned. That’s how I do it anyways, but everyone is different.
I give up if there is no one tool but a million of them. Come back later and repeat.
Eventually just write it in python.

