Si un grupo de personas que aprenden codificación se reúna para comenzar una empresa, ¿sería más rentable para ellos aprender y especializarse en un área / idioma, o aprender y especializarse en áreas completamente diferentes?

Todos deben aprender el mismo lenguaje / conjunto de idiomas, de esa manera, pueden construir fácilmente lo que quieran juntos y cualquier programación de pares o revisión de código es más fácil.

Sin embargo, las especializaciones son diferentes. Todos deben conocer las ideas generales sobre cualquier tema en el que trabajen, pero al dividir el trabajo, algunas personas se familiarizarán con determinadas secciones del código.

Estos “propietarios” de código (bliki: CodeOwnership) sabrán más sobre esa sección, pero cualquier persona debería poder sugerir o cambiar cosas sin su permiso. P.ej
quienquiera que trabaje en la capa de abstracción de la base de datos aprenderá más sobre las bases de datos y sobre qué causa que sean lentas o se rompan, etc.
Luego son responsables de hacer que el código sea comprensible para cualquier otra persona con comentarios y documentación.
Alguien más ha estado leyendo los documentos y se da cuenta de que la primera persona ha cometido un error. No debería ser un problema sugerir la corrección. Luego, se debe colocar algo que proteja contra el mismo error nuevamente. Haciendo el complejo simple

Creo que es completamente prematuro comenzar una empresa cuando aún no eres experto en las habilidades básicas necesarias para establecer y evolucionar ese negocio. Además, un negocio de software, como en cualquier negocio, es mucho más que su producto o servicio principal. Si todos son aspirantes a desarrolladores de software, nadie querrá hacer todas las cosas que no sean de software necesarias para dirigir un negocio.

Te recomiendo que aprendas tu habilidad, trabajes en compañías complementarias, si lo deseas, y guardes tu propia puesta en marcha para cuando tengas más conocimiento del desarrollo de software y desarrollo de negocios.

Yo sugeriría tener conocimiento de todos los idiomas requeridos e individualmente tener una especialización en un idioma.
Tener conocimiento de todos los idiomas les ayudará a comunicarse técnicamente y entender el alcance de cada idioma.
Dominar un idioma te ayudará a obtener un conocimiento más profundo, lo que te ayudará a lograr mejores habilidades para ejecutar tus códigos, en comparación con tener un conocimiento medio y crear códigos inútiles largos.

Vamos a decirlo de esa manera. Si uno de ustedes muere en un accidente de tráfico, tendrá serios problemas si todos están especializados. Así que comparte tu conocimiento. Siempre se necesita al menos otro individuo que pueda hacer una tarea.