Qué he aprendido hasta hoy, por Jorge Castillo
Jorge Castillo

Mi carrera profesional como Android Developer se extiende por unos cuatro años. Comencé con proyectos personales un añito antes, pero igualmente no es mucho tiempo. A pesar de ello, siento como si llevase media vida programando, y eso que en el fondo mi paso por el mundo del desarrollo no ha hecho más que comenzar. Desde entonces he aprendido muchas cosas, y es evidente que la mayoría de ellas me han llevado a ser el desarrollador que soy a día de hoy. He pasado por épocas mejores y peores, aunque generalmente buenas y sobre todo productivas.

Para los que no me conozcan, que serán la mayoría, me presentaré muy brevemente. Soy Jorge Castillo, y actualmente formo parte del equipo Android de Jobandtalent, empresa en la que tengo la oportunidad de seguir creciendo junto a grandes programadores día a día a un nivel muy competitivo. En este artículo expondré los puntos que considero más importantes y trataré de proporcionaros así un punto de vista personal sobre ciertos aspectos que probablemente os serán de utilidad.

Sacrificio, sobre todo y con más razón al inicio

Desde que somos pequeñitos en casa nos enseñan que toda recompensa requiere esfuerzo y dedicación. Evidentemente esto no es algo diferente en el desarrollo de aplicaciones. Generalmente además, el esfuerzo a realizar es aún mayor durante los primeros años de trabajo. Dar tus primeros coletazos tan fuerte como puedas te ayudará a alcanzar el objetivo.

primeros coletazos

En mi caso, comencé mi andadura profesional trabajando como becario para dos empresas diferentes, a la vez que estudiaba las últimas asignaturas de la carrera. Fue una época un tanto frenética para mí, y el ritmo era relativamente duro. En estas empresas cobraba muy poquito, o casi nada. No diré el nombre de las mismas por no entrar en polémicas innecesarias. Al fin y al cabo, hoy en día es complicado que una empresa deposite su confianza (a nivel económico) en ti, si no tienes cierta experiencia / currículum / proyectos que te acrediten. Esto se podría entender más o menos, achacarlo a la situación económica del país o a otras historias. Sea como fuere, cada uno es dueño de su vida y sabe qué objetivos perseguir, así como intenta dilucidar el mejor camino para obtenerlos. Lo peor que uno puede hacer es pararse a llorar a casua de factores externos.

Mi intuición me dijo que trabajar en empresas a cambio de experiencia y conocimiento era la única forma de meter la cabeza en el mundillo y aprender a defenderme en términos técnicos, así que tomé la decisión de sacrificarme por un tiempo. Por las mañanas trabajaba como desarrollador web, donde además del desarrollo me encargaba del matenimiento de una de las páginas oficiales de la Universidad de Murcia. No es que aprendiese mucho a nivel técnico allí, más allá de lo que ya había trasteado en mi casa con mis propios blogs, páginas sobre mis hobbies y poco más. Pero sí comencé a aprender algunas cosillas sobre jerarquía y relaciones de trabajo para con el jefe, y entre los compañeros. Aspectos nada ténicos, pero igualmente útiles.

Por las tardes trabajaba en una consultora en la que desarrollábamos aplicaciones para Android. En el momento que conocí la empresa me sentí muy atraido por el tipo de trabajo que realizaban, y me esforcé para conseguir que me diesen una oportunidad. Al final conseguí un humilde puesto de becario, y gracias al esfuerzo que puse en esta última (fue el trabajo que más me atraía), fuí renovado y adquirí un contrato de trabajo indefinido unos meses más tarde. Quizá no era la empresa que mejor pagase del mundo, la que tuviera la mejor gestión, mejores jefes, o mejor jerarquía. Pero a nivel técnico era el mejor sitio en el que podía estar, gracias al alto nivel de mis compañeros de trabajo, a los cuales les debo mucho.

Desde entonces he continuado esforzándome en cada uno de mis trabajos, y también en casa, puesto que nuestra profesión nos exige un aprendizaje constante. Hemos de comprender que en cuestiones de programación no hay límites al aprendizaje. Tenemos a mano internet, la mayor fuente de conocimiento de la historia, ya que las engloba a todas. No tenemos excusa, y a casua de esto el mercado evoluciona todos los días a un ritmo espantoso. Por tanto, debemos asumir que tendremos que estudiar, por siempre. Es por eso que lo ideal sería que pudiésemos convertirlo en nuestro hobby, ¿verdad?.

El desarrollo como hobby

El aprendizaje dentro del trabajo está bien, y es altamente necesario. Pero hay mucha gente trabajando y muchos de ellos con facilidad para aprender. Por tanto es necesario dar un plus. Si tu trabajo es también tu hobby, acabarás dedicándole numerosas horas por tu cuenta, y tu interés por los detalles se multiplicará. Desarrollar proyectos personales, publicar Open Source en una red social como GitHub, leer, estudiar, escribir en un blog, son cosas productivas en las que invertir tu tiempo libre.

Es evidente que el tiempo libre también está para descansar, y desde luego en mi opinión es tan valioso el buen descanso, los ratos dedicados a tu familia, amigos, y otros hobbies, como el tiempo que puedas dedicar a mejorar tus conocimientos como desarrollador. Lo más importante es ser capaz de optimizar el tiempo y poder dedicarlo a todas esas cosas, por difícil que parezca. El día tiene 24 horas. Idealmente podrías dormir 8 y tendrías otras 16 para compaginar tu trabajo con todos tus temas personales. Si trabajas 8-10 de ellas (incluyendo parones para almuerzos, comidas, etc), tienes al menos otras 6. Quítale otras 2 que podríamos achacar a problemas de transporte (en el peor de los casos). Tienes otras 4 para destinar a lo que quieras. Todos los días. Y en realidad con dedicar sólo 1 a temas de aprendizaje vas más que sobrado. Parece poquito, pero significa mucho. Hacer un poquito cada día, pero todos los días, es uno de los pocos secretos que puede haber para seguir prosperando. Leer un rato antes de acostarte, por ejemplo, es algo bastante viable para casi todo el mundo, y te ayuda a ampliar tus conocimientos y vocabulario.

En mi caso, he dedicado gran parte de mi tiempo libre a publicar proyectos Open Source y a proyectos personales. Tener proyectos personales, tus propias librerías, aplicaciones, etcétera, es realmente importante. No tan importante es que los termines. A pesar de que es bueno aprender a terminar lo que uno empieza, es mucho más productivo dedicarte a lo que te motiva realmente en cada momento. Yo he tenido proyectos en los que he trabajado semanas, e incluso meses, y al final no han visto la luz. Pero gracias a la motivación y al hecho de disfrutar conforme los desarrollaba, aprendí mucho con ellos. El hecho de terminarlos está bien, pero va más encaminado a un enfoque de compensación posterior al trabajo realizado (generalmente económica). En cambio, el bien que obtienes al dedicar cada momento de tu tiempo a lo que realmente te motiva, es mucho mayor a la larga, y considerablemente más importante en mi opinión. Eso es lo que realmente hará arraigar tus conocimientos. Ten en cuenta que el momento en que uno aprende más es cuando está disfrutando con lo que hace. Esto a día de hoy es casi una ciencia, y hay programas de educación para niños que se basan por completo en esa idea.

pinturas

Actualmente, una de las cosas que más hago es leer libros técnicos. Aprovecho el camino al trabajo cada día para leer en el metro. Leo en casa también, o cuando viajo entre Madrid y Murcia. Cualquier rato es bueno. Leo los grandes clásicos que todos conocen y son casi como biblias de la programación moderna, o libros importantes recomendados por gente con más experiencia que yo en la materia que me interese. Es muy importante saber pedir consejo a los que saben más que tú sobre algo, y estar al tanto de las personas más reconocidas en cada materia dentro de la comunidad. Por suerte tenemos una comunidad muy amable y rica en conocimiento. Yo diría que una de las más potentes del mundo a nivel de ingeniería y desarrollo. Es bueno que nos lo creamos y lo aprovechemos.

Pedir consejo está muy ligado al pragmatismo.

Pragmatismo, tan de moda en los últimos tiempos

Principalmente durante los primeros años, uno de los problemas más recurrentes en los programadores (y seguramente dentro de cualquiera de las ciencias complicadas que existen), es el orgullo. El desarrollo es complejo, y cuando dominas (o al menos crees que lo haces) partes diferentes del mismo, tiendes a volverte más rudo y orgulloso. Comienzas a creer demasiado en tus conocimientos y a valorar muy poco el de los demás. No existe un error mayor, y esto es algo que los programadores experimentados terminan por descubrir. El problema de no aceptar conocimientos de otros es que los tuyos propios pueden estar equivocados. Tan simple como eso. Uno podría morir y creer siempre que tuvo la razón, si nadie en toda su vida le llevase la contraria, o aunque lo hiciese, el primero no fuese capaz de asumir que estaba equivocado. Esto parece algo obvio, pero es muy difícil de dominar. La persona con mayor capacidad de aprendizaje es la que se deja aconsejar, y sabe asimilar en poco tiempo las buenas ideas de sus compañeros o colegas de profesión como suyas propias. Ese es capaz de dar pasos de gigante.

Un caso claro en el que florece el orgullo se da cuando alguien critica nuestro código, aunque sea de forma constructiva. Es muy normal sentirte atacado, terminando por ignorar todo lo que te han dicho una vez se zanja la conversación. ¿Quién se cree que es tu compañero para darte lecciones?. Sólo es una cabeza pensante más en tu entorno de trabajo, que intenta echarte una mano. Un punto de vista diferente al tuyo, que evidentemente no estabas teniendo en cuenta. Es realmente importante trabajar en la templanza, y conversar con nuestro compañero sobre nuestro código con total objetividad. Tanta como si el código hubiese sido escrito por otro.

Otro buen rasgo de pragmatismo es la capacidad de entenderse con todos los miembros de tu equipo de trabajo, ya formen parte de la misma plataforma, de otra, del equipo de diseño, o incluso de la gestión y organización, como puede ser un project manager. Ser capaz de entender el trabajo de cada uno de ellos, al menos hasta cierto punto, y dialogar pausadamente y con detalle sobre los pros y los contras de determinadas decisiones, demuestra tu tolerancia, empatía, y capacidad de trabajo. Muchas empresas prefieren contratar buenas personas con buenas dotes de ingeniería, que grandes ingenieros de renombre. Los miembros de otros equipos son tan compañeros como los que pertenecen al tuyo propio, y puedes aprender cosas de todos ellos. No son tus enemigos.

No es tu enemigo

Hacer pair/mob programming y code reviews, son prácticas que ayudan a mejorar la tolerancia / empatía. Además ayudan muchísimo a crecer como programador. Si trabajas en una empresa en la que no se suelan realizar este tipo de prácticas, no estaría de más proponerlo, ya que es un paso adelante importante. Compartir conocimientos es muy útil.

Todo lo referente al pragmatismo radica en el sentido común, y podría citar mil ejemplos. Creo que la idea está clara.

Actividad en la comunidad y aportar referencias

Hay desarrolladores realmente buenos que no son buenos a la hora de darse a conocer, y no hacen comunidad por diferentes motivos. Algunos de ellos simplemente se sienten más cómodos moviéndose por su cuenta, y otros quizá no lo han hecho por problemas de distancia. A causa de esto, no son conocidos dentro de la comunidad, y pierden oportunidades de trabajo que podrían resultar asequibles para ellos.

Por otro lado, para los estudiantes recién salidos de la carrera en ciudades pequeñas, es difícil estar al día y saber por dónde van los tiros. Yo, por ejemplo, estudié en Murcia, y jamás habría descubierto la comunidad que hoy tenemos si no hubiese tenido la oportunidad de trabajar en una de las empresas que mencioné antes. Mi recomendación al respecto es que si estás en una situación parecida, no desistas, muévete, consulta blogs, habla con la gente a través de ellos, y acabarás empapándote de la comunidad. A mi me ha ayudado mucho a seguir creciendo, y he descubierto un enorme número de cosas y conocimientos a los que no hubiera tenido acceso de otro modo.

Actualmente la empresa en la que trabajo fomenta que asistamos a eventos, tanto si somos asistentes como ponentes, y tengo la suerte de seguir potenciando ese factor. También organizan charlas propias a las que asisten muchas personas de la comunidad. Déjate caer por Jobandtalent algún martes que tengamos evento y allí nos conoceremos. Si tú no tienes esa suerte, el día de mañana, sería bueno que intentases trabajar duro para conseguir formar parte de una empresa que valore la formación. Hay una frase muy conocida que dice que vale más formar a tus empleados y que se marchen a no formarlos y que se queden. Hoy en día no es fácil encontrar empresas que promulguen este punto de vista.

Es muy importante participar en conversaciones activas sobre temas ténicos de actualidad, comentar en foros, leer opiniones de todo el mundo, asistir a eventos, compartir tu código para que otros lo valoren y opinen sobre él… etc. Perder el pudor a mostrar tu código al público es crucial para poder aprender a aceptar las críticas. Y no sólo aceptarlas, si no también sacar un partido real de ellas.

Código

En definitiva, enriquecerte del resto de miembros de la comunidad y hacer crecer tu marca personal (de lo que también se habla en el ebook gratuito de DevExperto) es un factor diferencial que no deberías dejar pasar.

Confiar en tus conocimientos, sobre todo en las entrevistas

Cuando somos entrevistados normalmente nos ponemos nerviosos y nos cuesta responder correctamente a las preguntas que nos hacen. Generalmente es complicado valorar a una persona por el resultado de una entrevista, y raras veces es capaz de defenderse lo suficientemente bien como para transmitir sus conocimientos de forma relativamente completa. Uno también debe acostumbrarse a hacer entrevistas, y estar preparado para responder correctamente. Estudiar de cara a una entrevista no es lo ideal, ya que no representa los conocimientos que tienes, si no los que adquiriste ayer por la noche para poder superarla, tras ver los requisitos que la empresa exigía en la oferta de trabajo. Está bien mirar la oferta para saber cómo enfocarla, pero tus conocimientos son los que son, y debes confiar en ellos.

Hacer entrevistas te ayuda a dilucidar cómo está el mercado en cada momento, y a saber qué es lo que las empresas están valorando más. Eso te ayudará a prepararte correctamente a lo largo del tiempo, para las siguientes. Pero de una forma sensata y dedicándole el tiempo que merece a las materias a aprender. No algo esporádico de una tarde.

En una entrevista puedes obtener información muy importante sobre la empresa para la que estás siendo entrevistado. Basándote en el tipo de preguntas que hacen, podrías ser capaz de decidir si para ti es interesante o no trabajar en esa empresa. No tienes por qué sentirte por debajo, como si estuvieras rogando por trabajo, si confías en lo que sabes. Ten en cuenta que estás siendo entrevistado por un motivo, por tanto, algo tendrás que ofrecer. A su vez, es importante ser humilde y realista. Saber a qué tipo de trabajos puedes aspirar en el momento actual.

Conclusiones

En una carrera uno debe dar todos los pasos, y no pasar de 0 a 100 en dos días. Tras cada escalón, puedes mirar abajo para contemplar lo recorrido, esto siempre es útil. Lo bueno es que ya está superado, y ese esfuerzo no lo tendrás que volver a realizar. Lee, programa, aprovecha el tiempo libre, descansa, confía en tus conocimientos, sé tolerante. Trabaja un poquito todos los días.

Yo sigo pensando que tengo un camino enorme por recorrer, igual que el primer día. Con el esfuerzo diario, todo termina por llegar, a su debido tiempo.

Quizá también te interese…

7 cosas que me habría gustado saber antes de programar

7 cosas que me habría gustado saber antes de programar

Si me hubieran dicho antes que la programación no es una habilidad que se adquiere de la noche a la mañana, habría sido menos frustrante. Cuando empecé a programar, creía que era una tarea sencilla y que en unos pocos días estaría creando mis propios programas. Sin...

RE: Estoy menospreciando a Flutter

RE: Estoy menospreciando a Flutter

En el último vídeo que publiqué de Kotlin vs Flutter, he recibido varios comentarios que se alejan bastante de la realidad de lo que comentaba en aquel vídeo, y sobre todo de lo que pienso realmente. Así que he decidido crear un vídeo contestando a todos esos...

9 Comentarios

  1. Pablo Carmona

    Me ha encantado tu relato Jorge. Además ayuda mucho a los que estamos empezando y nos cuesta ver la recompensa del esfuerzo. Respecto al tema de comunidades, que me parece fundamental, ¿cómo empezaste tú a involucrarte en ellas? ¿Cual me recomendarías para ir empezando? Muchas gracias por compartir tu experiencia y un saludo.

    Responder
  2. Jorge Castillo Pérez

    Muchas gracias Pablo. Me alegro de que te haya resultado útil la lectura, ya que el post va dirigido a gente como tú. Para involucrarte en la comunidad te recomendaría asistir a muchos eventos, siempre que te sea posible, e intentar seguir en Twitter a gente reconocida del sector. Esto te ayudará a saber qué eventos habrá próximamente, y aprender bastante de los artículos / información que compartan. Echa un ojo a los eventos GDG Spain (http://www.gdg.es/), apoyados por Google y que además se organizan en casi todas las comunidades españolas.

    Por lo demás, intenta compartir tu profesión con gente de tu misma comunidad. No dejes de moverte y poco a poco te irás involucrando!

    Un saludo!

    Responder
  3. Alon

    Muy buen Articulo Jorge!!! muchas gracias por compartir tu experiencia y tus puntos de vista sobre el desarrollo. Sobre lo que comentas en el artículo en el apartado “El desarrollo como hobby” una cosa que echo de menos es poder hacer pequeños grupos para poder trabajar en pequeños proyectos y hacer un aprendizaje mas rápido y contrastado de determinados temas. Hay mucha gente con la que te gustaría trabajar y no es posible porque trabajamos en empresas diferentes, pero en nuestro tiempo libre sería muy valioso poder hacerlo.

    Normalmente cada uno de nosotros aprendemos de otras personas en el entorno empresarial y de forma mas individual estudiando publicaciones o artículos que normalmente desarrollamos en nuestro tiempo libre. Creo que es una cosa que se podría cambiar….

    Un saludo

    Responder
  4. Jorge Castillo Pérez

    Gracias por tu comentario Alon!. Es cierto que trabajando con gente de otras empresas de la comunidad aprendes a tener en cuenta otros puntos de vista. Eso es algo que como bien dices, puedes trabajar en tu tiempo libre, asistiendo a eventos, donde no sólo se hacen charlas, si no también Katas / Dojos / Workshops. Leyendo el código de otras personas (github) también puedes aprender bastante sobre ello. Con respecto a los eventos, con el tiempo acabas congeniando con mucha gente, y tienes la posibilidad de formar pequeños grupos con personas con las que hayas congeniado mejor, y tengan ganas de enfrentarse a un “pet project” contigo.

    Si te soy sincero, no hay mucha gente que haga grupitos para trabajar entre todos, normalmente cada uno va por su lado y tiene sus cosillas, y luego nos juntamos todos a hacer networking en los eventos, donde intercambiamos opiniones sobre todas las cosas.

    Responder
  5. jose antonio sanchez robles

    Me gustaría agradecer tu trabajo ya que me esta sirviendo como guía, termine mis estudios unos 3 años atrás y por cuestiones de la vida, termine trabajando en una empresa de telecomunicaciones como técnico. He seguido formándome como programador sin tomar un camino y cuando terminaba 2015 me propuse realizar un gran cambio, y para mi sorpresa tu libro “10 Consejos para convertirte en un programador Experto” calló en mis manos justo al empezar el año, me ha ayudado a iniciar este cambio, me he puesto metas, rutinas y soy algo mas estricto conmigo mismo.

    Responder
    • Antonio Leiva

      ¡Qué buena noticia! Espero que consigas lo que te propongas, y si necesitas ayuda con el proceso, no dudes en ponerte en contacto conmigo. Gracias por tus palabras ¡Un abrazo!

      Responder
  6. Juan Rodríguez

    Un gran artículo!! Gracias por las palabras escritas. Yo soy un desarrollador Android que está “empezando” (siempre lo estaré :)) y que no me canso de estudiar. Todavía me acuerdo cuando era pequeño y veía a mis primos mayores estudiando y les decía “¿No vas a dejar de estudiar nunca? menudo rollo” y ahora me doy cuenta que a mi no me gustaría dejar de “estudiar, aprender, indagar, evolucionar… en cosas nuevas”.

    Trabajo en Android, estudio un máster (MIMO) de móviles (HTML5, Android, iOS, WP) y hago pequeñas aplicaciones que siguiendo tu consejo me encanta realizar aunque luego no alcancen la luz (creo que dormir 8 horas es mucho :)).
    Creo que a mí me cuesta hacer grupos o extenderme en la comunidad por la falta de conocimiento (vergüenza) de no saber mucho inglés.

    En cuanto a la formación muy pocas empresas lo valoran, es mas en la mía vale más el estar sentado en la silla del trabajo que el tener la posibilidad de ir a una clase extraordinaria un viernes por la mañana.

    Un saludo

    Responder
  7. Antonio Leiva

    Juan! Nos veremos por el máster entonces, estaré por allí dando unos talleres 🙂 . Por suerte hay bastante comunidad en español, así que que eso no te cierres en banda por eso. Es cierto que el inglés ayuda, pero no es requisito indispensable. La formación es imprescindible, si tu empresa no la valora, tarde o temprano acabarás cambiando de empresa…

    Responder
  8. Jorge Castillo

    Lo importante Juan es no desistir. Los primeros años es más normal tener que trabajar para empresas que no ofrecen todas las ventajas que podrías estar buscando. Lo importante es tener paciencia y trabajar duro, para que tu empresa actual se te acabe quedando pequeña (sobretodo en cuanto a aprendizaje), y poder así saltar a una con un nivel / calidad de trabajo superior. Creo que el único secreto es pensar más en ti mismo a la larga que a corto plazo. Es decir, en qué hacer hoy para seguir subiendo escalones.

    Un saludo!

    Responder

Enviar un comentario

Los datos personales que proporciones a través de este formulario quedarán registrados en un fichero de DevExpert, S.L.U., con el fin de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento de la parte interesada. Si no se acepta, no podrás comentar en este blog. Los datos que proporciona solo se utilizan para evitar el correo no deseado y no se usarán para nada más. Puede ejercer los derechos de acceso, rectificación, cancelación y oposición en contacto@devexperto.com.

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

Acepto la política de privacidad *