before you code, learn how computers work
Summary
TLDREn este video, el presentador, conocido como 'low level', comparte sus consejos para aprender programación de bajo nivel rápidamente. Recomienda aprender a programar en C, un lenguaje de bajo nivel que enseña la gestión de memoria y cómo escribir código seguro. Sugiere crear un servidor HTTP para entender profundamente el protocolo y la programación defensiva. Además, insta a los espectadores a aprender ensamblador para comprender cómo funciona el CPU y a realizar ingeniería inversa para entender la compilación y la estructura de los binarios. Finalmente, anima a los novatos a aprender programación en microcontroladores para una comprensión práctica de la arquitectura de CPU.
Takeaways
- 💻 Para aprender sobre programación de bajo nivel, el presentador recomienda aprender un lenguaje de bajo nivel como C.
- 🔒 Aprender C te obliga a manejar la memoria de manera efectiva y a escribir código seguro.
- 🌐 Escribir un servidor HTTP como proyecto para aprender C enseña no solo el protocolo HTTP sino también habilidades defensivas de programación.
- 📚 Aprender a leer documentación y man pages es esencial para entender cómo funciona el lenguaje y las funciones.
- 🛠️ Aprender un lenguaje ensamblador te da una comprensión profunda de cómo se comporta el código en el nivel de la CPU.
- 🔄 Compilar un fragmento de código C y descompilarlo te enseña los fundamentos de la arquitectura de la CPU.
- 🔍 Aprender ingeniería inversa te enseña cómo están construidos los binarios y cómo funciona el compilador.
- 🏆 Participar en desafíos de ingeniería inversa, como los de crack.one, es una forma efectiva de aprender y mejorar estas habilidades.
- 🎓 Escribir código C para microcontroladores como el STM32 o Arduino te enseña a interpretar datasheets y a portar código a diferentes arquitecturas.
- 🌟 Mantenerse conectado con cómo funcionan los CPUs a nivel básico es importante para la próxima generación de arquitectos de sistemas.
Q & A
¿Qué tipo de lenguajes de programación enseña 'low level' en su canal de YouTube?
-En su canal, 'low level' enseña a programar en lenguajes como C y les enseña cómo funcionan las computadoras a través de lenguajes como ensamblador.
¿Por qué recomienda 'low level' aprender a programar en C para comprender a un nivel bajo?
-Recomienda C porque te obliga a aprender la gestión de memoria efectiva y a escribir código que sea inequívocamente seguro, ya que de lo contrario, el código podría ser inseguro y fallar.
¿Qué proyecto sugiere 'low level' para aquellos que están aprendiendo a programar en C?
-Sugiere escribir un servidor HTTP, que no solo enseñará los detalles del RFC de HTTP sino también aspectos importantes de la programación, como la programación defensiva y la lectura de documentación.
¿Qué ventaja ofrece aprender ensamblador según 'low level'?
-Aprender ensamblador y comprender cómo funciona el CPU a nivel de instrucciones te da una buena comprensión de cómo se comportará tu código y cómo se optimizará su rendimiento.
¿Cuál es la tercera recomendación de 'low level' para avanzar en programación de bajo nivel?
-Después de aprender a programar en un lenguaje de bajo nivel y entender cómo se compila el código, recomienda aprender las bases de la ingeniería inversa.
¿Por qué es útil el aprendizaje de la ingeniería inversa según 'low level'?
-El aprendizaje de la ingeniería inversa te enseña no solo cómo funcionan las cosas sino también cómo están diseñadas, lo que te ayuda a entender mejor los binarios y cómo están construidos en sistemas operativos como Linux.
¿Qué recursos recomienda 'low level' para practicar la ingeniería inversa?
-Recomienda el sitio web crack.one, donde hay desafíos de ingeniería inversa que puedes descargar y ejecutar en tu computadora o una máquina virtual.
¿Cuál es el consejo adicional que 'low level' ofrece para mejorar en programación de bajo nivel?
-Además de los tres pasos principales, 'low level' sugiere aprender a programar en C en una placa de desarrollo, como una placa STM32 o Arduino, lo que te permitirá leer y interpretar hojas técnicas y portar tu código a diferentes arquitecturas.
¿Cuál es el objetivo final de 'low level' al enseñar cómo funcionan las computadoras a nivel bajo?
-El objetivo es recordar a las personas cómo funcionan las computadoras y formar una nueva generación de arquitectos de bajo nivel que entiendan cómo funcionan los CPUs a nivel básico, para mantener la continuidad del conocimiento cuando la generación actual de expertos se retire o se vaya.
¿Qué tipo de desafíos sugiere 'low level' para los que están aprendiendo la ingeniería inversa?
-Los desafíos de ingeniería inversa suelen estar basados en hechos específicos que debes conocer, como el uso del flag de trampa en CPUs de Intel o el uso de la tabla de desplazamiento global, lo que te enseña aspectos específicos del funcionamiento de los binarios.
Outlines
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowMindmap
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowKeywords
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowHighlights
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowTranscripts
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowBrowse More Related Video
Curso Ensamblador 01(INTRODUCCION)
Cómo empezar en la PROGRAMACIÓN (Consejos, Sugerencias, Con cual lenguaje iniciar)
Lógica de Programación 👩💻 Aprende a programar en 10 minutos
Aprende a programar desde cero con PseInt! | Primer Algoritmo! | Parte 4
LENGUAJES de BAJO y ALTO NIVEL y el LENGUAJE MÁQUINA ó ENSAMBLADOR - Lenguajes de Programación #2
Errores de programadores novatos QUE DEBES EVITAR
5.0 / 5 (0 votes)