¿Cuáles son los conceptos de software que todo programador debe saber?

Desde la perspectiva del conocimiento:

  • Patrones de diseño
  • Estrategias de desarrollo de software.
  • Diseño orientado a objetos
  • Matemáticas.

Desde una perspectiva de desarrollo de software:

  • BESO : “¡Hazlo simple, estúpido!”
  • Filosofía UNIX Esencialmente se trata de: escribir código que haga una cosa y lo haga bien
  • RAD (Desarrollo rápido de aplicaciones): implemente un prototipo de una idea y evalúela un poco. Si todavía es genial, implemente la lógica comercial adecuada y resuelva todos los problemas de detalles agradables. Si no, tíralo a la basura.

Desde la codificación prospectiva

  1. Código humildemente: no eres el mejor. Descubre quién es y aprende de ellos.
    • Siempre tenga dudas sobre su código.
    • No asumas que sabes más que nadie.
    • Alguien más ya ha encontrado una mejor solución. Encuéntralo.
  2. No te repitas: si no está SECO, no es POO. Inténtalo de nuevo.
    • El código DRY es un código que se puede mantener.
    • Se hace bien cuando puedes leerlo como un libro.
  3. Desarrollar para el futuro: las curitas no duran para siempre.
    • Demasiada gente codifica como si no hubiera un mañana.
      • Pero mañana, su código apesta.
    • Asegúrese de que su código no sea malo mañana.
    • Codifique cómo desea que las personas lo codifiquen.
    • Documente cómo desea que la gente antes de documentar.

Desde prospectiva de gestión de proyectos de software

  • Requisito congelado
  • Buena planeación
  • Administracion de recursos
  • Gestión de riesgos
  • Seguro de calidad.

De lo contrario, el desarrollo de software podría convertirse en lo siguiente:

Principio de realidad : el programa nunca está haciendo lo que quieres decir, está haciendo lo que escribiste . Cuando realmente aceptas que tienes el hábito de probar. Si no se prueba, está roto. También escriba pruebas automatizadas, tanto pruebas funcionales como unitarias, y guárdelas con su código. Si solo va un paso más allá y escribe la prueba antes del código, obtendrá TDD .

Programación de arriba hacia abajo : comience con el problema en cuestión y divídalo en subproblemas hasta que obtenga problemas que sepa cómo resolver. Funciona también para programación orientada a objetos o estructurada. El corolario de esto es Conozca sus herramientas: a veces un problema se resuelve fácilmente mediante alguna herramienta o biblioteca disponible o un algoritmo o patrón de diseño bien conocido y, por lo tanto, un problema se resuelve de inmediato.

Complejidad algorítmica: aprenda algoritmos comunes y complejidad algorítmica (en espacio y tiempo). Realmente no puedes ser un buen programador si no entiendes la complejidad algorítmica, incluso cuando está oculto por las llamadas a la biblioteca. También debe comprender qué es un poco y tener una idea de cómo se representan internamente los datos.

Si desea entrar en la codificación, hay posibilidades de que se encuentre con varios problemas que podrían ser desalentadores, principalmente en tutoriales debido a su falta de experiencias previas en programación. Incluso las clases de programación para principiantes pueden parecer difíciles si no conoce los conceptos básicos de programación mencionados a continuación.

Inicialmente, varias preguntas vienen a la mente. Como cómo programar o qué cursos de programación para principiantes podrían ser útiles. Hay varias fuentes en línea que lo ayudarán con la pregunta posterior; Aquí discutiremos la consulta anterior.

La programación informática o, en resumen, la programación es un proceso que parte de la formulación de un problema informático para ser ejecutado por programas informáticos. Un código fuente está escrito en uno o varios lenguajes de programación.

Echa un vistazo: 8 conceptos de programación que debes saber en 2017 | Noticias de moda

Cada programador debe conocer la programación orientada a objetos, las estructuras de datos, el algoritmo y sus análisis. Y el último pero no menos importante, un conocimiento saludable del idioma en el que él / ella está trabajando.

Las respuestas enumeradas anteriormente son muy buenas, así que intentaré no repetir y crear una cámara de eco.

De todos modos, creo que deberías saber cómo funciona el hardware. Esto es imprescindible si te gusta hackear, porque a menudo te metas con la memoria y otras cosas por el estilo. Serás un mejor desarrollador de software porque muchos de ustedes saben cómo funciona el hardware y POR QUÉ FUNCIONA. No puedo enfatizar esto lo suficiente, asegúrese de saber cómo funciona el nivel básico de una computadora. A partir de entonces, puede comenzar a dominar la computadora. La mejor de las suertes

Patrones de diseño de software y experiencia de programación orientada a objetos que parece ser una de las habilidades más importantes cuando se trabaja en grandes proyectos de software. Estudie los fundamentos de la informática: algoritmos, arquitectura informática, algunas matemáticas

More Interesting

¿Qué es una explicación intuitiva de la complejidad del tiempo de ejecución del algoritmo?

¿Encontrar XOR de pares ordenados en una matriz que está incluso con O (n)?

¿Hay algún algoritmo que sea más rápido que log (n)?

¿Cuál es tu algoritmo favorito y dónde lo has usado prácticamente en la vida real?

¿Cuáles son los mejores enfoques para aprender programación dinámica? ¿Y de dónde se puede aprender esto? ¿Qué tan útil es esto en la programación competitiva?

¿Cómo se realiza la agrupación en el sondeo lineal en hashing con direccionamiento abierto?

Cómo resolver un problema de puente colgante utilizando circuitos y dónde una persona puede cruzar el puente a la vez

¿Vale la pena pagar 6 x $ 49 por una estructura de datos y especialización de algoritmos en Coursera?

¿ISRO emplea el aprendizaje automático en alguno de sus sistemas de trabajo actuales?

¿Por qué se utilizan montones para la asignación de memoria? ¿Por qué no se utilizan pilas ni ninguna otra?

¿Por qué no podemos ejecutar Bellman Ford desde la fuente y relajar los bordes de los vecinos de forma recursiva y hacer una sola pasada a través de los bordes?

¿Cuál es la mejor fuente para aprender del algoritmo y la estructura de datos para principiantes?

¿Qué algoritmos puedo usar para predecir la temperatura o dichos parámetros en función de sus datos históricos?

¿Encontrar el número máximo de reinas que puedes colocar en un tablero de ajedrez modificado con paredes negras? Por favor, discuta el enfoque del algoritmo, la implementación y la complejidad en detalles.

¿Qué algoritmo se usa para escanear?