Para decirlo de otra manera ... ¿Cuál es el malentendido más común y frustrante sobre programación que has encontrado?
¿Qué mitos / conceptos erróneos generalizados y de larga data encuentran difíciles de disipar / corregir para los programadores ?
Por favor, explique por qué esto es un mito.
experience
self-improvement
code-quality
mistakes
conocidos
fuente
fuente
Respuestas:
Eso porque eres un programador, sabes cómo reparar la máquina montada en virus de [persona].
fuente
Una cosa común de recursos humanos que me vuelve loco cuando busco trabajo: la suposición implícita de que todas las habilidades de codificación son específicas del lenguaje, que no hay experiencia en ingeniería de software que trascienda los conjuntos de comandos. Esa experiencia de diez años en Java y otros cinco en Perl significa que sería completamente inútil en un proyecto que usa, por ejemplo, C #.
"Sí, hay una curva de aprendizaje. Pero he hecho transiciones más difíciles que esta. Te haré un trato, me pagarás el 80% durante el primer mes y al final de ese tiempo si no estoy ... oh , espera, en realidad no estamos teniendo esta conversación, porque tu mono de recursos humanos simplemente eliminó mi aplicación ".
fuente
Si no estás escribiendo, no estás trabajando.
Creo que las miradas de zombis en blanco y los paseos por el café son esenciales para que los programadores organicen cosas en sus cabezas.
fuente
que puede acelerar un proyecto tardío, simplemente lanzando más personas.
fuente
Ese software de escritura es fácil.
¿De qué otra manera explican todos estos proyectos que se ejecutan a lo largo del tiempo y por encima del presupuesto y las personas (políticos, los medios de comunicación, etc.) todavía están sorprendidos, y los clientes se quejan cuando les dice que su "pequeño sitio web" (o lo que sea) realmente tomará 6 meses para desarrollar y costar varios miles de dólares (libras, euros, [insertar moneda de elección])
Con requisitos difusos y siempre cambiantes, a veces pienso que es sorprendente que cualquier software se termine.
Sé que es un poco más complicado que eso;)
fuente
La complejidad de la aplicación es directamente proporcional a la complejidad de la interfaz de usuario. Con este razonamiento, deberías poder construir Google o Twitter durante un fin de semana.
fuente
Todos los programadores son buenos en matemáticas. :-)
fuente
Cualquier niño adolescente que piratee con computadoras es equivalente (o superior) en habilidad a un programador veterano de trabajo.
fuente
Eso en tiempo real significa rápido.
Indicando "Los paquetes deben procesarse en tiempo real". no tiene valor y el gemelo malvado ... respondiendo "¿Qué tan rápido debe pasar X?" con "Tiempo real" es posiblemente menos que inútil ... rayando en estúpido en lugar de ignorante.
En tiempo real significa que, en pocas palabras, esa función Y siempre tomará X cantidad de tiempo y que cualquier desviación indica un error grave. La duración de X no define "en tiempo real", podría ser de seis microsegundos o seis días. Que usted pueda determinar que la función Y tomará X el tiempo define "tiempo real". Los sistemas en tiempo real son deterministas según esta definición.
Así que déjalo.
fuente
¿Por qué simplemente no lo escriben bien la primera vez, en lugar de pasar tanto tiempo escribiendo código con errores y luego leyendo el código tratando de encontrar los errores?
:-) :-) :-) :-)
fuente
Si no has ido a la universidad, no eres apto para el trabajo
fuente
Esa optimización prematura significa que no debes optimizar en absoluto. He visto bases de datos más terriblemente malas porque nadie quería considerar el rendimiento (crítico para cualquier sistema de base de datos) en el diseño, ya que era una optimización prematura que cualquier otro problema de diseño de la base de datos. Basura, hay conocidos asesinos de rendimiento, deja de usarlos como tu primera opción.
Otro mito, es demasiado difícil refactorizar la base de datos. No, pero debe considerar cómo refactorizar en la fase de diseño para hacerlo de manera efectiva. Y, por cierto, cuanto más espere para solucionar ese molesto problema de rendimiento basado en el diseño, más difícil será solucionarlo.
Otro mal mito, el diseño de la base de datos debe reflejar los principios de OOP. No, las bases de datos están diseñadas para funcionar con conjuntos, no con principios OOP. Algunas cosas de OOP causarán problemas de rendimiento horribles y otras son simplemente tontas en términos de bases de datos.
Finalmente, debe hacer cumplir la integridad de los datos en la aplicación. Las bases de datos van a durar más allá de la aplicación y perderían las reglas cuando se reemplaza la aplicación, múltiples aplicaciones van a acceder a ellas y a menudo será necesario ejecutar consultas directas para arreglar cosas que no pasan por la aplicación. Nunca he visto una base de datos que se niega a hacer cumplir la integridad de los datos en la base de datos que tiene buenos datos.
fuente
Que hay una fuente mítica de mejores prácticas absolutas.
Ninguna desviación puede justificarse.
Ningún documento que afirme definir algo como una mejor práctica puede ser cuestionado.
fuente
El hecho de que el marketing parece pensar que agregar una tonelada de características pequeñas es menos trabajo que agregar una característica única, pero bastante pesada. Lo que probablemente sea un caso más específico de la idea errónea de que "el cambio de tareas no tiene sobrecarga".
fuente
Ese código de comentario es innecesario, o ese "buen código no necesita comentarios". A veces necesitas explicar qué está haciendo un código complejo. Además, comentar secciones de código lo ayuda a leer más rápidamente.
fuente
if user.is_logged_in: print('Welcome')
no necesita un comentarioEl peor mito: si está programando durante mucho tiempo, puede ser un administrador de proyectos fácilmente.
Y que debería convertirse en gerente de proyecto si ha estado programando durante mucho tiempo.
fuente
Si utilizamos algo distinto de Java, C # y C ++ en nuestro proyecto, no encontraremos ningún programador que lo soporte.
fuente
fuente
Java es lento .
fuente
Probablemente el más peligroso que he visto, porque se acepta tan fácilmente, es que poder escribir código rápidamente es bueno y, por lo tanto, cuanto más rápido pueda codificar [insertar función aquí] en un idioma determinado, mejor será el idioma es.
Este es un ejemplo serio de optimización prematura, ya que se necesita mucho más trabajo para mantener el código que para crearlo. Esto significa que es mucho más importante escribir código que sea fácil de leer, comprender y depurar que el código que es fácil de escribir rápidamente, y facilitar un código fácil de leer es una medida mucho más útil de la calidad del lenguaje.
fuente
Las lecciones de fabricación se pueden aplicar al proceso de desarrollo de software.
fuente
que, como programador, sabes todo sobre las últimas tendencias de hardware, overclocking, mod de casos, etc. amigos y familiares te consultan cuando compran sus equipos.
fuente
Que cuando los programadores dicen que es muy difícil de hacer / simplemente imposible, RR.HH. piensa que son flojos y desmotivados
fuente
Debe haber un programa de código abierto para mi negocio. ¿No puedes simplemente descargarlo y ajustarlo a mis requisitos?
fuente
Más de una persona me ha preguntado cómo es programar solo para darse cuenta a la mitad de la conversación que realmente piensan que programamos directamente en binario o usando símbolos matemáticos.
No sé si quiero disipar ese mito, ¡me hace ver muy inteligente!
fuente
Creo que el error más grande es que es más importante poder escribir el código fácilmente que poder leerlo y comprenderlo.
fuente
La programación es como el trabajo en línea de montaje. Estás trabajando en un producto por un tiempo determinado (tal vez con compañeros de trabajo) y finalmente lo envías. Es como construir una casa de ladrillos.
fuente
Portar un programa a C ++ automáticamente lo hará correr más rápido.
fuente
Cualquier entorno de programación con un diseñador visual de algún tipo hará que los usuarios comerciales puedan "escribir" el programa y no se necesiten programadores reales.
fuente
OOP reutilizar. Es la mayor falacia comercializada en la programación.
fuente