Lo que aprendí del Toptal JS Speeding Challenge

El toptal js speeding challenge concluyo ya hace unas semanas, y tenía premios geniales como $1000 gift card en amazon y unos airpods para el primer lugar. Lo que aprendí yc de cómo podrías ganarlo.

Muchos como a mí les habra salido la publicidad del challenge de toptal, apelaban al orgullo de si podías resolver algo con js rápido, y no me convencían, paso una semana con estos anuncios constantes hasta que decidí participar. Lo curioso es que la publicidad que funciono fue una que apelaba a mi nacionalismo. Algo tipo «ayuda a que tu país rankee mas alto». Me parece curioso que eso me llevo a la acción.

El primer intento

Bueno dije yo, participe y resultaron ser los típicos ejercicios de JS que hacen en las entrevistas laboras. Algunos mas fáciles como retorno un numero al cubo, o sacar la raíz cuadrada de un número. Otros un poco más complejos como encontrar anagramas y palíndromos.

En mi primer intento saque 15 puntos, fueron 3 ejercicios acertados en 2:30 minutos. Me pareció muy poco tiempo pero pensé, de esto se ha de tratar, quién typea mas rapido. Al terminar mi tiempo me llevo a mi scoreboard nacional, solo habían unos 8 participantes y estaba sexto en el listado de Guatemala, pero el primer lugar tenía 4500 puntos. Eso es imposible dije yo, o logro hackear el timer o esta haciendo algo más, porque no hay manera de escribir tan rápido. Luego vi el score global y era lo mismo, arriba de 4000 puntos.

Lo que necesitaba era automatización

Después de ver los scores más altos encontré que esto tenía que ser un bot, o algo similar. Investigue un poco y decidí probar https://github.com/puppeteer/puppeteer. Resulta que esta herramienta se utiliza para automatizar pruebas y acciones en un navegador tal y como la haría una persona, pero mucho más rápido. Pase dos días perdido probando e investigando como niño que descubrió algo nuevo.

Resulto que el Toptal JS Speeding Challenge resulto ser mas un concurso de velocidad de automatización que de Javascript.

Solución

Ya con esta solución solo fue cuestión de tiempo para encontrar el patrón y automatizar todas las respuestas. Yo entre el penúltimo día de la competencia, logre una puntuación alta, mas no perfecta. Logre quedar en el puesto 15 de América y como en el 97 a nivel global. Mi solución puede encontrarse aquí https://github.com/kenny08gt/toptal-speed-coding-challenge-js

Leaderboard en América
Leaderboard en Americas (mejor posición que llegue, luego quede 15)

Que queda por mejorar y aprendí

Realmente creo que mis soluciones se pueden mejorar para dar un mejor tiempo de respuesta, sin embargo creo que es más fundamental encontrarse en un lugar con poca latencia. En un concurso tan competido, donde el tiempo es la medida de calificación, sería perfecto tener una conexión con poca latencia. Donde en vez de tardarse 300ms la conexión pudiera darse en menos de 100ms. Multiplica eso por 36 ejercicios y ya son mas de 3 segundos menos, por dar un ejemplo. Esta podría ser la clave para ganarlo o rankear mas alto.

No te olvides de pasar otros de mis posts

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.