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.

  • NochMehrG@feddit.org
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    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?
  • bold_omi@lemmy.today
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    10 days ago

    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.