miércoles, enero 24, 2024
viernes, noviembre 24, 2023
Si te lo estás pensando, es el momento de dar el salto: Hazte developer #HackYourCareer
"¿Por qué desarrollador de software y no cualquier otra cosa?"
Pues hay tantos motivos como personas, pero voy a intentar reflexionar acerca de algunos de los puntos clave que desmarcan este campo del resto, y de forma muy positiva y significativa (ni siquiera vamos a mencionar más que sutilmente y de pasada en esta línea que vivimos en un mundo cada vez más digitalizado, y por tanto con más oportunidades, de calidad y bien remuneradas).
Lo primero y más destacable del mundo del software, es que aquí el trabajo que hayas realizado queda objetivamente registrado a través del uso de tecnologías de control de versiones como Git o Mercurial. Cada modificación que "guardes" quedará publicada y accesible con todo el contenido que hayas creado, así como la referencia al autor de los cambios, y la fecha afinada a la hora, minuto y segundo en que ocurrió. Tuya es la responsabilidad, y tuyo es el mérito.
Lo segundo e igualmente relevante, es que es posiblemente el único campo en el que no importa quién eres ni qué títulos académicos traes. Hoy en día el valor de una certificación oficial es cuestionable, ya que no avala más que el haber tenido acceso a una información que cualquiera tiene al alcance de la mano con Google. No refleja cosas mucho más importantes como la aptitud o, más aún, la actitud.
Tercero, la comunidad. En sus orígenes el Software Development estaba reservado a unos pocos genios con amplios conocimientos matemáticos y de ingeniería, pero generación tras generación y con gran esfuerzo colectivo se ha hecho infinitamente más accesible, de forma que cualquiera que quiera y esté dispuesto puede introducirse en este mundo. Y esa filosofía de cooperación, de compartir dudas y código, sigue viva hoy día.
Por último, y quizá esto sea lo más valioso en el día a día: todo el código que escribas, todo lo que produzcas, podrás verlo en funcionamiento en tiempo real. El viejo “¿Y esto para qué sirve?” aquí no tiene cabida. Cada programa que diseñes, o cada pequeño componente que implementes, lo tendrás funcionando frente a ti. Artesanía digital.
“Genial… Pero el mundo del software es amplísimo. ¿Por dónde empiezo?”
¿Mi recomendación? Full Stack Developer. En síntesis, se trata de la figura del desarrollador de aplicaciones web que conoce y maneja todas las tecnologías involucradas en todos sus aspectos. La contrapartida serían el Frontend Developer, que se encargaría sólo de la parte visual del lado del cliente (no sólo del diseño, sino de que las piezas funcionen), y el Backend Developer, especializado en gestionar el lado del servidor y las bases de datos.
Iniciarte en este mundo como Full Stack Developer te permitirá entrar en uno de los campos más activos, pero también uno de los que más gratificantes resultan. ¡Entras sabiendo crear aplicaciones completas por tu cuenta! Además, cuentas con una buena perspectiva global con la que ir afinando hacia el sector que más te guste. Y aunque al principio pueda resultar un poco intimidante, los lenguajes empleados en desarrollo web, como JavaScript o PHP tienen una sintaxis y vocabulario muy humanos y un buen código casi puede leerse en inglés.
Es a través de ese esfuerzo, y esa determinación, que seas quien seas y vengas de donde vengas, podrás acceder a ese mundo que te espera allí. Del 20 al 27 de noviembre GeeksHubs Academy está de Black Friday y puedes conseguir hasta 1.300€ de descuento para formarte como Full Stack Developer.
Publicado por
Chema Alonso
a las
6:01 a. m.
0
comentarios
Etiquetas: Cursos, developer, formación, javascript, programación, Python
jueves, abril 20, 2023
#HackYourCareer convirtiéndote en Frontend Developer y comenzando a trabajar ya con @GeeksHubsAcademy
- ¿Cómo funciona?
Este Bootcamp es especial, ya que adapta la modalidad full-time presencial de nuestra coding school y la traslada al formato ONLINE. Es decir, requiere de una dedicación completa y el alumnado recibe el mismo acompañamiento exhaustivo por el equipo docente, desde casa. El horario del Bootcamp es intensivo, durante 10 semanas, de 9h a 18:30h (de lunes a jueves) y de 9 a 14h (los viernes).
- ¿Para quién es el Bootcamp Online Frontend Developer?
Está pensado para formar desarrolladores web que aprendan HTML5, CSS3, Bootstrap, JavaScript, Typescript, React, Redux, etc, para que sean capaces de desarrollar una aplicación web en la parte Frontend, trasladando el diseño a lenguajes de programación, teniendo en cuenta la experiencia de usuario (UX/UI) y asegurando la funcionalidad, eficiencia y seguridad con conocimientos sobre Calidad del Software y Testing. Para acceder al Bootcamp no se necesitan conocimientos previos, pues los primeros bloques están dedicados a la introducción al desarrollo de software y las herramientas que debe conocer el alumno/a (VSCode, Git, GitHub…).
- ¿Por qué destaca la modalidad presencial de GeeksHubs Academy y qué tiene que ver con este nuevo Bootcamp Online?
Porque la metodología de aprendizaje pone al alumno/a en el centro. A través de proyectos todas las semanas se recrea un entorno de empresa tecnológica real, dónde la actitud y autonomía son indispensables. Tenemos más de 6 años de experiencia impartiendo Bootcamps presenciales, en los cuáles el 94% ha encontrado un nuevo empleo. En este nuevo Bootcamp Online la didáctica y metodología se mantiene para que el alumnado reciba el mismo nivel de acompañamiento que si estuviese en un aula presencial de GeeksHubs Academy.
- Una vez finalizado el Bootcamp… ¿Cómo ayudamos en la búsqueda de empleo?
Disponemos de un amplio abanico de empresas con las que trabajamos y que demandan talento, por lo que al finalizar, incluimos al alumnado en nuestra bolsa de empleo específica para que empiecen su carrera profesional como developer. Durante la formación nuestro equipo especializado asesora a nuestro alumnado, preparando los procesos de selección y mejorando sus soft skills.
- ¿Por qué elegir GeeksHubs Academy?
En GeeksHubs Academy sabemos que la pasión, el hambre y las ganas van por delante de cualquier cosa, y eso es lo que diferencia a un buen profesional. También sabemos lo que necesitan las empresas y estamos convencidos de que el valor diferencial está en la actitud.
La experiencia de formación de nuestra coding school va más allá de las competencias técnicas, buscamos impulsar tu carrera y acompañarte durante el camino para que crezcas como profesional y consigas todo lo que te propongas.
Contamos con un equipo de docentes tan entusiastas como exigentes con el objetivo de hacerte brillar y sacar todo tu potencial, así como un equipo de atención al alumnado dedicado exclusivamente al bienestar de cada estudiante.
Nuestra trayectoria de más de 10 años, los más de 1.000 alumnos y alumnas al año que pasan por nuestra coding school y la confianza de numerosas empresas que amplían sus equipos IT con el talento que se forma en GeeksHubs Academy evidencian nuestro éxito como escuela de programación que está cambiando el paradigma de la educación tech.
Publicado por
Chema Alonso
a las
6:01 a. m.
0
comentarios
Etiquetas: Cursos, Eventos, formación, HTML, javascript, programación
miércoles, enero 25, 2023
Entrevista Carlos Azaustre: Microsoft MVP en Developer Technologies
Pues descubrí la informática con unos 12-13 años. No tenía ordenador en casa y mi primer contacto con un PC fue en clases extraescolares en el colegio. Ahí todavía no sabía que se podía programar. En mi familia y círculo más cercano no había nadie que se dedicara a la informática como tal y mucho menos a programar.
Fue en bachillerato, con 16-17 años que tuve una asignatura optativa dónde la profesora nos enseñó a programar en C (TurboC de hecho) y a partir de ahi fue cuando descubrí que quería aprender todo sobre ello. Me compré algún libro de TurboC y descargué tutoriales para ampliar lo que aprendíamos en clase. Mi primer programa, por así decirlo, fue hacer un Trivial en C.
2) ¿No te dio nunca por crackmes o hackmes?
La verdad es que no. Me ha parecido siempre un tema muy interesante pero nunca me ha atraído mucho más que crear algo de cero. Considero que la ciberseguridad es un tema muy importante y esencial en cualquier software o aplicación y me gustaría saber más, pero hay tanto que saber en la vida que no se puede llegar a todo :)
3)¿Crees que con la llegada de NoCode/LowCodey AIs como ChatGPT/Copilot, programar va a ser una profesión de futuro?
Hay mucha gente alarmada con esto. Si entendemos la programación como únicamente picar código, está claro que no. Pero desde hace tiempo, la gran parte de las empresas y productos no son sólo líneas de código. Hay un proceso detrás de creatividad, ingeniería, optimizaciones… que la IA, por lo menos ahora y en un tiempo, no lo va a poder sustituir. A día de hoy y por unos cuantos años, las IA lo que nos van a ayudar es a reducir tiempos y optimizar nuestro día a día. Tareas repetitivas o tediosas la IA las puede hacer por nosotros en segundos o minutos y nosotros podríamos perder 1 día.
Lo que sí creo que es que la profesión de Programador, Desarrollador o Ingeniero de Software va a sufrir transformaciones. Pero esto es la tónica habitual de esta profesión. El trabajo se verá afectado, por supuesto, pero surgirán nuevos empleos más específicos que aún no somos capaces de ver. Lo que está claro es que un trabajo de programar 8h al día no tiene sentido desde hace ya un tiempo y estas nuevas tecnologías nos lo dejan más claro.
4) ¿Cuánto dedicas a aprender a programar y cuánto a saber programar sin cometer fallos de tipo SSRF, SQLi, Race Concitions, Reentrancy Attack, etc...? Por que no siempre son evidentes, ¿no?
Evidentemente. Programar se puede aprender más o menos rápido. Un poco de lógica, conocer que es una variable, bucles, funciones, etc… Lo difícil es hacerlo bien y esto se aprende con el tiempo, con la experiencia, y equivocándose muchas veces.
![]() |
Figura 5: Libro Hacking de Aplicaciones Web: SQL Injection de Enrique Rando y Chema Alonso |
5) ¿Cuál es el proyecto del que te sientes más orgulloso de haber hecho?
Sin duda al aplicación web que era producto de una Startup que co-fundé con mi pareja hace ya unos cuantos años. Se llamaba Chefly y nuestra idea es que fuera “el Airbnb de la comida casera”. Como toda Startup, algunas salen bien y otras no tanto. Nuestro caso fue de los segundos pero aprendimos muchas cosas y conocimos a mucha gente.
6) Yo aprendí, BASIC, COBOL, Pascal, C, C++, Java y luego los lenguajes Web (y muchos menores), ¿cuáles son los que hay que aprender para el futuro según Carlos?
Salvo los tres primeros, yo también aprendí C, C++ y Java, sobre todo en la Universidad. Después en el “mundo real”, aunque empecé con Java, terminé decantando por el Frontend de las aplicaciones web y ahí JavaScript es el rey.
A día de hoy y de cara al futuro los más importantes son JavaScript por todo lo que puede abarcar (Frontend, Backend, IoT, Machine Learning, Tooling,...) y Python (Backend, Machine Learning, Data Science,...).
Despues tenemos otras alternativas dependiendo hacia donde nos queramos dirigir. Para sistemas y tooling tenemos a Rust pegando muy fuerte junto a Go. Y si nos orientamos hacia el sector blockchain ahi tenemos Solidity, Solana, etc…
7) ¿Qué es lo peor que has visto en un código publicado en un repo?
“He visto cosas que no creeríais”.
8) ¿Qué no debería hacer alguien que comience a programar hoy en día para no ser un programador mediocre mañana?
No parar de formarse. Ya no solo porque la tecnología avance y surjan nuevos lenguajes o frameworks, sino porque aprender a hacer buen código, estable, buenas arquitecturas que permitan escalar y evolucionar no es algo que se aprenda en un minuto. Hay que leer mucho y sobre todo aplicar lo que se va aprendiendo, es la única manera de mejorar en tu trabajo y no hay un camino rápido. Es cuestión de tiempo y dedicación.
Publicado por
Chema Alonso
a las
6:03 a. m.
0
comentarios
Etiquetas: .NET, developer, Entrevistas, javascript, Microsoft, MVP, programación, programación .NET
sábado, noviembre 05, 2022
Cómo romper la arquitectura de cifrado de mensajes extremo a extremo de Rocket.Chat [1 de 2]
La funcionalidad a revisar en el artículo, será la del cifrado Extremo a Extremo o "End-2-End" (E2E). Dicha funcionalidad, implementa una capa de seguridad adicional al cifrado TLS a nivel de red utilizado de forma común mediante el protocolo HTTPS, en la mayoría de las comunicaciones actualmente. Como veremos al final, se podrá hacer un descifrado de los mensajes, y veremos cómo se puede mejorar la arquitectura de cifrado. Para entender mejor toda la arquitectura de cifrado, tienes el libro de Cifrado de las comunicaciones digitales: de la cifra clásica a RSA 2ª Edición de 0xWord
![]() |
Figura 3: Libro de Cifrado de las comunicaciones digitales: de la cifra clásica a RSA 2ª Edición de 0xWord |
Arquitectura de Rocket.Chat
- Criptografía Simétrica: algoritmo utilizado AES, origen y destino comparten una clave de cifrado.
- Criptografía Asimétrica: algoritmo utilizado RSA, mediante el uso de un par de claves Publica y Privada, los datos serán cifrados con la clave pública y descifrados con la la clave privada.
- Hashing: algoritmo utilizado PBKDf2, la función derivación matemática que generará un resultado irreversible del cual no se puede obtener los datos originales de entrada.
Dicho framework trabaja con JavascriptCore que ademas de ejecutarse en los navegadores web, permite la posibilidad de integración de librerías implementadas en otros lenguajes de programación, como puedan ser Java para sistemas operativos Android u Objetive-C para sistemas operativos iOS:
Las conexiones que se implementan entre los diferentes clientes y el servidor central de Rocket.Chat podrán ser de dos tipos diferenciados por la dirección en la que se comunican:
Descripción de la arquitectura E2E
La funcionalidad E2E, se arranca tras la autenticación inicial de un usuario (U) sobre sobre un dispositivo (D).
- El dispositivo (D), solicitará al usuario (U) o generará unas credenciales específicas E2E (En función de si es la primera vez o no, que el usuario se autentica en el dispositivo con el servidor de Rocket.Chat).
- Tras introducir las credenciales mediante la derivación de la contraseña junto al identificador unívoco del usuario (U) UID y el uso del algoritmo criptográfico de hashing PBKDF2, se generará la primera clave criptográfica de la aplicación master-key.
A continuación, el dispositivo (D) como cliente del servidor de Rocket.Chat procederá con la generación o solicitud (en función de si es la primera vez en la que el usuario se autentica en el dispositivo) de un par de claves RSA de longitud 2048 que serán las claves criptográficas E2E del usuario:
- Generación public_key, private_key: RSA-OAEP 2048
- Utilizando la master-key, mediante criptografía simétrica utilizando el algoritmo AES-CBC el dispositivo (D), cifrará la private_key.
- La función de la API Rest que proporciona este servicio, es e2e.setUserPublicAndPrivateKeys.
- El servidor de Rocket.Chat en su BD no relacional (mongodb) almacenará estas claves asociadas al usuario (U), en la colección users.
La aplicación para cifrar los datos punto a punto, requiere de una habitación o chat seguro por tanto ya sea dirigido desde el usuario (U), al usuario unívoco (U₁) o a los múltiples usuarios (U₁),(U₂)...(U_n), por lo tanto será necesario crear un grupo cifrado.
- La operación de la API Rest del servidor de Rocket.Chat que proporciona este servicio será create.group, especificando los parámetros adecuados de grupo privado y encriptado.
- El servidor de Rocket.Chat generará en la BD no relacional una entrada en la tabla rocketchat_subscriptions por cada usuario (U1..n), que pertenezca a la habitación segura alojada en la colección rocketchat_room.
- Se cifrará la Room-Key: de forma asimétrica mediante el algoritmo RSA para cada usuario del chat seguro.
- Se utilizará para el cifrado la public_key, disponible en la colección users del servidor, reportada mediante la invocación al servicio API Rest de Rocket.Chat e2e.requestSubscriptionsKeys.
Para la obtención de la clave de cifrado de mensajes E2E, en determinado grupo cualquier usuario que sea miembro de este, deberá realizar los siguientes pasos:
- El usuario (U), ya autenticado en la aplicación y en la arquitectura E2E estando en posesión de su master-key.
- Solicitará la clave de sesión E2EKey, almacenada para su usuario (U), en la colección rocketchat_subscription (cifrada asimétricamente con RSA).
- Solicitara sus claves de cifrado al servidor, public_key y private_key (esta última, cifrada simétricamente con AES).
- Descifrará con AES, la clave privada mediante el uso de la master-key.
- Descifrará con RSA, utilizando la clave privada (private_key) descifrada y la clave E2E (E2EKey) obteniendo la room-key o session-key.
Publicado por
Chema Alonso
a las
9:50 a. m.
1 comentarios
Etiquetas: AES, bugs, Cifrado, Cracking, Criptografía, exploit, exploiting, javascript, pentest, pentesting, PKI, Privacidad
lunes, octubre 17, 2022
Google Blogger: Conectividad, Usabilidad y situaciones de DeadLock
Publicado por
Chema Alonso
a las
7:16 a. m.
0
comentarios
Etiquetas: blog, Blogger, blogs, bugs, Google, HTML, javascript
domingo, mayo 15, 2022
Aprende a crear aplicaciones Frontend escalables y de alto rendimiento con VUE #HackYourCareer
El creador de VUE, Evan You, quiso crear un frontend framework que fuera igual de potente que Angular, pero también más ligero y flexible, con una sola capa de interfaz, para poder usarla como una función ligera en las páginas en lugar de una SPA completa.
*VueJS es una librería javascript pensada para tener un framework con el que desarrollar páginas web. Con Vue puedes crear todas las vistas de tu página web, puedes hacerlas dinámicas, puedes conectarla a un servidor para tener datos dinámicos de una base de datos, etc. Se trata de un framework completo con buena curva de aprendizaje y que se puede usar en todo tipo de webs.
¿Por qué usar VUE?
Una de sus grandes ventajas es que nos aporta facilidad y velocidad a la hora de comenzar proyectos con Vue CLI y la flexibilidad de poder combinarlo con otras tecnologías o solo aplicarlo en una parte del proyecto, poniéndolo así muy fácil para migrar proyectos de grandes magnitudes de manera más simple, barata y progresiva. Todo esto con un tamaño mucho más ligero que otros frameworks.
La reactividad también está integrada en VUE, esto significa que la funcionalidad en tiempo real que era popular en Angular, es una brisa con VUE. Actualmente, VUE cuenta con una gran comunidad en varios idiomas que, además de compartir contenido, tutoriales… nos facilita conocer más mediante "MeetUps" y eventos. Es común encontrarlos en las ciudades principales.
Aprender a programar con VUE
En el Bootcamp Online Frontend VUE de GeeksHubs Academy se descubre todo el potencial de uno de los frameworks frontend JS más demandado del mercado, a testear aplicaciones complejas y trucos para crear aplicaciones escalables. La metodología que utilizamos pone al alumnado como centro del aprendizaje y te permite formarte 100% online a tu ritmo recibiendo el apoyo de un tutor especialista que te orienta para que puedas seguir avanzando con la formación.
También Katas de código en las que solo siguiendo los movimientos del docente comprenderás cómo se utilizan las tecnologías o lenguajes. Harás trabajo de investigación para adquirir autonomía y consolidar el aprendizaje. Durante las 4 primeras semanas tendrás Sesiones Live-coding Grupales en Directo. Este formato te permite, además de conectar con tus compis de formación y enriquecer tu red de contactos, preguntar todas tus dudas y seguir avanzando. Si no puedes conectarte no pasa nada, porque las sesiones se quedan grabadas.
Una vez terminada la formación, podrás solicitar la certificación realizando un proyecto final. También está la opción de obtener el Certificado como Full Stack Developer, para ello hay que cursar los 3 bootcamps (frontend, backend y agile software) y hacer un proyecto incremental de los tres. Además, todo nuestro alumnado puede disfrutar de ventajas exclusivas de MyPublicInbox, 200 Tempos gratuitos para hablar con Expertos en Tecnología o cualquier otra área de tu interés y 0xWord, con un cupón descuento para que lo puedan canjear en la editorial.
Saludos,
Publicado por
Chema Alonso
a las
8:55 a. m.
0
comentarios
Etiquetas: Cursos, formación, javascript, programación
jueves, enero 27, 2022
De profesión "Programador de Frontales React en Aplicaciones Web". El mundo quiere cada vez menos "Yo sé de todo un poco". #HackYourCareer
Esto sucede en todas las ramas tecnológicas hoy en día, y cuando tengo alguna charla con alguien para orientarle en su carrera profesional - algo que me piden cada vez más, algo que siempre le digo es que haga algo que le guste. Que si hace algo que no le gusta, nunca va a dedicarle todo el tiempo que será necesario para dejar de ser "uno más del montón" en ese trabajo. Y es especialmente sensible con la programación y los profesionales DEVELOPERS. Ser un buen programador exige conocer profundamente un área de disciplina hoy en día, ya que en solo un área de disciplina, hay mucho que saber.
Una anécdota personal sobre este ejemplo que os voy a contar. En el año 1996, cuando yo tenía 21 años, había comenzado a trabar ya, y me asignaron ser profesor de un curso de Programación de Aplicaciones Web, y el universo completo para hacer aquello consistía en saber:
- Para el frontend:
- HTML 3.2 (con especificaciones no completos de HTML 4 que cada uno hacía como le daba la gana)
- Javacript recién sacado del horno que iba en unos navegadores sí en otros regular.
- Herramientas para formatos gráficos: GIF, GIF89a, JPG, Mapas de imágenes.
- Para el backend
- Perl
- PHP (Perl Host Script)
- ASP
- Bases de datos
- SQL
Publicado por
Chema Alonso
a las
9:08 a. m.
0
comentarios
Etiquetas: charlas, Cursos, developer, Eventos, formación, javascript, programación
Entrada destacada
+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial
Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares
-
Circula por la red un truco que llegó a mí de casualidad , donde se explica cómo conseguir ver más de una vez - e incluso capturar - las fot...
-
Ayer publiqué un post que tiene ver con las opciones de privacidad de Facebook asociadas a los correos electrónicos , y mañana sacaré la se...
-
Las técnicas de OSINT son aquellas que te permiten buscar información en fuentes abiertas. O lo que es lo mismo, sacar datos de plataformas...
-
Hoy os traigo una " microhistoria " peculiar que tiene que ver con la historia de la tecnología. Es una historia de esas que empie...
-
Hace mucho tiempo, cuando se creo el " Modo Incógnito " de los navegadores, que algunos llamaron también " Modo Privado ...
-
Dentro de una investigación de una fotografía, tal vez te interese saber dónde está hecha, o a qué hora se hizo. Cualquiera de esas dos info...
-
Conseguir la contraseña de Facebook de una cuenta es una de las peticiones más usuales que se suele recibir de la gente que busca solucion...
-
Una de las opciones que se puede configurar a nivel de hipervínculo, de documento o de servidor web en los navegadores es el funcionamiento...
-
El SEPE (Servicio Público de Empleo Estatal) ha sido víctima de la archiconocida crisis del COVID-19 enlazando la avalancha de expedientes...
-
La app de mensajería instantánea Telegram tiene muchos fans por el atributo de seguridad que ha querido potenciar desde el principio, per...