¿La regla de las 10.000 horas es cierta para los programadores?

No, es más probable que la regla 10,000 no sea una regla sólida y que la poca validez que tiene no se aplique a los programadores.

¿Cuál es la regla?

Malcom Gladwell, en su libro Outliers, afirmó que todo lo que se necesita son 10,000 horas de práctica para convertirse en algo bueno.

Desde entonces ha afirmado que su punto ha sido simplificado en exceso. Dijo en un chat de Reddit (fuente: Hola, soy Malcolm Gladwell, autor de The Tipping Point, Blink, Outliers y, más recientemente, David y Goliath: Underdogs, Misfits y The Art of Battling Giants. ¡Pregúntame lo que sea! • / r / IAmA) que:

  • La regla de las 10.000 horas no se aplica a los deportes, aparentemente porque el éxito en los deportes es más genético en su opinión.
  • La regla de las 10.000 horas es necesaria pero no suficiente para el éxito, porque no compensa la falta de talento.

¿Gladwell tiene razón?

Probablemente no. Sus ejemplos parecían elegidos a mano entre las celebridades. ¿Quién puede decir por qué Bill Gates o los Beatles tienen éxito? Probablemente sea más suerte o éxito empresarial que grandeza personal.

Además, los estudios no solo no confirman su hipótesis original, sino que ni siquiera confirman su corrección de esa hipótesis.

Un nuevo estudio de Princeton publicado en Nuevo estudio destruye la regla de las 10,000 horas de Malcolm Gladwell que ahora afirma que la práctica solo hace una diferencia general del 12% en el resultado, que incluye:

  • Juegos – 26% de diferencia debido a la práctica.
  • música – 21% de diferencia
  • Deportes – 18% de diferencia.
  • educación – 4% de diferencia
  • Profesiones – 1% de diferencia.

La diferencia se explica por el hecho de que los juegos, la música y los deportes tienen una definición estable basada en reglas, lo que hace que la práctica sea más relevante para ellos. Además, los juegos y los deportes son competitivos, y los tres se dan como un rendimiento en tiempo real.

Esas cualidades no se encuentran en la educación y las profesiones, que casi no mostraron mejoras debido a la práctica en el estudio de Princeton.

La correlación no es causalidad

Una falla adicional en la hipótesis de Gladwell es que la correlación no es causación. Incluso si el aumento de la práctica se correlaciona con el éxito en la música o los deportes, la causa puede ser que el jugador tenía más talento para empezar.

Dado que el jugador creía en su propio talento y probabilidad de éxito eventual, estaban mejor motivados para practicar más. Entonces, el talento puede estar causando práctica, en lugar de la práctica causando talento.

¿La práctica hace a los programadores perfectos?

La programación es una profesión, que lo ubicaría en la categoría de mejora del 1% debido a la práctica en el estudio de Princeton. Por lo tanto, esperamos que los programadores no muestren casi ninguna mejora visible debido a la práctica.

Además, las diferencias en la capacidad de programación se deben probablemente a las diferencias en IQ en matemáticas y pensamiento lógico. IQ es una cantidad que varía poco durante toda la vida y no se puede mejorar con la práctica.

Por lo tanto, la conclusión más probable es que la práctica es irrelevante para los programadores. Los programadores no actúan como músicos ni compiten como atletas, sino que hacen un producto. Los programadores construyen software donde la competencia y el rendimiento son irrelevantes. Toman tanto tiempo y esfuerzo como necesitan para el éxito.

Hacking vs Programación

Primero, las habilidades necesarias para piratear un sitio web no son las mismas que para escribir código. En los niveles más altos de piratería, ser absolutamente capaz de programar y entender realmente cómo funcionan los sistemas informáticos a nivel del lenguaje de máquina. Pero eso solo es necesario si quieres desarrollar tus propias hazañas. Si todo lo que desea es utilizar las vulnerabilidades existentes para ingresar en un sitio, entonces es tan simple como apuntar y hacer clic. Una gran cantidad de exploits, una vez descubiertos, se destilan y se empaquetan en herramientas existentes de penetración de tipo punto y clic, como metasploit. En ese momento, cualquier persona con un poco de conocimiento técnico puede usarlo.

Obtención de novato a experto en 2 años.

En su pregunta, mencionó a este “teórico de 15 años que ha estado programando durante 2 años”. Ahora, ¿es posible pasar de novato a experto dentro de 2 años? Suponiendo que la regla de las 10.000 horas es en promedio correcta, creo que es posible, aunque muy improbable. Suponiendo que tengamos un niño de 13 años excepcionalmente dedicado y talentoso, si ella pasó 12 horas al día, 365 días al año durante 2 años, dedicándose a dominar la programación / piratería, los requisitos de tiempo funcionaron correctamente. 2 * 365 * 12 = 8760. Cuando tenía 12 años, ciertamente tenía más tiempo libre del que sabía con qué hacer. Por lo tanto, pasar 12 horas al día en una computadora, especialmente si te apasiona, no parece estar fuera de lo posible.

Regla de 10.000 horas en relación con la programación.

Ahora hay algunas estipulaciones a la regla de 10,000 horas. No es una garantía de que si pasara 10.000 horas, se convierta en un experto de clase mundial. Estas son las condiciones que deben cumplirse para que la regla de las 10.000 horas se aplique posiblemente:

  1. Promedio : en promedio, se necesitan 10,000 horas para alcanzar el nivel de experto de clase mundial en cualquier campo. No significa que te llevará exactamente 10,000 horas.
  2. Aprendizaje consciente y dirigido : solo se llega al nivel experto si pasa 10.000 horas haciendo un aprendizaje dirigido. Eso significa que no estás repitiendo los mismos errores sin pensar una y otra vez. Hay muchas personas que pasaron décadas en el mismo trabajo y no han mejorado de manera considerable. Debe estar pensando activamente sobre los errores que cometió, y cómo mejorar y mejorar.
  3. Bucle de retroalimentación corto : el bucle de retroalimentación cuando practicas debe ser corto. Esto es cierto para la programación, cuando empiezas por primera vez. Como principiante, los tipos de errores que usted comete son simples y los IDE o el compilador los pueden detectar fácilmente. El bucle de retroalimentación para los errores sintácticos como los puntos y comas que faltan es instantáneo. Pero a medida que progresa como programador y va más allá de cosas simples como punteros nulos y errores de sintaxis, el ciclo de retroalimentación se alarga. Como desarrollador experimentado, le preocupa más estructurar su programa de una manera flexible y robusta que resista la prueba del tiempo y la prueba de los requisitos futuros. Aquí, el bucle de retroalimentación es un poco más largo. Es posible que no se dé cuenta de que su diseño es subóptimo hasta que su jefe acuda a usted con algún requisito que juró sobre la tumba de su madre, que solo duraría 6 meses “nunca sucedería”.
  4. La retroalimentación debe indicarle cómo mejorar: en el mejor de los casos, la retroalimentación que obtenga apuntará claramente hacia el camino correcto a seguir para mejorar y mejorar. Cuando eres un programador principiante, este es ciertamente el caso. Cuando el IDE le dice que falta un punto y coma, qué hacer a continuación es bastante obvio. Cuando eres un desarrollador senior, te encuentras cara a cara con un requisito de “imposible, nunca sucederá” 6 meses después, lo que deberías haber hecho de forma diferente hace 6 meses podría no ser tan obvio, incluso en retrospectiva. Porque oye, tomaste la mejor decisión que pudiste, dado lo que sabías en ese momento. Usted tomó una serie de decisiones razonables. Y, sin embargo, aquí está, frente a un problema que su diseño casi no está calificado para resolver.

Entonces, ¿cómo mejorar una vez que se movió más allá de las cosas simples? Una de las formas más efectivas que he encontrado es encontrar una comunidad, un mentor y preguntar a las personas mayores que te rodean. El tipo de desafíos que enfrenta y los errores que probablemente cometa, rara vez son únicos. Es por eso que tenemos cosas como patrones de diseño, que representan las mejores soluciones de su clase para problemas comunes que todo desarrollador enfrentará en algún momento. Sé humilde y vulnerable, y busca y pide ayuda a otros. Si se encuentra en un entorno de trabajo, comuníquese con los líderes técnicos superiores desde el principio del proceso de diseño para elegir su cerebro e intente comprender el espacio del problema. Su experiencia es más efectiva cuando se aplica en una etapa temprana en el proceso de desarrollo. Es fácil cambiar una decisión cuando no se ha escrito ningún código, y todo esto es solo un pensamiento en tu cabeza. Es mucho más difícil y costoso cuando se ha escrito todo el código, y otros 10 equipos ya están usando el marco que ha puesto ahí.

Desafortunadamente, esta idea ha sido abusada por los medios de comunicación. Han tomado la idea de que se necesitan 10.000 horas para dominar una habilidad y ser el mejor del mundo en algo, y se abstuvieron de afirmar que se necesitan 10.000 horas de práctica para ser bueno en algo. Sí, siempre habrá un segmento especial de personas que naturalmente sobresalen en algo, como la programación. Pero eso no significa que debas rechazar la idea de convertirte en programador solo porque te dicen que necesitas 10,000 horas de práctica para ingresar al campo. Simplemente no es verdad.

Aquí están los hechos.

Probablemente no se convertirá en uno de los mejores programadores del mundo (uno de los 5-10 programadores más importantes de los 18.2 millones de desarrolladores en el mundo). Sé que no lo soy. Y he pasado 10.000 horas (5 años) trabajando como programador en la industria. Habiendo dicho eso, me gustaría creer que soy bastante bueno en programación.

Pensar que necesita 10,000 horas de práctica relevante antes de poder comenzar una carrera en programación no tiene ningún sentido, y no se relaciona con cómo funciona realmente el mundo real.

Este es el por qué:

Existe una desconexión masiva entre lo que se enseña en las universidades y lo que se hace a diario en las startups.

Esto es cierto en cualquier campo. Pero específico para los graduados en Ciencias de la Computación, si bien han pasado tiempo programando y trabajando en conceptos teóricos, el código que han escrito está bastante alejado de lo que es práctico en el mundo real de hoy. Por lo tanto, para los puestos de nivel de entrada, 10,000 horas ciertamente no es un requisito.

Entonces, ¿cuánto tiempo se tarda en convertirse en un desarrollador de nivel de entrada? 10,000 horas? 5,000? 2,000? 1,000? 500?

La respuesta será diferente para todos, pero su objetivo no debería ser alcanzar el estado de experto y tener todas las respuestas. Como principiante, enfrentará desafíos que no puede resolver por sí mismo. No cuente las horas, esperando que algo cambie mágicamente después de un cierto número de ellas.

En su lugar, centrarse en lo que realmente importa.

Durante el proceso de aprendizaje, te darás cuenta de que todo es figurable. Dominarás el arte de las búsquedas de Google y te darás cuenta de que la mayoría de las personas han enfrentado problemas similares. Lo entenderás lo suficiente como para poder enseñarte nuevos conceptos sobre la marcha. Aprender lo suficiente sobre la codificación para autocorregirte y volver a encarrilarte cuando surgen problemas es una hazaña difícil, pero no es algo que llevará 10.000 horas.

Descubrirá que está listo para cumplir con las Expectativas de un Desarrollador Junior poco después de convertirse en un Desarrollador autosuficiente Quién es capaz de construir cosas por su cuenta. No cuentes las horas, no importan.

Si está interesado en profundizar un poco más en esto, puede consultar una publicación del blog que escribí: Por qué ningún desarrollador debe contar hasta las 10,000 horas.

Si le gustó mi respuesta, significaría mucho para mí si la votara, presionando el botón azul claro de abajo.

¿La regla de 10,000 horas funciona?

Sí, lo hace absolutamente, si lo usas / aplicas correctamente.

Ver, la regla de 10,000 horas es algo así como “esperanza de vida de 70”. Si un país tiene una esperanza de vida de 70 años, ¿morirían todos exactamente en sus 70 años? No. Es solo que la mayoría de las personas vivirían alrededor de los 70 años. Solo un pequeño porcentaje realmente moriría exactamente a los 70; La mayoría fallecería a los 60-80 años, dice.

Uno realmente debería ver las 10.000 horas de la misma manera. Por cierto, esta es la razón por la que realmente odio que la gente haga preguntas como “¿qué pasa con 8,000 horas?” Si aplicas las mismas lógicas que la esperanza de vida o el ingreso medio o cualquier otro tipo de conclusión estadística, dirías: “bueno, ya sabes, 8,000 son aproximadamente 10,000; están en la parte de la pelota”. Además, no hay nada mágico en el número 10,000. Es el estadio de béisbol. La mayoría de las personas adquirirían experiencia en aproximadamente 8000-12000 horas, supongo. Además, para un individuo, el progreso sería continuo. Nadie pasa repentinamente de un capullo a una mariposa exactamente a las 10,000 horas.

En segundo lugar, y esto es muy importante, aproximadamente 10,000 horas de práctica te brindan experiencia, no genio . En otras palabras, usted sería un profesional competente después de 10,000 horas en lugar de Beethoven de su profesión. La primera sugerencia de 10.000 horas provino de un estudio del Conservatorio Oberlin. Cuando se detiene y piensa, los miembros de élite de dicha escuela (aquellos que acumularon 10,000 horas y se dice que poseen potencial profesional) ¡todavía eran estudiantes! Entonces, 10,000 horas no te hacen, dice, Tovard Linus. Sin embargo, probablemente te convertiría en uno de los miles de contribuyentes a Linux.

¿Se aplican 10,000 horas a la programación?

Sí mucho así.

En primer lugar, las investigaciones demostraron que las habilidades de programación se estabilizaron en aproximadamente 4 años de experiencia. Si lees esto al revés, en aproximadamente 4 años de experiencia profesional, los desarrolladores de software ya no sienten la necesidad de mejorar. Se han vuelto competentes (es decir, han adquirido experiencia) para manejar la mayoría de las situaciones. El sistema de promoción industrial también lo confirma: la mayoría de las empresas tienen un nivel de promoción orientado a 3-5 años de experiencia (por ejemplo, en GE, que sería la banda LPB; en la mayoría de las compañías de software, SDEII).

En segundo lugar, si toma ese número (3-5 años de experiencia) y lo agrega a la carrera universitaria (cuando la mayoría se introdujo en la programación), ¿qué tiene? 6-9 años de prácticas de programación. Recuerde: los jóvenes tienden a pasar más tiempo en el trabajo (ya que, por lo general, todavía no tienen familia). Ahora, vuelva a revisar la regla de las 10.000 horas: esto generalmente se traduce a aproximadamente 10 años. ¡6-9 años de mayor nivel de práctica están dentro de 10 años!

Por lo tanto, la regla de 10,000 horas se aplica muy bien al desarrollo de software.

¿Qué pasa con los 15 años de edad con 2 años de experiencia en el sistema de piratería?

Primero, la piratería (o, en varios grupos, el craqueo) es diferente del desarrollo. Por lo tanto, decir 2 años de experiencia en programación haciendo pirateo es como decir 2 años de béisbol jugando fútbol. Para hacer las cosas más complicadas, un joven con tanta experiencia en programación tiende a tener mucha experiencia “administrativa” (experiencia en sistemas de ajustes). Por lo tanto, un niño de 15 años puede tener 4 años o más de “juego” en su haber.

Segundo, y esto es mucho más importante, la piratería se trata de encontrar el lugar más fácil para atacar; El desarrollo consiste en cubrir los puntos más difíciles. En otras palabras, cuando estoy pirateando su empresa, no voy a los mejores componentes escritos y desarrollados; No, iré a los más débiles, escrito por un interno sin experiencia. Para subir la apuesta, el pirateo generalmente implica ingeniería social (es decir, engañar a los administradores / usuarios para que hagan algo estúpido). En ese caso, cuando ataco a su compañía, no voy al arquitecto del sistema para tratar de obtener su credencial; no no no, me gustaría ir a la persona de servicio al cliente recién contratada (ooh, ¿esa persona acaba de ser regañada por no estar ansiosa por ayudar? ¡Dorada!). Tan pronto como una persona inexperta (y estúpida) se engancha, estoy en.

Por último, los sitios web del gobierno (y los proyectos) generalmente son realizados por contratistas y mantenidos por un grupo diferente. Esto significa que sus puntos más débiles son más débiles que el promedio de la industria. En una empresa, muchas políticas y herramientas ayudan a establecer el nivel básico de competencia; además, con los equipos de desarrollo y soporte bajo la misma entidad, la transferencia de conocimiento y la capacitación son mucho más fáciles. En cambio, el gobierno contrataría a una parte para construir el sistema; para el momento en que se haga, probablemente la otra parte esté en el cargo ahora, por lo que otra persona hace el mantenimiento. Hay mucha pérdida de conocimiento y contrataciones irregulares (son contratistas, después de todo).

Así que, en conclusión, tenemos un atacante altamente inteligente con experiencia decente y un defensor de baja rotación, con la experiencia más barata posible, el precio más bajo posible. ¿Qué esperas?

¿Qué hay de 20 años de edad que no pueden codificar?

Conozco a muchas personas que no comienzan a codificar hasta la universidad. 20 sonidos sobre la derecha. ¿Entonces, cuál es el problema?

Conclusión : se necesita al menos media década para adquirir experiencia en programación; Se necesita 1 idiota para abrir agujeros de seguridad. Triste historia de nuestra situación.

10000 horas? Suena no mucho en absoluto. Es un poco menos de 5 años de trabajo a tiempo completo. De hecho, si estudió bien en su programa BS + MS, ya tiene 10000 horas de experiencia, lo que le da un boleto de entrada al mundo de la programación.

Verás, la gente a menudo tiene ideas erróneas acerca de la programación. Piensan que un joven nerd que domina un lenguaje sofisticado como PHP o Ruby es un maestro programador. No lo llamaría así. El buen programador es un ingeniero, que tiene experiencia en teoría de CS, conoce varias áreas en el campo (bases de datos, sistema operativo, red, …), entiende cómo funciona el hardware, sabe cómo escribir y mantener código sólido y, por supuesto, pocos lenguajes de programación – desde C a Python / Ruby. Esta es una persona que escribe un código sólido que no se romperá en un niño de 15 años.

  1. ¿Es este 10000 una regla válida? Me refiero a un valor estadístico válido?
    “Sólo creo en las estadísticas que me curé” – Winston S. Churchill
  2. Incluso si fuera cierto, habría excepciones.
    Hay niños que comienzan a leer a los 2. La mayoría de nosotros necesitamos algunos años más. Algunos incluso necesitan el doble de tiempo que la mayoría de nosotros. Algunas personas lo hacen mejor que otras.
  3. Esto simplemente no es una persona haciendo la cosa.
    Las personas que quieren alcanzar objetivos suelen trabajar en equipo. Algunos de estos grupos de hackers son incluso financiados por corporaciones o gobiernos. Algunos grupos son mejores que otros.
  4. La gente está usando herramientas. No sólo “manos desnudas”.
    Dichas herramientas son computadoras, bases de datos, conocimientos, herramientas para desarmar dispositivos y chips … Algunas herramientas son mejores que otras.
  5. Los buenos maestros también hacen una gran diferencia.

Una cita de Quora:

SIEMPRE hay alguien que gana más dinero que usted, está más en forma, tiene un cónyuge más atractivo, tiene una vida más fácil, les pasan cosas buenas. Generalmente más de uno.

La respuesta de Skyler Irvine a ¿Cuál es la cosa más difícil de aprender y aceptar acerca de la vida?

Simplemente encuentre aquello en lo que es bueno y lo que le gusta hacer, y reúna la experiencia que los demás le piden.

Por lo que entiendo, alguien planteó la idea de que se necesitan 10.000 horas para convertirse en un maestro de clase mundial en cualquier cosa. Eso es 10,000 horas de intentar mejorar continuamente, no 10,000 horas de solo hacerlo. Esta figura no tiene mucha justificación detrás de ella. Fue sacado un poco de un sombrero. Pero es cierto que las mejores personas en cualquier cosa tienden a pasar bastante tiempo perfeccionando sus habilidades.

Puede llegar al punto de poder escribir programas con una tecnología en particular bastante bien en mucho menos que esto. Digamos una o doscientas horas de esfuerzo enfocado, pero va a variar enormemente de persona a persona.

Muchos cursos universitarios permiten que las personas se gradúen sin hacer tanta programación. Los cursos son más teóricos. Se necesita práctica real para poder programar; Tienes que estar intentando escribir programas regularmente durante bastante tiempo.

Probablemente es lo mismo con la mayoría de las cosas. Apuesto a que muchos de los graduados en química no podrían realizar la síntesis más simple si se les dejara enteramente a sus propios dispositivos. La diferencia es que los cursos de química incluyen sesiones de práctica grupal, pero no hay práctica grupal con programación. O si lo hay, probablemente no funcione tan bien como si estuviera solo con su computadora.

Una encuesta de graduados en biología del MIT encontró una vez que la mayoría de ellos pensó erróneamente que la masa seca de una planta proviene del suelo. Estas personas probablemente, supongo, no eran muy apasionadas con la biología de las plantas, pero pudieron estudiar y aprobar exámenes.

Algunos estudios han encontrado que los disléxicos a menudo nunca toman la lectura de manera seria, mientras que las personas que terminan siendo capaces de deletrear bien a menudo comienzan a leer regularmente a cierta edad, por diversión. Terminan acumulando cientos o miles de horas de lectura, por lo que se familiarizan con las palabras sin realmente intentarlo.

Es así con la programación. Puedes tomar un curso y hacer todas tus tareas a regañadientes, y al final no eres muy bueno para programar y te sientes totalmente perdido cuando tienes que escribir un programa. Pero otras personas lo hacen porque están inspiradas en la idea de programar una máquina, y en poco tiempo se vuelven adictas a ella. Registran cientos de horas porque a menudo apenas pueden dejarlo.

Por supuesto, también hay un montón de personas entre los dos extremos.

Los grados a veces pueden tener un efecto contraproducente en las personas. Incluso Einstein dijo que apenas podía soportar pensar en física durante todo un año después de graduarse.

Si bien es posible que una persona se gradúe en inglés o en historia sin que se haga evidente que no es (todavía) muy buena, la programación es muy práctica, por lo que si eres un mal programador, tus empleadores lo notarán y probablemente lo notarás. Eso no significa que todavía no puedas mejorar.

Estoy seguro de que he invertido más de 10,000 horas, en el transcurso de unos 11 a 12 años, comenzando cuando tenía unos 10 años. Puedes ser un gran programador sin tener que dedicar una década más o menos. El principal beneficio que diría que el tiempo te da es la velocidad y la automaticidad. Hay una serie de habilidades que tengo que solo tardaron años en adquirirlas (en las velocidades que las tengo). Tal vez 4-5 para la mayoría de ellos, diría.

Puedo escribir a 100 palabras por minuto, y no solo no necesito mirar el teclado, sino que tampoco necesito mirar la pantalla. No necesito pensar en las palabras. Sólo se escriben ellos mismos. Me siento muy cómodo con un número de IDE y sintaxis comunes, por lo que, hasta cierto punto, puedo codificar a ciegas (y ocasionalmente hacerlo si estoy cansado), y luego modificar los errores menores que cometí. La capacidad de buscar y obtener respuestas instantáneas y saber cómo integrarlos en algo en un idioma que no conoce es útil, por ejemplo, desde Stack Overflow o PHP libs. Aún mejor es la capacidad de evaluar conscientemente lo que hace el código que está introduciendo o escribiendo para poder integrarlo en su conocimiento y aprender un idioma en tiempo real. Aprender idiomas en general no es algo en lo que piense, solo escribo código y con el tiempo se vuelve más rápido. Realmente no tengo que pensar mucho en lo que hago. La comodidad en Linux es otra. Puedo navegarlo sin pensar realmente en los comandos en su mayor parte, y en general solo tengo un marco muy claro de permisos y carpetas y shell scripts, etc. Es como caminar en una casa oscura.

Entonces, lo que yo diría es que dedicar tanto tiempo no necesariamente te hará un buen programador. Mejoro conscientemente de vez en cuando para escribir mejor código (es decir, usar más comentarios, hacer mejores métodos, usar más objetos, mejores copias de seguridad, etc.) y sucede muy rápidamente. Eso es lo que te hace un mejor programador. Mejora consciente. Pero el tiempo te dará velocidad, incluso si no te dará un gran código. Así que puedo arrancar una cantidad ridícula de código cuando sea necesario y construir estructuras y sistemas en un día o así, lo que podría llevar semanas a un nuevo programador.

Pero más allá de cierto punto, tal vez unas 6,000 horas o más, si tuviera que adivinar, diría que cualquier mejora adicional realmente proviene de una mejora consciente. Hay un cierto nivel al que puedes llegar solo porque tienes que hacerlo, pero más allá de eso debes pensar en los cambios que debes hacer y forzarte a adquirir buenos hábitos. Ir a la universidad puede ayudarte con esto hasta cierto punto, pero realmente necesitas querer mejorar.

Gran pregunta

En primer lugar, la regla de las 10.000 horas es un poco más como una idea abstracta en lugar de un número real de horas de práctica que estoy tratando de lograr. La idea para mí es, básicamente, que lleva mucho tiempo convertirse en un profesional en algo. Si quieres ser el mejor, TOMA TIEMPO. No hay una vía rápida. No hay forma fácil de llegar a la cima. Para citar a la princesa prometida, “cualquiera que diga algo diferente está vendiendo algo”.

Entonces, ¿es cierto para los programadores? ABSOLUTAMENTE. Hay cosas que han hecho que aprender a programar sea más accesible, pero eso no significa que sea más fácil. Por ejemplo, hay más cursos de programación en línea a precios económicos y / o gratuitos de los que puedes cambiar. Simplemente vaya a YouTube, escriba lo que desea aprender y comience a ver. Esto no significa que serás un profesional al final de un video de 30 minutos. La regla de las 10.000 horas todavía se aplica. Tienes que tomar lo que has aprendido y aplicarlo … una y otra y otra vez. Entonces tienes que aprender el siguiente concepto, y el siguiente, y así sucesivamente.

Además, Coding Boot Camp ha creado la ilusión de que puedes ser un profesional en 6 meses. Mientras está dedicando muchas de sus 10,000 horas durante esos 6 meses, aún tendrá tiempo para hacerlo cuando termine. Es posible que haya establecido una buena base, pero carece de la experiencia del mundo real necesaria para ser realmente exitoso.

Los salarios de Ingeniería de Software tienen una tendencia de $ 116k / año en YouWorth. Aquellos que hayan invertido sus 10,000 horas estarán en el extremo superior de esta tendencia. Saber un idioma o dos o simplemente obtener algo de experiencia en codificación no es suficiente. Ganar tus 10,000 horas es un proceso largo, pero al final vale la pena.

Salario de Ingeniería de Software en Estados Unidos

La información salarial anterior es de YouWorth. YouWorth es una aplicación móvil gratuita para iOS y Android que rastrea los datos salariales de los programadores. No solo soy un campeón para el producto, sino que lo uso yo mismo. La aplicación le permite a cualquiera importar habilidades de LinkedIn y rastrear el valor de su mercado laboral a lo largo del tiempo. También me notifican si hay un cambio en las habilidades que están siendo observadas.

Para el registro, 10,000 horas son aproximadamente 417 días de 24 horas seguidas. Solo quería poner en perspectiva cuánto tiempo es. 

Me sorprende que la gente se haya enamorado perdidamente de esta mierda de 10.000 horas. Pienso muy bien de Malcolm Gladwell y sus libros, pero esta observación suya no alcanza la marca.

Sí, 10,000 horas es el tiempo promedio que toma, independientemente de si se trata de la física cuántica o de la recolección de la taza de té. Esto NO significa que todos los campos de práctica sean aproximadamente equivalentes en dificultad. Y dice NADA sobre las curvas de aprendizaje humano.

Significa solo una cosa: “No consideramos que una persona sea un experto en su campo a menos que haya estado en esto durante aproximadamente cinco años”. Esto tiene que ver con la definición de la palabra experto (o maestro) y eso es todo. No importa cuán fácil o difícil sea lograr algo, si alguien lo ha estado haciendo durante uno o dos años, no lo llamaremos un experto. Pero habría muy pocos expertos si les exigiéramos que tuvieran décadas de experiencia.

Así que olvídate de lo de las 10.000 horas. Ese es un promedio que se usa para definir una palabra, y no tiene nada que ver con tus habilidades o con la dificultad de aprender algo.

La correlación PS no implica causalidad. ¿Malcolm afirmaría que un volante de 3 radios hace que un automóvil vaya mucho más rápido? (La mayoría de los Ferraris, Lamborghinis y Porsches tienen volantes de 3 radios).

¿Tarda 10000 horas en ingresar a la programación, o alguna otra habilidad que quiera aprender? No. La regla de 10000 horas es para el dominio de la habilidad, no la calificación para ingresar a la profesión.

Esta regla ha sido abusada y mal aplicada en muchos lugares. Significa que tomará 10,000 horas de práctica y aprendizaje dedicados para lograr el dominio. El solo hecho de aparecer en su trabajo durante cinco años y agregar funciones y corregir errores en el sistema de su compañía no lo convierte en un maestro.

La mayoría de los desarrolladores nunca se convierten en maestros del desarrollo porque no estudian y aprenden una vez que están empleados. Eso no significa que no sean desarrolladores, o que no sean valiosos para su empleador, simplemente significa que son desarrolladores típicos. Es posible que sepan mucho sobre el software y las herramientas que usan a diario, pero ese es el alcance de su conocimiento.

Una persona que ha alcanzado el dominio tiene conocimientos profundos y amplios sobre el desarrollo de software, las herramientas, los sistemas y la teoría subyacente. Por ejemplo, trabajo en el mundo Java / JVM. Me horroriza la cantidad de programadores de Java que nunca han leído la Especificación del lenguaje Java. Han estado trabajando con Java durante 5-10 años y nunca lo han roto una vez. Lo mismo ocurre con sus conocimientos de informática básica. Puede haber una clase sobre algoritmos y otra sobre estructuras de datos, pero no han pensado en esos temas, no los han revisado ni han aprendido algo nuevo sobre el tema desde entonces. Convertirse en un maestro es un proceso que requiere intención, aplicación y trabajo dedicado.

En cuanto a los genios y prodigios, también requieren horas y horas de práctica. Mi ejemplo favorito es Motzart. Escribió su primera composición a muy temprana edad. Pero eso no es algo que escuchemos hoy. Escuchamos la música que escribió después de años de práctica y entrenamiento. Los genios pueden requerir un poco menos de tiempo. Pero su rasgo distintivo es a menudo las alturas que logran.

Y la realidad es que no eres un genio. En el mejor de los casos, usted está ligeramente por encima del promedio. Entonces, si realmente desea lograr el dominio, deje de contentarse con agregar otro mensaje SOAP a su servicio B to B (como lo ha estado haciendo durante el último año) y elija un tema, aprenda sobre él y aplíquelo. Repetir.

No soy un programador, así que ni siquiera voy a tratar de hablar sobre la parte de la pregunta sobre la codificación y la piratería, pero leo el trabajo de Anders Ericsson sobre la experiencia porque sabía que la mayoría de las personas sin duda hacen 10 000 horas de práctica en su profesión. después de 10 a 15 años de carrera, la mayoría no será de clase mundial en sus trabajos, así que sabía que algo no estaba sumando.

Por lo que he leído, incluso el Dr. Ericsson no cree 10k horas en el número mágico para convertirse en algo bueno (Malcom Gladwell acaba de sacar el número 10k de uno de los estudios de Ericsson para su libro Outliers).

Medición objetiva del desempeño

Ericsson en realidad advierte a las personas que no utilicen el número de horas de práctica como principio guía para mejorar una habilidad. Su investigación sobre la experiencia se aplica principalmente a ciertas profesiones / actividades en las que el rendimiento se mide objetivamente, por ejemplo, deportes, ajedrez, música, etc.

Supongo que ser un programador es como cualquier otro trabajo en el que sus habilidades blandas tienen que ser tan fuertes como sus habilidades duras, lo que dificultaría que cualquiera pueda medir su desempeño de manera objetiva.

Calidad> Cantidad

Ericsson ha mencionado muchas veces que el número de horas de práctica por sí solo es irrelevante para la experiencia, se trata más de una práctica deliberada, que es una combinación de obtener tutoría de clase mundial con un régimen de práctica intensa en el que aprendes de tus errores a través de rápidos bucles de retroalimentación y estás practicando al límite de tus habilidades todo el tiempo. Los jugadores de élite medirán objetivamente sus horarios de entrenamiento tratando de alcanzar un objetivo determinado y luego intentarán romper ese objetivo en la sesión subsiguiente.

Al final, es importante recordar que los artistas de clase mundial han acumulado miles de horas de práctica deliberada.

Es posible que hayas acumulado 50,000 horas de práctica y aún eres mediocre, pero es mucho más raro encontrar a alguien que haya acumulado 50,000 horas de práctica deliberada que no sea realmente bueno en sus habilidades.

(Fuente: Get Creative: Use la práctica deliberada para crear un rendimiento de clase mundial | SeytLines)

Una vez más, creo que será difícil para la mayoría de los individuos ser guiados por programadores de clase mundial y supongo que no todos están programando al límite de sus capacidades todos los días.

Determinar si estás haciendo práctica deliberada

(Fuente: práctica deliberada | Sandarac)

Aquí hay una gran entrevista con el Dr. Ericsson y Larry King donde explica la práctica deliberada.

Otras cosas a considerar incluyen:

  • El uso de anécdotas de Gladwell en su libro, por ejemplo: Bill Gates y Beatles, etc. Las anécdotas son agradables, pero no es ciencia.
  • Suerte y otros factores que contribuyen al éxito / buen desempeño. No estoy diciendo que los Beatles o Bill Gates no hicieron el trabajo duro, pero su éxito también involucra algunos elementos de suerte. Esto también puede aplicarse a la programación también. Si descubres un interés en la programación a los 12 años en comparación con los 19 años (en la universidad), la persona más joven definitivamente tendrá una ventaja significativa cuando se trata de acumular práctica.
  • Aprender una habilidad a una edad temprana puede darle ciertas ventajas al niño. En el libro de Ericsson, Pico [1]: Ericsson da un buen ejemplo sobre el tono perfecto. 1 de cada 10,000 personas tiene el tono perfecto, pero si le enseña a los niños un instrumento musical antes de los 6/7 años, ese niño también desarrollará el tono perfecto.
  • Mucha gente dice que debería trabajar en sus fortalezas en lugar de en sus debilidades, pero los estudios de Ericsson muestran que los de mejor desempeño intentan eliminar sus debilidades de manera deliberada para que puedan alcanzar el siguiente nivel de desempeño.
  • La pasión y la motivación son importantes: el trabajo de Ericsson sobre la experiencia ha demostrado que la mayoría de las personas realmente no disfrutan de la práctica deliberada porque nunca están en su zona de confort, por lo que realmente necesitan estar motivadas y apasionadas por lo que están haciendo para perseverar en los tiempos difíciles. (que es casi todos los días).
  • Aunque la práctica deliberada está destinada a un grupo selecto de habilidades, puede aplicarla a la programación. Puede que no te conviertas en una clase mundial en 10k horas, pero ciertamente serás mucho mejor que lo que eres hoy. La clave para el rendimiento máximo, según Ericsson, no se trata de las horas de estudio, sino de su mentalidad y su capacidad para tratar constantemente de mejorar cada día en su habilidad.

Notas al pie

[1] pico

La regla de las 10,000 horas es altamente cuestionable y probablemente Gadwell fabricó un número limpio solo para hacer que su trabajo sea popular y aceptable para la persona no especializada.

Esto es psicología extremadamente básica, psicología del desarrollo y ciencia cognitiva.

No hay número para el dominio.

Simplemente no funciona de esa manera. Las personas aprenden a diferentes velocidades, tienen diferentes prioridades, diferentes niveles de enfoque, y solo diferentes conjuntos de habilidades, etc.

Para empezar, ni siquiera está claro qué “dominio” hay aquí. ¿Qué es exactamente el dominio? ¿Cuál es el modelo de dominio aquí?

Gadwell ni siquiera comienza a delinear esta abstracción de forma clara para que la veamos y ni siquiera va más allá para abordar la cuestión de cómo esta abstracción en particular es aplicable en campos muy diferentes, diversos y amplios que tienen muy poca información inmediata. conexión entre sí.

¿Se requieren 10.000 horas para dominar la ciencia de la información cuántica, un campo virgen que, literalmente, no tiene maestría? ¿Se requieren 10.000 horas para dominar un campo bien investigado y antiguo con pocos cambios? ¿Se tarda 10.000 horas en dominar la guitarra de rock? Dudo que pueda proporcionar el mismo número para estos campos variados y amplios.

¿Tiene en cuenta la diferencia de calidad entre diferentes personas? ¿El hombre que escucha música durante esas 10,000 horas mientras codifica tiene el mismo tipo de 10,000 horas que alguien que trabaja en un ambiente tranquilo, conductivo y diseñado para la productividad?

Si en realidad hubiera un número para lograr el “dominio”, no será un número limpio de 10,000. ¿Por qué 10,000? ¿Afirma que son ~ 10,000 horas? ¿Dice que es 10.003.5656934?

Poner en el esfuerzo y sacar lo mejor de ella. La maestría es más sobre poner un estudio una cantidad constante de tiempo todos los días, durante un período de tiempo muy largo en lugar de tratar de moler 10,000 horas. Trate de obtener 3 horas diarias de codificación en un día, sin importar lo que pase, incluso si eso significa acortar su sueño. Haz esto por 10 años. Esto es mucho más realista que las 10.000 horas.

Su trabajo tiene muchos méritos extremadamente serios a pesar de las fallas también muy serias; Él hace muchas de las preguntas correctas, pero sus respuestas deberían invocar y provocar más controversia que ahora.

Pero lamentablemente todavía es un autor comercial muy popular. Necesita dinero, fama y atención.

En realidad no, en mi opinión. Conozco a muchas personas que han estado codificando, pero en realidad solo están reconociendo patrones e implementándolos nuevamente más tarde. No están resolviendo problemas. De manera similar, es completamente posible que las personas sigan los tutoriales y obtengan una intuición sutil de lo que es mejor o peor para una sección muy pequeña de Informática / programación, mientras que en realidad no tienen ningún conocimiento. En la programación, es posible crear miles de variantes con el mismo modelo / estructura. Si alguien hace esto, no aprenderán mucho. Sin embargo, si practican con otros tipos de problemas y desarrollan habilidades importantes para resolver problemas, entonces pueden hacerlo.

Primero, los programadores de la vida real tienden a ser muy diferentes de los retratados en Hollywood. Irrumpir en los sitios web gubernamentales tiene poco que ver con la informática de nivel universitario, y CS tiene poco que ver con conocer los detalles de una pila de programación. La programación también es campo multifacético. Algunas personas se destacan en la producción de código, otras en resolver problemas no triviales. Algunos son buenos para la arquitectura de software … Nadie puede saberlo todo después de solo 10,000 horas de trabajo duro y consciente.

Segundo, la regla de las 10,000 horas solo significa que la maestría, como el talento, comienza con dedicación. El número en sí puede variar mucho dependiendo de la experiencia real del programador, la tutoría, los proyectos, los intereses, el estado de ánimo … Capacite a un científico informático teórico para dominar un marco de pila completo y podría aburrirlo de este cráneo. Coloque a un ingeniero de software brillante solo con una base de código maloliente para esa duración y él podría ir postal. La parte más difícil para que funcione esta ecuación es, a menudo, encontrar o construir un entorno de calidad que fomente el crecimiento de los programadores en líneas sostenibles de excelencia.

Finalmente, dependiendo del enfoque que elija un programador, esas 10,000 horas pueden no ser tan relevantes como se esperaría. Algunas habilidades de programación tienden a degradarse mucho más rápido que otras. Todo el enfoque del desarrollo de software ha cambiado más de una vez desde la creación de tarjetas perforadas, bibliotecas de código exhaustivas, marcos abstractos … Los diversos conjuntos de habilidades que rodean al software se han diversificado cada vez más. La experiencia en programación es un objetivo en movimiento.

Debido a todo esto, preferiría recomendar al programador maestro aspirante a estimar una cantidad infinita de horas. En otras palabras, debería disfrutar el viaje para llegar allí, aunque sabe en el fondo que nunca crecerá tan alto como uno podría imaginar que otro sea.

En cuanto a mi experiencia en Japón, incluso los programadores profesionales, necesitan varios proyectos para tener suficiente experiencia.

Por lo tanto, podría tomar más de 3 años si los programadores desean familiarizarse y conocer algunos lenguajes y middleware como bases de datos y servidores.

Creo que aprender a programar está relacionado con todo lo relacionado con las computadoras. Por ejemplo, si desea dominar el desarrollo web, debe saber todo sobre él: idioma, marco, base de datos, servidor, etc.

En Japón, no recuerdo que haya una regla de ’10, 000 horas ‘, pero en general, es cierto que si quieres ser un programador totalmente profesional, no es sorprendente que te tomes tanto tiempo.

Hay programadores con muchos años de experiencia profesional que son inútiles y luego hay adolescentes con poca experiencia que pueden escribir software impresionante.

La calidad de la salida de un programador depende de muchos factores, entre ellos:

  • Total horas de experiencia.
  • Talento para la programación.
  • Dedicación e interés
  • Motivación para el proyecto.
  • Acceso a un buen mentor.
  • Acceso a las herramientas adecuadas.

Entonces, puedes ver que la cantidad de horas que uno ha dedicado a la programación no está directamente relacionada con el nivel de habilidad. Es solo uno de muchos factores. Además, la “regla” de 10.000 horas es un gran mito en general. Las personas son diferentes.

La regla de las 10, 000 horas no es cierta para nada. Ha sido completamente desacreditado, incluso por los autores de los estudios en los que Gladwell basó su libro. Ver:

Malcolm Gladwell se equivocó: nuestra investigación fue clave para la regla de las 10.000 horas, pero esto es lo que se simplificó demasiado.

Así que no, tampoco es cierto para la programación.

Hmmm pregunta interesante. Para empezar, creo que de hecho hay un beneficio en mantener la codificación durante algún tiempo. Se necesita tiempo para entender cómo escribir un buen código, se necesita tiempo para aprender qué funciona y cómo romperlo.

Sin embargo, lo que es diferente en codificación que la mayoría de las otras disciplinas es la velocidad del cambio. Un médico puede obtener nuevos medicamentos, pero un cuerpo humano sigue siendo el mismo desde hace 100 años. La contabilidad a veces tiene programas más atractivos pero, en esencia, nada ha cambiado en el comercio desde 1400.

Pero toma la programación. Hay gente que sigue trabajando con Visual Basic. Hay muchas personas que aún tienen que ir más allá de Oracle y SQL … hay muchas cosas nuevas y muchas nuevas plataformas. Por lo tanto, es inevitable que los nuevos métodos aún no estén totalmente probados. Toma el IOT. Recientemente trabajé un poco justo con Zigbee. Pero antes de eso no sabía cómo proteger y proteger los dispositivos remotos. La mayoría de los protocolos de comunicación utilizados en la industria están terriblemente mal protegidos. Esto también significa que puedo interrumpir o detener el funcionamiento de dispositivos cruciales que actualmente están instalados en muchos edificios. Si los controladores de sus puertas tienen menos de dos años, tendrá una sorpresa desagradable. Y eso también es cierto para los controladores de incendios. ¿Quieres crear un lío? Solo pretende ser un detector de humo y fingir que notaste algo oscuro. Puedes pensar en el resto.

Recientemente cambié de IIS a Node. Todo un mundo nuevo, pero uno que se siente familiar. Sin embargo, todavía soy golpeado por niños que pasaron mucho más tiempo en Node. Parece que el conocimiento previo tiene alguna ventaja pero no mucha.

La regla de 10,000 horas significa que si estás en la escala opuesta de superdotados pero trabajas incansablemente durante 10,000 horas para perfeccionar tus habilidades, puedes lograrlo.

Esto no significa que todos tengan que trabajar 10,000 horas para ser buenos en algo. Algunas personas son naturalmente escritores o pintores. Se ponen bien rápidamente. Algunos podrían haber dedicado 10.000 horas a una habilidad similar, y por lo tanto parece estar naturalmente dotado con esta.

Además, para ser claros, son 10.000 horas de perfeccionar tus habilidades, no solo 10.000 horas de escritura de código basura sin un esfuerzo activo para mejorar. Recuerde que en nuestra historia, pasamos miles de años sin hacer mucho progreso tecnológico, porque si pudiéramos hacer algo, lo seguimos haciendo y no buscamos activamente mejores formas. También tenemos la tendencia a pensar que “esto es lo mejor que podría ser” y, por lo tanto, nos conformamos.