¿Cuáles son algunos consejos para actualizar desde un programador mediocre?

Primero, reconozca que la programación es difícil, por lo que lleva diez años aprender a programar.

Así que la motivación es esencial. Si te gusta la programación, podrás progresar mucho. Si es aburrido para ti, tu vida podría ser miserable y deberías considerar cambiar tu carrera. No todos son aptos para programar. Mantente feliz haciendo lo que haces.

Suponiendo que te gusta la programación y quieres mejorar, te sugiero:

aprende constantemente mas cosas Para un trabajo de desarrollo, es normal aprender, y su empleador debería permitirle aprender más, incluso en el trabajo (y la capacidad de aprender debería ser un factor decisivo a la hora de elegir un trabajo)

Leer Introducción a Algoritmos y SICP.

Instale y use Linux en su computadora (al menos en casa, y si es posible en el trabajo). Está hecho de software libre, cuyo código fuente puede estudiar y contribuir.

Aprenda varios lenguajes de programación (en particular, algunos “académicos” que no se utilizan ampliamente en la industria: Haskell, Ocaml, Agda, Scala, Clojure; mejorarán su pensamiento en su trabajo diario) y paradigmas. Leer lenguaje de programación pragmática

Lea más sobre los sistemas operativos OS: Three Easy Pieces) y la programación avanzada de Linux

Contribuye a algún proyecto de software libre .

(busque en Quora, respondí varias veces a preguntas similares y di una lista más completa)

“Programador mediocre” tiene un significado muy flexible. Lo que el programador “mediocre” de Apple puede ser una superestrella para una compañía pequeña que normalmente lucha por encontrar a alguien bueno.

Hice mi camino desde un programador mediocre de gama baja (y todavía agradeciendo a quienes me dieron la oportunidad de aprender) a ser bastante decente en lo que hago ahora.

Lo que más me motivó y me dio más poder fue ser tête-à-tête con un proyecto, cuando nadie puede ayudarlo, cuando sabe más sobre el proyecto y aún no sabe nada. Le motiva aprender lo más posible y paralelamente lo convierte en un mejor programador, ya que de esta manera hace mucho menos cosas sin sentido y aprende mucho más sobre las herramientas que usa. El lenguaje de programación no es más que una herramienta, después de todo.

Otro consejo importante que también usé fue mantenerse alejado de las comunidades. Es increíble lo fácil que es absorber todo tipo de opiniones, lo que es bueno y lo que no, y lo fácil que es comenzar a juzgar las cosas por las mismas categorías. Cada herramienta tiene su uso, usa tu mente y no la opinión de alguien.

Si no tiene una educación académica relacionada con la programación, es extremadamente importante conocer al menos cosas básicas sobre cómo funciona el desarrollo de software en una escala macro, cuáles son las soluciones populares para problemas populares, cómo hacer documentos, cómo diseñar software. y mucho más. Este conocimiento lo coloca aparte de aquellos que simplemente programan de manera rápida y sucia y le brindan oportunidades mucho mayores.

Y la última, centrada en la ingeniería y no en la mera codificación. Es fácil pensar que recordar todo tipo de arreglos es importante porque las entrevistas (malas) lo piden, pero en realidad se supone que debes saber cómo construir cosas que funcionen. Se supone que debes saber cómo interactúan las cosas entre sí y qué otros efectos tienen. Se supone que debes saber qué impacto tiene tu producto en un sistema y usuario. Es bueno recordar la implementación del algoritmo C de clasificación rápida, pero no lo convierte en un mejor programador. Tener una experiencia práctica en la construcción de un proyecto grande y exitoso lo hace.