So you want to be a developer?

TL;DR 42

La gente siempre me ha preguntado por tips para seguir en el mundo de la tecnología que crece a pasos enormes, un mundo en el que cada semana hay un nuevo framework o nuevas best practices que aplicar a nuestra vida diaria en los proyectos que nos encontramos. La idea original del blog es para ayudarme a recordar todas las cosas que aprendo y, por accidente, ser de ayuda para otras personas. Así que hoy compartiré algunos tips que me han servido para seguir en el vasto mundo de la programación.

Read books and blogs

Sonará trillado, pero los libros son una fuente de información muy enriquecedora, habrá bastantes libros atemporales y otros que se desactualizan al poco tiempo. Por ello recomiendo que se busquen libros sobre filosofía del software, aquellos libros que van de cajón como Design Patterns: Elements of Reusable Object-Oriented Software, Clean Code o The Mythical Man-Month. Los libros quedan desactualizados con el tiempo, pero si les gustan los libros electrónicos, pueden considerar adquirir libros que van actualizandose y no hay costo alguno como los de las editoriales O’reilly -_y si le dan click a éste link les regalo un 50% de descuento en cualquier libro electrónico usando la clave PCBW. Pásele que hay de todos los sabores y pueden usar el código cuantas veces lo necesiten_- o The Pragmatic Bookshelf.

Leer blogs es muy importante y es algo que cada mundo tiene sus preferencias, así que en lugar de dar blogs específicos, puedo comentar que hay sitios donde pueden encontrar de todo un poco y con el tiempo encontrarán a personas que seguir dependiendo del lenguaje o tecnología a la que estén orientados. Reddit es un excelente sitio en internet donde podrán encontrar casi cualquier cosa que busquen. Para estos temas muy generales de programación el subreditt /r/programming es un lugar muy interesante donde encontrarán noticias del día o curiosidades de distintos lenguajes, otro lugar similar es Hacker News. No olviden pasar por esas páginas con regularidad, no se trata de leer todos los links, se trata de leer aquellos que les llamen la atención, incluso leyendo sólo los títulos sabrán algo nuevo ese día.

Go to meetups (or create one)

Tener un grupo de personas con el que compartir gustos similares es una de las cosas principales por las que la humanidad es social, y programación no se queda atrás. Antes vivía en un lugar donde la programación era sólo practicada por pocas personas, y era imposible que existiera un grupo oficial donde se hiciera una junta de una vez por mes para hablar sobre tecnología, sin embargo eso no fue un impedimento para mi, fue un reto. Traté de llevar la filosofía de las grandes ciudades a mi lugar de origen, pero logré conocer gente realmente apasionada y quienes deseaban aprender a desarrollar, fue así como logré compartir y adquirir conocimiento. Recuerden que para ser un desarrollador 10 veces mejor, necesitas enseñarle algo significativo a 10 personas. Así que si no existe un espacio para transmitir ideas, crea tu ése espacio.

Start a project

Me adentré a la programación por uno de mis hobbies mas grandes, el Anime. Todo comenzó con un proyecto de una página web y un foro en php. ¿Por qué no aprender así? Mucha gente obtiene el conocimiento por la práctica -_learning by doing_-, y seguramente vas a retarte muchas veces en un proyecto personal al que tienes mucho afecto. La tecnología está abarcando cada una de las cosas que antes hacíamos sin uso de ella -_como pedir un taxi o buscar el teléfono de un negocio_-. No te preocupes si tu proyecto es usado sólo por ti o pocas personas -_Yo desarrollé el prototipo de un videojuego en el que sólo juega mi papá y yo_-, aprenderás mucho más con proyectos personales que con otra cosa en tu vida como desarrollador, y es que tendrás la facilidad de utilizar tecnologías que quizá nunca vayas a tocar en un estado productivo, nunca se sabe. Diviertete.

Never stop learning

¿Ya sabes “X” lenguaje de pies a cabezas? Puedes estar muy equivocado. Nunca olvides que la industria en la que estamos es una de las que más actualizaciones tiene. Pareciera como si cada semana naciese un nuevo framework. Don’t Panic. Sólo basta con que vayamos observando cual es el nuevo “trend” de programación y armar una lista que estudiar, tampoco es que cada semana cambien los paradigmas.

The less you fear being wrong, the more confident you can be.

He conocido mucha gente que tiene el temor a equivocarse, pero si uno no falla, nunca podrá crecer. He aprendido mas de errores -_míos y de otros_- que de aciertos, y esto por que generalmente los aciertos es por que realizamos un trabajo con algo con lo que ya dominamos. Aprende un nuevo paradigma de programación, crea un proyecto utilizando tecnologías con las cuales no eres experto. ¿Sabes PHP? Crea un proyecto con Ruby on Rails. Nadie nace sabiendo todo, y nadie sabe todo a fin de cuentas, te llevarás una gran sorpresa de las cosas que puedes aprender de las personas, incluso si éstas no tienen conocimiento alguno de lo que hables puede que te hagan preguntas muy interesantes que nunca hubieses pensado por ti mismo.

Understand what you do well, and what you don’t.

Éste punto mas que un tip para desarrolladores, es un “life motto”. No puedes ser experto en todas las áreas de programación, habrá lugares donde te haga falta estudiar o tener experiencia, es allí donde debes revisar que puntos puedes mejorar. Una de las técnicas mas famosas en el desarrollo de proyectos con equipos son los Code Reviews, mismos que debes aprender a aprovechar, recuerda que el código fue escrito por un humano y que puede tener fallas, todo puede refactorizarse y optimizarse.

Write your own documentation

Programa siempre como si el tipo que acabe manteniendo tu código fuera un psicópata violento que sabe dónde vives. Martin Golding

Quizá ese psicópata eres tu. Escribimos bastante código que luego no sabemos que fue lo que teníamos en mente en un principio, también está la técnica del “Self-documenting code” que conlleva “naming conventions” como el de elegir nombres adecuados para las variables y funciones, así que vayan olvidando el llamar x a una variable -_claro… a menos que sea una x_-, recuerden que el código es leído por humanos e interpretado sólamente por las computadoras, así que comienza a realizar código limpio.

Test your code and solve things

Por último pero no menos importante, siempre prueba tu código y resuelve retos. En éste blog estaré poniendo retos que ustedes mismos pueden intentar llamados katas. Hay distintas formas de resolver un problema, puedes enfocarte en encontrar su solución y luego en mejorarla. Todo está en que primero lo intentes.

In the end…

En pocas palabras, mantente en constante movimiento, no olvides que siempre hay algo nuevo por aprender y que la tecnología avanza para hacernos la vida mucho mas fácil -_¿Alguna vez maquetaron todo en tablas? ¿Tuvieron que hacer un borde redondeado antes de la llegada de border-radius con CSS3?_-, aprende mas de un lenguaje y aprende lo básico de ciencias computacionales.

Nos leemos!