Este conocido hacker sorprende al decir que todo programador debería aprender C y ensamblador. Musk lo contrató para arreglar Twitter

Su filosofía de aprendizaje refleja cómo aborda el desarrollo de software y la resolución de problemas

Assembly
1 comentario Facebook Twitter Flipboard E-mail

George Hotz, conocido mundialmente por ser el hacker que desbloqueó el iPhone a los 17 años y que más tarde descifró la seguridad de la PlayStation 3, es también un prolífico desarrollador y empresario. Sus opiniones sobre programación y el funcionamiento de los sistemas informáticos no pasa desapercibida, y en un reciente vídeo, Hotz compartió una contundente:

"Todo el mundo debería aprender ensamblador y C", afirma Hotz. Su argumento central es que, sin un conocimiento básico del lenguaje ensamblador, no es posible comprender cómo funcionan realmente los ordenadores:

"No necesitas ser un experto en ensamblador, pero debes saber programar con él".

El ensamblador, según Hotz, proporciona una visión directa de lo que sucede en el hardware, mientras que C, como lenguaje de programación de bajo nivel, permite valorar todas las abstracciones que ofrecen lenguajes más modernos como Python.

Hotz explica que el ensamblador enseña los fundamentos de la memoria y las instrucciones que operan en el hardware, mientras que C enseña a gestionar la memoria y trabajar con un compilador.

"C hace que te hagas una idea sobre cómo funciona un compilador y cómo asigna los registros".

Pero el camino no termina en C. Hotz sostiene que después de aprender C, es necesario aprender Python, porque sólo así se pueden apreciar las ventajas de un lenguaje de programación de alto nivel (si bien esta opinión es bastante menos impopular que lo afirmado antes):

"Ensamblador, C y Python están apilados uno sobre otro".
Hotz cree que una base sólida en lenguajes de bajo nivel permite desarrollar habilidades para enfrentarse a sistemas complejos y optimizarlos de manera eficiente
Un vistazo a…
La carrera de programador en 2017 y en el futuro (con Javier Santana)

Aprender otros paradigmas: funcional, hardware y machine learning

George Hotz no se limita a recomendar ensamblador, C y Python. También sugiere explorar otros paradigmas de programación que son esenciales para convertirse en un programador completo.

  1. Paradigma funcional: Hotz recomienda aprender Haskell, un lenguaje de programación funcional, y llegar hasta lenguajes con tipos dependientes, como Coq: "Es importante aprender estos lenguajes porque son muy teóricos y permiten desarrollar una comprensión profunda de la teoría de lenguajes de programación".
  2. Hardware y Verilog: Otro paradigma que Hotz destaca es el que se relaciona con el diseño de hardware. Aquí menciona Verilog, un lenguaje de descripción de hardware (HDL), que se diferencia fundamentalmente de los lenguajes secuenciales. "En Verilog, todas las instrucciones se ejecutan al mismo tiempo", explica. Aprender Verilog, según Hotz, permite entender cómo funciona el hardware a nivel básico, algo que ni siquiera el ensamblador puede mostrar completamente.
  3. Machine Learning y PyTorch: Finalmente, Hotz menciona un cuarto paradigma emergente, el de la programación impulsada por datos. En este campo, recomienda aprender PyTorch en lugar de TensorFlow. Hotz sugiere que el aprendizaje de máquina requiere un conjunto de habilidades completamente nuevo, que se aleja de los paradigmas tradicionales de la programación.

La conclusión de George Hotz es clara: para entender verdaderamente la computación, es imprescindible comenzar desde el nivel más bajo y avanzar hacia lo más abstracto. Para él, el futuro de la programación no consiste en dominar un único lenguaje o paradigma, sino en combinar las fortalezas de todos ellos.

George Hotz y su paso por Twitter

La opinión de George Hotz tiene un peso significativo en la industria tecnológica. No es casualidad que Elon Musk le contratase para colaborar en la solución de problemas críticos en Twitter (ahora X). Hotz trabajó brevemente en la plataforma, enfocándose en optimizar funciones y solventar problemas técnicos complejos, una tarea que, según muchos, sólo alguien con su nivel de conocimientos podría abordar.

Imagen | Marcos Merino mediante IA

En Genbeta | No sabía cómo funcionan por dentro las CPU, así que este programador simuló una usando sólo código

Inicio