¿Es posible que un aficionado se convierta en un buen programador? [cerrado]

46

Un programador profesional a tiempo completo puede hacer un gran trabajo al aprender continuamente de su trabajo. ¿Cómo puede un programador aficionado entrenarse para convertirse en un buen programador?

** Si te gusta tocar música o cantar, puedes hacerlo porque es tu hobby y te interesa, y puedes convertirte en un buen cantante o reproductor de música. Pero no necesitas ser un cantante profesional o cantar para vivir. ¿Esto también es cierto para los programadores? ¿Algún programador amateur que sea famoso?

    
pregunta Ted Wong 24.10.2011 - 10:33

15 respuestas

84

La clave para llegar a ser realmente bueno es trabajar en un buen equipo. Muchos aficionados trabajan solos, así que solo llegan tan lejos. En un equipo, aprendes de otros y te vuelves disciplinado porque tus compañeros te pegarán con lo que sea útil de otra manera.

Por esa razón, te propongo unirte a un equipo, por ejemplo. un proyecto de código abierto, o hacer un proyecto de hobby con algunos amigos.

    
respondido por el user281377 24.10.2011 - 10:53
53

El camino para llegar a ser bueno en la programación es el mismo que para cantar o tocar música: practicar, practicar, practicar. Si dedica suficiente tiempo al desarrollo de software regularmente durante varios años, es probable que lo haga bien, ya sea dentro o fuera del horario laboral.

Ahora, además de dedicar más tiempo a la práctica, hay otra razón por la que los profesionales suelen ser mejores que los aficionados en cierto sentido (tanto en música como en programación). Si usted es un profesional, debe realizar tareas que no necesariamente le gustan, pero pertenece al trabajo más amplio de desarrollo de software (por ejemplo, pruebas, discusiones con clientes, redacción de documentos, configuración de entornos de desarrollo / creación, escritura de scripts de compilación, etc.) ). Y de vez en cuando también se le presiona para ingresar a áreas desconocidas, para aprender nuevos idiomas o plataformas. Como aficionado, no estás obligado a hacer nada que no quieras, lo que hace que te mantengas dentro de tu zona de confort durante la mayor parte de tu vida. En otras palabras, puede limitarse fácilmente a una o algunas de las áreas específicas que más le gustan y perder muchas oportunidades de aprender y crecer.

OTOH muchos desarrolladores profesionales también caen en esto, permanecer en la misma empresa haciendo el mismo trabajo de rutina sin apenas aprender nada nuevo durante décadas ... Así que la clave para mejorar es su actitud. Si sigue aprendiendo y busca conscientemente oportunidades para mudarse de su zona de confort a un territorio nuevo y desconocido, eventualmente superará a esos enjambres de "profesionales" que se fosilizan lentamente. Una buena forma de hacerlo puede estar contribuyendo a algunos proyectos de código abierto.

Una lectura recomendada es El programador pragmático: de Journeyman a Master , con un montón de Consejos geniales y muy prácticos sobre cómo seguir mejorando.

    
respondido por el Péter Török 24.10.2011 - 10:37
18
  

Pero para un programador aficionado, ¿cómo puede entrenarse para convertirse en un buen programador?

Te vuelves mejor aprendiendo, que es parte haciendo, parte reflexionando sobre lo que se hizo.

Básicamente, no hay diferencia entre los aficionados y los profesionales, pero las "trampas" están dispuestas de manera un poco diferente.

Las trampas de los aficionados son, imho

  • la necesidad de finalizar tu proyecto, sin importar qué, no es tan fuerte cuando no eres profesional . Esto puede ser bueno, ya que no se usará para cortar esquinas en lo que se refiere a la calidad, pero terminar (¡todo a tiempo! Incluso es mejor) es una habilidad muy importante, que es más difícil de entrenar como aficionado. porque es fácil dejar morir un proyecto y comenzar otro.

  • la necesidad de comunicarse bien no es tan fuerte. En un proyecto profesional, existe un fuerte incentivo para entender realmente a los clientes, incluso si son completamente incapaces de formar una sola persona coherente. Sentencia de cuál es el problema que quieren que resuelvas. Si los malinterpreta, o (el caso habitual) no se da cuenta de que no hablan de algo que necesita comprender, se convertirá en su problema, tarde o temprano. Un proyecto amateur puede perder fácilmente a todos los usuarios potenciales, debido a que no resuelven sus problemas, y se "finaliza" de manera técnica.

Los escollos profesionales son

  • a menudo hay poca motivación para mejorar . Usted está ahí 40h / semana, no importa si encuentra la cura para el cáncer o simplemente toma café de una manera que se vea productiva. Aprender es algo que haces principalmente por ti mismo y, a menudo, si intentas aplicar las cosas que aprendiste, hay fuerzas que actúan en contra de eso (pensamiento grupal conservador, jerarquías, incluso guías de estilo pueden usarse como armas contra las mejoras). Se necesita mucho amor por la profesión para no solo renunciar a ella, reducir sus horas y buscar otros propósitos en la vida.

  • a menudo hay poco de qué aprender . Sí, uno PUEDE tratar de tomar todo como un desafío, pero tenemos que ser honestos: después de 1 año del código Spaghetti no se le permite refactorizar ("lo está complicando!") En un idioma que tenga más años de experiencia en lo que probablemente durará, lo único que uno aprende es construir una tolerancia contra la frustración y la política corporativa.

  

Si reproduce música o canta, puede reproducirla por interés, puede   Todavía se convierte en un buen cantante o reproductor de música, pero no es necesario   conviértete en cantante profesional o canta para vivir.

Por supuesto, no es necesario, pero ¿cuántos músicos rechazarían la oportunidad de renunciar a su trabajo y ganar dinero con su música?

En TI, estas oportunidades son un poco más probables que en Música, por lo tanto, creo que no es imposible convertirse en un famoso aficionado, pero a menudo, los aficionados hacen su trabajo su pasión (con problemas similares que tienen los músicos cuando tienen que descubrir su línea entre el comercio y el arte)

    
respondido por el keppla 24.10.2011 - 11:11
8

Me temo que hay más posibilidades de aprendizaje para los aficionados que para los drones corporativos de tiempo completo. Como aficionado, no está limitado a ninguna metodología de tecnología, entorno, diseño y desarrollo. Puedes hacer lo que encuentres útil para tu desarrollo personal. Como desarrollador a tiempo completo, es probable que haya estado trabajando en un mismo producto durante años, siguiendo la misma rutina, limitado por las mismas pautas corporativas. Para la mayoría de nosotros no es más que un estancamiento. Se puede aprender un poco de un entorno corporativo, una vez que esté familiarizado con los conceptos básicos comunes.

Esa es la razón por la que muchos desarrolladores a tiempo completo también son aficionados, siguen codificando después del trabajo, juegan con sus propios proyectos de juguetes, es un poco de libertad necesaria para un crecimiento.     

respondido por el SK-logic 24.10.2011 - 11:23
6

Como programador aficionado, actualmente tienes muchas posibilidades para mejorar tus habilidades. Hice lo siguiente para mejorar mis habilidades mientras estudiaba ingeniería de software.

Por supuesto, también necesitas aplicar tus conocimientos. Haga esto a través de una pasantía, un proyecto con amigos o un curso de estudio. Hay muchas formas de superarte, solo debes estar dispuesto a invertir tu tiempo libre. Además, diviértete aprendiendo algo nuevo !

    
respondido por el BenR 24.10.2011 - 11:01
4
  

¿Es posible que un aficionado se convierta en un buen programador?

Sí, es posible , sin embargo, lleva mucho tiempo:

  

se requieren aproximadamente diez años para desarrollar experiencia en cualquiera de una amplia variedad de áreas, como el juego de ajedrez, la composición musical, el funcionamiento del telégrafo, la pintura, el piano, la natación, el tenis y la investigación en neuropsicología y topología. La clave es la práctica deliberativa: no solo hacerlo una y otra vez, sino desafiarte a ti mismo con una tarea que está más allá de tu capacidad actual, probarlo, analizar tu rendimiento mientras y después de hacerlo y corregir cualquier error. Luego repita. Y repita otra vez.

  

¿Cómo puede un programador aficionado entrenarse para convertirse en un buen programador?

De nuevo, desde la misma fuente :

  • Interésate en la programación
  • Programa
  • Habla con otros programadores
  • Si quieres, pasa cuatro años en una universidad
  • Trabaja en proyectos con otros programadores
  • Trabajar en proyectos después de otros programadores
  • Aprenda al menos media docena de lenguajes de programación
respondido por el BЈовић 24.10.2011 - 21:38
3

Como aficionado, tiene más opciones para buscar mejores prácticas que muchos profesionales. Los profesionales a menudo están bajo la presión de "simplemente hacerlo".

No he visto ningún curso del que aprendiera programación, pero aprendí de algunos cursos cortos cortos (de 1 a 3 horas) presentados por la universidad a la que asistía. Tenían la intención de permitir que la gente de negocios entienda el código que se escribe para ellos. Los cursos presentaron un código muy bien escrito (incluidos los comentarios) que resolvió un problema común de la vida real. Luego se revisó el código con una explicación de las características del idioma y por qué se utilizaron de la manera en que se utilizaron. Ninguno de los cursos de idiomas completos que he visto tiene como resultado un código que se acerque a la calidad de lo que aprendí de ese curso. Pasaron un par de años antes de pasar a estudiar Informática.

Internet y la biblioteca proporcionan muchos recursos y ejemplos. Encuentro que muchos de los ejemplos no son muy buenos para nada más que lograrlo. Cuando veas ejemplos, mira el código primero. ¿Puedes entender su propósito y estructura sin la explicación? Si es así, puede que hayas encontrado un buen ejemplo.

Algunas prácticas clave que debe aprender y aplicar:

  • SECO (no se repita)
  • DRO (No repetir otro); Use las bibliotecas de idiomas estándar, use otras bibliotecas.
  • Mantenga el código simple. El código elegante tiende a ser más difícil de mantener. Peor aún, los optimizadores a menudo producen un código de máquina más lento, que para el código más simple.
  • Los módulos deben tener un solo propósito. (Es mejor si ese propósito es trabajar o tomar decisiones).
  • Usa buenos nombres. No use nombres cortos para evitar escribir, use un IDE con autocompletar. Comprende las convenciones de nomenclatura de tu idioma.
  • No optimices tu código. Espere hasta que pueda medir su rendimiento y sepa que optimizarlo tendrá un efecto notable.
  • Sigue aprendiendo. Aprenda a identificar los recursos que le proporcionarán información útil que puede usar ahora.
respondido por el BillThor 24.10.2011 - 16:03
2
  

Si te gusta tocar música o cantar, puedes hacerlo porque es tu   afición y usted está interesado, y puede convertirse en un buen cantante o   reproductor de música. Pero no necesitas ser un cantante profesional o   cantar para vivir ¿Esto también es cierto para los programadores? Alguna   programador aficionado que es famoso?

En absoluto. Es software ingeniería . No se basa en el "talento natural". Ser un gran programador se basa en años de educación y años de experiencia . Solo tienes que trabajar en proyectos reales .

    
respondido por el vartec 24.10.2011 - 13:20
2

En las entrevistas de trabajo en las que he estado (por parte del empleador), siempre he pedido cosas que el entrevistado ha estado programando como aficionado (excepto asignaciones escolares), haber hecho eso es un signo seguro de genuino interés en campo y tener pasión por aprender por cuenta propia. No solo es posible, es casi un requisito para ser bueno.

    
respondido por el Imre 24.10.2011 - 13:59
2

¿Es posible? Sí. Sin embargo, cuanto más tiempo dedique a la programación, más tiempo tendrá para mejorar. Se ha dicho que toma 10 años / 10 000 horas de práctica deliberativa para desarrollar experiencia en una habilidad técnica. No son 10 000 horas de hacer el mismo tipo de codificación en su zona de confort (por ejemplo, escribir código jQuery simple para diferentes sitios web), sino 10 000 horas de aprendizaje / lectura sobre programación / lectura de código fuente / escritura de código fuente / aprendizaje de otros idiomas / trabajando con otros, etc.

Si vas a dedicarle ese nivel de tiempo; También podrías conseguir un trabajo como programador y abandonar el estado de aficionado. (A menos que seas un rico independiente).

    
respondido por el dr jimbob 24.10.2011 - 16:54
1

Todo el mundo es un aficionado en todo en un momento dado. Si quieres convertirte en un buen programador y es algo que te gusta hacer, lo harás. La clave es la programación por su cuenta. La escuela te enseñará casi nada. La mayor parte de su aprendizaje se realizará por su cuenta y en el trabajo. Si quieres ser bueno, ve y sé bueno.

    
respondido por el Yatrix 24.10.2011 - 17:55
1

dado el real significado original de la palabra (francés amateur "amante de", del francés antiguo y, en última instancia, del latín amatorem nom. amator , "amante" - Wikipedia), uno quisiera creer que un gran número de profesionales también son amateurs. Si no amas tu oficio, ¿lo estarías practicando?

Por supuesto que es posible: si te encanta la programación, la practicarás y, con el tiempo, serás bueno en eso. (Tal vez nunca sea genial, dado talento personal o falta de él), pero al menos bueno

    
respondido por el StevenV 24.10.2011 - 19:49
0

No sé lo que define a un buen programador. Pero aprender algo propio y trabajar con un grupo de personas es algo diferente. Los apasionados programadores aficionados realmente aprenden cosas nuevas y piratean. Allí se encontraban las cosas más interesantes. Pero trabajar con un grupo de personas es un acto ligeramente disciplinado en el que colabora, se comunica, comparte / obtiene información de los expertos en esa área.

Pero adquirir conocimiento es solo cuestión de pasión. Hay personas que pasan las noches para aprender cosas por sí mismas y finalmente terminan trayendo algo nuevo al mundo como Bill G Mark Zuck, etc. No se puede comparar fácilmente. pero si desea ser un mejor Ingeniero de software (no llamaré a Programmer), únase a una empresa o trabaje para obtener algunos buenos productos que otros usan.

Finalmente lea mucho para mejorar sus habilidades, actitud, actualizaciones de la industria, desarrollar un gusto e ir con pasión. ¡Las cosas te seguirán fácilmente!

    
respondido por el sarat 24.10.2011 - 11:30
0

A la pregunta, "¿Se han hecho famosos los programadores aficionados?" La respuesta es "Sí, pero la mayoría no se mantuvo así". El ejemplo más famoso que se me ocurre es Roy Fielding, quien realizó algunos de sus trabajos más importantes mientras que (en mi opinión) no paga en la Universidad (amateur significa no pagado por definición).

El truco para ser de calidad profesional es tener un mentor o un conjunto de mentores (como un equipo en un proyecto de código abierto) y una dedicación seria al tema. Como antes músico profesional, mi experiencia es que ambos son necesarios para ser buenos, ya sea como profesional o como aficionado. Algunos pueden aprenderse de los libros, pero sin una crítica externa consistente, se vuelve muy difícil superar los malos hábitos adquiridos como novato.

Dicho esto, en el caso del programador, es mucho más fácil de aprender que el del músico; fue mi experiencia que como músico es mucho más difícil como músico ver tus errores pedagógicos que verlos. código que simplemente no funciona. Por otro lado, también requiere una inversión de tiempo sustancialmente mayor para ser un buen desarrollador.

    
respondido por el cwallenpoole 24.10.2011 - 17:33
0

Como cualquier otra cosa, la mejor manera de mejorar en algo es sumergirse en el entorno en el que desea ser bueno y rodearse de personas muy superiores a usted que estén dispuestas a tolerarlo y enseñarle. No es fácil de hacer, pero eso es lo que he encontrado que es la mejor manera de aprender a ser bueno en algo más rápido.

Pero cuando se trata de ser un programador verdaderamente talentoso, tienes que ser solo eso, dotado. Si no eres un violinista con talento natural, nunca serás tan bueno como los maestros, no importa cuánto te esfuerces en probar o qué instrumento compres. Del mismo modo, si no tienes ese don que hace que los programadores sean realmente geniales, nunca los serás tampoco.

    
respondido por el stu 24.10.2011 - 22:52

Lea otras preguntas en las etiquetas