¿Cuál es la filosofía de los buenos codificadores? Solía ​​poner mucho esfuerzo en mis cursos, pero siento que los proyectos paralelos y la construcción de cosas que son importantes para el mundo exterior importan mucho más.

Ser perezoso. Tan vago como puedas ser. La pereza es tu estrella guía.

Escribir código requiere esfuerzo. Por lo tanto, escriba la menor cantidad posible de líneas de código. Divide en funciones y reutiliza tu código siempre que puedas.

Leer el código requiere esfuerzo. Escriba con elegancia y nombre bien sus variables, para que pueda seguir cuando tenga que regresar en seis meses y haya olvidado por qué hizo todo lo que está haciendo ahora.

La fijación del código requiere el mayor esfuerzo. Escribe código que no se rompa. Piense en todas las formas posibles de romper su código y asegúrese de fallar con gracia y continuar. Y cuando su código se rompa (y lo hará), recuerde eso, y recuerde cómo lo arregló, y asegúrese de que todo lo que escriba a partir de ese momento nunca pueda volver a romperse de esa manera.

Idealmente, debes estar constantemente molestando a tus jefes porque terminaste todos tus proyectos temprano y todo está funcionando para que no puedan decir nada cuando pasas todo el día jugando con Quora.

Aquí está mi lista de los diez mejores consejos de codificación, supongo que algunos pueden caer en la categoría de “filosofía de codificación”, pero estos son generalmente los distintivos de las buenas prácticas de codificación …

1: No caigas en esa actitud elitista que te has encontrado con codificadores snob que saben que piensas que son mejores que tú en la codificación. Todos hemos hecho las mismas preguntas en un momento u otro y todos comenzamos al principio con “¡Hola mundo!”

2: Comience su propio proyecto paralelo. Comience pequeño y simple y perfeccione sus habilidades donde no hay presión, plazos ni expectativas del cliente. Intente codificar algunos juegos o bases de datos simples para explorar estructuras de datos, árboles, resolución de problemas y, sobre todo, depuración. Haz algo que despierte tu interés. Si prueba un proyecto que está más allá de su capacidad, ¡aprenderá algo! El fracaso nunca es una pérdida de tiempo siempre que aprenda algo de él.

3: Scott Cooper sugirió Stack Overflow como un recurso, muy importante para encontrar sitios como este a través de googlear sus preguntas mientras se encuentra con problemas o se atasca. Encontrará que “cómo” hacer una pregunta en la búsqueda tendrá un gran impacto en la búsqueda de resultados relevantes en las búsquedas. Incluya la plataforma, el idioma o el motor y la versión para limitar sus búsquedas y encontrar las respuestas que está buscando. La mayoría de las veces encontrará que otros han preguntado exactamente lo mismo en un momento u otro (vea el ítem 1). Los archivos de ayuda integrados de la mayoría de las plataformas también son una gran fuente de información, algunos son mejores que otros.

4: ¡DOCUMENTA todo tu código! Esta es probablemente una de las cosas más importantes que puede hacer para mejorar la calidad de su código y lo encontrará invaluable, especialmente si se toma un descanso del proyecto. Este es un hábito que debes desarrollar temprano.

5: Elija una convención de nomenclatura y manténgala durante todo su proyecto. Cada idioma o plataforma generalmente tendrá su propio conjunto de convenciones de nomenclatura “preferidas”, así que aprenda de manuales, guías de referencia, documentación del desarrollador y código de otros en foros como Stack Overflow. Esto ayudará a depurar y hacer / revisar preguntas y respuestas en esos foros y documentación relacionada.

6: Use el espacio en blanco y la sangría sabiamente. Esto ayudará a mantener su código limpio y organizado.

7: La perfección es una tarea tonta, ¡pero la práctica mejora! No hay sustituto para la experiencia práctica. Puedes leer hasta que se te caigan los ojos, ¡pero eso no será lo mismo que codificar hasta que se te caigan los dedos! Código de distancia! No se preocupe por memorizar, para eso sirve la documentación y el material de referencia.

8: Mantenga un bolígrafo y un bloc de notas cerca. Escriba sus objetivos inmediatos antes de codificar para ordenar sus pensamientos. Use el pseudocódigo para resolver borradores y refinar cuando lo codifique. A veces encontrará que los diagramas de bloques son útiles, otras veces un diagrama de árbol funcionará mejor. Piense en sus nombres de variables y tal en papel antes de codificar. Tome notas y escriba metas y táchelas cuando haya terminado cada una. Tengo 5 cuadernos grandes llenos de un solo proyecto.

9: Cuando se atasca particularmente (p. Ej., Parece que no puede localizar dónde está ocurriendo un error no especificado o no está exactamente seguro de qué manera abordar un objetivo; tal vez podría haber varias opciones que podrían funcionar, pero no estará seguro de cuál es el mejor ), tome un descanso y haga otra cosa y se sorprenderá de que la inspiración le llegue cuando no esté pensando en la codificación.

10: ¡Diviértete y disfruta de tu oficio! Comenzarás a desarrollar tu propio estilo de planificación, codificación y depuración mientras desarrollas hábitos en el camino, ¡solo asegúrate de que sean buenos hábitos en lugar de malos! Tómese su tiempo con su proyecto experimental para estar preparado para los desafíos del mundo real que se le presenten.

Espero que esto ayude, buena suerte!

EDITAR: en el curso abierto conferencia del MIT: Introducción a los algoritmos
se señala que la sangría (punto 6 anterior) es una mala práctica, dado que en un bloque de código anidado que supera una página, el anidamiento puede volverse más confuso. Si bien es cierto, aquí es donde entra en juego la documentación diligente del código y los comentarios. Es una buena práctica agregar comentarios al final de los procedimientos anidados para indicar a qué código anidado pertenece cuando el bloque excede una sola página de longitud.

Analizar dos veces, codificar una vez.

No tenga prisa por sumergirse en el código sin un plan bien pensado, un plan que el cliente comprenda y acepte por completo.

Parece que podrías beneficiarte uniéndote a una buena comunidad de codificadores que disfrutan ayudarse mutuamente. Encuentro Stack Overflow especialmente útil.

Si está buscando consejos generales de alguien con experiencia y discreción, me encantaría escucharlo. Envíame un mensaje privado si quieres.

La razón por la que parece que los proyectos paralelos son más importantes es que la mayoría de las personas ya tienen la educación bajo sus cinturones. Puede que te engañen al pensar que tener un auto deportivo llamativo es más importante que obtener tu licencia por la misma razón.

Un proyecto le permite mostrar qué tipo de cosas le interesan y si puede implementar las ideas que tiene. Pero si no sabe cómo evitar un punto muerto en un sistema (o cualquier otro tipo de idea “académica”), probablemente esté condenado, independientemente de su proyecto.

Idealmente, debe hacer ambas cosas, aprender conceptos en clase y ponerlos en práctica. La frecuencia con la que lo haga depende de cuánto tiempo tenga y cuánto capte algo su atención.

Mantenga la calma,
Sigue codificando …
🙂

Un proyecto en solitario tiene una mejor oportunidad de finalización oportuna y satisfactoria si es alentado y apoyado por una comunidad de mentoría.

More Interesting

Cómo mejorar la calidad del producto desde el punto de vista del control de calidad

¿Es posible escribir software libre de errores? ¿Qué tan buenos somos para atrapar todas las posibles excepciones? ¿Debemos prestar más atención a cada escenario de excepción o falla? ¿Es ese el problema fundamental? ¿Eso merece su propia línea de trabajo?

¿Para qué se puede usar Python? ¿En qué IDE se puede desarrollar Python?

¿Cómo se gestiona un proyecto de código abierto tan grande como Linux sin tener un equipo de gestión central a cargo?

¿Es incómodo ser ingeniero de iOS en una empresa, como Microsoft, que compite directamente con Apple?

¿Cómo se hace una oferta / estimación de contrato de software sin cobrar de más o cambiar brevemente?

¿Qué significa exactamente la frase 'un protocolo se construye sobre otro'?

Estoy usando Ubuntu desde hace 2 años pero todavía soy un usuario ingenuo. ¿Cómo puedo ser bueno en eso? ¿Qué tipo de enfoque debería seguir para ser bueno en Linux?

¿Los programadores autodidactas (sin ningún entrenamiento formal de CS en la escuela) son mejores o peores en la programación que los programadores tradicionalmente educados?

¿Cómo se implementan las capas OSI?

¿Hay alguna forma científica de comparar soluciones de software?

¿Cuáles son las diferentes técnicas de recolección de basura (GC)?

¿Cuál es exactamente el trabajo de un analista programador en cualquier empresa de TI, como Cognizant?

¿Es cierto que Yahoo! ¿India cerrará este año?

¿Es común que se le pida que realice pruebas psicométricas para roles de ingeniería de software?