Soy un ingeniero de software en ciernes (ahora estudiante de segundo año, con especialización en CS) y realmente me cuesta entender los programas de otras personas. Quiero saber si esta habilidad (o falta de ella) puede ser una desventaja para mí, y si es así, ¿cómo puedo desarrollarla?
reading-code
James Bond
fuente
fuente
Respuestas:
Es esencial.
La forma en que lo desarrolla es escribiendo su propio código (mucho), y sí, luchando por leer el código de otras personas.
El problema, por supuesto, es que no todos piensan como tú. Estuve en una clase de primer año de Java hace mucho tiempo, y nos dieron una tarea. Al contrario de lo que creía (que era que las respuestas convergerían en tres o cuatro soluciones comunes), todos en la clase tenían una solución única para la tarea.
Se deduce que deberías estar leyendo un buen código.
Esta es una de las razones por las que los Patrones de diseño se han vuelto tan populares y por qué debería estudiarlos. Los patrones de diseño proporcionan un vocabulario común para que los programadores se comuniquen y sintonizan su mente para encontrar "mejores" formas de resolver problemas informáticos.
También debe estudiar algoritmos y estructuras de datos.
Corolario: siempre debe esforzarse por escribir código que otros desarrolladores puedan entender fácilmente.
fuente
Es muy importante
Una vez que te gradúes y salgas al mundo, la mayoría de los proyectos en los que trabajarás ya tendrán código aportado por otros. ¡Lucky es el programador que pasa todo su tiempo en proyectos nuevos!
Es una habilidad que se adquiere a través de la práctica y la paciencia, y en muchos casos, es una habilidad en la que muchas personas realmente no tienen muchas oportunidades de trabajar hasta después de graduarse y obtener ese primer trabajo. ¡Relajarse!
(¡aunque si tu escuela tiene un programa cooperativo, eso te daría experiencia previa a la graduación para trabajar en proyectos grandes que en su mayoría están escritos por otras personas Y te da créditos académicos! ¡Algo a tener en cuenta, si está disponible)
fuente
Es una habilidad importante , dependiendo de los detalles del lugar donde trabajas, incluso podría ser más importante que escribir el código en sí.
Como otras habilidades, ¡la práctica hace la perfección! Trate de leer el código de otro programador, depúrelo y lo que me ayuda personalmente es refactorizar o mejorar pequeños fragmentos de código y expandir desde allí.
fuente
Hay habilidades distintas tanto en lectura como en escritura de código.
En cuanto a lectura vs. escritura. Sí, la lectura es esencial.
Algunas máximas que nos ayudan a muchos de nosotros con eso son:
OKAY. Entonces eso es genial. Ahora baja a lo que probablemente estés experimentando.
Dios mío, esta enorme base de código con decenas de miles de líneas de código fuente y clases que tienen cientos de líneas de largo con dependencias locas y cada vez que trato de seguir algo tengo que mantener 10 niveles en mi cabeza, etc., etc.
Suena familiar ? Sí. Respiracion profunda. Relajarse. Es normal. De eso están hechos los sistemas de producción. La gente sobrevive (y florece) en estas situaciones aparentemente incomprensibles porque:
fuente
La mayoría de estas respuestas se centran en la importancia de la lectura de códigos para la superación personal. Estoy totalmente de acuerdo y lo apoyo.
Hay otro ángulo con el que debe tener cuidado: incluso si fuera un prodigio que no podría beneficiarse de la lectura de otros enfoques (imposible, pero por el argumento ...), aún necesitaría saber cómo leer el código debido a un concepto que básicamente no existe en el ámbito universitario: la gran mayoría de los proyectos de la industria son proyectos de campo marrón (es decir, integrarse o integrarse con una base de código preexistente).
La necesidad de leer el código solo para comprender la base de código y los procesos existentes es real. Siempre es posible hacer preguntas a otro desarrollador sobre el código, pero esto solo puede llevarle tanto tiempo. La gente se va, cambia de proyecto o el tiempo simplemente pasa. Los detalles de bajo nivel se desvanecen de la memoria y los programadores de mantenimiento aplican parches. En algún momento, no hay una única fuente de verdad, excepto el código en sí.
Una buena higiene del código, guías de estilo, revisiones de código y ayuda con la documentación, pero en algún momento el código es la fuente de la verdad sobre lo que sucede y la única forma de encontrar la respuesta será ir a buscarlo usted mismo. Además de sus usos en el autodesarrollo, la capacidad de leer código es una habilidad claramente separada de escribirlo.
fuente
Comprender el código de los demás es algo de lo que no se puede escapar, ya que probablemente trabajará en equipo, incluso si no está en el equipo, buscará en Google diferentes cosas y tendrá que comprender el código de muestra. Entonces sí, es imprescindible.
Lo que siento es que todo el mundo tiene ese sentimiento, puede ser menos que otro, especialmente al comenzar, entiendes tu código mejor que otros, ya que pasas mucho más tiempo con tu propio código que el código de otra persona, ya que no solo lees sino que escribes y estructuras en tu mente Si comienza a pasar más tiempo con el código de otros y primero trata de ver qué tipo de estructura / flujo se está utilizando, esto ciertamente le hará comprender mejor el código.
Para que mi punto sea aún más convincente si tiene algún código que escribió hace un año, intente comprenderlo nuevamente y puedo asegurarle que tomará más tiempo pero menos que el código de otros, ya que tiene idea de cómo estructurar su código.
Espero esta ayuda, no te decepciones, es perfectamente normal. Pase más tiempo con el código y eventualmente lo obtendrá.
fuente
Bueno, acabo de recibir un proyecto con aproximadamente 100,000 líneas de código escritas por un equipo en un país diferente, y tengo que hacer algunos cambios muy significativos en una copia de su código en los próximos meses, mientras dejo tanto código en común como sea posible.
Usted me dice cómo puedo hacer mi trabajo sin la capacidad de leer el código de otras personas, rápidamente. Si no puede leer el código de otras personas, está completamente atascado.
fuente