1 / 37
jul. 2017

y quiero dejar de serlo. Pero me siento atrapado. Hace un par de días que os leo y os pido ayuda. Esta es mi historia:

tengo 38 años. Hace 15 que trabajo en esto, los últimos 10 en la misma empresa (Accenture). La mayor parte de tiempo con Visual basic y hace 3 años "me reciclaron" a java.

No sé si sois consciente porque tengo la sensación de que los que rondáis por aquí tenéis mucho nivel y trabajáis en sitios en los que las cosas se hacen bien y se valora la calidad. En la inmesa mayoría de trabajos de programador creo que esto no es así. ¿Cómo se trabaja? Patapún palante. Se hacen las cosas a lo loco, sin tener mucha idea de a donde se va, ni como, ni porque, ni nada. Y hablo de desarrollo, si hablamos de gestión tema aparte también.

Hace un tiempo que quiero cambiar esto pero veo que en esta empresa no hay nada que rascas así que me tendría que buscar la vida para moverme a otra. He estado estudiando por mi cuenta como ser mejor programador pero no veo que esto sea suficiente para dar el salto. A la mayoría de procesos de selección no me puedo apuntar por la cantidad de requisitos que solicitan y a los que me he apuntado (a 2) pues no han ido muy bien y me he sentido una basurilla siendo sincero.

No sé como salir de ese círculo vicioso: no tengo experiencia en lo que buscan las empresas interesantes -> las empresas interesantes no están interesadas en mi -> no tengo experiencia en lo que buscan las empresas interesantes ...

No sé si es posible romperlo. Tampoco estoy mal no os asustéis, no tengo mal sueldo y el horario no está mal etc. Pero me gustaría trabajar en un sitio en el que se valorara lo que entiendo por trabajar bien.

¿Cómo cojo experiencia que pueda resultar interesante? ¿Debería hacer algún curso?

Perdonar la chapa,

un saludo a todos.

Hola! Si sabes .net y estás por barcelona (o te vendrías), puedes contactarme por linkedin12. Tu reflexión me ha llegado al alma...

A parte de eso, te recomendaria los clásicos (los libros del señor Robert C. Martin en general)
Y depende de lo que te interese el Elements of Scrum (para empezar con scrum) o este libro recomandado por Jaume Jornet (entre otros) respecto a metodología Kanban http://leankanban.com/wp-content/uploads/2016/06/Essential-Kanban-Condensed.pdf15 (este lo estoy leyendo desde ayer y está muy bien)

También ayuda mucho hacer katas -en general- y con gente que sepa más que tú en particular. Y si las puedes hacer en pair programing entonces ya perfecto!

No sé, son ideas un poco random que me vienen a la cabeza por si alguna te sirve.

Lo primero: NO ESTÁS SOLO. En serio, darse cuenta de eso es un paso brutal. Hay mucha gente que sigue siendo producto de cárnica toda la vida, y ni si quiera se da cuenta. Y te digo esto porque a mí me pasó exactamente lo mismo.

Yo tengo 35 años, y a consecuencia de pasar por lo que estás pasando, tengo unas carencias brutales. ¿Testing? Soy un paquete. ¿Diseño y arquitectura? Con muchas carencias. Todo lo que un buen programador debería saber, lo estoy aprendiendo con 15 años de retraso.

Pero el caso es que al igual que tú yo me di cuenta y empecé a darle caña para cambiarlo. En 3 o 4 años mi progresión ha sido mucho mayor que en los otros 10 años que estuve trabajando. Al final solo te queda ir aprendiento por tu cuenta y hacer en casa lo que no puedes hacer en el trabajo. Pet projects y similares donde puedas demostrar tu conocimiento. Y al final, te verás con fuerza y ganas para apuntarte a ofertas mucho más interesantes.

En fin, que yo sigo estando muy limitado, pero me he dado cuenta que con tiempo y ganas solo puedes ir a mejor.

Por cierto te recomiendo este post67. Igual te ayuda.

Ánimo.

Como dice @_rubenfa, bienvenido al club. Yo estuve 4 años de profesor y casi 7 en Indra, 4 de ellos creyéndome que era una bestia parda. La ostia fue grande cuando me empecé a dar cuenta que no. Así que todavía sigo intentando recuperar el tiempo perdido, pero el maldito mundo se empeña a ir más rápido que yo. Pero no te preocupes, ser un buen profesional no solo quiere decir estar a la última de todo, sino muchas más cosa.

Yo sigo teniendo un sindrome del impostor tremendo y cada vez que me toca una sesión de feedback o de review creo que van a decir de todo, pero al final la gente está contenta en como uno trabaja y si estás con ganas de mejorar (que lo estás), la gente lo valora mucho.

Lo más jodido es encontrar un nuevo trabajo, claro. Para mi fue muy importante Twitter, el blog, los grupos de usuarios, organizar eventos, en definitiva: conocer gente. Al final siempre aparece una oportunidad interesante y una vez estás en el bando adecuado, todo va más fino.

Mucha suerte y ánimos!

gracias! no vivo en barcelona ni se .ent pero gracias! Los libros de Robert Martin son basicamente los que he estado estudiando estos meses. Clean Code y Clean Coder me parecen maravillosos, son como un puñetazo, pero no conozco mucho más ahora mismo.

voy a mirarme los libros que comentas porque precisamente quería entender un poco el tema de Agile y ningún libro me convencía del todo.

Qué te voy a decir! No estás solo!! Me repito y lo enfatizo. Todos en algún momento de la carrera hemos pasado por cárnicas trabajando en modo ASM (a salto de mata para los amigos). Proyectos mal hechos, con sobre coste y que tienen que salir para antes de ayer... No puedes aprender todo, así que mi recomendación es que te centres en lo que te gusta. Tanto la comunidad de .net como la comunidad de java en España está bastante activa, por tanto, pégate a ellos cual lapa:
- Ve a meetups (imprescindibles! Vivan las katas!)
- Únete a las comunidades (Slack, twitter, googleGroups, foros maravillosos como este... :stuck_out_tongue: )
- Lee a los grandes, pero sin volverte loco (yo empezaría por Clean Code, las bases de la programación limpia)
- Olvídate de lo que piden las empresas, esas piden demasiado, céntrate en aquello en lo que tú disfrutas! Piensa que no somos picateclas, que es el concepto de las cárnicas, sino que somos artesanos, así que busca tu nicho y hazte un experto.
- No te compares, sólo aprende y atrévete. Las comunidades están para eso, para ayudarnos!

Y seguiría diciéndote mil cosas más, porque yo también pasé por mi etapa de estancamiento y es duro reengancharse. Pero se puede, te lo aseguro!

Saludos y besotes! :wink:

gracias por las respuestas. Creo que tenéis razón en todo lo que comentáis. Y también creo que en el poco tiempo que llevo "despierto" no puedo esperar un cambio radical. Me pillo en momento bajona cuando lo escribí.

lo que sí que tengo que hacer es fijo es lo que comentáis de ir a eventos, katas, talleres,... porque no mordéis no?

gracias de nuevo!

Nop, no mordemos.
Los grupos de meetup también son una mina. el de Agile Barcelona es fantástico

Lo más importante es darse cuenta. Pero sobre todo hay que detectar qué es lo que falla:

  • Base
  • Tecnologías

Yo creo que mejorar la base es más importante porque es algo que vas mejorando poco a poco. Primero mejoras, y luego, cuando vuelves a ello, vuelves a mejorar porque asimilas cosas que no asimilaste antes, y luego otra vez, y otra, y al final ese algo se comprende del todo. Las tecnologías cambian y con una buena base y un intensivo se pueden aprender de forma más o menos rápida y profunda.

Yo llevo en esto del desarrollo software casi 5 años y tengo tu edad. Digamos que pegué un volantazo para cambiar mi rumbo laboral y me reciclé dentro de la misma empresa, y me considero un programador del montón con muchas cosas aún por aprender. Leo algunas cosas por aquí y me abrumo por lo que me queda.

Al hacer ese cambio de rumbo me apunté a la UNED y he aprobado unas cuantas asignaturas, pero ojo, me centré en asignaturas de programación en su mayoría por ir más al corto plazo. ¿Y qué saque en claro? Que había otro mundo fuera y que esos conocimientos no eran más que unos pequeños cimientos que no iban a soportar nada. Me entró miedo (hola síndrome del impostor). ¿Qué hice? Leer blogs (algunos de gente que escribe por aquí), ver videos, y sobre todo leer libros y más libros. Todo eso lo he ido aplicando a pequeños proyectos tontos para entenderlo todo bien (o lo mejor que puedo). Han sido 4 años de intenso estudio y consumo de tiempo personal para ir mejorando Y al final mejoras, no lo dudes. Y cada vez que vas aprendiendo cosas nuevas el abanico de cosas por aprender aumenta, es sorprendente.

Te recomiendo que después de los de Robert C. Martin continues con Code Complete 2 de Steve McConnel11.

Estos son los libros que más he estudiado y revisitado una y otra vez durante este tiempo. Y aún tengo libros pendientes en los que meterme (como uno de DDD):

  • 'Object Oriented Software construction' de Bertrand Meyer.
  • 'Clean Code' de Robert C. Martin.
  • 'The Cleaner Coder' de Robert C. Martin.
  • 'Refactoring. Improving the design of existing code' de Martin Fowler.
  • 'Head First Design Patterns' de Bert Bates, Kathy Sierra, Eric Freeman, Elisabeth Robson
  • 'Dessign Patterns' de Erich Gamma.
  • 'Object Oriented Design Heuristics' de Asthur J. Riel.
  • 'Code Complete 2' de Steve McConnell.
  • 'Pragmatic programmer: from journeyman to master' de Andrew Hunt.
  • 'The Software Craftsman: Professionalism, Pragmatism, Pride' de Sandro Mancuso.
  • 'Test Driven Development: By Example' de Kent Beck.
  • 'Growing Object Oriented Software, Guided by Tests' de Steve Freeman.
  • 'Working Effectively with Legacy Code' de Michael C. Feathers.
  • 'Scrum: A revolutionary approach to building teams' de Jeff Sutherland.
  • 'Essential Scrum: A Practical Guide to the Most Popular Agile Process' de Kenneth S. Rubin.
  • 'Javascript: The definitive guide' de David Flanagan.
  • 'Modern PHP' de Josh Lockhart.
  • 'Practical Object Oriented Design In Ruby' de Sandi Metz.
  • 'PHP Objects, Patterns, and Practice' de Matt Zandstra.

Saludos.

Creo que si has llegado hasta aquí es que estas siguiendo a gente muy Top y eso es que vas por el buen camino, aunque sea el principio.

Una recomendación en cuanto a los libros. Igual te entra el síndrome de comprar todos los libros de software que ves recomendados. Yo al final me decanté por una suscripción a Safari Books online de O'reilly, que igual lo ves caro, pero vas a tener casi casi todos los libros que te están y te recomendarán, además de vídeos (los de Uncle Bob de Clean Code) o boot camps con los chicos de Head First Design Patterns por ejemplo, una pasada.

Al ser online lo puedes consultar donde quieras, para el trabajo va muy bien ya que no te tienes que llevar todos los libros. Vamos que para mi es una inversión mas que un gasto.

Saludos, muchos estamos ahora re-descubriendo la profesión.

Llego un pelín tarde a la discusión, pero por alusiones (gracias @_rubenfa) me he decidido a participar (y escribir mi primer mensaje en el foro tambien :)).

Como ya han dicho varios e este hilo, no estás solo. Yo estuve en tu misma situación, y en cuatro años podría decir que estoy a años luz de donde me encontraba en 2013 (entonces tenía 33 años). De eso hablé en el post que puso Rubén, de título claramente asociado al de esta discusión16. Muchos de nosotros nos tiramos la tira de años básicamente perdiendo el tiempo, y un día ocurrió una catarsis que nos hizo darnos cuenta de lo mal que lo estábamos haciendo. En mi opinión, lo más importante es que ocurra esa catarsis en algún momento, y tú ya la has tenido de forma clara. Lo que viene ahora es un camino de descubrimiento apasionante, y para ello no tienes más que seguir las recomendaciones de este hilo.

Creo que a la gran mayoría nos ha pasado lo mismo en algún momento de nuestra trayectória profesional.

En cualquier caso, siempre estás a tiempo de darte un auto-empujón! Y como bien te han comentado lo principal es aprender cosas nuevas, tanto de base como de tecnología (pero no te obsesiones con esto último, porque es imposible seguir el ritmo de tanta moda).

Así que aprende algo nuevo que te guste (elixir me parece cojonudo tanto por lenguaje como por paradigma), e intenta aplicarlo a proyectos personales, porque que ahí es dónde te vas a pegar las primeras hostias.

Ves a meetups, lee blogs, y dale caña a twitter o a foros como éste e intenta aprovechar la comunidad, que para eso está. La cuestión es que entre todos nos ayudemos unos a otros :smiley:

Y lo del síndrome del impostor merece un capítulo aparte... sólo te digo que contra más aprendo en este oficio, más me doy cuenta de lo poco que se y de las cosas que jamás voy a aprender o a dominar del todo. Es algo que simplemente nos pasa a todos.

Y creo que es bueno que nos sintamos así. Sólo el corto de miras cree que ya sabe lo suficiente :wink:

En mi caso tuve esta sensación hace un par de años, con 28. Notaba que no aprendía lo suficiente en el trabajo así que hice un cambio de chip y empecé a mirar cosas por mi cuenta e interesarme por las comunidades.

Tengo la sensación de tener millones de cosas por aprender aún, pero al mismo tiempo de haber aprendido mucho por el camino.

Empecé con algunas charlas de Catdotnet, BCN Mobile .NET, Catzure, .... Luego algún evento como el Gapand '16 y '17 y algún concurso donde presentar algún proyecto, etc. Conoces a mucha gente de quien aprender.

También puedes mirarte algunos cursos gratis y plataformas de pago como CampusMVP que son geniales.

Creo que es importante elegir una tecnología que realmente te guste y echarle horas (lectura de blogs, cursos, etc) y sobretodo aplicarlo en algún pet project que es cuando realmente creo que aprendes. No creo que nadie nazca aprendido y es necesario poner ganas y horas.

En mi caso ha sido Xamarin (soy programador c# desde hace años). Tras la compra el año pasado por parte de MS pasó a ser gratis, y tras probarlo hace unos meses decidí comprarme un mac de 2a mano (mi portatil era ya viejo) y aprender por las tardes.

Lo importante para mi es que te guste y sobretodo... conseguir pegatinas para el portátil en los eventos!! :grin:

Hola. Tengo 49 tacos, llevo 22 trabajando en un colegio de Vigo (en Galicia) en varios puestos, entre otras cosas, desarrollando aplicaciones web con PHP, JS, MySQL... y demás. Lo que sé, lo fui aprendiendo por mi cuenta, con la dificultad de no tener nunca claro si seguiría dedicándome a eso, o no...

Esta semana he presentado mi renuncia, porque el mes que viene empiezo a trabajar en Barcelona como desarrollador PHP en una empresa muy, muy buena.

Yo también pensaba que no podría ser y que no iba a poder salir del pozo, que ni por edad ni por perfil llegarían a considerar siquiera mi candidatura. Fue cuestión de intentarlo.

Primero abrir el "foco" y aceptar que habría que desplazarse. Y en mi caso te puedo asegurar que es duro.

Después, presentarse a ofertas para las que sientes que puedes encajar. Lo ideal es que puedas contactar con CTO o reclutadores técnicos (los puros de RRHH suelen filtrar CV "peculiares"). Mi mejor fuente de información fue Twitter (quién lo iba a decir), pero LinkedIn también funcionó bastante. Pero inténtalo con muchas.

A mí lo mejor que me pudo pasar fue tener que resolver pruebas técnicas, que dicen de ti más que cualquier cosa. Tuve la suerte de que en una de las primeras la persona con la que hablé y me hizo una prueba me explicó punto por punto lo que había hecho bien y lo que tenía que mejorar.

Eso sí, saca toda la información que puedas de las entrevistas (tecnologías que interesan, cosas para estudiar...).

Las entrevistas para los sitios en los que tuve posibilidades reales de entrar fueron sobre SOLID, patrones de diseño, smells... En esos sitios las tecnologías concretas, según me dijeron, "ya las irás aprendiendo".

Empecé a buscar en serio en enero y seis meses después estaba aceptando una oferta de trabajo firme.

No es fácil. A veces hay casualidades, como fue mi caso, que te ponen en la buena dirección. Intenta estar al tanto, sigue estudiando, contacta con gente que te pueda dar pistas, únete a grupos locales, no te cierres, pero vete descubriendo el tipo de perfil que tienes y trata de responder a ofertas en la que encaje.

Suerte.

En mi opinión el ser buen o mal programador no depende de cuanto sepas sino de la aptitud frente a los problemas. No todo el mundo es capaz de detectar sus carencias y poner soluciones.

De todas formas te diría que hicieses una lista de aquellas cosas por las que te consideras que eres un "mal programador".

¿Tu código es un lío y es difícil de leer o cada vez que tocas una cosa se rompe otra? Pues enfócate en SOLID.
¿Haces pocos o ningún test? Haz katas.
¿En las ofertas de trabajo siempre piden saber de la tecnología X? Aprende acerca de X.

No quieras abarcar todo de golpe porque hay muchas cosas que aprender y cada vez habrá más y al final de agobias. Céntrate en algo concreto que quieras aprender y que todo lo que hagas vaya enfocado en esa dirección. Si por ejemplo quieres aprender a hacer test, pues haz katas en tu casa, ve a talleres o eventos en los que se hagan katas y en tu trabajo coge alguna funcionalidad y métele algún test.

Así con todo, poco a poco.

Wow! Estoy agradecido (y un poco abrumado) por todas las respuestas e ideas. Me está siendo muy útil para hacerme un plan mental y ordenar la cabeza.

También ayuda ver que no soy ni mucho menos el único que se ha sentido así.

De primeras voy a seguir profundizando en los principios SOLID y practicando la programción de tests como base. Y lo que hemos dicho de prácticar , ir a katas,... En fin, todos los consejos. Poco a poco!

Gracias.

Y en general creo que es así, que en la mayoría de las empresas no se hacen las cosas bien. Para mi, la mayor fuente de conocimiento está en Twitter. Yo aprendo mucho y lo aplicó en mi trabajo pero no todo el mundo tiene este interés, y eso se traduce en que el código que se hace, en general, en la empresa no es bueno. Leer mucho te proporciona un almacén de conocimiento que usarás siempre que tengas que desarrollar algo. Y esta carencia la veo en compañeros que no leen ni tienen curiosidad, que no se les ocurre hacer las cosas de una manera buena y eficiente. Muy importante: leer código para aprender. Y cuando se copia código saber qué hace y adaptarlo / modificarlo, que veo mucho copy paste sin sentido, y cuando preguntas porque se ha hecho así te dicen: "no se, lo he copiado y funciona".
Quiero añadir que si que hay empresas donde se hacen las cosas muy bien pero para esto hace falta que las personas que dirigen la empresa apuesten por la calidad , el talento, el buen código.

También muy importante para hacer las cosas bien es aprender el negocio que se quiere solucionar. Los desarrolladores deben conocer y entender el negocio para saber abstraerlo en un lenguaje de programación.

Saludos!!

Poco se puede añadir a lo que han dicho mis compañeros: estudia, comparte, lee...

Has dado el primer paso para ser un mejor programador: saber que no estás haciendo las cosas bien. Recuerda que eso nos ha pasado a todos en algún momento y que incluso las personas que admiramos tienen el reconcome de querer aprender cada día.

Mi consejo como programador que vivió hasta hace muy poco tu misma situación es que hagas todo lo posible por utilizar tus nuevos conocimientos desde ya. Que compartas tus prácticas con tus compañeros, que seas el motor del cambio dentro de tu proyecto, que demuestres porqué has emprendido otro camino.

Esto te ayudará a afianzar tus conocimientos.

Aprender y practicar en casa o en katas está bien, pero pasamos como mínimo ocho horas al día trabajando, aprovecha ese tiempo.

A lo dicho añado, échale un vistazo a este repo de Github de @_rubenfa en el que varios desarrolladores (algunos de ellos rondan por aquí) cuentan experiencias, sugieren consejos,... te será útil:

!Ánimos!

Pues un poco lo que han dicho todos, en mi caso hace unos años me di cuenta de que siempre hacía las mismas cosas y de la misma forma, para mí twitter fue un antes y un después, yo estos últimos años he intentado aprender cosas que me valgan con independencia del framework de moda, me gusta mucho este par de posts al respecto http://blog.koalite.com/2014/11/aprende-despacio/19 http://blog.koalite.com/2013/12/cinco-cosas-que-deberias-aprender-para-dedicarte-al-desarrollo-de-software/20
Dicho esto, me sigo considerando un newbie en casi todo, se que es un topicazo pero cuanto más profundizas en algo más te das cuenta de que lo te falta por llegar, leyendo a peña que, claramente, le va el cerebro más rápido que a mí. Mi único consejo es ser humilde, tener ganas y no agobiarte y NO querer aprender todo de golpe (básicamente es imposible y te generará una ansiedad de cojones).
Yo cuando hablo con alguien que le considero gurú y me transmite dudas, me parece la mejor lección, estamos todos igual :slight_smile:
Ánimo!