¿”The Cloud” va a invadir a los desarrolladores fuera de línea?

¡Hay algunas cosas diferentes para desenredar aquí!

¿La nube es tan prominente en el futuro del software como lo veo?

Sí. Lo siento, es un trato hecho. La forma en que construimos, implementamos, distribuimos y mantenemos el software ha cambiado para siempre. ¿Qué significa “fuera de línea” en un mundo donde una proporción creciente de la población mundial está casi permanentemente en línea, donde los automóviles reciben actualizaciones de software por el aire, los desarrolladores de ojos brillantes están ocupados pegando computadoras en todos los dispositivos imaginables y muchos de los cuales son casi inconcebible (vea este feed de Twitter de los peores excesos de la locura de “Internet de las cosas” por ejemplo), y la mayoría de los desarrolladores de software han llegado a sentir que la implementación de cambios lo más rápido posible es la mejor manera de lidiar con los problemas duales de corregir errores y agregando características?

Todavía hay bolsillos aislados en los que el software está realmente fuera de línea, pero estos son cada vez más raros; estamos enviando actualizaciones de firmware a las naves espaciales que abandonaron este planeta hace años, y los proveedores de telecomunicaciones están haciendo todo lo posible para facilitar la comunicación económica con dispositivos cada vez más pequeños en el campo.

“The Cloud” es muchas cosas, todavía me gusta la explicación de que “The Cloud es solo las computadoras de alguien más”, pero lo que significa para los desarrolladores de software de todo tipo es que al menos necesitas pensar en cómo existe tu software en un mundo de comunicación ubicua. Incluso si nunca escribe el código de red usted mismo, comprender cómo funciona Internet es fundamental si desea asegurarse de que no va a esperar que haga algo poco práctico o ineficiente en el futuro.

Si quiero perseguir un futuro en el desarrollo de software, ¿primero debo aprender los conceptos de desarrollo web? ¿Debería aguantarlo?

Sí, lamento informar que deberías aguantar. No estoy sugiriendo que tenga que resignarse al desarrollo web como carrera, pero sea cual sea el camino que tome su carrera en el desarrollo de software, esas habrán sido habilidades útiles para aprender. El desarrollo web moderno abarca una asombrosa variedad de enfoques, lenguajes e infraestructura en virtud del hecho de que la web es Internet en la mente de la mayoría de las personas.

Esto no significa que tenga que escribir su propio servidor web, o tomar el administrador de sistemas Linux, o aprender todo desde cero. En Engine Yard, por solo un ejemplo, ofrecemos una plataforma para los desarrolladores de Ruby on Rails que solo desean implementar sus aplicaciones sin tener que lidiar con todo eso y, en cambio, dejarlo en manos de los expertos. Rails es un buen punto de partida para obtener una base en los conceptos web modernos, al igual que muchos otros marcos y tecnologías como Django, React, etc. Si ha probado estos y todavía odia el desarrollo web, piense en por qué y cómo puede hacer que sea menos atractivo.

Es posible que tenga la suerte de conseguir un trabajo que le permita evitar tener que lidiar con la web directamente de la universidad, pero en algún momento estoy dispuesto a apostar que de alguna manera lo rechazará. Cuando eso suceda, tener una buena comprensión de dónde están los puntos débiles y por qué las personas hacen las cosas de la manera en que lo hacen será muy útil para evitar que se repitan los errores de generaciones anteriores de desarrolladores.

La nube no es la web.

Hay mucho más en “The Cloud” que solo desarrollo web. Eche un vistazo a la lista de productos proporcionados por Amazon Web Services, por ejemplo. Trabajo en este espacio, y cada vez que miro hay algo nuevo. Tampoco es solo Amazon; mire lo que proporcionan Google y Azure y verá rápidamente que desarrollar en la nube no significa necesariamente hacer desarrollo web. Hay desafíos complejos involucrados en hacer que todas estas piezas que se mueven muy rápido jueguen bien juntas, y hay infinitas oportunidades para arremangarse y ponerse a trabajar sin escribir aplicaciones web. ¡Sal y aprovecha al máximo!

TL; DR
No, no es necesario si no quieres.

“The Cloud”, como la llamaron, es vasta, y hay mucho espacio para diferentes áreas, que en última instancia podrían ser consumidas a través de un sitio web, pero su área de especialización podría estar muy lejos de eso.

El mundo está conectado y, como tal, es difícil encontrar un trabajo donde su código esté exclusivamente fuera de línea. Esos trabajos todavía están allí, pero las vacantes para trabajos relacionados con la nube / web son mucho más.

Desarrollo de controladores, desarrollo de kernel, juegos, aplicaciones de escritorio, aplicaciones móviles (sin usar frameworks como Phonegap) y la lista continúa, esos no necesitan que sepas lo que significa incluso CSS (“¿te refieres a la fuente de contraataque, verdad?”) Pero No llamaría a esas áreas como fuera de línea, a excepción de los controladores y el desarrollo del kernel, todas las demás probablemente tendrían alguna interfaz en línea, pero al menos probablemente estarás lo suficientemente seguro de tener que aprender el desarrollo web.

La nube está aquí para quedarse, pero no diría que debería aprender temas relacionados si no está particularmente interesado. Si cree que tiene un futuro más destacado trabajando con código sin conexión, continúe y aprenda lo que necesita y busque un trabajo que se adapte a sus habilidades y deseos.

Pero antes de eso, le daría una oportunidad a la nube y comenzaría a aprender servicios web.
Si quieres ser el chico del backend sin tener que aprender ninguna tecnología front-end, los servicios web son para ti.
Puede encontrar mucho que aprender como:

  • Arquitectura orientada a Servicios
  • Transferencia de estado representacional

Hay muchos más temas, pero con solo estos dos podría tener un año de aprendizaje y comenzaría.
Hay mucho diseño de arquitectura y diseño de interfaz cuando trabajas con servicios web, y eventualmente lidiarás con problemas de escalabilidad que te harán aprender mucho.

Ahora, ¿por qué las empresas quieren que usted conozca el desarrollo web? en la mayoría de los casos es solo para que puedan usarlo para eso si es necesario. Especialmente cuando la compañía tiene servicios de outsourcing, necesitan tener experiencia en muchas áreas en caso de que un proyecto nuevo o actual necesite uno en particular. Dicho esto, tener un tipo que sabe un poco de todo cubre muy bien todas las posiciones bajas / medias.

Con respecto a la educación, creo que lo básico debe enseñarse como siempre, pero algunas áreas deben actualizarse o agregarse para preparar a los futuros profesionales para comprender cuán conectado está el mundo hoy y cómo eso impacta en nuestro trabajo diario.