it-swarm-es.com

¿Qué debe saber todo programador sobre programación?

Por favor, manténgase en problemas técnicos, evite problemas de comportamiento, culturales, profesionales o políticos.

52
Maniero
  1. El error está en su código , no en el compilador o las bibliotecas de tiempo de ejecución.

  2. Si ve un error que no puede suceder, verifique que haya creado y desplegado correctamente su programa. (Especialmente si está utilizando un complicado IDE o un marco de compilación que intenta ocultarle los detalles desordenados ... o si su compilación implica muchos pasos manuales).

  3. Los programas concurrentes/multiproceso son difíciles de escribir y más difíciles de probar adecuadamente. Es mejor delegar todo lo que pueda a bibliotecas y marcos de simultaneidad.

  4. Escribir la documentación es parte de su trabajo como programador. No lo deje para que "alguien más" lo haga.

EDITAR

Sí, mi punto # 1 está exagerado. Incluso las plataformas de aplicaciones mejor diseñadas tienen su parte de errores, y algunas de las menos bien diseñadas están plagadas de ellas. Pero aun así, siempre debe sospechar su código primero , y solo comenzar a culpar a los errores del compilador/biblioteca cuando tenga evidencia clara de que su código no tiene la culpa.

En los días en que hice el desarrollo de C/C++, recuerdo casos en los que supuestos "errores" del optimizador se debieron a que yo/algún otro programador había hecho cosas que las especificaciones del lenguaje dicen que tienen resultados indefinidos. Esto se aplica incluso para lenguajes supuestamente seguros como Java; p.ej. mire detenidamente el Java modelo de memoria (JLS capítulo 17).

92
Stephen C
  • Cómo leer el código de otras personas.
  • El código no existe si no está marcado en el Sistema de control de versiones.
84
pramodc84

Los cálculos de coma flotante son no precisos.

76
Chinmay Kanchi

No dejes de aprender.

63
systempuntoout

Que lo # 1 que puede hacer para aumentar la calidad y la facilidad de mantenimiento de su código es REDUCIR LA DUPLICACIÓN.

44
Chris Holmes

Solución de problemas y habilidades de depuración

Casi no dedican tiempo a este tema en ninguno de los cursos de programación que tomé, y en mi experiencia es uno de los principales determinantes de cuán productivo es un programador. Te guste o no, pasas mucho más tiempo en la fase de mantenimiento de tu aplicación que en la nueva fase de desarrollo.

He trabajado con tantos programadores que depuran cambiando aleatoriamente las cosas sin una estrategia para encontrar el problema. He tenido esta conversación docenas de veces.

Otro programador: Creo que deberíamos intentar ver si lo soluciona.
Yo: Bien, suponiendo que eso lo arregle. ¿Qué le dice eso sobre dónde está el origen del problema?
Otro programador: No lo sé, pero tenemos que intentar algo .

39
JohnFx
  1. No seas inteligente; Se claro.
  2. Usar antes de reutilizar.
  3. Los nombres importan.
  4. Una función hace 1 cosa y lo hace bien.
  5. Lo pequeño es mejor que lo grande.
37
KevBurnsJr

Los basicos. Actualmente los programadores aprenden tecnologías, no conceptos. Está incorrecto.

34
clrod

Todo programador debe saber que está poniendo supuestos en el código todo el tiempo, p. "este número será positivo y finito", "este código podrá conectarse al servidor todo el tiempo en un abrir y cerrar de ojos".

Y debe saber que debe prepararse para cuando se rompan esas suposiciones.

26
LennyProgrammers

Todo programador debe saber sobre las pruebas.

19
Tom Duckering

Aprender conceptos. Puedes buscar en Google la sintaxis.

17
pramodc84

Pensamiento crítico y lógico. no puedes hacer nada bueno sin eso.

16
Mladen Prajdic
14
Carlos

Examen de la unidad. Esta es una excelente manera de codificar sus suposiciones sobre cómo se va a utilizar el código.

14
btlog
13
Maniero

Conocimiento del dominio. La especificación nunca es 100%; Conocer el dominio real con el que se está desarrollando SIEMPRE aumentará la calidad del producto.

13
Steven Evers

Eso es más difícil de lo que piensas.

Si bien es fácil (ish) armar algo que funcione cuando se usa normalmente, hacer frente a entradas erróneas, todos los casos de borde y esquina, posibles modos de falla, etc. es lento y probablemente será la parte más difícil del trabajo.

Entonces también debes hacer que la aplicación se vea bien.

13
ChrisF

Punteros, obviamente. :)

11
Laurynas Biveinis

Los datos son más importantes que el código.

Si sus datos son inteligentes, el código puede ser tonto.

El código tonto es fácil de entender. También lo son los datos inteligentes.

Casi cada dolor algorítmico que he tenido se debe a que los datos están en el lugar equivocado o se abusa de su verdadero significado. Si sus datos tienen significado ponga ese significado en el sistema de tipos.

11
Gonzales

Código completo 2 - de principio a fin

11
Kyle B.

Qué idioma y entorno es el más adecuado para el trabajo. Y no siempre es tu favorito.

10
Dan Diplo

Divide y conquistaras. Por lo general, es la mejor manera de resolver cualquier tipo de problema práctico, desde la programación hasta la depuración.

10
Rick Minerich

La verdadera habilidad se refleja en la capacidad de ejecutar bien un diseño simple, no en la capacidad de hacer que un diseño complicado funcione en absoluto.

Esta habilidad proviene del mayor dominio de los fundamentos, no del dominio de lo arcano. Un programador de alto calibre no se define por su capacidad para codificar lo que otros no pueden (usando funciones de nivel superior, programación funcional avanzada, lo que sea que tenga), sino más bien por su capacidad para refinar la codificación perfectamente mundana. Elegir la descomposición apropiada de la funcionalidad entre clases; construyendo en robustez; utilizando técnicas de programación defensiva; y utilizando patrones y nombres que conducen a una mayor autodocumentación, estos son el pan y la mantequilla de la programación de alto calibre.

Escribir un buen código al que usted u otra persona pueda volver en una semana, un mes o un año y comprender cómo usar, modificar, mejorar o extender ese código es crucial. Le ahorra tiempo y esfuerzo mental. Acelera las ruedas de la productividad al eliminar los obstáculos que habría tropezado antes (tal vez interrumpir su tren de pensamiento, o tal vez quitar horas o días de esfuerzo de otro trabajo, etc.). Hace que sea más fácil concentrarse en los problemas difíciles , y a veces hace que los problemas difíciles desaparezcan.

En una palabra: elegancia. Cada clase, cada método, cada condición, cada bloque, cada nombre de variable: lucha por la elegancia.

8
Wedge

Nunca culpe al usuario de lo que podría solucionarse con una experiencia de usuario más limpia o una mejor documentación. A menudo, los programadores asumen automáticamente que el usuario es un idiota que no puede hacer nada bien, cuando el problema es una mala experiencia general o falta de comunicación. Los programas están destinados a ser utilizados, y tratar al usuario con desprecio es perder el punto de programación en primer lugar.

8
user8

Todo programador debe saber cómo usar el depurador, y saber cómo usarlo bueno.

6
Brian R. Bondy

Cómo usar Google

5
bruno077

Estructuras de datos

5
Maniero

Evaluación de cortocircuito, aunque es una de las primeras cosas que le enseñan sobre los operadores booleanos.

4

Los errores del usuario no son; son errores de usabilidad:

  • La funcionalidad peligrosa debe ser deshacer, no solo advertida. Aquí está viendo rm, que todavía no funciona con la papelera.
  • Haga el cosa menos dañina si el usuario se rompe (ESC, Ctrl-C). Idealmente, el sistema debería estar en el mismo estado que antes de ejecutar el comando. rm, de nuevo.
  • Las opciones dañinas deben estar lejos de las inofensivas. Al hacer clic con el botón derecho en un archivo en la papelera de GNOME, se muestra "Eliminar permanentemente" directamente junto a "Restaurar" :(

No elegir específicamente en GNU Herramientas o GNOME, pero estos fueron los ejemplos más fáciles de encontrar.

4
l0b0

Cómo calcular con precisión cuánto tiempo llevará implementar una característica. Más importante aún, cómo transmitir que no estás mintiendo cuando envías esa estimación.

4
wheaties

El estilo de codificación importa:

  • las sangrías consistentes importan,
  • el uso constante del espacio en blanco (por ejemplo, alrededor de los operadores) es importante,
  • la colocación consistente de {} s importa,
  • los identificadores bien elegidos importan,
  • etc.

... y el buen diseño importa.

Idealmente, el programador aprende estas cosas antes (o durante) su primera revisión de código. En el peor de los casos, el programador los aprende cuando el jefe le dice que haga cambios no triviales a un código horrible a toda prisa.

4
Stephen C

Hablando de desarrollo de software comercial aquí ... Obviamente, podría no aplicarse a un sistema de seguridad DOD o un cuant de fondo de cobertura.

  • Concéntrese en lo que funciona, no en lo inteligente, KISS.
  • Tenga en cuenta la regla 80/20 y no pase todo el tiempo tratando de complacer/vender a la minoría.
  • Tome un curso en estructuras de datos/algoritmos.
  • Prueba, prueba, prueba.
  • No te metas en el código que está en producción y actualmente funciona. A menos que tenga un flujo de caja excesivo y no tenga nuevas ideas. Entonces está bien.
  • La gran mayoría de su tiempo lo pasará clasificando a través de la ruina y sin resolver problemas de programación interesantes. A menos que esté entrevistando, en cuyo caso la gente solo quiere ver cómo resuelve problemas de programación interesantes.
3
red-dirt

Que ahí hay -

1) Otros paradigmas de programación más allá de simplemente OO (orientación a objetos) 2) Otros IDE mejores más allá de Visual Studio (este es especialmente para programadores que han trabajado solo en Windows y solo en tecnologías MS)

3
Manoj Waikar

Cómo funciona la computadora realmente, fundamentos del lenguaje, algoritmos/estructuras de datos, análisis de algoritmos y alguna medida de la teoría de la complejidad.

3
Paul Nathan

No puedo creer que esto no haya sido mencionado

Cada valor del programador es sal necesita poder producir software listo para el mundo .

Con esto me refiero a seguir los principios básicos de internacionalización, como la externalización de todas las cadenas, etc.

No puedo creer cuántas veces he visto cadenas inglesas codificadas o diálogos con cadenas truncadas, etc., cuando el producto ha sido traducido.

2
Jimmy Collins

Las pruebas unitarias no son una bala de plata. Todavía puede introducir errores, escribir pruebas incorrectas y no debería ser la única forma de pruebas que realice.

2
aqwert

Las computadoras no entienden la semántica. Supongamos que tienes esto:

var ferrari = new Ferrari();
ferrari.DriveTo(Places.Seattle);

Para la computadora, también puede haber usado diferentes nombres de tipo y usado:

var mxEEcceqs = new safHBBdueWE();
mxEEcceqs.HYBbQAW(n3dNm.pDojeW);

Nombrar cosas es muy importante, pero no cometa el error de suponer que la computadora sabe lo que quiere decir simplemente porque llamó a su tipo "Ferrari" o su método "DriveTo".

2
xofz

Orden de ejecución.

Te sorprendería, cuando hablas con los programadores frente a las personas que nunca han visto o tocado el código o los programadores simulados *, lo que no entienden es el orden de ejecución. Si conoce a alguien que no puede captar las estructuras de control, primero tenga esta idea en mente. Verás que aprenden más rápido después de eso.

* Sí, aquellas personas que pueden conseguir trabajo como programadores, pero cuando les haces la pregunta técnica más simple, se les cae el pedo. Creo que todos hemos conocido uno de esos.

2
Philip

Todo programador debe conocer la "ciencia" en Ciencias de la Computación (patrones de diseño, algoritmos, objetos, etc.) si puede dominar eso, puede programar usando cualquier lenguaje, solo es cuestión de acostumbrarse a la sintaxis.

2
JD Frias

Qué son el lexing y el análisis, solo una descripción vaga está bien. Mejor aún, pasando familiaridad con al menos un marco generador de analizador.

La mayoría de los WTF más horribles que he visto son las rutinas de análisis personalizadas de las personas. Horrible para codificar inicialmente, peor para mantener.

2
angusgr

Evaluación.

Un programador debe saber cómo se evalúan las declaraciones que escribe. a(line.of(code) is aSequenceOf(evaluations)) y si no comprende cómo se ve esa línea después de cada paso de su evaluación, será extremadamente restringido como programador en su capacidad para aprovechar las características del lenguaje.

No solo estoy hablando de lo básico

if (bool == false):
    return true
else:
    return false

que, por supuesto, solo se puede reemplazar por return !bool.

También me refiero a la capacidad de comprender su idioma hasta el punto en que pueda llegar a algo como esto:

string[] thingsToOutput;
for(int i = 0; i <= thingsToOutput.Length; print(thingsToOutput[i++]));    

Cuando vi por primera vez una declaración como esa, me voló un poco la cabeza; no se me había ocurrido que podría aprovechar el bucle for de esa manera. La persona que escribió esa declaración comprendió más plenamente las posibilidades disponibles para ellos: vieron más puertas abiertas que yo, lo que les dio más libertad y poder en su capacidad para diseñar códigos.

Ahora, si es bueno código es un problema, si cualquiera de esas puertas debería abrirse, eso está en debate. Sigue siendo que con gran poder viene una gran responsabilidad.

2
doppelgreener

Que saber la respuesta a esta pregunta no te convierte en programador

2
hplbsh

Conceptos básicos de licencias de software

  • La diferencia entre una licencia de copyleft "viral" (GPL) en comparación con Apache amigable de fuente cerrada y MS-PL/MS-RL no viral.

  • Cuándo debe usar LGPL y cuándo no.

  • Compatibilidad de licencia. Por ejemplo, puede vincular una biblioteca moderna con licencia de Apache a un código GPLv3, pero no GPL 1 o 2.

  • Si posee el código fuente en su totalidad, puede publicarlo con tantas (o pocas) licencias como desee.

Nota para S.O. comunidad:
Por favor, siéntase libre de editar esta respuesta como mejor le parezca ... principalmente para información no adecuada para la sección de comentarios a continuación.

2
goodguys_activate

Criptografía. No es necesario que pueda escribir su propio algoritmo de cifrado, pero debe tener una comprensión básica de cómo funciona el cifrado, la autenticación de mensajes y la PKI. He luchado durante demasiado tiempo con prueba y error a ciegas en esta área. Recientemente recogí el libro "Cryptography Engineering" (de Ferguson, Schneier, Kohno) y me ha abierto los ojos.

2
Tobias

Conozca su sistema operativo/plataforma antes de comenzar a codificar.

Si codifica Windows/Linux/Android/iOS, etc. comience por aprender el sistema operativo. Si apuntas a algo más como Web, lo mismo ocurre allí.

1
Amir Rezaei

escribir código para personas!

¡No más número mágico!

¡no escriba todo el código en una línea!

1
linjunhalida
  1. construir algo que la gente quiera
  2. construye algo que quieras usar todos los días
  3. si no comentas tu código, asegúrate de que se lea limpiamente
  4. comenta tu código
1
Michael Ossareh

No existe un error que no pueda suceder.

1
Rayne

"Hola mundo" no es una aplicación completa, ya que no hay una afirmación demostrada/programática de que la salida es de hecho "Hola mundo". El código no está completo hasta que se haya probado la unidad.

1
stimpy77

Algunos de estos ya se han publicado, pero aquí está mi lista:

  • Desarrolle los requisitos, no agregue cosas que no necesita, especialmente si "piensa" que lo hará. Si lo necesita más tarde, agréguelo entonces.
  • Cómo usar la búsqueda de Google. No molestes a tu compañero de trabajo, hasta que hayas mirado.
  • No seas inteligente.
  • No se hace hasta que cumple con TODOS los requisitos, probado, documentado y registrado en SVN.
  • Estándares de codificación adecuados, por ejemplo: convenciones de nomenclatura
1
Tyler Egeto

Aprenda a implementar bien su código, pruebas y paquete de software.

Uno de los peores hábitos de los desarrolladores que he visto en la industria es la ignorancia común de cómo poner su software en manos de otras personas, aquí hay algunas malas señales:

Nuevo entorno de desarrollo-itus:

  • Quería aprender Ruby, así que escribimos nuestras cosas en él, el cliente y la compilación principal tendrán que elegir un entorno Ruby ahora)

Version-itus:

  • Nuestro equipo pasó a la versión del compilador X + 1 porque es la última, ¿no se lo dijimos a nadie?
  • Necesitamos la versión de biblioteca Y, oh, ¿tus cosas no funcionan con eso?
  • Probamos en una versión muy antigua, ¿no funciona con la última versión?
  • Pirateamos una versión especial de kernel para que la versión funcione

Binario solo itus:

  • Nuestro entorno de construcción es realmente complicado, solo le daremos binarios

Multi-core-itus:

  • Deshabilite SMP, nuestras cosas solo funcionan en un entorno de procesador único

Hard-codificado-característica-itus:

  • Descomente este #define para habilitar la función X, ¿qué quiere decir que lo quiere en tiempo de ejecución?
1
tonylo

Simplicidad, claridad, generalidad. http://www.math.harvard.edu/computing/programming/rules.html

  • construir sistemas como redes de procesos simples conectados por enchufes/tuberías
  • intercambiar datos en un formato de texto simple: conjuntos de registros de pares "clave: valor", o TSV

"La herramienta de depuración más efectiva sigue siendo un pensamiento cuidadoso, junto con declaraciones impresas juiciosas". BWK

1
user2137

Cuanto más sepa sobre cómo funciona la seguridad en su plataforma de elección, mejor.

1
Ripped Off

Use la herramienta adecuada para el trabajo.

El programador es el elemento importante, y el lenguaje y las herramientas deben elegirse en función del problema. No tengas miedo de nuevos lenguajes y proyectos.

1
Jonathan Hendler
1
Daniel Grillo

¡No hay llanto en la programación!

1
Billy Coover
  1. una comprensión profunda de los conceptos básicos, p. tipos de datos, interfaces
  2. una comprensión de nivel medio a alto de la herramienta que están utilizando, p. conocimiento específico de .net/Java
  3. una idea razonable de 'las otras tecnologías con las que interactúan tus cosas' p. cómo funcionan las bases de datos
  4. aproximadamente a dónde se dirige su base tecnológica, p. qué es la computación en la nube y qué impacto tendrá en su conjunto de habilidades actual
1
adolf garlic

Cómo escribir un programa FizzBuzz.

1
CtrlDot

Cuando tiene que distribuir una aplicación o poner un sitio web en producción fuera de los límites de su empresa, todo lo que pensó que no importaba, sí lo hace.

1
JeffO

El código solo es hermoso si hace lo que se supone que debe hacer.

1
sambeau
  • Binario con conocimientos básicos de firmado y sin signo.
  • Comprende cómo funciona cualquier sistema de numeración posicional.
  • Comprenda cómo se almacenan las estructuras de datos básicos en la memoria.
1
Michał Piaskowski

La fijación del código requiere más inteligencia que escribir el mismo código inicialmente.

Por lo tanto, si escribe código al límite de su inteligencia, entonces, por definición, no es lo suficientemente inteligente como para corregirlo cuando se rompe.

1
Adam Bachman

Escriba sus estructuras de datos primero, eso significa todo, desde esquemas de bases de datos hasta mecanismos de serialización/swizzling.

La mayoría de los proyectos tratan de almacenar y mover datos del punto A al punto B en formato C.

Cuando todo esté dicho y hecho, aproximadamente el 90% de su código será lógico para formatear, pero el verdadero asesino es simplemente tener un formato para acceder y escribir sus datos. Una vez que tenga una API para acceder a los datos, puede jugar con el formateo que desee, pero una vez que comience la producción con una API de almacenamiento, puede doler mucho darse cuenta de que lo arruinó.

1
user2040

En las 5 preguntas esenciales de la pantalla del teléfono de Steve Yegge, intenta asegurarse de que los entrevistados tengan un conocimiento básico de:

  1. Codificación. El candidato tiene que escribir un código simple, con la sintaxis correcta, en C, C++ o Java.
  2. OO diseño. El candidato tiene que definir conceptos básicos OO), y proponer clases para modelar un problema simple.
  3. Secuencias de comandos y expresiones regulares. El candidato tiene que describir cómo encontrar los números de teléfono en 50,000 páginas HTML.
  4. Estructuras de datos. El candidato tiene que demostrar conocimiento básico de las estructuras de datos más comunes.
  5. Bits y bytes. El candidato tiene que responder preguntas simples sobre bits, bytes y números binarios.

http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions

Cuando escribió esto, estaba en Amazon, pero ahora trabaja (y probablemente realiza entrevistas) en Google. Esto solo te lleva más allá de la pantalla. Así es como describió lo que estaba buscando:

lo que estoy buscando aquí es un vacío total en una de estas áreas. Está bien si luchan un poco y luego lo resuelven. Está bien si necesitan algunas sugerencias o sugerencias menores. No me importa si están oxidadas o lentas. Lo que estás buscando son candidatos que no tengan ni idea, o estén terriblemente confundidos, sobre el área en cuestión.

1
Lou Franco

La documentación es muy importante. Más aún si estás construyendo algo desde cero. Ayuda a documentar sus ideas antes de escribir cualquier código.

Aprendí esto de la manera difícil.

1
Pablo

No puedo comentar todavía, pero sobre el tema de "Habilidades de prueba y depuración", esta pequeña joya por Ned Batchelder es una lectura obligada. (Entonces gane, gran parte de lo que tiene que decir sobre depuración y afirmaciones es digno de consideración).

0
Stan Rogers

Todo programador debe saber que lo único que sabe es que no sabe nada. Hay mucho que aprender.

0
sharjeel

Cada programador debe vincular las acciones FindNextSelected y FindPreviousSelected (estudio visual) a las teclas del teclado (preferiblemente F4 y F2). Obtienes dos cosas de eso:

  1. Manera más rápida de navegar entre diferentes puntos de uso de variables/funciones/subcadenas (más rápido que con "Buscar todas las referencias")
  2. Posibilidad de diferenciar cosas dentro de un documento. Al saltar hacia adelante y hacia atrás mientras busca en alguna subcadena, puede ver las diferencias entre diferentes ubicaciones. No es necesario usar Winmerge cuando es necesario comparar partes del mismo documento.
0
AareP

Conozca la sintaxis básica de la expresión regular, incluida la agrupación condicional. Manténgase alejado del uso de complementos de comando regex específicos de la biblioteca o al menos comente/factorice esas partes.

0
Bob Dobelina

Cómo hacerlo.

... ¿Qué quieres decir con que necesito 15 caracteres?

0
Randall Schulz

Programa con mantenibilidad en mente.

0
Jesse

Expresiones regulares THE Book about regular expressions

No puedo decir cuántas veces las expresiones regulares simples convirtieron datos que la gente pensó que tomaría días manipular. Debe estar presente en cada caja de herramientas del programador.

Claro, no podemos olvidar xkcd: Wait, forgot to escape a space. Wheeeeee—taptaptap—eeeeee.

0
neves

Todo programador debe saber cómo funciona un procesador.

0
Brian Makin

Maestro de Algo, pero Sé Consciente de Todo !!!!

0
user11020

Aquí hay algunas sugerencias muy buenas, pero me sorprende que nadie haya mencionado la excelente serie de artículos de Ulrich Drepper: Lo que todo programador debe saber sobre la memoria .

0
Mansur

Todos los problemas en informática pueden resolverse con otro nivel de indirección.

0
FreeMemory

Diseñe su código, y si su gerente quiere usar un enfoque de estilo RAD intente y obtenga tantos detalles como sea posible. Luego, cuando se agrega más funcionalidad, intente y piense si el código existente puede reescribirse antes simplemente acumulando más código y terminas con un rascacielos en lugar de una casa.

0
Luke Tongs

cada programador debe tener una base sólida en ingeniería de software, y también análisis de sistemas/diseño y conceptos de sistemas de información. De esta manera, si se les pide que contribuyan sustancialmente al análisis/diseño de sistemas y/o arquitectura de la información, estarán en una posición de conocimiento + opionion ... mientras que normalmente parece ser solo una opinión personal que generalmente se deriva de preferencias personales. de la mejor solución del problema. la ingeniería de software es un poco más difícil de medir, pero el conocimiento previo está disponible y en cursos universitarios adecuados en los que enseñan más que solo cómo codificar un poco de código. de todos modos, esto no está destinado a ser negativo porque el espíritu principal es solo mejorar, pero luego he trabajado con algunas personas que no tienen ningún conocimiento de TI o están los "kiddies" de un solo propósito que codifican y vuelven a codificar (y solo en su lenguaje de elección) y solo veo cada problema como una repetición de soluciones aplicadas previamente (por ese codificador), por lo que preferiría que los programadores se concentraran más en el panorama general en términos de ingeniería de software (SSADM) y consideraran los problemas como oportunidades para hacerlo mejor para el cliente.

0
chris

Ejecute el código o la lógica en su cabeza o papel primero. No se apresure a golpear el comando de compilación y ejecución para probarlo.

0
Aditya Kothadiya

Se destaca en unas pocas letras, realmente:

Ok, estoy simplificando demasiado, pero básicamente si eres bastante autodidacta, nunca te detienes a aprender y eres un poco perfeccionista, debes tener la base para convertirte en un buen programador.

Cualquier cosa más allá de eso sería más específica para roles y tecnologías particulares.

0
haylem

Si algo puede salir mal, entonces lo hará. Asume el peor de los casos

0
Adham Saad

No se olvide de la persona que usará el software que está creando.

0
Dan Goldstein

Reconozca que cualquier cosa que pueda salir mal saldrá mal. Dedique muy poco tiempo a escribir código, pero reconozca y reutilice patrones comunes. Refactorice el código constantemente para alcanzar el diseño ideal.

0
zkarthik

Todos los datos tienen que vivir en alguna parte. Puedes encontrarlo si buscas lo suficiente.

0
Jonathan

Necesitan saber sobre el poder de los cierres y comenzar a usarlos.

0
nickik

Notación hexadecimal. También campos de bits: AND, OR (inclusivo y exclusivo), complementario (1 y 2), desplazamiento de bits.

0
tcrosley

Mi primer voto sería para convenciones de nomenclatura.

0
Gopi

Cuando alguien te pida que construyas algo, recuerda: también te están pidiendo que lo mantengas. Posiblemente, para siempre.

0
Yevgeniy Brikman

Que, independientemente de lo que hagan los programas, más que decirle a una máquina cómo hacer un trabajo, son la forma más inequívoca de mostrar a otros seres humanos cómo hacer un trabajo.

0
vpit3833