Cuando estamos en el mundo del desarrollo es normal comenzar conociendo los lenguajes de programación, después avanzamos a temas un poco mas complejos como los paradigmas de programación, hasta aquí podemos decir que es un camino muy común como desarrollador en formación.
Cuando estamos en la programación orientada objetos o en la programación web normalmente nos viene la necesidad de conocer como hacer bien las cosas, en otras palabras buscamos las buenas practicas del lenguaje de programación o del paradigma de programación que usamos.
Finalmente llegamos a una parte que tiene muchos caminos de tomar como los de arquitectura de software, patrones de diseño, etc. Estos se consideran como temas "duros" en el desarrollo de software en general, aunque depende muchas veces de la plataforma, tecnología, sistemas y de cualquier tecnología que usamos para trabajar. En este punto ya todos comienzan a tomar el camino dependiendo de lo que se busca.
Existe algo importante te podría casi asegurar que todo desarrollador debería de hacer al menos una vez en su vida: Crear una API
Independientemente de si usas Javascript y trabajas en la web, eres el mundo Java y trabajas Backend, prefieres PHP y algún framework, no importa, todos los desarrolladores deberíamos de al menos desarrollar una API.
La idea de desarrollar una API no es solamente la de hacerlo por que yo lo digo, esto sería una recomendación para que te acerques mas al desarrollo de software pero sobre todo para que lo entiendas mejor.
¿Qué es una API?
El concepto largo sería: "Application Programming Interface" en español: Interfaz de programación de aplicaciones. Como estas palabras seguramente no nos dicen nada, tendremos que explicarlo de otra forma. Algo sencillo de digerir sería ver a la API como un conjunto de instrucciones que tenemos disponibles para que se utilicen.
Para ampliar más la explicación podríamos decir que las instrucciones al final son software y que a su vez otro software utilizaría al software. Este es el motivo por que en muchas definiciones vas a encontrar que una API es la capacidad de comunicación entre componentes de Software.
La definición de libro sería: Conjunto de funciones y procedimientos que cumplen una o muchas funciones con el fin de ser utilizadas por otro software.
Algo curioso de las API es que no son solamente herramientas, en algunos casos hasta productos de comercialización para empresas, es raro que hoy en día una empresa no cuente con una API ya que muchas veces el negocio, la innovación y hasta el posicionamiento de la marca se apoya en una API.
Problemas comunes con las API's
El tema más difícil en los últimos tiempo con las API's es el tema seguridad, ya que hasta cierto punto podemos decir que dejamos una puerta abierta en la empresa para que se pueda implementar la API de la compañía o producto, aunque claro cada vez se tiene más cuidado e información del tema, pero si estas desarrollando tus primeras API's es muy probable que dejemos un pequeño fallo con respecto a seguridad, así que es mejor tener cuidado.
Otro de los problemas comunes es también la claridad, muchas API's se utilizan por que son el último recursos para el desarrollador o la única opción, pero muchas no cuentan con la documentación completa o correspondiente para trabajar al mínimo con ellas, así que es una constante sufrir por la documentación.
Finalmente otro punto recurrente en los problemas con una API es el tema de la calidad, muchas API al no ser consideradas como importantes dentro de las empresas son realizadas no de la mejor forma, así que encontraremos de manera constantes API's que tienen fallos y esto es verdaderamente preocupante ya que lo único que va a pasar es que los desarrolladores desechen la aplicación simplemente por la mala calidad.
Si quieres comenzar por el mundo de las API's te voy a dejar algunos casos que puedes aprovechar:
API de Facebook, Twitter, Youtube, Google Maps, Paypal. Estas son solamente algunas, existen otras igual de buenas o mejores, el detalle con estas es que son usadas a diario por millones de desarrolladores y es muy probable que siempre encuentres ayuda en problemas recurrentes en foros y sitios de programación por si se te complica la implementación.