Un programador profesional de tiempo completo puede hacer un gran trabajo al aprender continuamente de su trabajo. ¿Cómo puede un programador aficionado entrenar para convertirse en un buen programador?
** Si te gusta tocar música o cantar, puedes hacerlo porque es tu hobby y estás interesado, y puedes convertirte en un buen cantante o reproductor de música. Pero no necesitas convertirte en un cantante profesional o cantar para vivir. ¿Es esto también cierto para los programadores? ¿Algún programador aficionado que sea famoso?
Respuestas:
La clave para ser realmente bueno es trabajar en un buen equipo. Muchos aficionados trabajan solos, por lo que solo llegan tan lejos. En un equipo, aprendes de los demás y te vuelves disciplinado porque tus compañeros te golpearán con lo que sea útil de lo contrario.
Por esa razón, te propongo que te unas a un equipo, por ejemplo, un proyecto de código abierto, o hagas un proyecto de pasatiempo con algunos amigos.
fuente
El camino para ser bueno en la programación es el mismo que para cantar o tocar música: practicar, practicar, practicar. Si pasas suficiente tiempo desarrollando software regularmente durante varios años, es probable que seas bueno en eso, ya sea dentro o fuera de las horas de trabajo.
Ahora, además de pasar más tiempo practicando, hay otra razón por la cual los profesionales generalmente se vuelven mejores que los aficionados en cierto sentido (tanto en música como en programación). Si es un profesional, debe realizar tareas que no necesariamente le gustan, pero que pertenecen al trabajo más amplio de desarrollo de software (por ejemplo, pruebas, discusiones con clientes, redacción de documentación, configuración del entorno de desarrollo / desarrollo, escritura de scripts de compilación, etc. ) Y de vez en cuando también está presionado para entrar en áreas desconocidas, para aprender nuevos idiomas o plataformas. Como aficionado, no estás obligado a hacer nada que no quieras, lo que hace probable 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 áreas específicas que le gustan más,
OTOH, muchos desarrolladores profesionales también caen en esto, permaneciendo en la misma compañía haciendo el mismo trabajo de rutina sin apenas aprender nada nuevo durante décadas ... Entonces, la clave para mejorar es su actitud. Si sigue aprendiendo y busca conscientemente oportunidades para salir de su zona de confort hacia un territorio nuevo y desconocido, eventualmente superará a los enjambres de "profesionales" que se fosilizan lentamente. Una buena forma de hacerlo puede ser contribuir a algunos proyectos de código abierto.
Una lectura recomendada es The Pragmatic Programmer: From Journeyman to Master , con muchos consejos excelentes y muy prácticos sobre cómo seguir mejorando.
fuente
Te vuelves mejor aprendiendo, lo que en parte es hacer, en parte reflexionar sobre lo que se hizo.
Básicamente, no hay diferencia entre aficionado y profesional, pero las "trampas" se arreglan un poco diferente.
Las trampas de los aficionados son, en mi humilde opinión
La necesidad de terminar su proyecto, pase lo que pase, no es tan fuerte cuando no es profesional . Esto puede ser algo bueno, porque no te acostumbrarás a cortar esquinas cuando se trata de calidad, pero terminar (¡en absoluto! A tiempo es aún 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 comprender realmente a los clientes, incluso si son completamente incapaces de formar solo una oración coherente de cuál es el problema que quieren que resuelva. 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 de aficionado puede perder fácilmente a todos los usuarios potenciales, debido a que no resuelve sus problemas, y ser 'terminado' de una manera técnica.
Las trampas profesionales son
A menudo hay poca motivación para mejorar . Estás allí 40 horas a la semana, sin importar si encuentras la cura para el cáncer o simplemente tomas café de una manera que parece productiva. Aprender es algo que haces principalmente por ti mismo y, a menudo, si intentas aplicar lo que aprendiste, hay fuerzas que trabajan en contra de eso (el pensamiento de grupo conservador, las jerarquías, incluso las guías de estilo pueden usarse como armas contra las mejoras). Se necesita mucho amor para la profesión no solo renunciar, reducir sus horas y buscar propósitos alternativos en la vida.
A menudo hay poco de qué aprender . Sí, uno PUEDE tratar de tomar todo como un desafío, pero debemos ser honestos: después de 1 año del código Spaghetti no se le permite refactorizar ("¡lo estás complicando!") En un idioma que tienes más años de experiencia en lo que probablemente durará, lo único que se aprende es construir una tolerancia contra la frustración y la política corporativa.
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 de su pasión su trabajo (con problemas similares que tienen los músicos cuando tienen que hacerlo). averiguar su línea entre comercio y arte)
fuente
Me temo que hay más posibilidades de aprendizaje para los aficionados que para los drones corporativos a tiempo completo. Como aficionado, no está limitado a ninguna tecnología, entorno, diseño y metodología de desarrollo. Puedes hacer lo que sea útil para tu desarrollo personal. Como desarrollador a tiempo completo, es probable que trabaje en un mismo producto durante años, siguiendo la misma rutina, limitada 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 cual 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 crecer.
fuente
Como programador aficionado, hoy en día tienes muchas posibilidades para mejorar tus habilidades. Hice lo siguiente para mejorar mis habilidades mientras estudiaba ingeniería de software.
Por supuesto, también debes aplicar tus conocimientos. Haga esto a través de una pasantía, un proyecto con amigos o un curso de estudio. Hay muchas maneras de mejorar, solo tiene que estar dispuesto a invertir su tiempo libre. Además, ¡ diviértete aprendiendo algo nuevo !
fuente
Sí, es posible , sin embargo, lleva mucho tiempo:
De nuevo de la misma fuente :
fuente
Como aficionado, tiene más opciones para buscar mejores prácticas que muchos profesionales. Los profesionales a menudo están bajo presión para "simplemente hacerlo".
No he visto ningún curso como el que aprendí a programar, pero aprendí de algunos cursos gratuitos cortos (1-3 horas) presentados por la Universidad a la que asistía. Pretendían permitir que las personas de negocios entiendan el código que se está escribiendo para ellos. Los cursos presentaron un código muy bien escrito (comentarios incluidos) 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 lenguaje y por qué se usaron de la forma en que estaban. Ninguno de los cursos de idiomas completos que he visto da como resultado un código cercano a la calidad de lo que aprendí de ese curso. Pasaron un par de años antes de que empezara a estudiar Ciencias de la Computación.
Internet y la biblioteca proporcionan muchos recursos y ejemplos. Creo que muchos de los ejemplos no son muy buenos para nada más que para hacerlo. Al mirar ejemplos, primero mire el código. ¿Puedes entender su propósito y estructura sin la explicación? Si es así, puede haber encontrado un buen ejemplo.
Algunas prácticas clave que debe aprender y aplicar:
fuente
De ningún modo. Es ingeniería de software . 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 obtienes eso trabajando en proyectos reales .
fuente
En las entrevistas de trabajo a las que he asistido (por parte del empleador), siempre he pedido cosas que el entrevistado ha estado programando como aficionado (excepto las tareas escolares); haberlo hecho es una señal segura de interés genuino en el campo y tener pasión por aprender solo. No solo es posible, es casi un requisito para ser bueno.
fuente
¿Es posible? Si. Sin embargo, cuanto más tiempo dedique a programar, más tiempo tendrá para mejorarlo. Se ha dicho que se necesitan 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 / trabajar con otros, etc.
Si vas a dedicarle ese nivel de tiempo; también podrías conseguir un trabajo como programador y dejar el estado de aficionado. (A menos que sea rico de forma independiente).
fuente
Todos somos aficionados en todo en un punto. Si quieres convertirte en un buen programador y es algo que disfrutas hacer, lo harás. La clave es programar por tu cuenta. La escuela te enseñará casi nada. La mayor parte de su aprendizaje se realizará solo y en el trabajo. Si quieres ser bueno, ve a ser bueno.
fuente
Dado el
verdaderosignificado original de la palabra ( aficionado francés "amante de", del francés antiguo y, en última instancia, del latín amatorem nom. amator , "amante" - Wikipedia), a uno le gustaría creer que un gran número de profesionales también son aficionados. 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. (Quizás nunca genial, dados los talentos personales o la falta de ellos), pero al menos bueno
fuente
No sé qué define a un buen programador. Pero aprender algo propio y trabajar con un grupo de personas es algo diferente. Los programadores aficionados apasionados realmente aprenden cosas nuevas y piratean. Allí encontraron cosas más interesantes. Pero trabajar con un grupo de personas es un acto ligeramente disciplinado en el que colaboras, te comunicas, compartes / obtienes información de los expertos en esa área.
Pero obtener conocimiento es solo cuestión de pasión. Hay personas que pasaron noches aprendiendo cosas y finalmente terminaron 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é al programador), únase a una empresa o trabaje para algunos buenos productos que otros utilizan.
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!
fuente
A la pregunta, "¿se han hecho famosos los programadores aficionados?" La respuesta es "Sí, pero la mayoría no se quedó así". El ejemplo más famoso en el que puedo pensar es Roy Fielding, quien realizó parte de su trabajo más importante mientras (creo) no remunerado en la Universidad (aficionado significa no remunerado 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 músico anteriormente profesional, mi experiencia es que ambos son necesarios para ser bueno como profesional o aficionado. Algunos pueden ser aprendidos por los libros, pero sin una crítica externa consistente se hace muy difícil superar los malos hábitos adquiridos como novatos.
Dicho esto, en el caso del programador, es mucho más fácil de aprender que el del músico: según mi experiencia, como músico es mucho más difícil como músico ver tus errores pedagógicos que ver el código que solo no funciona Por otro lado, también requiere una inversión de tiempo sustancialmente mayor para ser un buen desarrollador.
fuente
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 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 exactamente eso, ser talentoso. Si no eres un violinista con talento natural, nunca serás tan bueno como los maestros, sin importar cuánto lo intentes o qué instrumento compres. Del mismo modo, si no tienes ese don que hace que los programadores sean realmente geniales, nunca serás ellos tampoco.
fuente