¿Qué va a pasar?

En solo tres pasos tu aplicación empresarial comenzará a ser una realidad

Registro
Escuchamos tus necesidades

Carrera profesional como desarrollador de software

4 cosas que me hubiera gustado saber al principio de mi carrera profesional como desarrollador de software

community_thumb

Mi carrera profesional como desarrollador de software comenzó hace quince años.Pero realmente ha sido en los últimos 5 años que he notado un verdadero empujón en mi carrera profesional como desarrollador.Aquí relataré algunas de las cosas que me gustaría haber sabido cuando empecé en la industria del desarrollo del software; cosas que me hubiesen permitido tener más éxito antes si las hubiera sabido...

No existe una única forma de hacer las cosas bien en el desarrollo de software

He perdido muchísimo tiempo tanto estudiando y discutiendo al principio de mi carrera, pensando equivocadamente que existía una forma de hacer las cosas bien de manera universal y absoluta en lo que se refiere al desarrollo de software.Resulta que casi todo lo que pensaba que estaba bien en el desarrollo de software en algún momento resultó estar mal.Y lo que es más, he descubierto que muy pocas cosas son blancas o negras. Casi todas las decisiones que se toman a la hora de programar y desarrollar software se basa en las circunstancias del momento.Creo que la adopción fanática de una tecnología puede resultar dañino para los desarrolladores de software, pero este argumento va más allá de lo que es puramente tecnología.Y también resulta ser verdad que ninguna buena práctica es universal. Incluso los temas más controvertidos como si se debe o no hacer pruebas de unidad, o si es mejor seguir una metodología ágil o en cascada, no tienen una respuesta única correcta siempre.En mi trayectoria he perdido demasiado tiempo en buscar el "camino correcto" que no me llevaba a ninguna parte en vez de tomar el camino pragmático que me hubiese llevado mucho más lejos.

Leerse un libro de tomo a lomo no es la mejor forma de aprender

Cuando primero quise ampliar mis conocimientos sobre programación y los diferentes lenguajes, me pasé demasiado tiempo leyendo libros sobre una tecnología concreta de tomo a lomo.No tiene nada de malo leer libros, pero a menudo la elección de qué libro leer y que partes leer del mismo es fundamental.Por ejemplo, recuerdo haber leído un libro muy grande sobre la programación en Visual C++. El libro era bueno con un montón de información, pero el hecho de leerlo de cabo a rabo no fue el mejor enfoque para aprender Visual C++.Hubiese aprendido y retenido muchísima más información si hubiese hecho una lectura superficial de los capítulos del libro para coger una idea general sobre lo que hay que saber sobre Visual C++, y luego intentar determinar qué cosas eran importantes aprender primero.Hubiese tenido muchísimo más éxito si me hubiese sentado a practicar lo fundamental mediante el desarrollo de un software en vez de leer y repasar los ejemplos del libro. No puedes decir que sabes usar una tecnología hasta que no solucionas problemas reales con la misma.

Aprender una tecnología en particular de manera muy exhaustiva es una perdida de tiempo

No solo he perdido el tiempo leyendo libros de principio a fin, sino que también eligiendo los libros equivocados.De verdad creía, equivocadamente, que al aprender una tecnología en profundidad sería una buena forma de avanzar en mi carrera.Me pasé demasiado tiempo leyendo libros sobre tecnologías muy concretas tipo ASP.NET o Hibernate en vez de leer libros del tipo “Code Complete,”“Clean Code,” y “Agile Principles, Patterns And Practices in C#.”(Recomiendo su lectura encarecidamente si no los has leído)Aunque es importante saber cosas sobre la tecnología que estás usando, no es crucial ser un experto absoluto en una tecnología concreta. No resulta muy útil saber que llamada API en concreto hay que hacer cuando puedes buscarla en el momento que la necesites.Demasiadas tecnologías sobre las que me he pasado mucho tiempo estudiando en profundidad o se murieron o las terminé abandonando yo. La mayoría de los conocimientos adquiridos sobre esas tecnologías terminaron siendo una perdida de tiempo.Lo que sí resultó ser determinante es dominar en profundidad el lenguaje de programación que elegí en cada momento, porque tener mucha destreza en un lenguaje concreto te sirve para mucho tiempo; si echo la vista atrás todo el tiempo que estuve estudiando en profundidad sobre C++, C# y Java estuvo muy bien empleado, sin embargo quizás me pasé demasiado tiempo aprendiendo las filigranas de C++, que ahora en verdad no me sirven de mucho.

La comunidad es muy importante en tu carrera profesional como desarrollador de software

Al principio de mi carrera cometí el error de no solicitar ayuda a la comunidad ni de prestar ayuda a otros.Siempre se me ha dado bien ayudar a mis compañeros de trabajo y socializar en los diferentes puestos que he tenido, pero nunca hacía un esfuerzo por relacionarme con la comunidad más allá de mi empresa.Me tiraba demasiado tiempo invirtiendo el tiempo en mi carrera en la empresa para la que trabajaba en vez de invertir ese tiempo en las comunidades de desarrollo de software en las que estaba involucrado.Me tiré demasiado tiempo creando presentaciones internas sobre tecnologías o mejores prácticas que podía haberse invertido en crear contenidos y material que podía haber sido de gran utilidad para la comunidad en general, y que me hubiese dado reconocimiento en mi puesto a la par.También cometí el error de creer que no tenía nada de valor con lo que aportar la comunidad.Cuando hablo con muchos desarrolladores de software novatos me doy cuenta de que tienen muchísimo más que aportar a la comunidad que aquellos desarrolladores veteranos como yo que hemos estado trabajando en el sector durante tanto tiempo, porque ellos entienden mejor los problemas con los que otros novatos se están enfrentando.Si pudiese empezar de nuevo, me hubiese asegurado de haber estado más implicado en conferencias y en grupos de usuarios antes en mi carrera profesional. Hubiese empezado con mi blog muchísimo antes y hubiese estado más tiempo creando proyectos y recursos que habrían ayudad a otros en vez de leer y estudiar tantos libros.

Siempre ten un proyecto en paralelo

Quizás el cambio más grande que hubiese hecho que tendría un impacto enorme en mi trayectoria profesional sería haber visto menos la tele, jugar menos al rol y a las consolas e invrtir ese tiempo en tener un proyecto personal en paralelo.He tirado mucho tiempo por la borda haciendo cosas que eran divertidas pero que no me reportan nada a largo plazo en mi vida.Hace cuatro años dejé de ver la tele y ahora ya casi ni veo películas. La tele y las películas en general son una perdida de tiempo enorme que se puede emplear en hacer algo productivo. Lo mismo digo para los videojuegos aunque menos porque por lo menos estás haciendo algo de forma activa...Siempre me ha gustado jugar a la consola y no creo que deje de hacerlo jamás, pero me gustaría haber invertido mi tiempo en proyecto paralelo a mi trabajo.Tristemente mi primer proyecto en paralelo comenzó hace tres años cuando desarrollé mi primera aplicación para Android.Cuando trabajas para otra persona, también es muy importante trabajar para ti mismo, de lo contrario estás solo contribuyendo al imperio de un tercero en detrimento del tuyo propio.No solo he aprendido muchísimo de estos proyectos en paralelo, sino que también me he beneficiado mucho de los mismos. De hecho, uno de esos proyectos paralelo, haciendo cursos para Pluralsight es una de las cosas que hago ahora mismo que más tiempo me ocupan.

Nota: artículo traducido este blog.