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.

you are viewing a single comment's thread
view the rest of the comments
[–] 1 point 1 week ago* (last edited 1 week ago)

Here's a little textual flowchart to help you out.

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.

  • source