Soy un chico de 13 años que está extremadamente interesado en la programación y el hacking, ¿dónde debería empezar exactamente?

Solo empieza. Las herramientas realmente no importan; Enfócate en la tarea, no en el lenguaje o la biblioteca. Te recomendaré algunas opciones, pero no vivas por ellas; son solo posibilidades y pasarás a otra cosa en algún momento. No te quedes estancado con una sola herramienta; Usa el mejor para el trabajo. Por ahora, voy a recomendar las más fáciles para comenzar rápidamente, pero luego exploraré múltiples opciones y usaré lo que funcione mejor (probablemente no sean las que recomiendo).

¿Interesado en los juegos? Build Minesweeper, o un juego de laberinto, o algo así. Un juego simple de algún tipo. Pruebe JavaScript en el navegador, o quizás Python (con la biblioteca de Pygame) para juegos de escritorio.

¿Interesado en sitios web? Cree un sitio web básico, con un front-end y un back-end (cliente y servidor). Use JavaScript para el front-end con Python o JavaScript o Golang para el back-end.

¿Interesado en sistemas operativos y similares? Un proyecto de sistemas fácil es construir un servidor web; Me pareció una buena introducción a conceptos menos abstractos como la gestión de memoria y el manejo de archivos de bajo nivel, así como el diseño de mis propias abstracciones. Utilice el lenguaje C solo con la biblioteca de sockets proporcionada por el sistema operativo.

¿Interesado en la criptografía? Cree una serie de herramientas de criptografía simples, con cualquier lenguaje que desee, realmente no importa en lo más mínimo. Pruebe cosas como Caesar shift, Railfence o encriptación con una clave aleatoria generada a partir de una contraseña.

Etc. Elija un interés y construya algo simple para ello. Ahora construye algo más complicado. Repetir.

Hardware.

Obtenga un Arduino, que es posiblemente la mejor opción para comenzar ya que es relativamente simple, elija uno de los posibles escudos, por ejemplo uno para conducir motores paso a paso u obtener información de los sensores, e intente usar su imaginación para sacar algo de esto. con la programación.

Arduino se puede programar en C / C ++, tiene un IDE relativamente simple, hay miles de ejemplos y tutoriales por ahí.

La programación no es solo una cosa: es un conjunto de competencias entre las cuales el conocimiento de un lenguaje de programación es solo un requisito previo. Pero el conocimiento de cómo funcionan las computadoras, lo que no debe faltar entre las herramientas del programador es un puerto de E / S, una interrupción o un temporizador.

¿Y el hacking?
Imagina construir un pequeño Arduino – Robot y hacer que se mueva a tu voluntad.
Mucho mejor que entrar ilegalmente en un sitio, ¿no es así?

Buena suerte compañero.

Tienes mucho tiempo delante de ti. Tenga en cuenta que la programación es difícil (pero emocionante para muchos). Y no es sobre todo conocer algún lenguaje de programación (sino sobre la resolución de problemas con la ayuda de las computadoras).

(Por cierto, comencé a programar en 1974 a la edad de 15 años, en tarjetas perforadas, PL / 1, IBM370 / 168 porque mi padre trabajaba en IBM; y todavía me divierto en la programación y lo hago profesionalmente).

Lea primero http://norvig.com/21-days.html

No te conviertas en un hacker, eso es un ciberdelincuente. No quieres ir a la cárcel.

Aprende primero un lenguaje de programación instruccional. Recomiendo encarecidamente leer SICP, una excelente introducción a la programación disponible gratuitamente, y usar Racket.

Instale y use una distribución de Linux en su computadora. Está hecho de software libre cuyo código fuente puede estudiar y contribuir.

No pases todo el tiempo frente a tu computadora. En particular, durante sus actividades de ocio (es decir, no juegue juegos en su computadora, haga deporte, música o actividades sociales).

Comience en C ++.

Es uno de los lenguajes de programación más básicos y se utiliza con frecuencia en las industrias de juegos y TI. Es muy básico y no necesitas artículos de lujo para usarlo o probarlo.

Una vez que domine C ++, le resultará mucho más fácil aprender los otros lenguajes de codificación (como Java, C #, C, tal vez incluso Python) y tendrá un intercambio que puede conseguirle un trabajo.

En cuanto a la piratería … Si tiene una computadora con Windows, puede ingresar a la administración y comenzar a jugar con ella desde allí. Que te diviertas.