Si fueras un joven de 18 años razonablemente motivado que comenzó a codificar hoy, ¿qué pasos tomarías para convertirte en un programador de clase mundial?

El mejor truco para todos los novatos es encontrar un mentor. Es por eso que el aprendizaje solía ser tan importante y una forma adecuada de aprender un oficio. Ahora está infravalorado y la gente piensa que ser autodidacta es la mejor manera de hacer todo ya que “solo puedo buscarlo en Google”.

Los mentores pueden ayudarlo a comprender lo que está haciendo y cómo planificar adecuadamente, lo cual es una habilidad que nadie puede hacer en ningún campo como principiante. Considere un nuevo jugador de fútbol / fútbol. Intentarán aprender cómo patear la pelota en lugar de planear estrategias para derrotar al otro equipo o ganar la temporada. Un buen mentor lo capacitará en habilidades y también le enseñará cómo planear un plan de ataque para los proyectos en los que está trabajando.

Cuando estaba en la universidad, había estado programando durante 5 años por casualidad, así que estaba bien, pero realmente no despegué hasta que me senté al lado de un chico que aparentemente sabía todo sobre programación, diseño, sitios web y el la lista continúa Trabajé ese trabajo durante 18 meses e hice todo lo posible para aprender todo lo que pude de él. Lo observaría trabajar hasta que entendiera lo que estaba haciendo, e imitaría cómo pensaba.

Recuerdo que un día se le ocurrió una solución a un problema que no me pareció lo suficientemente bueno. Parecía algo descuidado. Esa es la primera vez que recuerdo dónde resolví un problema mejor que él, porque me había entrenado para pensar, y le estoy muy agradecido por todo el tiempo que invirtió en mí. Lo está haciendo bastante bien, ha encontrado varios mentores y ha subido de nivel muchas veces desde entonces también.

Consigue un mentor. Consigue varios. Mira cómo trabajan los maestros. Si no entiendes lo que están haciendo, observa cómo funcionan los maestros poco menos capacitados. Eventualmente lo conseguirás.

Tomaría tres pasos (hay muchos más, pero creo que le gustaría obtener una respuesta que se condensa a lo esencial de la persona que responde):

  1. Trata de mantener tu pasión por siempre y mantente hambriento. Podría llevarte a puntos de vista que nunca pensaste. Podría llevarlo a diferentes formas que lo llevarán a grandes oportunidades en la vida.
  2. Solo hazlo (espero que Nike no me demandará por usar este eslogan). Practique, escriba software, deséchelo, escriba software nuevo, siéntase estúpido por las cosas que pensaba que estaba haciendo bien, que resultan ser un completo disparate, pruebe todo, diferentes lenguajes de programación, diferentes conceptos, diferentes entornos y mucho más … . Una vez más: ¡Sólo hazlo !
  3. Se paciente. Siempre. A menos que seas el mayor genio del mundo, mejor que Einstein, Newton, Galilei y Hawking juntos, nunca te dejes engañar por los pensamientos, eres el mejor, lo sabes todo y no hay nada que puedas hacer mejor. Este es un proceso de evolución y, de hecho, nunca debería detenerse. Y por fin: siempre habrá alguien mejor que tú.

Te deseo buena suerte para tu carrera.

Ok, primero tienes que pensar en alguna nueva idea innovadora en el mundo de la programación que no se haya hecho nunca. Luego, una vez que tenga esta idea, en lugar de prestarla a algún proyecto actual o agregarla a un idioma actual, ¡debe crear su propio idioma! Digamos que tu nombre es Ted. así que llama a su nuevo idioma TED-D y tiene que ser un acrónimo de referencia propia como:

TED-D es el decompilador digital extremo de Ted

Ahora debe convencer a un grupo de propietarios de nuevas empresas de que la única forma de éxito es cambiar todo a TED-D. ¿Por qué propietarios de startups? bien porque todos los desarrolladores serios simplemente se reirán de ti fuera de la sala por eso.

Muy pronto, todos estos nuevos emprendedores comenzarán a agregar agregados para los desarrolladores que conocen TED-D y, por supuesto, obtendrán muchos de ellos de la India o lo que sea, porque parecen conocer todos los idiomas antes de que salgan. A continuación comenzarás a escuchar un estruendo entre tus amigos. “¿Debo aprender TED-D?”…. “Escuché que TED-D es el próximo Ruby!”. En poco tiempo, su idioma comenzará a crecer en popularidad entre los que adoptaron tempranamente la vanguardia y no podrá contratar a un desarrollador de TED-D por menos de $ 200 al año.

¿Qué es lo siguiente que preguntas? Bueno, tan pronto como se concluya la primera conferencia oficial de TED-D, deberá anunciar el lanzamiento de TED-D2, lo que, por supuesto, invalidará por completo todas las reglas de TED-D.

Sólo entonces serás un programador de clase mundial.

Esto puede sonar extraño, pero además de solo trabajar y aprender, seguiría la trayectoria profesional de los abogados. Como una clase de profesionales, los abogados son un grupo poderoso que realiza un trabajo intelectual exigente. Una vez hubo algo muy especial en ser un programador, pero ahora somos tan comunes como los abogados y nuestros aspectos son similares. Seguro que un abogado puede terminar en el Senado o como Presidente, al igual que un programador podría ser el próximo Bill Gates. Pero, en realidad, el campo es muy amplio y hay muchos caminos diferentes para el éxito para que cualquiera pueda decir con especificidad cuál es tu mejor movimiento.

Sé exigente de ti mismo. Hazte útil. Nunca sigas tu pasión, pero siempre llévala contigo. Sigue la oportunidad, prepárate para cualquier cosa.

No te convertirás en un programador de clase mundial.

(y estadísticamente, no se convertirá en un músico, boxeador, futbolista, matemático, químico, etc. de clase mundial).

Por cierto, si supiera algún método mágico para convertirme en un programador de clase mundial, probablemente no lo compartiría públicamente. Por supuesto que no soy un programador de clase mundial, y nunca conocí a nadie.

Así que abandona la idea de convertirte en un programador de clase mundial. Intenta convertirte en un buen programador.

Programar es difícil (y así mismo, tocar el violonchelo, la escultura en madera, las matemáticas, la filosofía, etc. es difícil). Se tarda al menos diez años para aprender a programar, y tendrás que trabajar duro .

Yo sugeriría comenzar a aprender programación leyendo SICP (una excelente introducción a la programación disponible de forma gratuita) y practicando mucho. Probablemente también quieras leer Introducción a los algoritmos. Hay muchas otras cosas que aprender (por ejemplo, sistemas operativos: Tres piezas fáciles …). Recomiendo instalar y usar alguna distribución de Linux, y estudiar y contribuir con algún software gratuito.

Así que deseo que crezcas y entiendas que (estadísticamente) no puedes convertirte en una X de clase mundial para ninguna X (y eso incluye X = programador). Si entender eso es demasiado difícil para ti, consulta a un buen terapeuta.

Por cierto, estudiar informática en una buena universidad es una buena manera (con mucho más trabajo) para convertirse en un programador lo suficientemente bueno.

Hacerlo todos los días No hay truco rápido para convertirse en un buen programador. Se tarda mucho tiempo. 10,000 horas es una especie de concepto exagerado en este punto, pero es un buen lugar para comenzar.