Cómo obtener una carrera en el desarrollo de mejores estructuras de datos y algoritmos

Encuentre algunos problemas que deben resolverse mediante mejores estructuras de datos y algoritmos y simplemente resuélvalos o contribuya al código abierto.

Algunos proyectos de muy fácil rendimiento y de fácil entrada pueden ser:

Bundler for Ruby: cada proyecto Ruby tiene un Gemfile que enumera las gemas (bibliotecas) que usa el proyecto. El usuario debería poder ejecutar un comando para determinar la versión más nueva de todas las gemas que podrían instalarse sin causar ningún conflicto (donde existen varias dependencias en diferentes versiones de la misma gema). Teniendo en cuenta la información de semver (versiones semánticas), el usuario debería poder utilizar la utilidad de agrupación para gestionar de forma segura y estratégica las actualizaciones de versiones principales, secundarias y de puntos.

Actualmente, la utilidad solo puede determinar las versiones más recientes de todas las bibliotecas instaladas que se pueden instalar, y no presta atención a las convenciones de semver. También es bastante lento, por lo que, además de la sofisticación algorítmica, también hay espacio para mejoras de rendimiento.

Lo mismo se aplica a las utilidades de gestión de paquetes para los principales lenguajes de programación. Pip para python y npm para javascript.

Las preguntas que el usuario debe responder son:

1) ¿qué bibliotecas pueden actualizarse con riesgo cero según semver?

2) ¿qué bibliotecas impiden que mi proyecto ejecute el código más reciente de la mayoría de las otras bibliotecas?

3) también, idealmente, el usuario podría usar la misma utilidad para hojear el registro de cambios o incluso el código del conjunto de cambios (de git) para todas las bibliotecas que han cambiado.

Por supuesto, para que esto funcione puede ser necesario marcar qué bibliotecas usan semver y cuáles no, pero esto no debería ser demasiado difícil para crear una lista maestra para el desarrollo inicial.

En serio, hay muy pocas personas que piensan como tú.
Y necesitamos personas como tú. Considere hacer un doctorado en el campo de Algoritmos y estructuras de datos.

More Interesting

¿Qué criterios utiliza para determinar si un artículo / publicación es útil para usted?

¿Cuáles son algunos procesos que realizamos con computadoras que no se encuentran bajo el formalismo de la máquina de Turing?

Cómo calcular el área debajo de y = cosx [0, pi / 2] en C

¿Qué son las matemáticas básicas y fundamentales para la visión por computadora, el aprendizaje automático, la inteligencia artificial, la estructura de datos y algoritmos, sistemas de control, sistemas en tiempo real y procesamiento de señales digitales?

¿Cuál es el algoritmo para encontrar todas las soluciones de hacer 100 de 1-2-3-4-5-6-7-8-9 en orden?

En términos simples, ¿qué es SOCP (programación de cono de segundo orden / programación semi-definida) y en qué se diferencia la optimización convexa de otros tipos de optimizaciones?

Empleos y carreras: ¿Puedo conseguir un trabajo en un lugar como Google, Facebook, etc. con un título en matemáticas?

¿Por qué soy bueno en cursos intensivos de programación, pero sigo reprobando en cursos de teoría de informática? ¿Estoy en condiciones de ser ingeniero de software?

¿Alguien puede explicar paso a paso cómo se puede resolver el siguiente problema?

¿Qué tipo de matemáticas necesita más un programador? Sé que depende principalmente del trabajo del programador, pero ¿qué es "debe saber"?

Cómo imprimir el conjunto de potencia de un conjunto finito de enteros en Java usando recursividad

Tecnología: ¿Es posible identificar "objetos" en imágenes tomadas desde teléfonos inteligentes?

¿Cómo convertiría estos datos matemáticos a la función por partes?

¿Es log n lo mismo que O (nlogn)?

¿Debo estudiar Matemáticas e Informática o Ingeniería Eléctrica y Electrónica?