La mayoría de los algoritmos fundamentales provienen de la historia. Claro que en una clase de programación básica pueden hacer que escriba una implementación de tipo burbuja o similar. Esa es probablemente la última vez que tendrá que escribir su propio algoritmo de clasificación. Los que están disponibles en sus bibliotecas estándar fueron diseñados por alguien hace más de 20 años y es probable que sean más eficientes que cualquier cosa que se le ocurra.
Con más de 60 años de desarrollo informático, la mayoría de los algoritmos fundamentales se han desarrollado hace mucho tiempo. En los años 80 tenía un programa que tenía que clasificar una gran cantidad de datos en memoria limitada. Se me ocurrió una forma de dividir los datos en varios archivos, y una forma de fusionar dos archivos en un tercer archivo. Repita hasta que todo esté bien ordenado en un solo archivo. No fue hasta más tarde que me di cuenta de que había reinventado algo llamado “The Three Tape Merge”.
En los días en que C era rey, había que reinventar mucho la rueda. En la era moderna de .NET, Java, Python, código abierto y Google, hay tantas opciones disponibles para su uso que alguien más ya ha desarrollado. Ya no necesita escribir sus propias funciones de cadena, lista u orden, por ejemplo. Tengo viejas bibliotecas que he escrito que hacen eso porque no tenía nada más disponible libremente. Ahora puedo concentrarme en el código que es único para lo que necesito que haga en lugar de preocuparme por los fundamentos.
- ¿Cuál es el mejor lenguaje de programación para proyectos de software muy grandes?
- Cómo estructurar mi perfil de desarrollador de software upwork / elance
- ¿Qué hace un ingeniero mecánico en una empresa de software como puesto de ingeniero de control de calidad?
- ¿Cómo se usa Go en Google? ¿Cuáles podrían ser las áreas (sistemas específicos, aplicaciones) en las que Go podría reemplazar otros idiomas que se usan actualmente en Google (y por qué tendría sentido introducir Go en lugar de otro idioma)?
- ¿Quora tiene un equipo dedicado de control de calidad / pruebas?