Comic de xkcd

Esta entrada no trata de aleccionar a nadie, es solamente un post-recordatorio al estudiante de alguna especialidad en TIs que esta inmiscuido en todo esto del software libre, avido usuario de GNU/Linux y/o constante miembro de alguna comunidad con algo que ver en el SW libre. Caray, esta dedicado a mi, hace 6 o 7 años.

Ser un usuario de software libre o miembro de una comunidad es totalmente diferente a ser un profesionista de sistemas especializado en tecnologias libres, o como en este caso: un administrador de sistemas (SysAdmin) en plataformas GNU/Linux (aclaro Linux SysAdmin es diferente a *Nix SysAdmin).

Algunas verdades que he encontrado en el camino.

Olvidate del Desktop

Todo bonito con eso del desktop tunning, del eyecandy y diferentes entornos de escritorio, a la hora de trabajar no sirve para nada. Primero que nada todo es hecho por medio de consola, pocas cosas tienen frontend web, mucho menos GUI. Los servidores que llegan a tener entorno grafico son extremadamente basicos. Acostúmbrate a Gnome sin compiz, iconos basicos, cero personalizacion.

Tu equipo de trabajo aplica igual: sobriedad. Uno de mis coworkers se quejaba de al lentitud de respuesta de su equipo, el (en esa epoca) con 2GB de RAM, proce Core2Duo y grafica generica intel tenia compiz y cairo dock al 100% de efectitos. Los recursos son para trabajar, no para dejar maquinas bonitas.

Aprende Linux, en serio.

Todo bien con que hayas podido instalar X o Y distro siguiendo X o Y guia o documentacion. Tomate tu tiempo para conocer, de verdad conocer, tu sistema GNU/Linux. Aprende los parametros para administrar modulos del kernel, estudia la estructura de directorios y por que es asi, maneja SysVinit, upstart o systemd, conoce los servicios, los niveles de ejecucion

Aprende a administrar usuarios y grupos. EN serio, una de las preguntas filtro a la hora de entrevistar candidatos donde trabajo es “como agregas un usuario en Linux?” dependiendo de la profundidad de la respuesta varia mucho las oportunidades del candidato, si no puede responder (como hacer esto desde la consola, obvio) el candidato queda descartado. Usuarios, grupos, permisos y como manejarlos deben de ser perfectamente comprendidos.

Hay herramientas basicas que se deben dominar:

Vi. Olvida nano, olvida vim o emacs aprende vi por que es el editor mas esxtendido en sistemas Unix. Tiene muchas capacidades, con un nivel medio (editar, copiar, pegar, cortar entre varios archivos, hacer macros, buscar y sustituir) tienes.
Screen. Dificil de describir. Es un multiplexor de terminal, lo amaras cuando estés con una conexion a Internet intermitente a través de ssh.
ssh. Una de las herramientas mas importantes. Como conectarte a un servidor, como administar las conexiones al servidor, llaves ssh, scp, public keys,  etc.
cat, less, more, find, grep, egrep. Parte del set de herramientas basicas de cualquier sistema Unix, apender a manejarlas es basico.
ps, top, kill. Para el manejo de procesos, la administracion de procesos en general (PID; procesos hijos, huerfanos, zombies, etc)
mv, cp, ls, mkdir, touch. Todo lo que se refiera al manejo de directorios y archivos, aprender a hacer todo lo que hace el file manager (dolphin, nautilus) en consola pura y dura.

Scripting y automatizacion de tareas, tus mejores amigos

Hay 2 opciones: entrar cada semana el domingo a las 11 de la noche a hacer un respaldo incremental de ciertos directorios y enviar un email al project manager con una lista de directorios y archivos respaldados, O, hacer un script con un rsync a través de ssh que envié la lista automáticamente y maneje salidas de error, incluir este script al cron y listo.

Cual es mejor?

Hay que avanzar en el shell scripting aprender a hacer loops, funciones, rutinas, casos, exepciones, direccionamiento de salidas y entradas,

Learn English.

English language dominance is a basic, too. You probably will be working with a lot of people around the world and english is the standard for all of us, also all the documentation about It (or at least the best documentation) is in plain english too. Take a course, practice, take the TOEFL test (or one of their simulators). You will be requiered to have good writing skills and be able to sustain a natural english conversation. Also, keep practicing your fluency  but keep special interest on technical jargon.

Administra tu tiempo

Hay una verdad escrita en piedra: una vez que empiezas a trabajar con servidores Linux 8 a 10 horas diarias al llegar a casa te quedan pocas ganas de enterarte de las ultimas noticias de tu distro preferida, te queda poco animo de entrar en discusiones sobre la sagrada obligacion de defender y promocionar al software libre. Esta bien que tu hobby y tu trabajo sean lo mismo, pero hay que aprender a controlarlo y medirlo por que tarde o temprano acabaras odiando a uno de los 2.

Dejale los LUG, los fetivales/conferencias, los blogs recetarios/noticias a gente con menos cosas que hacer. Y todo esto por que siempre corres el riesgo de que tu aficion y tu profesion sean lo mismo acabaras hastiado muy pronto.

 No te la creas, nunca dejes de aprender.

Esta es la parte mas dificil de todo y creo que una en la que todos fallamos alguna vez. En esto nunca dejas de aprender, nunca dejas de desarrollar nuevas habilidades, o de perfeccionar viejas habilidades. Hay que ser autodidacta y disciplinado por que (por lo menos en mexico) la educacion especializada en sistemas Unix es algo escualida y siempre es mejor tomar la documentación de las fuentes oficiales. 😉

No hay que establecer un limite, unca hay que decir “listo, hasta aqui aprendi”, lo chido de la documentacion alrededor de GNU/Linux es que la mayoria es de libre acceso: basicamente aprendes hasta donde quieres aprender.

Pero sobre todo no hay que dejar de ser humilde, el titulo de BOFH se gana y se mantiene a pulso y sangre.

pos ya, habra otras notas o consejos que tomar, pero es lo que se me ocurre esta fresca tarde de jueves, saludos!