Cómo seguir evolucionando como desarrollador web

MaSoBa

Buenas tardes a todos.

Hace un año que acabé DAW y desde entonces estoy trabajando. En los dos años que dura la FP y dado que se parte de 0 solo te enseñan lo básico para poder entrar a trabajar. Y en el trabajo más de lo mismo. Vas aprendiendo a desenvolverte en el entorno en el que estás y saliendo al paso día a día mecanizando tareas pero casi sin evolucionar como profesional.

Pero yo quiero seguir mucho más allá. Tengo las bases, pero solo eso. Pico código sin ton ni son. Quiero empezar a entender la estructura de una aplicación, los patrones de diseño. Quiero llegar a ser capaz de diseñar bien y correctamente cualquier aplicación.

Hace unos meses me hice con Clean Code y me sirvió de mucha ayuda en mi actual labor. Ya me sé las buenas prácticas y ahora quiero dar el siguiente paso. Por eso os pregunto qué libros os han sido de gran ayuda y os han hecho evolucionar. Sé que buscando en Google tengo mil listas de los mejores libros. Pero busco más vuestra experiencia y vuestros consejos para seguir adelante.

Muchas gracias!

Stricken

Para empezar, echa un ojo a:

[media]https://www.youtube.com/playlist?list=PLfgj7DYkKH3Cd8bdu5SIHGYXh_bPV2idP[/media]

Luego, algunos vídeos de aquí están bastante bien: https://www.youtube.com/channel/UC9IKtxn9AIGelnYmwYr0Lxw/videos

Lee sobre SOLID, Arquitectura Hexagonal y DDD

Un par de webs chulas

https://refactoring.guru
https://sourcemaking.com

Si usas PHP:

http://www.php-fig.org/psr/
http://www.phptherightway.com/
https://leanpub.com/ddd-in-php

Gente a la que sigo:

@pmjones, @buenosvinos, @ocramius, @fabpot, @martinfowler

Por último (11:40),

7 1 respuesta
MaSoBa

#2 Wow. ¡Muchas gracias! Le echaré un ojo a todo lo que has puesto.

Si todos ponemos un granito de arena puede que quede un hilo chulo donde se pueda ir recopilando toda la información. Mi granito de arena, mundialmente conocido, sería el libro Clean Code. Me ayudó muchísimo a mejorar mi código.

Ranthas

Buenas noches compañero.

Veo que ya te has agenciado Clean Code, así que ya estás en el buen camino. No dices en que lenguajes programas (o sobre cuales quieres centrarte), pero este libro a mí me ayudó una barbaridad con Java:

Design Patterns: Elements of Reusable Object-Oriented Software

Otro paso sería darle un vistazo al patrón MVC, conocer las bases del mismo y buscar info sobre como aplicarlo con las herramientas con las que trabajas. En este paso presta atención a la documentación "desfasada", con Java, por ejemplo, encuentras muchos artículos del 2012-2013, usando JPA, etc. No están obsoletos, pero hay mil alternativas mejores.

Busca proyectos didácticos/académicos y échale un ojo a la organización del código, si tiene tests escritos muchísimo mejor. A mi en su momento me ayudó mucho pintarrajear el UML simplificado de la organización del código para entender el cometido de los controllers, services, DAO, etc.

Emprende, trastea, investiga por tu cuenta. Una vez que ya te has decantado por tu set de combate (lenguaje, IDE/editor, frameworks, etc) intenta poner en practica lo aprendido/leído con aplicaciones chorras. Incluso copiar el proyecto de cualquier fulano, compilarlo e investigarlo, ir tocando y ver que escacharras, entender pq se ha jodido y volverlo a arreglar.

Y por Dios bendito, aprender la primera regla de las buenas prácticas: Escribe SIEMPRE los tests primero xD

Espero que te sea de ayuda.

1 1 respuesta
s4suk3

Escribe SIEMPRE los tests primero

wtf, me gustaría ver cuantos proyectos propios has hecho haciendo los tests primero, si te manda la empresa ok, o si es una funcionalidad compleja, pero sino... hay que estar loco

2 respuestas
Ranthas

#5 Para cada funcionalidad "compleja", escribo los test siempre antes. Siempre. Evidentemente, si es un proyecto grande, no escribo los tests del proyecto primero, es imposible. Escribo los tests de cada funcionalidad, escribo la funcionalidad, pasa los tests, se añade. Ese es el proceso.

1 respuesta
MaSoBa

#4 Gracias!

En un principio no comenté en qué lenguaje programo ya que lo que quiero aprender creo que es ajeno al lenguaje en el que se programe. Pero programo 100% Java. Es otro de los aspectos en los que quiero evolucionar. Salir de mi zona de confort de Java y adentrarme en otro lenguaje.

Me apunto el libro! A ver si mi empresa se estira y subvenciona un poco mi autoformación. Si no habrá que irse rascando el bolsillo poco a poco.

El patrón MVC lo tengo más o menos claro. En el FP tanto en Java como en .NET nos machacaron mucho ese patrón y lo hacíamos todo así.

Tengo que perder el miedo y adentrarme en GitHub por ejemplo y ver algún proyecto que me interese e intentar entenderlo, contribuir... O empezar a subir proyectos propios.

Respecto a los tests... Ahí tengo un problema. En el FP nunca lo mencionaron. Y en mi actual trabajo no existen. Por lo que ahora mismo casi no sé ni lo que es un test. Lo básico sí, pero solo eso. Me lo apunto para investigar.

RaymaN

#6

2 1 respuesta
Ranthas

#8 Continuamente. A todas horas.

8 días después
Foxandxss

#5 Hacer tests es obligatorio, hacerlos ANTES te da más ventajas que no puedes conseguir si los haces a posteriori.

B

Yo no me focalizaría NUNCA en un framework. Al final estos hacen muchas tareas por ti que limitan tu conocimiento. Libros como "Design patterns" de O'Reilly te pueden ayudar bastante si utilizas un lenguaje orientado a objetos.

MaSoBa

Exacto. Lo que no quiero es focalizarme en algo. Por ahora he pedido este libro a la espera de que me llegue:

Y mientras llega, le estoy dando un repaso al Clean Code mientras hago algunas cosillas.

1

Usuarios habituales