Esta entrada he decidido clasificarla dentro de la categoría de opinión, debido a que quiero sentirme libre de compartir mi experiencia personal a lo largo de 17 años usando diferentes sistemas operativos y diferentes máquinas.
Iniciamos en el lejano 2007. En esa época compré mi primer equipo de escritorio de segunda mano, una Pentium III, 128 mb de ram y 20 gb de disco duro. Recuerdo que si adquirías un equipo nuevo, de stock venía con Windows Vista y más de 1gb de ram, por lo tanto mi equipo estaba definitivamente desfasado pero eso no importaba porque lo que yo quería era aprender a programar. Recuerdo que estuve probando 3 distros linux DSL, Slax y Puppy. Tampoco tenía internet en esa época, así que la distro que trajera más software de serie y la que se sintiera más ligera sería la que se quedaría conmigo. Así que aprendí a programar C y Python con una Pentium III de 400mhz y un Puppy linux.
Recuerdo que hice en C un programa de línea de comandos que servía para administrar una lista de contactos. Años después, ya en la universidad en 2009 me regalaron mi primer laptop, una intel core Duo que realmente no recuerdo su frecuencia de reloj pero supongo que estaba por encima de los 2 Ghz, Recuerdo bien que tenia 4 gb de ram (era un monstruo en ese momento) y 500gb de disco duro. Realicé el porteo de mi aplicación de contactos a Python y también aprendí Java y Php con ese equipo. Cabe mencionar que funcionaba con Windows 7.
Mi thinkpad core 2 dúo llegó hasta el 2013, año en el que obtuve mi primer empleo. Recuerdo que me contrataron porque tenía un perfil específico: requerían un programador para darle mantenimiento a un sistema en PHP y requerían que supiera usar un servidor que funcionaba con ubuntu server. En ese momento ya tenía 5 años usando Linux, que por cierto, debido a que inicie en el mundo de la programación con un equipo de escasas capacidades muchos de los programas que utilizaba eran por línea de comandos, por lo tanto usar ubuntu server -que no tiene interfaz gráfica de serie- se me hizo de lo más natural. Me citaron a las oficinas, me enseñaron el servidor físico y empecé a mostrarle al gerente donde estaba el localhost del proyecto, a explicarle como estaba desplegada la aplicación, por cual puerto salia etc. El gerente es contador y no era una persona con conocimientos sólidos de programación, aunque él tenía la capacidad de diseñar cualquier software de tipo empresarial a nivel conceptual y de reglas de negocio debido a la naturaleza de su profesión, pero necesitaba de programadores que plasmarán en código su visión. Platicamos de muchos aspectos de la visión que tenía acerca del software y me contrató ese mismo día. Regresé la semana siguiente y empecé un proyecto para realizar una migración de un sistema antiguo hecho en visual basic y access a Php 5.4 y mysql. En esos momentos trabaje con ubuntu server, ubuntu desktop y windows 7 y 8. Según fuera la necesidad del desarrollo y las capacidades del equipo fui alternando entre diferentes sistemas operativos.
Casi al finalizar mi etapa en esta empresa había adquirido una laptop Hp Amd A8, 8gb de ram y 1tb de disco duro – como cambian los tiempos-. Con este equipo tenía un dual boot en el que alternaba entre un windows 8 y un ubuntu desktop. Intente migrar a Fedora, debían u Opensuse, pero la realidad es que me quedé con ubuntu por sus foros, siempre encontraba alguna solución a mis necesidades agregando el prefijo ubuntu y número de versión.
En el año 2015 empecé a trabajar con una empresa que se dedicaba al rubro de la publicidad. Las necesidades tecnológicas eran distintas, pero continuamos con el stack tecnológico php, mysql, css, html, jquery y ajax. En este transcurso cabe mencionar que también estuve desarrollando algunos script y módulos con spring boot, python y shell. Creo que fue en la época en que más tiempo estuve casado con Windows. Recuerdo que para que nuestros proyectos fueran más productivos en mis tiempos libres desarrollé una base con php qué poco a poco se fue convirtiendo en un framework hecho en casa. A la par laravel ya se había hecho muy popular, pero ya teníamos muchos desarrollos que se debían migrar a laravel y fue una actividad que nunca llevamos a cabo. Recuerdo que en esos años también estuve aprendiendo un poco de VueJs y Django.
En esa época teníamos un editor de código en línea al que accediamos desde google chrome, por lo tanto adquirí una tablet Lenovo yoga. Recuerdo muy bien que solo con mi tablet android, un teclado y mouse inalambrico estuve varios meses programando. Mi espalda me lo agradeció mucho ya que mi Amd A8 era muy pesada. Intente hacer lo mismo con un iPad mini pero realmente no recuerdo por que nunca pude. Usaba más mi android que el iPad, al final el iPad me lo robaron y nunca intenté comprarlo de nuevo. Aunque me encanto programar desde un android sobre todo por su practicidad, realmente yo no podía hacer cosas más complejas de una forma cómoda, sobre todo porque accedía a clientes web y no tenía ambientes configurados en mi local. Deje android cuando migramos de nuestro framework en php a spring boot y levantar pods y cargar variables de entorno se me hizo imposible si no era en un pc.
A partir del 2018 hasta el 2024 todo ha sido windows, oracle, maria DB, Java, spring boot, Angular. Debido a que las necesidades cambiaron, dejé de programar en java por temporadas a programar tiempo completo en spring boot. Actualmente cuento con 3 equipos, un core i7 4070 con 32 de ram de escritorio, una laptop core i7 10510u con 16 de ram y otra laptop core i3 1005 g1 con 8 gb de ram. Todas tienen windows y la de escritorio tiene dual boot, donde le doy más uso al ubuntu. Cada una está configurada con diferentes ambientes y las uso para diferentes propósitos.
Ahora bien
- ¿Qué uso para programar en 2024? Básicamente Windows y Ubuntu.
- ¿Por qué windows? El desarrollo de software se basa en crear equipos de trabajo, y es imperante homologar las técnologías usadas.
- ¿Por que uso ubuntu? Me ayuda a crear un local un servidor muy parecido al que vamos a usar en producción por lo tanto puedo detectar problemas antes de desplegar.
- ¿Que hay de MacOs y Android? Actualmente Android no tiene las herramientas que uso día a día, por lo tanto está descartado. MacOs quisiera usarlo, probablemente en una MacBook. Pero requiere una inversión fuerte que para ser honestos, no necesito realizar – ya cuento con 3 equipos-.
- ¿Qué Sistema operativo recomiendas para programar? Todo depende de cada caso en particular. Si yo pudiera hacerte una recomendación personal te diría que uses algún Linux. Si estás trabajando en equipo con otros desarrolladores, usa Windows. No estoy seguro bajo que caso particular se requiere hacer uso de un MacOs pero su nicho debe tener.
- ¿Que procesador recomiendo para programar? Depende de que lenguaje uses y que entorno ejecutas, pero para no fallar yo eligiría un core i7.
- ¿Cuantos gigabytes recomiendas? De 16 en adelante, hasta 32 creo que son mas que suficientes.
- ¡Paint! Aunque no lo crean es de las herramientas más útiles cuando de programar se trata. En muchas ocasiones cuando dirijo alguna sesión con el equipo técnico, es necesario explicar a través de herramientas gráficas como pueden ser un mapa mental. Y muchas veces paint me ha resuelto ese problema, es fácil de usar: pegar capturas de pantalla, resaltar, hacer anotaciones, crear flechas o uniones, en fin muchas veces hemos creado bosquejos de arquitecturas en sesiones técnicas usando paint (despues lo formalizamos en alguna otra plataforma o software). ¡El objetivo es no detenerse ni que se olvide nada!
En fin, espero con esto resolver algunas de sus dudas.