He contado muchas veces la historia, pero mi mundo y mi futuro cambió cuando con 12 años me topé con un cartel en una academia de barrio que se llamaba RUS. El cartel decía eso de "La informática es el futuro", y como cuento siempre, yo me lo creí. Comencé una andadura de switches, contadores y acumuladores aprendiendo a programar con aquellos ordenadores Dragon y Amstrad que tan importantes serían en el devenir de mi futuro profesional y, por ende, personal.
Figura 1: Todos podemos programar: Aprende a programar
para hackear tu futuro profesional #HackYourCareer
Aprender a programar me cambió la vida, y desde los 12 años me apunté a programar en todo lo que pude. Basic, Logo, Pascal, Lenguaje C, C++, Cobol, SQL, PL/SQL, Visual Basic, Visual C, Java, lo que fuera. Me encantaba programar y cuando estuve en la universidad solo quería asignaturas de programación y bases de datos, y no hice las asignaturas de seguridad informática, que eran optativas.
"¿Seguridad Informática? No, gracias, prefiero ir a Geometría Computacional que programan algoritmos gráficos de triangulación, cierres convexos y rectas de barrido y estructuras de datos complejas en memoria y en disco para resolver problemas en tiempo optimo."
Y si hay una recomendación que doy a Mi Hacker y a Mi Survivor, es que aprendan a programar. Es fundamental tener el pensamiento computacional bien desarrollado para poder generar estrategias ejecutables en un sistema informático - algo que incluso se mide en los tests de capacidades que se utilizan en Singularity Hackers para recomendarte los roles en ciberseguridad a los que mejor te adaptas -, y, además, poder extrapolarlas a todo el resto de la vida. A cualquiera que me pregunta sobre cómo entrar a trabajar en una startup, o empezar a trabajar en cualquier disciplina tecnológica, siempre le recomiendo que aprenda a programar. Hasta nuestro Presidente de Telefónica se llevó de regalo mío un Amstrad CPC 6128 y un libro de programación en BASIC para que aprendiera a programar.
Aprende a programar sí o sí
Si quieres entrar a trabajar en el mundo de la tecnología, sea la que sea la disciplina, programar te ayudará a hackear tu carrera profesional. Y tendrás que ser consciente de que te vas a adentrar en un mundo que al principio te puede parecer abstracto hasta que las piezas comienzan a encajar en tu cabeza. Una vez comprendas el proceso y lo interiorices, tu estructura de pensamiento habrá cambiado y también tu percepción sobre esta potente herramienta que permite crear prácticamente todo lo que te propongas. Verás Matrix.
Tu mente entenderá las cosas de una manera computacional que te permitirá aprender el resto de disciplinas de una formar mucho más veloz. Asumirás una nueva forma de trabajar que aplicarás a todos los ámbitos de tu vida. Formar parte del sector tecnológico no es solo una buena opción por la demanda que existe, sino por el impacto positivo que genera en todos los aspectos de tu vida. No sé donde escuché esta frase, pero me encanta:
“Existen dos tipos de empleo, donde las personas les dicen a los ordenadores qué hacer, y dónde los ordenadores les dicen a las personas qué hacer.”
Y a mí me gusta ser el que da las ordenes.
Así que, si quieres que tu vida en el mundo profesional tenga que ver con la tecnología, mi recomendación es que te pongas las pilas en programación. Y después.... ya eliges bien la rama que quieres para tu vida y comienza a especializarte.
Programar va más allá que saber escribir código.
La programación es una herramienta creativa en constante evolución que te proporciona muchos caminos para llegar a un mismo sitio. Al mismo tiempo, se trata de un proceso donde buscar la forma de ser lo más eficiente y claro posible para que puedas compartirlo con otras personas el día de mañana y puedan trabajar con tu código. Y también es un proceso de ingeniera férrea que hay que entrenar, para conseguir que tu código sea de mejor calidad cada vez. Conocer el proceso de desarrollo te permitirá trabajar en equipo con gente del sector de una forma más estrecha, entenderás cómo ayudarles desde la disciplina en la que trabajes.
La programación es una herramienta creativa en constante evolución que te proporciona muchos caminos para llegar a un mismo sitio. Al mismo tiempo, se trata de un proceso donde buscar la forma de ser lo más eficiente y claro posible para que puedas compartirlo con otras personas el día de mañana y puedan trabajar con tu código. Y también es un proceso de ingeniera férrea que hay que entrenar, para conseguir que tu código sea de mejor calidad cada vez. Conocer el proceso de desarrollo te permitirá trabajar en equipo con gente del sector de una forma más estrecha, entenderás cómo ayudarles desde la disciplina en la que trabajes.
La programación te ayuda a pensar de una forma lógica, acotar los problemas y resolverlos uno a uno, te enseña a ser, además de creativo, ordenado y metódico. Desarrollar tus primeros algoritmos hará que poco a poco sientas que la programación no es algo inaccesible, verás que todo encaja dando los pasos adecuados para resolver problemas complejos.
Ya sabéis que yo siempre, en las entrevistas de trabajo hago pruebas como la resolver el factorial de 100 solventado las limitaciones de las estructuras de datos, que no tiene nada que ver con picar código, o pedir que me pinten una recta píxel a píxel para ver cómo programa esa persona, cómo piensa, cómo razona en la resolución de problemas.
Por dónde empezar: Python o JavaScript
Programar es para todo el mundo. No solo para los que hemos ido a formación específica de informática. Mi Hacker y Mi Survivor no sé lo que serán de mayores, pero ya están haciendo sus cursos de programación este verano en el colegio. Y si quieres meterte en este mundo de forma profesional, ya puedes empezar a tomártelo en serio y comenzar a programar desde ya.
Programar es para todo el mundo. No solo para los que hemos ido a formación específica de informática. Mi Hacker y Mi Survivor no sé lo que serán de mayores, pero ya están haciendo sus cursos de programación este verano en el colegio. Y si quieres meterte en este mundo de forma profesional, ya puedes empezar a tomártelo en serio y comenzar a programar desde ya.
Y si quieres una recomendación personal, pues tienes dos lenguajes que son muy fáciles para comenzar a programar cosas, y los dos son muy potentes y te servirán tanto para construir tecnología, como para desarrollar el pensamiento computacional. Y a ambos, además, les vas a poder sacar partido en seguridad informática.
El primero de ellos es Python, que como sabéis es un lenguaje que utilizamos mucho en seguridad informática. Es fácil comenzar con él, y tienes muchas librerías y herramientas creadas que puedes utilizar para acelerar tus proyectos. En GitHub tienes un cantidad ingente de proyectos en Python que puedes observar, y tienes dos libros en 0xWord que te pueden ayudar, como son Python para pentesters y Hacking con Python.
Figura 2: Python para Pentesters & Hacking con Python de Daniel Echeverry en 0xWord |
Mi segunda recomendación, especialmente si quieres aprender técnicas de programación que luego puedas utilizar para ser un Full-Stack Developer, Back-End Developer, o un Front-End Developer o quieres hacer ataques complejos de Ethical Hacking en entornos Web, como los Client-Side Attacks en técnicas como Cross-Site Scripting, ClickJacking, Javascript Botnets, etcétera, te recomiendo que le metas caña a Javascript, que no necesitas mucho para comenzar, y te va a servir para todo en tu vida. Aquí estoy yo contando en DefCON el trabajo de Owning Bad Guys {and Mafia} using Javascript Botnets.
Figura 3: Ownling bad guys {and mafia} using Javascript Botnets
Javascript te permitirá desarrollar tus primeras aplicaciones web de principio a fin, siendo un lenguaje que puedes emplear tanto para la parte visual como en las tripas de tu aplicación, cuenta con una gran comunidad y tiene una curva de aprendizaje amable porque desde el primer Hello World! hasta un sistema completo el camino es directo. Si quieres empezar desde cero, esta es una muy buena opción.
Si quieres tomarte en serio esto de aprender a programar desde cero, lo mejor es que comiences con algún curso que te ponga las pilas. Yo tuve la suerte de tener a mi profesor Teo en la Academia RUS, que estuvo encima de mí al principio, para explicarme las cosas con las que me quedaba bloqueado. Liberó las bloqueos mentales que tenía y me ayudó a que amara programar. Hoy ya no existe esa academia de barrio, pero tenemos cosas mejores, como Coding Schools como GeeksHubs Academy, y una buena recomendación para empezar a tope desde cero con un lenguaje como Javascript es hacerte un Bootcamp de programación desde cero, como el que tienen nuestros compañeros de GeeksHubs Academy que te pone las pilas en 100 horas.
Figura 3: Ownling bad guys {and mafia} using Javascript Botnets
Si quieres tomarte en serio esto de aprender a programar desde cero, lo mejor es que comiences con algún curso que te ponga las pilas. Yo tuve la suerte de tener a mi profesor Teo en la Academia RUS, que estuvo encima de mí al principio, para explicarme las cosas con las que me quedaba bloqueado. Liberó las bloqueos mentales que tenía y me ayudó a que amara programar. Hoy ya no existe esa academia de barrio, pero tenemos cosas mejores, como Coding Schools como GeeksHubs Academy, y una buena recomendación para empezar a tope desde cero con un lenguaje como Javascript es hacerte un Bootcamp de programación desde cero, como el que tienen nuestros compañeros de GeeksHubs Academy que te pone las pilas en 100 horas.
En un Bootcamp Online de Programación desde cero con JavaScript como éste empezarás por interiorizar conceptos teóricos básicos e imprescindibles para entender el maravilloso mundo de la programación en el que vas a introducirte. Estos bootcamps están geniales, porque mezclan los dos conceptos que son tan necesarios: Aprender haciendo y Aprender Aprendiendo.
Figura 6: Todos podemos programar.
Para ello, en estos campos de entrenamiento militar - casi - se aplican de forma alterna píldoras teóricas y conceptuales, investigaciones propuestas que tendrás que realizar, ejercicios prácticos guiados y retos personales que tendrás que resolver para asentar tu conocimiento. Por supuesto, en este bootcamp, aprendes por motivos obvios HTML y CSS que te van a poner las pilas y los vas a utilizar siempre.
Si tras tu primer contacto con la programación tu curiosidad ha aumentado, te espera un camino lleno de experiencias en un mundo del que, después de 34 años desde el primer día, no he podido dejar de enamorarme. A pesar de que mi día a día no sea programar, saber programar sigue siendo parte de todos los días hasta en los puestos profesionales que he desempeñado en los últimos años.
¡Saludos Malignos!
En parte porque comencé ya adulto, no he podido dar dos pasos en esta dirección (aprender a programar). He comenzado muchos tutoriales -hay miles gratuitos en la web- para abandonarlos al poco tiempo. No todos podemos, se necesitan no se qué aptitudes. En cambio he aprendido también gracias a la web, a gestionar -a nivel medio- mi Debian Gnu/linux.
ResponderEliminar