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.

all 3 comments

sorted by: hot top controversial new old
[–] 3 points 1 year ago

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.

  • source
  • [–] 2 points 1 year ago

    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.

  • source
  • [–] 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