TL;DR: he tardado aproximadamente unos 4-5 meses estudiando «con calma» , con relativamente (a cuando me prersenté a la certificación frontend) poca experiencia real tocando componentes UI y todo lo relacionado a temas puramente JS de Magento. Aún así, me he presentado y he aprobado 😁
Igual que en la de frontend, me gustaría contar mi experiencia y los pasos seguidos. A alguien le resultará interesante jeje 💪💪💪
Recursos para la Certificación JavaScript en Magento 2
En la «nueva» nomenclatura de Adobe, es el código ADO-E705
He seguido para el estudio de la certificación, estos recursos
- Guía Swift Otter: esta gente desarrolla el contenido de la guía oficial de Magento y sirve más que como tutorial o manual, como base para saber si ese apartado lo controlas o tienes que estudiarlo más en concreto. Me ha ayudado a concreta hasta donde meterme con un tema y a darme cuenta de que en algunos puntos flaqueaba muchísimo.
- Mage2tv: igual que en la de frontend, tiene un apartado de javascript muy muy interesante con temas bastante avanzados que se salen mucho del examen pero que merecen la pena revisarse y para apoyare son geniales.
- Experiencia laboral previa: aquí si que es mucho más importante la experiencia «real» que tengas… comparado a la de frontend claro. Son temas más complejos de entender y es muy fácil perderse sin una referencia del tipo «ah vale, sí, a mí me dio este problema y no supe resolverlo» por lo menos.
El haberme estudiado antes la certificación frontend (ADO-E710) no ha sido tan útil como pensaba. Pero sí que es verdad que temas del despliegue, las rutas públicas de assets frente a las del código fuente, dónde colocar un fichero (theme o módulo), hacer un override/extensión, un mixin javascript y algunas cosas más, ya las llevaba adelantadas. Aún así, aquí también se explican.
Mecánica de estudio
Aquí probé a estudiar con tarjetas donde iba apuntando lo importante y las iba repasando diariamente.
Para esto me sirvió mucho Anki, un programa que hace justamente esto. Nosotros vamos rellenando las tarjetas, y ocultado información para que el programa nos pregunte por la tarjeta. Contestamos y marcamos qué tan bien hemos contestado. Según qué ta bien lo hayamos hecho, nos programará repetir esa tarjeta en más o menos tiempo.
Me ha gustado mucho la liberación de la parte del repaso y el estar apuntando «esto me lo sé bien, esto no tengo ni idea, esto tengo que repasar porque de memorieta…». Iba repasando diariamente sin darme cuenta y como Anki te repite más las tarjetas que más te cuestan, al final balanceas las patas cojas con las fuertes, memorizas lo que es pura memoria, fuerzas a entender lo que te cuesta entender porque estas explicando mentalmente cada vez que respondes.
Le dediqué 1h diaria de media, de la que 15-20 minutos aproximadamente eran repaso de temas anteriores con las tarjetas programadas para ese día.
Así hice 2 vueltas, la primera de tanteo y hacerme mis apuntes ampliando todo lo que veía necesario. La segunda, iba copiando de mis apuntes a las tarjetas, y modificando un poco para que sea «preguntable» y hacer el esfuerzo de pensar y razonar al responder (evitar caer en la memorización pura y dura).
¿Cuándo consideré que estaba preparado?
Después de esas 2 vueltas, probé un examen en Swifotter incluido con el precio de la guía y aprobé con un 85%… así que programé ya fecha de examen en 1 semana y me dediqué esa semana a repasar los temas de las tarjetas que más me costaban.
Me parece una metodología bastante compatible con estar trabajando y teniendo la cabeza en otras cosas. Me permitió centrarme bastante y no estar pensando en cuándo repasar o hacer varias vueltas a lo mismo que pierde fuerza en cada lectura y no tiene mucho sentido. El esfuerzo en responder las preguntas hizo que notara en donde iba fuerte y donde no, agilizando el apuntalar esas zonas con mayor seguridad.
El examen online
Esta vez lo hice por PSI en lugar de por Examity, no recuerdo la vez pasada cual recomendaban pero al menos ahora era la opción casi predilecta en la interfaz…
El examen, muy bien, me salió un poco accidentado pero bueno… (cable de red corto que acabé enganchando, no me validaba el empezar el examen porque decía que tenía abierto el AnyDesk… en fin)
60 preguntas tipo test, 4 opciones, 120 minutos. El examen lo noté un poco raro… imagino que las preguntas en las que se supone que sacas la respuesta basada en tu experiencia laboral, al no tener quizás la que ellos consideran necesaria para el examen, pues me surgían bastantes dudas y acabó dándome esa sensación de poca seguridad al responder. Aún con eso, he aprobado a la primera.
Recomendaciones:
- Ir al baño justo antes de empezar, no te puedes levantar ni dejar de mirar la pantalla… en 2hs o lo que tardes.
- Tener una webcam que puedas desacoplar del portatil, hay que enseñar el techo, bajo la mesa, dar una vuelta 360 a tu escritorio… con el portátil dando vueltas, estiré el cable de red y me quedé solo con wifi (algo poco recomendable)
- Intenta no tener tos o alguna cosa similar, yo estaba saliendo de un resfriado y no podría ni limpiarme los mocos ni toser tranquilo (me sale taparme la boca para toser y mirar a otro lado de la pantalla). Ambas cosas son «sospechosas» para el examinador que te está mirando, si te tapas la boca o miras a otro sitio, es posible que te hagan problemas (puedes estar copiando)
- Desinstala (sí, desinstala, no cierres simplemente) cualquier programa de escritorio remoto. Al menos en Ubuntu, al validar el comienzo del examen me decía que tenía el anydesk abierto… pero no lo tenía. Tuve que desinstalar, reiniciar varias veces, hasta que me detectó como «cerrado». Y tuve que grabar debajo de la mesa, el techo, etc, cada vez…
¿Es recomendable, teniendo en cuenta el conocimiento que te aporta?
Totalmente. El tema JS en Magento es complejo y se hace pesado. Se mezcla con muchas cosas de frontend y de backend. Tiene un apartado solo de modificaciones en el checkout… cosa que si no te pones a mirarlo aisladamente, es difícil entenderlo bien.
Todo depende de hasta donde profundices. Sólo lo que preguntan en la guía, es una base para ser capaz de entender más cosas. Yo en ocasiones leía parte de la documentación de Magento y no entendía conceptos clave importantes. Con estas explicaciones, como mínimo, eres capaz de seguir esa documentación que antes hablaba de cosas que no entendías, simplemente porque te hacía falta una pieza de conocimiento previa que esa documentación daba por hecho que tenías y al no haber seguido unos pasos para entenderlo, no tienes en ese momento y vas perdido intentando entender algo que no estás preparado para entender.
¿Cuál será mi siguiente paso?
Lo más seguro es que ahora me dedique un poco más a las bases.
Quiero actualizarme completamente en JavaScript (y posiblemente unas nociones de React) y PHP (y Symfony). El mundillo frontend e incluso el mundillo JavaScript en Magento no está a la última. Lógicamente ellos están implementando los últimos cambios del sector y siempre están al día, pero han de mover un monstruo como Magento y hacerlo todo compatible con versiones anterioers, pensa en los módulos, en los desarrolladores, etc (bueno… esto con Adobe está cambiando, van un poco más «o te adaptas o mueres»)…
Y por ello utilizan por ejemplo KnockoutJS como framework JS… tiene su lógica y su razón de ser pero el porcentaje de uso de Knockout es bajísimo. Tiene jQuery integrado en el core, muy integrado en el core los widgets de jQuery.
Es decir, hay ciertas cosas que están un poco «por detrás» del resto del mundo aunque ellos lo utilicen de maravilla en su herramienta. Pero si te quedas sólo con lo que usan ellos, pienso que te quedas un poco fuera de juego.
Con esto quiero decir, que ahora soy «Experto Desarrollador JavaScript en Magento» según magento, pero eso no implica que sepa mucho ni de JavaScript ni del mundo frontend en general. Es más bien que he sabido especializar mi conocimiento al respecto a la forma de desarrollo y trabajo que tiene Magento.