Un amigo argumenta que los campos de entrenamiento, los MOOCS y los libros se consideran ‘bombas y vertederos’ en lugar de ofrecer una educación formal en CS. Si paso por MOOCS intensivos y campamentos de entrenamiento, ¿realmente me estoy engañando?

Muy de acuerdo.

La experiencia práctica (como los campamentos de entrenamiento y que tienes que programar para aprender a ser un programador, sin importar la fuente de información de la que aprendas) … cambia las cosas, pero, en general, las personas tienen aproximadamente 30/70 , relación retención / pérdida para información en bruto (respectivamente).

Cuanto más a menudo use activamente información o habilidades, mejor se reforzará a largo plazo. Los “bootcamps”, los libros y los esfuerzos a corto plazo realmente no tienen una ventaja real, aparte de lo que mejor se adapte o se adapte al estilo de aprendizaje de una persona, y el enfoque práctico aumenta la retención.

Pero, independientemente de una mayor retención, solo hay tanta información que puede introducir en su cerebro tan rápido.

En el mundo del desarrollo de software * real *, un desarrollador podría tener un solo problema durante 6 horas o 6 días. (No es desconocido). No hay tiempo para eso en bootcamps, MOOC, etc. Pero esas son las experiencias de las que más aprendemos.

Los MOOC y Bootcamps quieren que pagues el premio y puedas promover el hecho de que fuiste a su bootcamp … ¿quién es bootcamp? ¿Cuándo apareció ese nombre en escena? Todos pueden poner impresiones, y tener un buen nombre y todas esas cosas buenas, pero realmente significa poco a nada.

Por ejemplo: si me encuentro con alguien que quiere un lugar como HackReactor, o cita estudiar MOOC en línea como una especie de calificación, voy a estar mirando y probando mucho más que las cosas que aprendieron en tales cursos … Quiero asegurarme de que esa persona ESTÁ EN PARTE con alguien que tenga un título formal en Informática. ( No estoy demasiado interesado en el programa basado en impresiones, he completado el certificado de alguien por mi cuenta, eso no significa nada para mí o para el mundo laboral donde las cosas realmente deben hacerse; y si necesita aprender algo en el trabajo, debe hacerlo EFICIENTEMENTE, comprender conceptos básicos, etc. )

Toma tiempo aprender por qué algo funciona de la manera que lo hace. No puedes simplemente lanzar un montón de código. Es bueno si eres un desarrollador nuevo, pero no te están enseñando las habilidades que tienen los desarrolladores experimentados, eliminando un montón de código escrito por personas que están tratando de replicar funciones que ya están incluidas en el idioma base, etc., y luego implemente una solución. No todo es un nuevo desarrollo, y sin haber pasado el tiempo para entender “Por qué” detrás de conceptos más avanzados e integrar completamente pensamientos como: “Oh, ahora lo entiendo, ahora entiendo por qué esto está diseñado de la forma en que está …” Ningún MOOC o Bootcamp puede meter eso en tu cabeza. Pueden proporcionarle la información, pero hasta que llegue a tales realizaciones, y tales realizaciones lleguen más rápido después de haber leído mucho más código, solucionar problemas … es bastante inútil.

Al menos esa es mi opinión sobre las cosas. (Casi nunca estoy impresionado con las personas que intentan dar impresiones. Y muchas personas que van a Bootcamps y hacen que los MOOC den la impresión equivocada).

La motivación es útil. Y aprender cosas es muy motivador. Pero, muchos de los proyectos de estos estudiantes son … bueno … tan básicos … realmente no es nada nuevo. (Pero, como en la motivación, es algo bueno: lo que sea que pienses se beneficia a ti mismo).

Es “popular” decir que estás haciendo lo popular, pero no significa que tengas las habilidades reales que están enseñando o diciendo que pueden enseñarte.

NOTA: Trabajo como instructor con gSchool (gSchool)

No, no te estás engañando a ti mismo si vas a una escuela de código, aprendes de los libros o aprendes de los MOOC si estás interesado en las industrias a las que sirven. Pero definitivamente obtendrás un resultado diferente de cada uno, así que creo que es una dicotomía falsa.

Las escuelas codificadas son escuelas comerciales

Hay un gran segmento de la industria moderna de desarrollo web / móvil que requiere que los desarrolladores sean muy buenos en un comercio específico (como Rails, Node Express o iOS). Estos oficios permiten a los profesionales (desarrolladores) trabajar a un nivel muy alto de abstracción, lo que significa que el trabajo diario requiere menos conocimiento de cómo funcionan las computadoras y más conocimiento de cómo funcionan los paquetes de software específicos.

Por lo general, llegar al punto de competencia técnica de nivel de entrada en estos oficios es un proceso que puede tomar tan solo unas pocas semanas. Aprender a convertirse en un desarrollador junior completo y bien empleado lleva un poco más de tiempo. Si está interesado en aplicaciones web modernas o desarrollo móvil, creo que las escuelas de código inmersivo de forma más corta son el camino a seguir.

Una vez escuché a un profesor de CS decir que no estaba allí para enseñar a sus alumnos a programar, sino para enseñarles a pensar como un programador. Resulta que hay un gran segmento en la industria que necesita personas que sepan programar, incluso si no pueden poner en blanco un algoritmo de clasificación de burbujas sin ninguna documentación de referencia. Las escuelas de código lo hacen maravillosamente en la producción de este tipo de programador útil.

Las escuelas de código pueden adaptarse más rápidamente

En los últimos 18 meses he notado una gran mejora en las herramientas de JavaScript. Con Meteor, Ember y Lineman (y muchos otros), crear aplicaciones cliente-servidor con JavaScript es más fácil ahora que nunca. Mirando qué código están haciendo las escuelas, descubrirá que cada vez más del plan de estudios de todas ellas tiende hacia JS. Pero en la próxima primavera, la gran mayoría de los programas de CS enseñarán lo mismo que enseñaron el año pasado.

Las arquitecturas cliente-servidor no son nada nuevo, y conocerlas en teoría (o en general) es útil. Pero para una gran parte de las descripciones de trabajo abiertas, conocer a Ember o Angular como el lado del cliente y conocer alguna tecnología del lado del servidor es más útil que conocer la idea general del cliente-servidor.

Las escuelas de código tienen mayores incentivos para encontrarle trabajo

La mayoría de las escuelas de código operan como compañías de reclutamiento. Cobran tarifas de reclutamiento para ayudar a subsidiar la matrícula. En gSchool, no cobramos tarifas de reclutamiento, pero tenemos una garantía de devolución de dinero de que si no podemos ayudarlo a encontrar un trabajo, le reembolsaremos su matrícula. En ambos casos, ayudar a los estudiantes a conseguir puestos que encajen bien es esencial para la misión.

A las universidades se les paga por adelantado y, en la medida en que consigas un buen trabajo, puedes contribuir con ellas más adelante. Pero si fallas, todavía tienen éxito. El ciclo de retroalimentación para las escuelas de código es mucho más inmediato y dramático, y eso funciona a favor de los estudiantes.

Entonces depende …

El mundo tecnológico es masivo. Los programas de CS lo prepararán para un determinado tipo de trabajo, pero creo que es injusto decir que otras formas de aprendizaje son de alguna manera inválidas, y creo que existen algunos inconvenientes significativos para seguir los programas de CS tradicionales si está buscando trabajar en la web / desarrollo móvil

De ningún modo.
Todo depende de cómo tomes los cursos. Si está dispuesto a aprender cosas nuevas de estos cursos, participe en los foros, resuelva los ejercicios (no solo mire videos), complete los proyectos. Tendrás la misma sensación de tomar el mismo curso en el campus.
Estos cursos no son diferentes de los cursos en el aula y obtienes el mismo contenido que tendrían allí. Depende de cómo uses el material.

Por ejemplo: https://www.coursera.org/course/ Este curso es el mismo que la versión de la clase en Stanford CS 161 – Diseño y análisis de algoritmos. Casi todos los cursos son iguales en comparación con la versión del campus.

Una cosa más a tener en cuenta al tomar los cursos son los requisitos previos. Si tiene los requisitos previos para tomar un curso, está listo para comenzar. Realmente aprenderás los fundamentos y conocerás la columna vertebral de lo que haces. Preferiría que vayas a Coursera, Edx, Udacity y busques cursos para principiantes, los completes y pases a los avanzados.

la falta de comprensión hacia el conocimiento del sistema operativo los perjudicará al final.
Depende del campo en el que desee sumergirse. Por ejemplo, un desarrollador web no necesita preocuparse por las partes internas del sistema operativo subyacente, pero un programador de sistemas como yo debería preocuparse por ello. Hay muchos cursos que le enseñan los fundamentos de los sistemas operativos en línea. Entonces no te preocupes.

¿Qué tan cierto es esto en el desarrollo de software y las prácticas de programación? Si paso por MOOCS intensivos y campos de entrenamiento, ¿realmente me estoy engañando?
No, no te estás engañando a ti mismo. De hecho, aprenderá más de lo que otros no habrían aprendido. Hay personas que acaban de hacer cursos en línea y obtuvieron excelentes trabajos en Google, Facebook, etc. Todo depende de cuánto esfuerzo pongas en aprender, en lugar de una educación formal.
Brian Bonus: editor de video para ingeniero de software – Udacity – Climb Higher
Hay mucho contenido disponible en línea, úselo, apréndalo, haga proyectos geniales y demuestre a su amigo que ha logrado más que él. ¡Salud!

PD: No he aprendido más en cursos en línea, libros que mis cursos universitarios relacionados con mi campo.

Estoy de acuerdo con Igor Markov y para agregar a esta respuesta. El sistema formal de educación CS asume un nivel de conocimiento muy básico (nivel de diploma de escuela secundaria) como punto de partida y tiene como objetivo impartir constantemente el conocimiento requerido para obtener el título. Esta es también la razón por la cual el ritmo es generalmente lento (se necesitan 4 años para completar un título de BS CS). La consistencia es el motivador clave.

Por lo tanto, incluso si usted es un programador de niños prodigio o un estudiante de secundaria que acaba de llegar y afortunadamente fue aceptado, el programa de licenciatura de CS no cambia para usted. Sin embargo, en el sector educativo formal de CS, intentamos compensar casos especiales creando programas para ellos. Pero estas son excepciones más que la regla.

Tu amigo no está completamente equivocado. Hay ciertas cosas que un título de CS de cuatro años puede ofrecerle que simplemente no puede obtener en 3–6 meses.

Ahora, no creo que esto desacredite automáticamente los bootcamps o el aprendizaje por su cuenta. De cualquier manera, necesitas dedicar tiempo y debes trabajar duro.

Actualmente estoy asistiendo a una escuela de código en SF, Holberton School. No es un campo de entrenamiento, ni una universidad de cuatro años. Es un programa de dos años para convertirse en un ingeniero de software de pila completa. Llevo un año y todo lo que sé es que aprender a programar será un esfuerzo de toda la vida. Entonces, ya sea que asista a un bootcamp, o esté obteniendo su maestría en ingeniería de software, todos siempre tendrán más para aprender. Si su única experiencia ha sido un campo de entrenamiento, o incluso si es un programador autodidacta, significa que podría tener mucho más terreno por recorrer.

De ningún modo. Tome The Software Guild como ejemplo.

  • 6 semanas de pre-trabajo a tiempo parcial (~ 120 horas)
  • 12 semanas a tiempo completo en el aula (~ 480 horas)
  • 12 semanas de trabajo en proyectos fuera del aula … nuestros alumnos han establecido el compromiso a las 30 horas a la semana (~ 360 horas)

Básicamente, estás buscando entre 900 y 1000 horas de práctica centrada y relevante para la industria.


Compare eso con el curso universitario típico de 3 horas de crédito. Son 48 horas por semestre en el aula con poca o ninguna atención personal . Digamos que en 4 años tomas 2 clases de programación al año, lo cual es bastante típico. Acabas de tener 384 horas de clase, menos de las 480 que obtienes en nuestro campamento y es menos efectivo porque:

  • Tienes que perseguir la atención personal. Completé un grado y en 4 años nunca escribí código en la misma habitación que mi instructor .
  • No estás enfocado No solo estás aprendiendo programación, estás tomando matemáticas, ciencias, artes del lenguaje, humanidades, etc.
  • Tiende a aprender temas de programación, pero en una burbuja aislada en lugar de aprender cómo se entrelazan las cosas (por ejemplo: no aprende sobre bases de datos en su clase de Java).
  • Tiende a no utilizar herramientas y técnicas estándar de la industria (control de fuente, pruebas unitarias, etc.)
  • Obtiene muy pocos comentarios sobre su código.

En un programa como el nuestro (no todos los bootcamps son iguales) su cohorte no excederá de 16 estudiantes en tamaño y tenemos una proporción de 1:10 instructor / estudiante. Pasa la mayor parte de su tiempo escribiendo código con instructores disponibles. En cualquier momento puede obtener comentarios sobre su código, ayudar con un problema, y ​​hay una tonelada métrica de discusión ad-hoc sobre los pros y los contras de varias técnicas, con ejemplos de proyectos reales de la industria.

Entonces, más horas, más atención personal y un 100% de enfoque en las habilidades requeridas para ingresar a la fuerza laboral como desarrollador junior.

No diría “engañándose a sí mismo”, pero querrá comprender la diferencia entre los enfoques. Las escuelas tienen un plan de estudios conocido, acreditado, de sopa de nueces, sus profesores y compañeros de estudios son su futura red profesional y proporcionan motivación para hacer las cosas, y un título es una cantidad conocida para que los empleadores acepten.

Todo lo demás dice que puedes resolver todo esto por ti mismo. Puedes decidir si vas a aprender sobre programación concurrente o generación de código. Puedes esforzarte para ver una conferencia más en lugar de salir con tus amigos. Y puede descubrir cómo venderse a los empleadores.

No diré que una educación de cuatro años es necesariamente mejor , porque probablemente no sea para todos los estudiantes. Pero el enfoque de educación “80/20” supone que poder hacer el 80% de un trabajo es lo suficientemente cercano, y generalmente no lo es.

No los llamaría pump-and-dump, pero las estadísticas que he visto sugieren que las personas que se benefician de los MOOC ya tienen una educación sólida. Además, algunos MOOC son mejores que otros, y los MOOC diferentes rara vez se ajustan para coincidir en temas, notación, nivel general, etc. En un programa formal de CS, los cursos coinciden mucho mejor y los proyectos son a menudo más profundos.

La Ley de promedios no se aplica al individuo. Independientemente de la fuente, obtendrás de tu educación lo que pones en ella. El factor más crítico al que alude su amigo es cuán completo y completo es su plan de estudios. Si está diseñando su propio curso de estudio, mire a los demás y mire los bloques de construcción. Debería ver una amplitud y profundidad de temas. Hay una razón para ellos y estarías cometiendo un error al rechazar algún tema solo porque no puedes ver cómo ayuda. Por qué no sabes PUEDE lastimarte.

More Interesting

¿Qué libros de arquitectura y diseño de software recomienda Regunath Balasubramanian para un ingeniero de software de nivel medio?

¿Cómo los juegos como FIFA generan comentarios basados ​​en el juego en tiempo real?

Como ingeniero de software, ¿cuál es la mejor especialización secundaria además de mi estudio de software?

¿Puede una pasantía de gestión de patrimonio en Morgan Stanley ayudarme en mi futura carrera de ingeniería de software? ¿Aprenderé cosas sobre negocios que podrían ayudarme más tarde?

Empleos y carreras en Bangalore: ¿Cuáles son los pros y los contras de unirse a una startup como desarrollador de software experimentado?

¿Es cierto que el tiempo ahorrado al desarrollar en lenguajes de alto nivel se desperdicia luego en el ajuste del rendimiento de la aplicación?

¿Ir más rápido que Tornado?

¿En qué se diferencian los algoritmos estudiados en los libros de texto de los del mundo real que utilizan las compañías de software como Google, Amazon, Uber, etc.?

¿Qué es la arquitectura orientada a servicios? ¿Cómo es eso diferente de la virtualización?

¿Qué es un buen software para la verificación de modelos?

¿Qué lenguaje de programación debo aprender para comenzar a codificar una aplicación como Instagram o WhatsApp?

¿Qspiders es el mejor instituto para una formación más reciente en el campo de pruebas de software?

¿Qué marcos e idiomas se usaron para desarrollar las siguientes aplicaciones (full stack) y por qué: 1) WhatsApp 2) Viber?

¿Un programador tiene que poder codificar múltiples líneas de código sin ejecutarlas?

Soy un desarrollador de software autodidacta de África con 1 año de experiencia laboral en los Estados Unidos. ¿Qué posibilidades tengo de migrar a Canadá, Estados Unidos, Australia o Europa?