jueves, junio 24, 2010

Como convertirse en Administrador - Programador

Actualización al 10 de nov de 2011

Te gusta la informática? te gustaría vivir dignamente de ella? Esta es una guía para dejar de lado el saturado mundo del servicio técnico, copias piratas, dataentry y trabajos mal pagos, para escalar a otros mas satisfactorios y remunerados, como lo son el segmento de sysadmins y developers, o de última, QAs.

La estrategia se basa en dos frentes:
  • Comprimir y encontrar tiempo libre, sin sacrificar el que destinamos a la familia.
  • Mantenernos vivos ($$$) mientras aprendemos. 
Regla: todo el tiempo debemos mantenermos actualizados, de modo que todo el tiempo aprendamos. El Google Reader y Twitter son las mejores herramientas para mantenerse al día.
Pasos
  1. Comprarse algunos libros y revistas de la colección A Prueba de Chotos, de la Editorial Users. Son baratos y muy buenos para empezar con Redes, servicio técnico, etc. Se consiguen en tematika.com, o en el sitio de la revista. Por cierto, aqui tiene el que escribí para "torturar" a mis estudiantes de Redes y Sistemas Operativos www.bunker.org.ar/incubadora/redes.pdf
  2. Conseguir un trabajo. Relacionado con computadoras obvio.
  3. Hacerse imprescindible. Ponerse al servicio de los usuarios. Demostrar genuino interes en sus pateticos datos. Contribuir y ayudar. Enseñar, compartir.
  4. Obtener una cuenta en del.icio.us, bajarse el plugin para firefox, e ir marcando con etiquetas aquellos lugares donde encontramos solución a los problemas, pero que tenian direcciones http:// demasiado largas para recordar cuando realmente hace falta. Si ud tiene que volver a buscar en google una solución anterior descubierta años atrás, señor mío, usted es un idiota.
  5. Conseguir el puesto del Administrador de Sistemas, o convertirse en su mano derecha. La cosa es muy simple: el día que rajan personal, el nerd pervive.
    Jamas pelearse con nadie, mantener buena relacion con los DBAs y programadores.
    Jamas renunciar por las malas. De toda empresa se va con un apreton de manos y con la frente en alto: el segmento TIC de elite es muy chico, y pronto necesitaremos recomendaciones.
  6. Entender como funcionan ssh, tuneles, vpn, terminal server, permisos, dominios. El truco para darse cuenta que hemos llegado a un buen nivel de administrador, y leame bien, es cuando usted “no necesita trasladar el culo para resolver un problema”. El problema se arregla desde donde se está sentado: como mucho, accediendo remotamente al server y solucionando el problema. De nuevo, aquí tiene bibliografía para empezar: www.bunker.org.ar/incubadora/redes.pdf
  7. Formatear solo en ultima instancia. Primero hay que descubrir el error. Formatear es para perdedores.

Para aprender a programar desde el puesto de sistemas:
  1. Arreglárselas para conseguir tiempo libre. Estrategia:
  • Usar todo el software libre posible. El otro anda muy mal, los usuarios se meten en lios, contaminan, estropean todo. Se pierde el tiempo buscando contraseñas, desinfectando los cracks, una porquería y una indignidad para la profesión. Las interfaces gráficas tambien apestan. Si usted todo lo soluciona con el mouse, quizás no debería seguir leyendo.
  • Usar Linux + W2003 en los servidores. Aprender a usar la terminal y el openoffice. La primera es una navaja suiza, y el segundo es una excelente herramienta para hacer minería y conversiones de datos. Openoffice anda tambien en Windows, y se puede obtener un remedo de terminal mediante cygwin, muy util para programar backups, tuneles, etc. Linux es una muleta para los servidores Windows.
  • Si hay que usar Windows en las estaciones, que se encuentre lo mas actualizado posible, con un firewall que no le de risa a los troyanos, como ZoneAlarm, u OutPost.
    Olviden los antivirus, eso es un mito, y Antrax coincide conmigo.
  • Freezar las estaciones y manejar los datos compartidos en red, en algun Samba.
  • Emplear intranets: Apaches y programas simples que resuelvan cosas simples. PHP es artesanal y lindo para empezar. Virtualizar los servidores Windows.
  1. Cuando todo anda como un reloj, las estaciones no se caen, y los usuarios estan moderadamente felices (nunca están contentos), ha llegado el tiempo libre. El problema es emplearlo efectivamente.
  2. Organizar el día mediante Google Calendar o similar. Usar las etiquetas y multiples calendarios  para obtener una visión en 3D de lo que en todo momento hacen nuestros ayudantes, hijos y proyectos. Puesto que tenemos la cabeza llena de las cosas que estamos aprendiendo, conviene ademas usar el sistema de alertas y recordatorios diferidos para no olvidar cosas importantes.
  3. Fuck off Facebook y MSN. En su lugar es preferible Twitter o Google +. Seguir (follow) solo gente inteligente e inspiradora, no idiotas que se creen eclecticos. Cerrar distracciones, powerpoints, cadenas, usar a fondo el “marcar spam”. Meter filtros a correos recurrentes. Si realmente le gustan las redes sociales, pasese a una red social profesional, como linkedin, u osun.sun.com
  4. Emplear técnicas cientificas de investigación: formular hipotesis, realizar experimentos sobre alguna estación reservada a tal fin, o sobre maquinas virtuales. Usarlo para solucionar problemas recurrentes de los usuarios, automatizar backups, minerias simples de datos, etc.
  5. Inscribirse en listas de correo sobre el lenguaje que queremos aprender. Preguntar y ayudar. Aprender a usar el IRC, formar parte de alguna red de freenode, como #lugmen, #lugfi, #java, #ruby, #ruby-es, etc.
  6. En informática, la diferencia entre saber ingles y no saber, redunda en una diferencia del 60% mas (o menos) de sueldo. Algunos tips para aprender ingles en forma autodidacta:
  • Obtener novelas de escritores para niños, como Julio Verne, Jack London, o literatura playera, como Stephen King o Wilbur Smith. Los libros se consiguen baratos en las librerias. O se bajan de Internet. 
  • Ánimo: leer de a poco, el ingles escrito es una habilidad que se desarrolla muy rapido. La palabra mágica en Google es “tutorial”. 
  • Ejemplo para templarnos: realizar a conciencia alguno de los tutoriales presentes en netbeans.org
  • Los buenos textos sobre programación están en ingles. Buscar aquellas ediciones recientes, y mañosear un poco hasta bajarlos. Link: www.pdfchm.net
  • Las gemas mas preciadas son las novelas bilingües, que se disfrutan mucho. La consigna: leer o escuchar por diversión. Aprovechar la nueva ola de celulares con pantallas grandes, y los ebooks readers. 
  • Lo que mas me ha servido: aprovechar los ratos muertos en colectivo bajandose audiobooks en ingles para el mp3 players, o para el estereo del auto. 
  • No saturarse con los audiobooks. Empezar todos los días con 5 minutos diarios, y las primeras veces tener a mano la versión escrita para distinguir que mierda esta hablando el narrador.
  • No tengo problemas en admitir lo mucho que me han ayudado los audiobooks de Harry Potter bajados de Taringa. Mi truco fue conseguir una Palm usada en mercadolibre, y la atiborre de libros y audios de Ursula Le Guinn. Llegando al penultimo capitulo del segundo libro de Harry Potter (The Chamber of Secrets), escuchando medio capitulo cada día, es brutal de mayo a hoy (noviembre) el progreso que he realizado. No puedo creerlo cuando los primeros tres capitulos me costaron un triunfo, porque no entendía un porongo.
  • Otro truco que vale oro, o al menos la moneda de cambio que utilicemos en los institutos de idiomas, es jugar a entender palabras en los videos de http://www.nobuna.com
  • Una vez que distingamos algunas palabras escritas y habladas, llegó el momento de hablarlo. Aqui el gran problema es animarse, superar el miedo a quedar como unos nabos. Sin embargo hay mucha gente ahora practicando via SkyPe, con tanto miedo como nosotros pero con ganas de aprender y divertirse con los errores: http://t.co/E7vr3RXO - Sacate de encima algunos amigos "lastre" y hacete de algunos nuevos, con ganas de progresar.
  • Llego el momento de armar el curriculum en ingles: http://delicious.com/karancho/ingles+cv y subirlo a Linkedin
  1. Gastarse $400 en una impresora laser B/N, y destinarla solamente para imprimir PDF. Anillar, o aprender directamente a encarpetar, porque los apuntes anillados realmente apestan en la biblioteca de casa (buscar videos en youtube). 
  2. Al menos una vez al año, comprar algún texto cojonudo. Este año adquirí http://sharanamshah.wordpress.com/2010/01/13/java-ee-6-for-beginners/, por Amazon, a $300, y es realmente una inversión. El año pasado adquirí a $240 el Agile Web Development with Rails (www.pragprog.com/titles/rails3) y no pasa un día sin que lo amortice. Solo debemos asegurarnos que es una edición ACTUAL, de no mas de un año en escaparate, y en serio: se paga solito.
  3. Una vez que llevemos algunos meses leyendo en ingles, ya podremos entender los valiosisimos screencastings que hay en internet. Mis favoritos estan en netbeans.org, y en railscasts.com
  4. Inscribirse en computrabajo, elance, etc, en busca de trabajo freelance, sobre el cual podamos probar nuestros skills. Por cierto, eticamente solo podemos codear para otros clientes desde casa, nunca dentro de la empresa donde estamos investigando. De otra manera, le estamos robando. Mantener un portfolio de trabajos donde nos puedan ver y contratar. En esos sitios se fijan mucho en la experiencia.
  5. ¿Nadie lo contrata? Quizás no esta aprendiendo en lenguaje adecuado. A mi gusto: Java y PHP si necesita el dinero. Python o Ruby si quiere divertirse. Con el tiempo los clientes lo llevaran a necesitar aprender algunos metalenguajes como SQL, XML, XHTML y Javascript. Cuidado con los lenguajes y librerías propietarias. Una vez que domine adecuadamente el lenguaje, no se pase muchos días para desplegar un proyecto: utilice algún CMS, o mejor aún, algún Framework. Mis favoritos: Ruby on Rails, JSF o Spring.
  6. Si desarrollamos un skill, este debe ser útil para la empresa. Y expliquelo claramente. Solo las empresas que mantienen un ala de investigación son las que progresan. ¿Y en la tuya, cuantos empleados estan investigando y capacitando por cuenta propia? Lo ideal es comenzar a capacitar a los compañeros de trabajo, para que en la empresa no interpreten nuestras investigaciones como pérdidas de tiempo. Presentar papers en congresos para llevar nuestras conclusiones, con el nombre de la empresa como bandera. Explicar a nuestros jefes, que de esta manera el departamento TIC de la empresa se enaltece. A veces incluso la empresa paga los viáticos.
  7. Sacarse de encima gente improductiva, negativa. Un compañero de trabajo o un amigo es mas útil si tiene una sicopatia sana y relacionada al trabajo. Para hablar de pavadas, esta la calle. Hay compañeros que desgraciadamente son un agujero negro de productividad, o solo sirven para deprimirnos. Si un compañero no estudió especificamente para el puesto que desempeña, y solo está allí por el sueldo, es un probable lastre.
  8. Despues de los primeros contratos fallidos y desventajosos, aprender a negociar con el cliente un ritmo de entregas ágiles (http://es.wikipedia.org/wiki/Desarrollo_ágil_de_software), aprender un poco de Scrum, y utilizar algun manejador de versiones para no estropear código. A mi me gusta GIT. 
  9. Autodocumentar todo “paso a paso” y hacerse guías propias. Yo me considero informático desde el día que complete mi primer cuaderno con anotaciones a mano "paso a paso", que son las que me se recuerdan luego.
Bueno, eso es todo. Espero que a alguien sirva.

9 comentarios:

Unknown dijo...

Muy buen post Sergio! No se te escapo ningún detalle de la vida de un sysadmin

FRSS Blog dijo...

Me parece super interesante, alguna de las cosas hice en su tiempo.

Y algunas otras (como los experimentos) son lo mejor que hay

Solicito autorización para citarlo/comentarlo en mi blog

FRSS Blog dijo...

Me parece super interesante, alguna de las cosas hice en su tiempo.

Y algunas otras (como los experimentos) son lo mejor que hay, actualmente uso bastante las maquinas virtuales, "practicar malogrando"

Además, recuerdo aquellos tiempos donde la PCWorld venia con cosas interesantes y en mi país (Perú) duraba para 4 meses de ediciones locales :)

Solicito autorización para citarlo/comentarlo en mi blog

http://felipesebastiani.sigmaperu.com/wordpress

pancutan dijo...

No hay problema, bienvenido todo enlace. Por cierto, muy bueno tu blog, Following now.

Walter dijo...

Hola: Estuve leyendo el pdf de redes , esta buenisimo. Solo tienes un error en las caracteristicas de los bsd's. Openbsd es orientado a la seguridad, mientras que Netbsd esta orientado a la portabilidad.
Saludos.-

pancutan dijo...

Tenes razón, se me dieron vuelta. Corregido para la inminente versión 0.82.

Avisame por favor también de cualquier otro error que le encuentres.

pata_de_jaguar dijo...

Carajo!!!... esto es una joya para los noveles... yo tuve que aprender a trancasos (golpes)...

kanokanito dijo...

Muy profesional tu blog, interesante y concreto.

pancutan dijo...

Algo que me ayudó recientemente: Ubuntu en las estaciones, con el look XPGnome.

Tiempo libre incrementandose!!!!