it-swarm-es.com

¿Qué es lo más efectivo que hiciste para mejorar tus habilidades de programación?

Mirando hacia atrás en mi carrera y mi vida como programador, había muchas maneras diferentes de mejorar mis habilidades de programación: leer código, escribir código, leer libros, escuchar podcasts, ver screencasts y más.

Mi pregunta es: ¿Qué es lo más efectivo que has hecho para mejorar tus habilidades de programación? ¿Qué recomendarías a otros que quieran mejorar?

Espero respuestas variadas aquí y ninguna respuesta única "para todos". Me gustaría saber qué funcionó para diferentes personas.

876
Oded

Traté de aplicar una buena técnica de programación a un lenguaje como TI-83 + BASIC.

0
user14563

Es fácil quedar atrapado en la codificación de maratones. Es fundamental retroceder de vez en cuando, observar cómo otras personas han implementado proyectos similares.

Leer libros escritos por excelentes autores. Revise libros como "C: Un lenguaje de programación", "The Perl CookBook" o cualquiera de los mejores para sus idiomas favoritos. Lea sobre los problemas que resuelven, no mire las muestras de código, escríbalas usted mismo y luego compare su código con el de ellos. Descubre por qué la suya/la tuya es mejor.

0
SammyO

Se utilizaron diferentes marcos, IDE, sistemas operativos e idiomas. En general, si no estás confundido, no estás creciendo. Lo malo es no ser mediocre. Lo malo es ser mediocre cuando crees que eres genial.

0
hoyhoy
  1. Me uní a comunidades centradas en desarrolladores web y físicamente
  2. Leer/Intentar leer el código de otras personas.
  3. Escribir código.
  4. Leer leer leer (Blogs, podcasts, libros, etc.) y hacer lo que has leído, leído, leído.
0
Coda

Lectura de muchos libros y artículos.

0
Legend

Lea más libros y escriba más códigos.

0
William

Creo que lo más importante para mí fue cuando retrocedí un paso de la implementación y comencé a mirar la imagen más amplia y a comprender mejor la arquitectura, los patrones, los procesos, el análisis de requisitos, etc.

0
mattlant

Estoy seguro de que esto simplemente reitera los comentarios anteriores:

1: Lea el código de numerosos idiomas. Comprende cómo el lenguaje maneja una situación dada. Puede hacerlo más iluminado en el idioma en el que está buscando mejorar.

2: Equipos ... Debatiendo prácticas de programación, enfoques, pruebas, planificación, implementación, etc.

3: Use lo anterior para enfocarse en un conjunto más pequeño de idiomas.

4: Nunca asumas tu 100% correcto, entonces no tendrás razón para cuestionar nada.

0
Matt

trabajando con personas mucho más inteligentes que yo

0
Kevin

Usa tu computadora y entiéndelo a fondo.
Escribe el código para lo que creas que puedes.
Lea un buen código y aprenda a escribir. Lea el código incorrecto y aprenda a no codificar.

0
amadamala

Hay muchas cosas, pero las siguientes tuvieron un gran impacto en hacerme un mejor programador

1) Durante los días de universidad, estuve en una competencia continua con un compañero de clase altamente talentoso para crear el mejor juego/programa juzgado por otros compañeros de clase. Fue como 2 pequeñas empresas nuevas que luchan por la cuota de mercado.

2) Lectura de "secretos profundos de C"

3) Participar en proyectos de código abierto donde las personas inteligentes pueden comentar su código.

0
azeemarif

Cuando está programando solo, es muy fácil suponer que las cosas que le resultan más fáciles o que parecen más obvias son, por lo tanto, las mejores. Sin embargo, cuando esté en contacto activo con un grupo de personas conocedoras (especialmente las que tienen más experiencia que usted), probablemente encontrará muchos problemas que nunca consideró, y soluciones a ellos que podrían no haberle ocurrido tampoco. Es mucho mejor aprender de la experiencia de otra persona que cometer sus propios errores y, al hacerlo, arruinar un proyecto importante (propio o de su empleador). Si puede aprender estas cosas de sus compañeros antes de enfrentarse a ellos, puede evitar muchos pasos en falso que sorprenden a la mayoría de los programadores. Es posible convertirse en un programador con una experiencia menor pero una comprensión superior del desarrollo de software si presta suficiente atención a lo que otras personas más experimentadas están haciendo.

Probablemente lo más útil que hice fue pasar unos años leyendo foros en línea como comp.lang.c, comp.lang.c ++ y comp.lang.Java regularmente (diariamente o al menos semanalmente), y participando en las discusiones del foro. (En el día en que frecuentaba activamente los foros, la mayoría de ellos estaban en Usenet. Ahora, tienden a asociarse con sitios web específicos y comunidades de desarrolladores).

En grupos de discusión activos como estos, que atraen a un gran número de desarrolladores profesionales (y en particular desarrolladores profesionales de alto nivel, como autores de idiomas e implementadores de bibliotecas importantes), es mucho más fácil tener una idea de qué técnicas de programación se consideran útiles. versus desanimado, y qué lenguajes de programación, herramientas y bibliotecas están siendo favorecidos o no. Además, es útil prestar atención a las técnicas de ingeniería de software que utilizan otros profesionales, desde sistemas de control de versiones hasta lenguajes de modelado visual, metodologías de programación, etc. También es importante aprender qué áreas son controvertidas: ver un debate extendido entre dos desarrolladores experimentados de alto nivel con puntos de vista marcadamente diferentes puede ser una experiencia tremendamente educativa.

Después de un tiempo, es posible que descubra que su lenguaje favorito o enfoque de programación no es tan universalmente querido como creía al principio, y puede descubrir que está comenzando a considerar alternativas, ¡eso es bueno! Eso significa que está comenzando a ser más matizado y más realista sobre sus creencias (en lugar de simplemente adoptar la última moda), y con suerte expandiendo sus horizontes para incluir diferentes formas de hacer las cosas.

0
unknown (yahoo)

Dedica un tiempo a pensar en ello, en lugar de hacerlo.

es decir

  • piensa en las habilidades que tienes.
    • piensa en las habilidades que no tienes.
    • piensa en las habilidades que te gustaría tener.
    • piensa en las habilidades que crees que a la industria le gustaría que tuvieras.
  • 0
    Paul Rowland

    Aprender un nuevo idioma al año ha sido excelente (aunque aprendí 3 idiomas solo el año pasado). Todavía prefiero C++, pero conocer diferentes formas de resolver cosas ha mejorado mis habilidades de codificación de muchas maneras. Eso y tengo una serie de "Katas" o pequeñas metas de codificación que sigo probando en mi tiempo libre, aplicando cada vez mis nuevos conocimientos.

    0
    Robert Gould

    Trabajar con las personas más inteligentes que pueda y hacerles preguntas. No tengas miedo de preguntar.

    Alguien debería construir un sitio web para hacer eso ... ;-)

    0
    Stuart Helwig

    Participando varias veces en Concurso de Programación ICFP .

    ¡No hay otra competencia de programación como esa! Cada vez que aprendí mucho . Especialmente trabajando en un equipo con personas mucho más inteligentes que yo.

    0
    Anton Orlov

    Leí K & R2 por segunda vez. Y luego leerlo de nuevo por tercera vez.

    0
    Serafeim

    En la primaria, quería crear una pantalla de inicio de sesión falsa que robara las contraseñas de la PC de la oficina de mi padre. Era solo un script por lotes que se ejecutaba en MS-DOS y no había nada sofisticado. Luego, en la escuela secundaria, comencé a escribir simples virus de macro MSWord porque me pareció fascinante poder "personalizar" MSWord de acuerdo a mi gusto.

    Las habilidades de programación que aprendí entonces fueron solo efectos secundarios al hacer algo que encontré fascinante.

    0
    simoncpu

    No hay una sola idea que se te ocurra para mejorarla. Es una habilidad aprendida. te mejorará con la práctica. Por práctica no me refiero a un solo atributo. Los atributos más importantes que se me ocurren son 1. Escribir código 2. Emparejar o recopilar persapactive de diferentes personas (actividad como codificar dojo - http://www.codingdojo.org/ ). 3. revisión del código

    0
    kiritsinh parmar

    Trabajando en programación en pareja con un programador de más de 50 años que es experto en Smalltalk. Estábamos programando en Java, pero realmente aprendí mucho sobre diseño orientado a objetos y técnicas de depuración.

    La programación en pareja con un mentor experimentado es algo recomendable, siempre que mantengamos una mente abierta.

    0
    Mario Ortegón

    Trabajar con personas que son más inteligentes que yo (no es tan difícil) y tener curiosidad acerca de cómo hacer las cosas. Leer mucho ayuda, pero debes poder encontrar tu propio camino sobre cómo resolver las cosas.

    0
    FrankS

    Trabajar con otras personas fue lo único que hizo explotar mis habilidades. Empecé a aprender de sus fracasos. :)

    0
    zgoda

    codificar mucho no tengas miedo de aprender cosas nuevas

    0
    reuven

    Sé que la mayoría de estos han sido mencionados anteriormente, pero los reiteraré nuevamente ya que han funcionado para mí.

    1) Lo más importante es tener interés en lo que está haciendo. Si te interesa, estás a la mitad del camino. Nada mata tu deseo de trabajar/mejorar más que el desinterés.

    2) Encuentre a alguien en su organización que sea más inteligente/mejor/más rápido que usted y absorba la mayor cantidad de conocimiento y experiencia que pueda. Esto se aplica a cualquier persona, junior/senior/etc. Los títulos de trabajo no tienen ningún sentido en lo que a mí respecta. He visto desarrolladores de nivel "junior" que tenían mucha más experiencia/conocimiento que los supuestos de nivel senior.

    3) Intenté lo mejor que pude seguir mi propio Código de Codificación. Escribir, leer, analizar, revisar, discutir. Una vez que escriba su código, léalo. ¿Es mantenible? ¿Está bien comentado? ¿Parece que hace lo que debería? Como parte de esto, debe analizar el código. ¿Es esta la mejor forma en que podrías haber hecho esto? ¿Podría mejorarse de alguna manera? Hacer cambios en consecuencia. Luego, revísalo, pruébalo. ¿Hace lo que debería? ¿Hace algo que no debería? Haz tu mejor esfuerzo para intentar descifrar tu código. Una vez que esté satisfecho con esto, hable sobre su código con otros. ¿Cuál es su opinión al respecto? ¿Están o no están de acuerdo con sus decisiones? ¿Tienen alguna otra idea sobre lo que podría haberse hecho para mejorarlo?.

    4) Siempre esté dispuesto a aprender cosas nuevas y/o ideas.

    0
    Jason

    100% de cobertura de prueba unitaria.

    Hacer pruebas unitarias realmente ha mejorado mi programación.

    Pero el uso de una herramienta de cobertura de código para medir la cobertura de la prueba unitaria lo lleva a otro nivel.

    Una buena idea es tomar un módulo e intentar hacer una cobertura de prueba de unidad del 100%.

    Incluso puede hacer una competencia amistosa con sus compañeros de trabajo al tomar un módulo cada uno y ver cómo puede obtener la mayor cobertura.

    -

    Sígueme en CrowdNews.e

    0
    equanimous

    Comenzó a enseñar programación y diseño de programas. No tenía ni idea sobre OO hasta que enseñé un curso de Freshman Java curso y un curso de Ingeniería de Software de nivel Junior.

    0
    Lewis Baumstark

    Usando mi cerebro, en lugar de elaborar un código sin sentido. Codifique una vez, codifique correctamente.

    0
    leppie

    Descubrí que Code Complete 2 de Steve McConnell de principio a fin (y en realidad tratando de seguir la mayoría de sus consejos) ha mejorado drásticamente mis habilidades de programación, especialmente porque no obtengo el beneficio de trabajar con otros programadores en un gran entorno corporativo .

    Además, practicar buen diseño (explicado en el libro) y analizar el diseño de otras personas es importante para avanzar en la dirección correcta, en cuanto a habilidades.

    0
    Levi

    Creo que lo más efectivo que he hecho es obligarme a usar varios idiomas y herramientas alternativas en proyectos basados ​​en lo que mejor se adapta. IOW Traté de ver las capacidades del lenguaje para ver si encaja mejor que una de mis opciones estándar. Esto me ha obligado a aprender y usar varias herramientas basadas en sus méritos individuales.

    Intento MUY duro nunca meter clavijas cuadradas en agujeros redondos cuando se trata de mi estilo de programación también. Tenemos muchos idiomas disponibles para usar porque hay muchas formas diferentes de hacer las cosas. ¡Cuanto más pueda entender sobre otros estilos, mejor!

    0
    flxkid

    Una forma de mejorar las habilidades de programación es aprender diferentes dominios de negocios y cómo se utiliza el software para resolver problemas en esos dominios. Por ejemplo, si solo trabaja en aplicaciones web de negocios, puede obtener un conocimiento sustancial de HTML, CSS y bases de datos relacionales, pero no necesariamente tiene la oportunidad de dominar conceptos como concurrencia o programación de gráficos 3D.

    0
    newdayrising

    Escriba una aplicación no trivial en múltiples idiomas/sistemas. He escrito una aplicación de pool de apuestas en VB6, LISP común, Java/jsp, Java/spring/struts, Rails, grails y Django. Ahora lo estoy escribiendo en Ruby/cacao OSX

    Cada implementación es diferente. Y he aprendido cómo los sistemas difieren entre sí.

    0
    sal

    Trabajando con un conjunto diverso de programadores más experimentados e inteligentes.

    Las personas que dicen 'solo escribir código' son miopes. He visto muchos proyectos donde alguien 'acaba de escribir código'. Eso no le da a nadie una idea de los buenos hábitos y la programación práctica, ni ayuda a desarrollar habilidades sólidas en las partes secundarias de la codificación. Especificaciones, documentación, claramente transmitiendo ideas.

    0
    Geekoid
    1. Leer la fuente de cualquier software (de código abierto) es brillante e importante en su área de especialización.

    2. Aprender y apreciar diferentes paradigmas de programación (es decir, OO no es la respuesta a todo)

    3. Escribir bibliotecas/componentes en lugar de 'sistemas' monolíticos, aprender el valor del diseño de la interfaz, la documentación y la simplicidad conceptual.

    0
    Marijn

    Programación con al menos otra persona (con experiencia), idealmente en un entorno de programación extrema. Debatir enfoques alternativos ayudará a descifrar los pros y los contras de cada uno.

    0
    Adam

    Escriba un montón de código como muchos ya han escrito aquí.

    Pero, escribe tanto que no quieras escribir mucho más, obtén básicamente perezoso, la primera de las tres grandes virtudes .

    "La brevedad es el alma del ingenio" - Shakespeare

    0
    epatel

    Vi una gran mejora después de que comencé a aprender cómo codifican otros (los mejores programadores). Una de las cosas que hice fue comenzar a ver videos "Cómo hago" de los expertos/gurús de cualquier tecnología que me interese.

    Veo un gran beneficio en los videos de aprendizaje en comparación con la lectura de un libro. No descartar el hecho de que leer libros también es una excelente manera. Pero los videos son más interactivos, rápidos y causan una gran impresión visual (es decir, si los videos son buenos)

    Tech Podcasts, dnrtv son mis otros favoritos. Lea esto SO thread.

    0
    Vin

    Siempre tengo una lista de proyectos "pequeños" en mi cabeza. Cada vez que pienso en un "debe haber ..." lo archivo para uso futuro. Luego, cada vez que me encuentro con una tecnología que parece interesante y quiero jugar, comparo sus características con mi lista de proyectos. Si parece que encaja bien, me voy a las carreras.

    Esto me permite tener siempre algo más práctico que "¡Hola, mundo!" para trabajar hacia.

    0
    cmreigrut

    Creo que es importante para mejorar tu habilidad que trabajes en un proyecto que realmente te guste
    y es importante compartir su conocimiento con los demás.
    en el otro sitio necesita investigar un tema sobre el que necesita saber más.
    Finalmente, el trabajo en un proyecto de código abierto ha sido muy útil para mí como programador.

    0
    Peter GA.

    Realmente programando para un propósito. Una vez que comencé a trabajar y escribir programas que en realidad serían utilizados por los usuarios y no solo entregados para una calificación, comencé a comprender mejor el impacto que tuvieron mis programas. Pude ver el panorama general.

    0
    Mogura

    Haciendo informática fundamental y aprendiendo que todo es lo mismo. Todo se reduce a los mismos conceptos y todo se basa en máquinas lógicas y de trabajo, y puede hacerlo de todos modos.

    Aplicar OOP a Assembly and Digital Logic es entretenido ...

    0
    Aethylred

    Cuando comencé a escribir código que se veía "hermoso" y muy limpio, mis programas comenzaron a funcionar casi al principio, con muy pocos errores. Si hay errores, tienden a ser muy fáciles de encontrar.

    Así que simplemente busco simplicidad, limpieza y belleza. :-)

    Nunca escriba código de una manera "inteligente" o compleja. Escriba lo más limpio y legible posible, y los programas simplemente funcionan y son fáciles de mantener.

    0
    Jesper Hertel

    Lectura de buenos libros como Effective C++. Eso sí, ya había programado en C++ durante varios años, pero no fue hasta que comencé a leer buenos libros de C++ y otros libros de programación que sentí un salto en el conocimiento, lo que se tradujo en ser un mejor programador.

    0
    A Non

    Haciendo muchas revisiones de código con el principio de que no había terminado con la revisión hasta que encontré al menos una pieza para criticar.

    Por cierto, en muchos casos para poder hacer dicha revisión de código, necesitaba sentarme junto al autor original y pedirles que me explicaran el código línea por línea hasta que lo entendiera. Si tiene la suerte de que se le pida que revise el código de grandes programadores, también aumentará rápidamente sus habilidades.

    0
    A Non

    Para el dominio del idioma, excavar a través de la API principal y escribir el código que utiliza cada método/clase. Esto tiene 2 beneficios:

    1. Aprende la API, por lo que puede dejar de reinventar la rueda.
    2. Más importante aún, entiendes bien las principales expresiones idiomáticas del idioma. Esto mantiene su código limpio y legible. Como cuando finalmente dejas de intentar codificar procesalmente en LISP.
    0
    noah

    leyendo, trabajando con otros y en general, entra y juega con él :)

    0
    knight0323

    Cualquier cosa que te anime a escribir más código. Actualmente estoy trabajando a través de Proyecto Euler para mejorar mis habilidades, pero también aprendí mucho en el último año, solo mirando la base de código con la que estoy trabajando en el trabajo. Además, leer más libros no hace daño, aunque es mejor centrarse en los de Ingeniería de Software hasta que sepa en qué idiomas realmente desea programar.

    0
    deworde

    1) Cometí muchos errores y aprendí de ellos preguntando a otros o leyendo
    1) Tenía un mentor
    2) Escuché muchos podcasts y luego leí sobre los temas que escuché sobre
    3) Programación emparejada
    4) Revisión de proyectos de código abierto para estilo y técnicas (e investigación de piezas que no entendí)

    0
    Mike
    0
    Jeremy

    Escribir código no solo en mi trabajo sino también en mi casa. Esto me ha dado el tiempo que no tengo en el trabajo para descubrir cosas muy interesantes y útiles.

    0
    Andre Gallo

    Copiar dolorosamente las muestras impresas de revistas de computadoras en la década de 1980. Linea por linea. Solo para descubrir que había un error en alguna parte.

    En general, leer muestras de otras personas y modificarlas; encontrar errores en ellos; extrapolando de ellos.

    0
    akauppi

    Pasando del equipo, fui programador principal a un nuevo equipo que se ocupa de una tecnología muy diferente de la que no sé nada.

    Y luego hacerlo de nuevo después de 2 años.

    0
    shoosh

    Escribió un compilador de Scheme en C. No solo tuve que aprender Scheme por dentro y por fuera, sino que aprendí todo sobre compiladores, cómo se ejecuta el código en el hardware, cómo funcionan los recolectores de basura, entre otras cosas.

    0
    Josh Segall

    Como muchos otros han dicho, escriba MUCHO código y asegúrese de aprender idiomas de diferentes estilos. Con eso, quiero decir, no te limites a los idiomas que son similares. Por ejemplo, si conoce Java, entonces aprender C # no será demasiado difícil porque hay bastantes similitudes (recolección automática de basura, etc.) pero aprender C++ después de Java o C # mejorará tus habilidades mucho más porque si te obliga a pensar en tu aplicación de manera diferente. Además, aprenda a usar la herramienta correcta para el trabajo. No tiene sentido escribir una transformación de archivo simple en Java cuando puede hacer lo mismo con la mitad del código en Perl o con herramientas estándar como awk

    Hacer las cosas que fueron un desafío para mí fue de gran ayuda

    0
    Sean

    En mi experiencia:

    • Practique el desarrollo basado en pruebas pesadas (TDD) hasta que se sienta cómodo escribiendo pruebas antes de la implementación real. Te hará un mejor programador.
    • Tenga proyectos para mascotas al margen o simplemente participe en proyectos de código abierto.
    • Intenta formar equipo con personas mejores que tú. Observe qué herramientas usan y cómo abordan los problemas.
    • Siempre encuentre cosas nuevas que lo entusiasmen con la programación. Se apasionado.
    • Crear. Si solo busca el dinero, puede olvidarse de ser un gurú de la programación.
    0
    mislav
    • Cometer errores y aprender de ellos: uno de ellos fue escribir un prototipo en tres semanas que 12 años después todavía mantengo, porque permití que se lanzara, en lugar de volver a inventarlo correctamente.
    • Haciendo algoritmos 300 y especialmente orden de complejidad. De alguna manera es evidente el sangrado, pero cristalizó en mi mente los conceptos que uso todos los días.
    • Volviendo a lo básico y el código ingenioso para el sistema operativo y en 'C'. (Esto fue en parte una reacción en parte para poner un prototipo en producción). Hace que el código sea mucho más rápido y robusto. Creo que a medida que la mejora en el rendimiento de las computadoras se aplane, esto se volverá más importante en el futuro. No soy un gran fanático de los frameworks. Sospecho que estoy en minoría aquí, y podría publicar esto como una pregunta más tarde.
    • Lectura de 'Código completo'. A partir de eso, lo más importante fue el diseño de mi código y el enfoque en la simplicidad.
    0
    David L Morris

    Trabajando en una variedad de tecnologías y programas. La clave es continuar probando cosas nuevas, así que supongo que ¡UNA cosa es desafiarme a mí mismo para hacer cosas que no he hecho!

    0
    Mitchel Sellers

    Leí Efectivo Java por Josh Bloch. Durante la noche fui un mejor programador.

    0
    Craig Day

    Mucha gente ha dicho que programe, y estoy de acuerdo. Específicamente, me gusta:

    1) ¡Haz competiciones de programación! Acabo de hacer mi primera este verano y en realidad valió la pena (aunque lo admito, no lo hice fenomenalmente). Te obliga a trabajar en problemas interesantes rápidamente. Google Code Jam es excelente para esto.

    2) Escribir algoritmos que conozco bien (los tipos son increíbles para esto) en los idiomas que acabo de aprender usando las características útiles de ese idioma para hacerlo. Simplemente no hace falta escribir un tipo imperativo en ML cuando la elegancia viene de hacerlo funcionalmente.

    3) Hable con personas que AMAN idiomas particulares acerca de POR QUÉ aman esos idiomas. En lugar de elegir un lado en el debate de Perl/Python, prefiero hablar con una persona de cada lado acerca de por qué les gusta su lenguaje de elección y tomar los bits útiles para referencia futura.

    4) Leer blogs de tecnología. Descubrirás mucho sobre diferentes idiomas leyendo los blogs de las personas que los conocen. Por supuesto, esto se aplica a mucho más que a la programación.

    Por supuesto, estas cosas tienden a hacer más para convertirte en un mejor programador y pueden o no ayudarte con la Ingeniería del Software.

    0
    Alex Gartrell
    1. lea trabajos de investigación [ACM, IEEE] sobre temas que le interesen

    2. intenta resolver problemas difíciles; incluso si fallas, aprenderás de ello

    0
    Steven A. Lowe

    Descubrí mi estilo de aprendizaje (o tal vez mi discapacidad de aprendizaje).

    Descubrí que escuchar a la gente hablar es la forma más difícil de aprender. Por lo tanto, las conferencias en el aula, los podcasts y los videos son la forma menos buena para aprender y no pierdo el tiempo ni siquiera probándolos si puedo evitarlo. Soy mucho mejor aprendiendo leyendo. Así que compro y leo muchos libros y artículos web. (Ya sabes. Algo así como este sitio).

    Así como hay más de una forma de resolver un problema, hay más de una forma de aprender. Optimizar lo que funciona para mí ha sido la mejor manera de mejorar mi oficio.

    0
    OldGreyTroll