¿Por qué el desarrollo del back-end a gran escala de autoaprendizaje es tan difícil o incluso imposible?

¿Alguna vez has jugado esos juegos de construcción de puentes basados ​​en la física?

Si no has tenido una oportunidad, quiero decir, ¿qué tan difícil puede ser construir un puente entre el punto a y el punto b? Bastante fácil al principio, pero cuanto más se separan ayb, más difícil se vuelve. Ahora, ¿qué pasa si ayb están a diferentes elevaciones, todo comienza a irse mal? Los camiones rompen los soportes y todos mueren, pero está bien, puedes comenzar de nuevo

Los proyectos de back-end a gran escala tienen muchos problemas que no encontrarán / pensarán en enseñar usted mismo.

Supongo que lo que intento decir es lo que se ha dicho muchas veces sobre el desarrollo de software. No es como carpintería o fontanería. No hay un estándar universal a seguir. Todos hacen las cosas de una manera ligeramente diferente. Todo lo que hacemos se basa en nuestras experiencias pasadas.

Tienes una mala experiencia y creas algo para evitar que eso suceda en el futuro, alguien más no habría tenido esa experiencia, así que no lo hará. Puede que ni siquiera sepan que todavía existe la trampa.

Ahora, si tiene la suerte de tener el dinero extra para hacer un gran proyecto de back-end usted mismo y tener la capacidad de llenarlo de tráfico, entonces sí, es posible aprender a hacer uno solo. Pero por lo general, alguien más está gastando el dinero para un proyecto y quieren resultados ayer

Cuantas más personas con las que crees un back-end grande, más bases vas a cubrir, más fácil y rápido se harán las cosas. Cuanto más feliz sea la persona que lo pague

No estoy convencido de que * sea * difícil de aprender por sí mismo ese tipo de cosas.

No es inconcebible comprar algo como esto en eBay:

Por alrededor de $ 500. Entonces tienes 16 pequeñas computadoras blade, cada una con un procesador de 650Mhz. Según los estándares actuales, no es tan rápido, puede obtener una buena PC que es más rápida, pero es suficiente para probar los trabajos de clúster / red.

Podría hacer lo mismo con Raspberry Pi, las placas MIPS Creator, o algo así, incluso podría mezclar / combinar para tener una idea para construir un sistema informático de red heterogéneo.

16 computadoras no es lo mismo que las miles, por supuesto, pero si puede tomar 2 blades, hacer un sistema, luego escalar a 16 y mantener un buen rendimiento, probablemente haya aprendido más de lo que la mayoría de la gente tiene sobre la gran escala desarrollo de backend.

Si estaba contratando a alguien para el desarrollo de backend a gran escala, y me dijeron que tenían un Sun B1600 en su sótano, y que habían creado su propio servidor de carga equilibrada y tolerante a fallas, me impresionaría.

  1. “Gran escala” generalmente implica complicado, con un equipo de buen tamaño. Aprende siendo parte de un equipo: primero haciendo cosas simples, luego pasando a la “propiedad” de piezas cada vez más grandes, hasta que, tal vez, termine con la responsabilidad técnica o de gestión de proyectos para proyectos cada vez más grandes.
  2. Por lo general, estos proyectos son algo especializados: debe aprender sobre el dominio del problema, así como sobre los “conceptos de operaciones” y las arquitecturas del sistema para clases particulares de problemas. De nuevo, eso es algo que aprendes al ser parte de proyectos.

Ahora, hasta cierto punto, es posible que pueda adquirir algunos conocimientos y habilidades al ser responsable de mantener o administrar (parte de) un gran sistema, donde podrá aprender sobre las entrañas. Si eso ayudará en el diseño y desarrollo de tales sistemas es una trampa.

Sospecho que es porque no tienes un backend a gran escala para practicar lo que estás aprendiendo.

A menos que seas muy rico, esto no es algo que sea fácilmente autodidacta.

Incluso si pudiera enseñar esta disciplina por su cuenta, le sería difícil demostrar que la conocía a un posible empleador, sin una prueba de existencia. En otras palabras, necesitaría un backend a gran escala en funcionamiento en el que fuera líder tecnológico o, como mínimo, un participante, en la implementación u operación, o en ambos, del sistema en cuestión.

Por el contrario, creo que encontrará que la mayoría de las personas más importantes en este campo aprendieron lo que saben en el Trabajo. Donald Becker y su equipo Beowulf en la NASA ciertamente lo hicieron. Ahora probablemente ha cambiado con tantos escritorios con procesador dual y quad core, pero ciertamente no aprendí el procesamiento paralelo en la escuela.