Después de varios años de educación intensiva, incluido el cálculo en la universidad, utilizamos las habilidades que aprendimos para resolver problemas. Al comprender cómo funciona la CPU, después de tomar clases para comprender cómo funcionan los diferentes lenguajes de programación con el hardware y la lógica matemática, podemos crear algoritmos elegantes para resolver problemas complejos y hacer que las máquinas hagan lo que queremos que hagan. .
Hay un método llamado O (x) donde x es el factor de eficiencia del código. cuando x es grande, es un código incorrecto Para un procesamiento intensivo. Considere buscar datos en una base de datos y piense cómo podría buscar una tarjeta de números de especificación en un mazo de 100. suponga que las tarjetas están en orden y desea buscar la tarjeta número 75. ¿Cómo la encontraría rápidamente?
Tú. podría comenzar al principio o al final del mazo e ir hasta que lo encuentre. Esta es una búsqueda lineal, O (100). Observará todas las cartas hasta que encuentre la carta elegida.
Vamos a llevar x a un valor muy grande. Trabajo con bases de datos con cientos de miles de millones de registros. La búsqueda lineal llevará horas, a menos que lo que estoy buscando esté al comienzo de la búsqueda.
X es el número de registros. Ahora, si construyo un índice en una estructura de datos eficiente, puedo convertir O (x) en O (base de registro 2 (x)) al construirlo en un árbol binario.
Lo que esto significa es que, dada la base de registro 2 de x, puedo encontrar mi registro en pocos conjuntos de datos.
¿Alguna vez has jugado 21 preguntas? Mismo concepto Algunos piensan en algo. Usted hace preguntas de sí / no solamente. Si tienes cuidado con lo que preguntas, puedes obtener lo que tu amigo está pensando en 21 preguntas o menos.
Log ^ 2 (1000000000) es 20.8. Esto significa que en mil millones de registros solo necesita mirar no más de 21 para encontrar el suyo.
En la universidad hay clases que enseñan algoritmos y optimización. Utilizamos estas herramientas y las incorporamos en nuestros jorbs para crear un software elegante para realizar tareas muy complejas.
En los últimos años, los ingenieros de software de Mars Mission pudieron colocar un satélite sobre Marte para fotografiar el aterrizaje del rover. En Vivo. Esta fue quizás la hazaña de ingeniería de software más impresionante que he visto. ¡Imagina que todas las variables van desde una nave espacial de la Tierra viajando miles de millones de micrófonos en el transcurso de varios meses para transmitirse en vivo por televisión para transmitir el aterrizaje de la nave que he visto en televisión!
¿Imagina los algoritmos necesarios para guiar un cohete cohete SpaceX para que aterrice en una pequeña plataforma de aterrizaje flotante de forma automática y precisa cada vez, sin importar el punto de elevación o aterrizaje? Estos serían muy desafiantes y profundamente gratificantes.