¿Cuáles son las similitudes / diferencias entre los mejores y peores programadores en la universidad?

Los grandes programadores son un superconjunto de programadores terribles. Los “peores programadores” en la universidad, comparten algunos rasgos con sus compañeros más formidables.

Sin embargo, la diferenciación entre mejor / peor en la programación no es diferente de la mejor / peor en cualquier campo. Esta es una pregunta que he pasado muchas horas investigando personalmente a lo largo de los años, y he encontrado una respuesta concluyente: persistencia.

Los mejores son persistentes.
Persistente a pesar de su inteligencia.
Tan persistente que su inteligencia es una consideración irrelevante.
Son persistentes en su búsqueda de la excelencia, por lo que estudian más tiempo, codifican más tiempo / con mayor frecuencia y, en general, siempre tratan de mejorar con empeño.

La marca de la verdadera grandeza en cualquier campo es la de una inquietud constante en lo que respecta al logro y la mejora.

Grandes personas en todos los campos siempre están “nivelando” su carácter, para tomar una línea del manual del jugador.

Entonces, para responder de manera más redonda a su pregunta, los peores programadores en la universidad son los que se apagan después de que termina la clase y no vuelven a encender hasta su próxima clase o tarea. Un título de CS por sí solo es completamente insuficiente como preparación para convertirse en un gran programador. Es esencial, pero no lo suficiente. Los grandes programadores en la universidad son los que complementan su aprendizaje con cada pieza de información de calidad que pueden obtener, y practican su oficio más allá del límite de sus habilidades. Siempre están trabajando en algo que es imposible para ellos en ese momento. Eventualmente, esas cosas “imposibles” se vuelven posibles, y se han nivelado.

Semejanza:

pereza

Diferencia:

Los mejores programadores escriben códigos geniales para que

  1. No tiene que hacer mucho trabajo más tarde: código mantenible y pruebas unitarias
  2. No tiene que volver a escribir código ni preocuparse por los efectos adversos del pegado de copias: reutilización de código y programación orientada a objetos
  3. No tenga que preocuparse por las entrañas del código más tarde cuando vuelvan a visitar: abstracción e interfaz limpia
  4. No tenga que preocuparse por la lentitud: gran O y complejidad algorítmica