Cómo prepararse para administrador de bases de datos

1 vote, 4.00 avg. rating (80% score)

20120207-administrador-sgbdrEl administrador de bases de datos es uno de los perfiles profesionales con mejor salida en el mundo de la informática. En este artículo proponemos un plan de estudio y certificación que afiance nuestro perfil para este tipo de trabajos.

De acuerdo a los datos que manejan las empresas de búsqueda de empleo, un administrador de Oracle cobra un 10 a 15% más que un programador de Java o PHP y, tomando como referencia el mercado americano, obtiene un sueldo entre 50 y 74.000$ anuales. La preparación que hace falta para acceder a estos puestos es bastante compleja, siendo necesarios 3 o 4 niveles de competencia, como se indica en el gráfico.

El plan de formación que proponemos se puede ejecutar en un plazo mínimo de 10 meses y máximo de 24 a 36, en función de la dedicación y continuidad que pueda darle el candidatos, y consiste en la obtención de cuatro habilidades: conocimiento de SQL, administración del sistema gestor de bases de datos, administración del sistema operativo y seguridad del entorno. Vamos a analizarlos uno por uno. Sigue leyendo

¿Banksphere? No, gracias

0 votes, 0.00 avg. rating (0% score)

1. Banksphere es un entorno cerrado, sin posibilidad de desarrollo profesional.

Hay que empezar por entender qué es Banksphere y porqué se demandan tantos profesionales de desarrollo para su entorno. Banksphere, abreviado BKS, es un entorno de desarrollo creado por ISBAN para la programación de aplicaciones web en el Grupo Santander. Nos encontramos, por tanto, ante un entorno vertical constituido por algunas herramientas de desarrollo y un considerable número de librerías propietarias. Sin entrar todavía en las bondades o defectos del entorno, cualquier entorno vertical y cerrado es siempre una mala elección de desarrollo profesional, ya que lo que se aprenda en él será muy difícil de reutilizar o aprovechar en empleos futuros.

Sólo hay dos perfiles profesionales en Banksphere: analistas y programadores, lo cual es engañoso ya que estas categorías no se ajustan a la ideal general que tenemos de sus funciones. Teóricamente, los programadores hacen la implementación de un software diseñado por analistas. En la práctica, ambos perfiles se dedican al desarrollo, pero desde perspectivas distintas.

2. Banksphere es un mal entorno de desarrollo, que dificulta la programación de aplicaciones.

Siguiendo con el punto anterior, Banksphere intenta ser un entorno de desarrollo por modelos, en el que el programador utiliza bloques lógicos representados mediante cajas en un entorno de desarrollo gráfico.Esto debería facilitar la programación de aplicaciones, ya que lo único que hay que hacer es “enlazar” bloques de código previamente desarrollados y especificar el paso de argumentos o el flujo de datos entre ellos. Por desgracia, después de casi 20 años de intentos en la industria por caminar hacia este ideal, ninguna iniciativa ha conseguido realizarlo de forma satisfactoria y Banksphere no es una excepción, sino todo lo contrario, más bien uno de los mejores ejemplos de sus defectos.

Error al mostrar un error - BanksphereLa forma en que se manifiestan estos problemas es muy diversa. Como no programamos directamente la aplicación, sino que un entorno llama a una librería que parametriza la plantilla de una clase abstracta, que finalmente generará el código final, la acumulación de capas de software forma un entramado de llamadas intermedias, funciones redundantes y código desconocido cuyos efectos laterales son imprevisibles. Es proverbial en el entorno de Banksphere encontrarse con pilas de errores de gran tamaño, en las que es casi imposible localizar la fuente original de la excepción o del problema. Igualmente es conocido el hecho de que se genera un gran número de errores y que el entorno consume enormes cantidades de memoria, debido a la instanciación indiscriminada de objetos. Se da la increíble circunstancia de que el IDE puede generar errores por mostrar un error anterior, como podemos ver en la pantalla de la izquierda.

Todo esto convierte a Banksphere en el paradigma del anti-patrón de ingeniería de software conocido como “The blob”, una masa enorme de código de escasa funcionalidad, imposible de reciclar o corregir debido a la negativa de sus patrocinadores a reconocer errores.

3. Inestabilidad del puesto de trabajo.

Banksphere constituye un ecosistema cerrado que se mantiene gracias a la capacidad financiera del Banco Santander, que puede permitirse seguir financiado la re-ingeniería continua del software en una “huida hacia adelante” sin fin. Esto quiere decir que, cuando algo falla, la solución no es resolver el problema, sino parchear lo anterior descargando en el programador la responsabilidad de encontrar la solución. El problema es que, debido a esa naturaleza de anti-patrón que hemos mencionado y la ausencia de documentación útil, el trabajo genera un enorme estrés sobre los programadores.

La consecuencia es una enorme rotación de personal que origina ese gran demanda de programadores a la que hacíamos referencia al principio. La demanda no obedece a un crecimiento real del mercado de aplicaciones Banksphere, sino a la necesidad de sustituir a los programadores que abandonan los proyectos por frustración o agotamiento.

Nadie utiliza Banksphere fuera del entorno del Santander. Ninguna otra entidad bancaria, salvo las participadas por ésta, ha adquirido el software ni se ha creado un mercado de inteligencia o casos de éxito en torno a los proyectos realizados con Banksphere. Si volvemos a mirar las ofertas de empleo en Infojobs o Tecnoempleo, podemos comprobar que se trata siempre del mismo perfil, pero requerido por distintas consultoras externas, que son las que reciben la subcontrata de desarrollo. Existe, por tanto, un buen mercado para la búsqueda de programadores que beneficia a las consultoras, pero no por la realización de proyectos novedosos, sino por la búsqueda continua de candidatos.

4. Conclusiones

Por todo lo anterior, mi recomendación siempre será rechazar cualquier propuesta que provenga del entorno de Banksphere. Si tienes interés en progresar en el desarrollo de aplicaciones corporativas en J2EE, existe una alternativa profesional mucho mejor en el mundo de SOA, mucho más interesante teniendo en cuenta que el lenguaje gráfico de desarrollo (BPMN) es una norma abierta que funciona en cualquier entorno de Java.

 

Límites de las redes sociales

0 votes, 0.00 avg. rating (0% score)

El objetivo de las redes sociales profesionales es acceder a un grupo de contactos de confianza que puedan facilitarnos el acceso a una oferta de trabajo mediante un “aval personal”, que nos permita rodear el proceso de selección impersonal en los foros de trabajo clásicos como InfoJobs o Tecnoempleo. Parece lógico pensar que cuanto mayor sea la red, mejores oportunidades tenemos, pero ¿cuál es la dimensión correcta de esa red? O mejor dicho ¿cuál es el momento en que la red pierde su capacidad de generar avales de confianza?

Un estudio demostraba que nuestro universo de personas conocidas se sitúa en torno a 40. En los cursos que imparto hacemos un ejercicio muy sencillo para demostrar este punto: coja una hoja de papel y escriba, en un minuto, los nombres de las personas con las que haya tenido contacto recientemente. Contacto no es “saludar” en el ascensor, sino una relación suficientemente intensa como para generar un lazo profesional o personal. Pasado ese minuto, vuelva a contar de nuevo y siga añadiendo nombres. Lo normal es que la lista hecha en el primer minuto tenga más nombres que la segunda y que entre ambas no consiga sumar más de 40 nombres. Pruébelo.

El problema es que por cada persona que agregamos a nuestro perfil en Facebook o LinkedIn, tenemos una nueva fuente de actualizaciones en nuestro muro social, lo que hace más difícil seguir esas novedades y terminamos por no hacerles caso. Lo mismo le pasa a la persona que está “al otro lado”. Si nos agrega una persona con miles de contactos, la probabilidad de que una actualización en nuestro currículum pase desapercibida es muy grande.

Otro tanto ocurre con los detalles personales; cuanto mayor es la red de contactos, más difícil es que podamos tener información de calidad sobre cada uno de ellos. Consulte su lista de contactos en cualquiera de estas redes y pregúntese de cuántos conoce la fecha de cumpleaños, su trayectoria profesional, sus aficiones o su competencia laboral. En muchos casos, una gran parte de esos contactos se han agregado de forma indiscriminada o por simple afinidad con otro contacto anterior que es, precisamente, lo que defienden los LION: crecer de cualquier manera.

Redes como Facebook recomiendan establecer contacto sólo con personas cercanas, pero al mismo tiempo utilizan la palabra “amigo” para designar cualquier contacto agregado, de forma que pierde su significado original y se convierte en sinónimo de “conocido”. Cualquiera puede repasar la lista de contactos de otra persona y lanzar solicitudes de admisión en su red sin requisitos especiales.

LinkedIn, por su parte, establece criterios en apariencia algo más estrictos, ya que hace falta tener una relación concreta con la persona a la que se contacta o conocer su correo electrónico. Pero esto es sólo una apariencia. Basta con pertenecer al mismo grupo que otra persona para mandar una solicitud de entrada en su red. Con esta banalización del contacto social ¿cómo es posible generar avales de confianza?

Es cierto que existen técnicas para crear una red social amplia y robusta, pero requieren tiempo, paciencia, un trabajo diario y una estrategia muy clara de establecimiento de lazos. Al final, las redes sociales no deberían hacer más que mimetizar el entorno cotidiano: las personas más abiertas tendrán amplias redes de contactos tanto en su vida cotidiana como en el mundo virtual y las más introvertidas tendrán redes pequeñas en ambos entornos.

Nuestro consejo es crear redes pequeñas y sólidas que vayan creciendo al mismo tiempo que lo hace la experiencia personal y profesional. Con cada nuevo proyecto, cada nuevo trabajo o viaje, conocemos nuevas personas. En vez de dejarlas pasar de cualquier forma, debemos intentar estrechar los lazos comunes, crear contactos de calidad basados en experiencias compartidas y ampliar el círculo a partir de esas semillas. Estas redes requieren menos tiempo y esfuerzo que las grandes redes indiscriminadas, dan más satisfacciones y son más estables. Es posible que al principio nuestra red no sobrepase más que unas pocas decenas de personas, lo cual por otro lado es normal, pero al cabo de un tiempo, el resultado empezará a ser palpable.

Patrones de diseño

0 votes, 0.00 avg. rating (0% score)

Los patrones son el resultado de la experiencia acumulada por sus autores, que reflejaron en este libro una serie de estrategias para resolver situaciones comunes, como la mencionada de programar aplicaciones con interfaz grafica. En este caso, por ejemplo, lo más eficaz es separar el código en tres bloques independientes: un modelo, que manipula los datos, una vista, que interacciona con el usuario, y un control, que responde a eventos y relaciona los otros dos.

Esta recomendación, separar el código en tres bloques, no tiene nada que ver con la implementación concreta que se pueda hacer en uno u otro lenguaje, por lo que la solución es válida en Java, en C++, en Visual Basic o en cualquier otro lenguaje orientado a objetos.

La validez de los patrones reside en la universalidad de su planteamiento, lo que puede explicar en gran parte el éxito del libro. Las soluciones que describe no son válidas para éste lenguaje en tal sistema operativo, sino para cualquier lenguaje en cualquier entorno, siempre que mantengan la orientación a objetos.

Es cierto que no se trata de un “tutorial” ni de un curso de patrones, sino de un texto técnico para programadores de nivel medio. Para eso hay otros libros, como “Head First Design Patterns”, que pueden ser más asequibles para principiantes. Pero al final, éste es el que hay que utilizar para comprender por completo cada uno de los patrones descritos.

También es conveniente complementar la lectura de este libro con otro más moderno en el que se vea cómo diagramar la aplicación de los patrones con UML. De esta forma, si el programador está acostumbrado usar UML a diario, podrá incluir las estrategias de patrones en sus aplicaciones.

En todo caso, una obra imprescindible para todos los que se dedican a la programación orientada a objetos, que puede sacarnos de un apuro en más de una ocasión y ahorrarnos días o semanas de dar vueltas a un problema práctico. Por cierto, está disponible en castellano.

Ficha Bibliográfica

 

Principles of Beautiful Web Design

0 votes, 0.00 avg. rating (0% score)

Es bastante difícil entrar a discutir si a alguien le gusta tener la barra de navegación a la izquierda o a la derecha de la pantalla. Culturalmente, el mejor sitio sería a la izquierda, porque es por donde empezamos a leer, pero técnicamente el mejor sitio es la derecha, para que los robots de indexación lean primero el cuerpo de texto de la página en busca de palabras clave. Hay una tercera opción, que es programar los bloques en un orden adecuado para la indexación y colocarlos en el sitio que queramos con CSS.

Lo anterior resumen en un solo caso la complejidad del diseño de páginas Web. Hay que tener en cuenta una multitud de factores que son importantes, si queremos hacerlo bien. En este caso nos centraremos en los estéticos y recomendamos la lectura de este librito de Jason Beird por varios motivos.

Primero, porque es un libro fácil de leer, incluso para los que no tienen mucha práctica con el inglés. Todos los capítulos están bien ilustrados y tienen varios ejemplos de lo que se va explicando. Segundo, porque es rápido de leer. Son poco más de 160 páginas muy bien aprovechadas. Tercero, porque es barato. Entre el precio que conseguimos en Amazon, la ventaja del cambio de divisa y el porte de correos, se queda en poco más de 24 €, lo que no está mal para un libro de diseño completamente en color.

El libro se estructura en cinco capítulos: composición, color, textura, tipografía e imágenes. Personalmente, me quedo con los de composición, color y tipografía. Los otros dos están bien, pero son un poco vagos, sobre todo el de imágenes. Los de composición y color, sin embargo, son muy buenos, con indicaciones claras y sencillas de cómo elegir la paleta de colores de nuestro sitio, y el de tipografía nos enseña más de una cosa incluso a los que tenemos un poco de experiencia, como la diferencia entre punto, píxel, pica y em.

Recomendado, por tanto, para todos los que programen sitios web y tengas dudas generales sobre cómo mejorar el diseño de una página que no acaba de cuajar o de la que no entendemos porqué no encajan las cosas. No está disponible en castellano.

Ficha Bibliográfica

 

SCJP Programador Certificado en Java 310-065

0 votes, 0.00 avg. rating (0% score)

Sin embargo, en vista de las novedades de la versión 1.6 sobre la anterior, lo que sí empiezo a dudar es que merezca la pena gastarse el dinero, cada dos o tres años, en una revisión del examen para cambios menores como que el bucle for admita ahora un iterador automático en rangos enumerados. La esencia del lenguaje no cambia y los avances fuertes en Java no vienen de la sintaxis básica del lenguaje, sino de las extensiones y librerías, muchas de las cuales ni siquiera son de Sun. Por ejemplo, Hibernate, que sí ha sido una novedad importante, no entra en ninguna certificación oficial.

 

Si estás interesado en certificarte en Java, hay varios currículums o caminos de certificación, de los cuales el más interesante para gente que empieza de cero o con pocos conocimientos es el de Programador Certificado o Certified Java Programmer (CJP). No tiene requisitos previos, es un solo examen y se puede superar en un tiempo relativamente corto. La versión actual del examen cubre las características de Java 1.5, por lo que va retrasado una versión sobre el lenguaje (que ya va por la 1.6).

Características del examen

El examen es uno solo, tiene el código 310-065 y está disponible en inglés y español, aunque mi recomendación será SIEMPRE estudiarlo y hacerlo en inglés. El motivo es que no hay razón para añadir elementos de error en la lectura de las preguntas y la traducción al castellano no siempre ayuda en este sentido.

Como siempre, el examen es de tipo test, con varias decenas de preguntas que deben responderse en un tiempo límite. Muchas preguntas son enrevesadas y con trampa, lo que es especialmente cierto en este caso. Cuidado con la lectura y a detalles como errores de sintaxis en paréntesis, punto y coma y cosas así.

El examen se puede hacer en un centro autorizado Prometric o Vue cualquier semana del año, basta con solicitar la fecha a través del sitio web, donde también puede encontrase una lista de los centros de examen.

¿Cuanto cuestan?

Importante: la tasa de examen es de 230€, aunque Sun tiene una oferta para presentarse una segunda vez sin cargo adicional en caso de fallar la primera.

Libros de estudio

Varios. Si lo que quieres es APRENDER Java, uno de los mejores es:

Thinking in Java 4th Ed. Thinking in Java, 4th Edition Amazon.com CasaDelLibro
ISBN: 0131872486 (inglés) $40.94 73’10 €
No hay traducción en castellano
Autor: Bruce Eckel
Páginas: 1.150

Por cierto, que este libro lo podéis conseguir en formato PDF en el sitio web del autor, siguiendo éste enlace. Creo que sale más barato comprárselo que imprimirlo y sólo está disponible la tercera edición. Para certificarse, el mejor libro de preparación por ahora es el de McGraw Hill:

SCJP Sun Certified Programmer for Java 6 Exam 310-065 Amazon.com CasaDelLibro
ISBN: 0072226846 (inglés) $31.49 N.D.
No hay traducción en castellano
Autor: Kathy Sierra, Bert Bates
Páginas: 851

El libro viene con un CD que entre otras cosas tiene un simulador de exámemes. Sölo son dos pruebas, pero sirve para empezar a preparalo y hacernos una idea de lo que es el examen. Un libro alternativo podría ser el de Sybex, que en esta ocasión no ponemos como primera elección:

SCJP: Sun Certified Programmer for Java Platform Study Guide SE6 Amazon.com CasaDelLibro
ISBN: 0470417978 (inglés) $34.99 N.D.
No hay traducción en castellano
Autor: Richard Raposa
Páginas: 350

Si hay algún error en esta página, quieres añadir un comentario, hacer una pregunta o plantear una sugerencia, dirígete a nosotros por correo electrónico aquí.

In Search of Clusters

0 votes, 0.00 avg. rating (0% score)

La evolución de aquel producto nos ha llevado hoy en día al planteamiento de centros de procesos de datos “consolidados”; esto es, grupos de máquinas coordinadas por un sistema operativo de virtualización como VMWare ESX que pueden configurarse para “virtualizar” tantos servidores como sean necesarios aprovechando al máximo los recursos del hardware existente.

Este concepto, con todo lo novedoso que pueda parecer, no es más que la actualización de una técnica bastante antigua llamada “clusterización”, puesta en marcha a finales de los 80 en entornos universitarios, donde hacía falta disponer de cierta capacidad de cómputo por parte de universitarios y catedráticos con pocos medios.

Recuerdo que me regalaron este libro en IBM hacia el año 1998 cuando estaba preparando un trabajo sobre la familia de procesadores POWER y sucesores, los Power2 y PowerPC que durante casi 10 años ha usado Apple. Al parecer, el autor era un ingeniero interno de la empresa, que había contribuido al desarrollo de ciertas tecnologías de procesamiento en paralelo aplicadas en estos procesadores.

Del libro me han sorprendido siempre dos cosas. En primer lugar, la claridad con la que está todo explicado, a pesar de tratarse de un tema “ladrillo”. A fin de cuentas, una buena parte del texto se dedica al análisis de los algoritmos de procesamiento en paralelo y sus bases matemáticas. Pero, lejos de ser un libro pesado, está escrito de una forma amena y didáctica que hace que te plantees muchas preguntas sobre el funcionamiento de los ordenadores actuales. Hay que recordar que cuando se escribió este libro no había procesadores con núcleo doble o cuádruple y que las placas con dos o cuatro procesadores eran bastante exóticas. Sin embargo, con su lectura podemos comprender las dificultades que plantea el uso de este tipo de procesadores y las necesidades que deben cumplir sistemas operativos como Vista o cualquier distribución de Linux.

Lo segundo es la vigencia del texto original, lo cual es algo sorprendente en la informática, donde muchas tecnologías aparecen y se hunden en el olvido en menos de cinco años. Pensemos por ejemplo en los propios procesadores PowerPC que en aquel momento estaban asentándose y hoy han desaparecido por completo. No sólo es un libro interesante sino que nos ayuda a entender muchos conceptos que dominan la escena actual: procesadores de núcleo múltiple y entorno de consolidación y virtualización son sólo un par de buenos ejemplos.

Volviendo precisamente al tema con el que habría la crítica, productos como ESX no son más que sistemas operativos de clúster, entendiendo éstos como “un agregrado de máquinas que se comportan frente al usuario como una sola”. Por tanto, si queremos entender las ventajas de instalar un entorno de virtualización o un clúster clásico como los que se pueden montar con Solaris, es más que recomendable dedicar unos días a la lectura de este interesante libro.

Lástima que no esté disponible en castellano, aunque sigue siendo un habitual de las librerías americanas con reediciones continuas.

Ficha Bibliográfica

 

RSA Arquitecto de Software Rational 000-649

0 votes, 0.00 avg. rating (0% score)

¿Cuántos exámenes tiene?

El examen es uno solo, tiene el código 000-649 y está disponible sólo en inglés. Hay exámenes parciales para algunos contenidos, como fundamentos de programación orientada a objetos, dividido en dos partes:

  • 000-833 Object Oriented Analysis and Design – Part 1
  • 000-834 Object Oriented Analysis and Design – Part 2

¿Cómo es el examen?

De tipo test, con varias decenas de preguntas que deben responderse en un tiempo límite. Muchas preguntas son enrevesadas y con trampa, sobre todo por lo confuso de las explicaciones de programación orientada a objetos. Cuidado con la lectura.
En general, es una certificación muy difícil de sacar. Hay dos versiones de UML y la gente no se aclara con ellas. Hay algo de documentación, pero la mayoría de los libros pecan de mostrar ejemplos inconexos en donde no se ve la relación entre los diagramas y modelos dentro de un mismo proyecto. Mi sugerencia es empezar con el libro UML distilled y tratar de aplicar los conceptos que allí se ven en pequeños programas, para seguir luego con otro libro.

¿Dónde los hago?

En un centro autorizado Prometric o Vue. Tienes una lista en el FAQ.

¿Cuándo se convocan?

De continuo. Las academias y centros suelen reservar los viernes por la tarde para este tipo de pruebas que es cuando tienen menos actividad.

¿Cuanto cuestan?

La cuota de inscripción es de 156€ para el 000-649 y 150€ para los dos de Análisis y Diseño Orientado a Objetos.

¿Cuándo tengo los resultados?

Al terminar te pueden decir si pasas o no, ya que al ser tipo test y hacerlos con un ordenador, éste tiene la respuesta de inmediato. Otra cosa es que quieran decírtelo o te lo manden por escrito en unos días.

¿Hay algún libro para prepararlo?

UML tiene el problema, como explico en clase, de que es muy amplio y es difícil encontrar formadores o libros que ellos mismos lo entiendan en su totalidad para, a su vez, explicarlo bien.
Si lo que quieres es APRENDER UML, la cosa está complicada. Hay un libro, The Unified Modeling Language Reference Manual, que es muy completo pero es un perfecto LADRILLO que no sirve para aprender si no tienes alguien a tu lado que te explique las cosas.

Para empezar está mejor otro libro más pequeño de la misma editorial:

UML Distilled, Third Edition Amazon.com CasaDelLibro
ISBN: 0321193687 (inglés) $35.09
ISBN: 9789684443648 (castellano, sólo la primera edición) 23’00 €
Autor: Martin Fowler

El título en castellano cambia a UML gota a gota. Cuidado que sólo tradujeron la primera edición y el libro en castellano no cubre los cambios de UML 2.0. Otro libro para aprender que no está mal del todo:

UML Weekend Crash Course Amazon.com CasaDelLibro
ISBN: 0764549103 (inglés) $19.79
No hay versión en castellano
Autor: Thomas A. Pender

No hay libros para preparar el examen aparte de uno que sacó hace algunos años el OMG:

UML 2 Certification Guide Amazon.com CasaDelLibro
ISBN: 0123735858 (inglés) $34.62
No hay versión en castellano
Autor: Tim Weilkiens, Bernd Oestereich

No lo he leído y no sé cómo está, pero es que es el único que hay.

Si hay algún error en esta página, quieres añadir un comentario, hacer una pregunta o plantear una sugerencia, dirígete a nosotros por correo electrónico aquí.