He estado escribiendo C ++ durante 20 años, los primeros diez de los cuales fueron juegos de computadora. He estado escribiendo sistemas comerciales de baja latencia durante más de seis años. Sería fácil decir “debes haber estado haciéndolo todo este tiempo” antes de tener las habilidades para hacerlo bien en el comercio, pero no es cierto.
Lo que realmente se necesita es la pasión y la dedicación para comprender lo que está sucediendo en su programa, comenzando por el algoritmo y trabajando hasta llegar a cómo se gasta cada ciclo de CPU individual. Si ha estado programando durante mucho tiempo, probablemente haya aprendido algo de esto en el camino, pero también he trabajado con graduados universitarios recientes con sed de saber quién ha aprendido las habilidades en un año.
El hardware y las técnicas requeridas para aprovecharlos cambian todo el tiempo, por lo que es un caso de aprendizaje continuo.
- ¿Cuál es la forma más económica de crear una aplicación móvil si no sé cómo codificar?
- ¿Cuál es el mejor software de seguridad todo en uno?
- ¿Por qué soy un asco en la programación competitiva a pesar de ser bueno para descifrar entrevistas en las principales empresas?
- ¿Cuál es la diferencia en BS en CIS en TI, BIT, ingeniería informática, informática, ingeniería de software?
- ¿Cómo verifica Facebook si hay nuevas notificaciones?
Supongo que no hay una respuesta fácil para esto: sal y comienza a mirar lo que genera el compilador [1], comienza a comparar cosas [2], lee cómo funcionan los cachés y la memoria [3], mira los documentos de Agner Fog [4] ] y prepárate para seguir aprendiendo por el resto de tu carrera. ¡Y no olvide que el algoritmo más rápido es el que no tiene que ejecutar en absoluto!
Notas al pie
[1] Explorador del compilador
[2] google / benchmark
[3] https://people.freebsd.org/~lste…
[4] Recursos de optimización de software