Últimos Comentarios

martes, 2 de junio de 2015

Qúe lenguaje de programación aprender en primer lugar???

Cada lenguaje de programación ofrece algo distinto y tiene puntos a favor y en contra. Incluso es posible que dependiendo del lugar del mundo en el que vivas algunos lenguajes sean más populares que otros.

Un diagrama detallado para ayudar a los novatos para elegir su primer lenguaje de programación.


Niveles de un Programador

Con frecuencia vemos ofertas de trabajo en donde nos peden un analista programador senior, y muchos nos quedamos con la duda de qué es lo que quiere decir lo de "seniro", con este artículo tratamos de despejaros las dudas sobre lo que piden normalmente en las ofertas de empleo:

Experiencia laboral

Cantidad de años de experiencia laboral en informática.
No cuentan los trabajos prácticos realizados ni trabajos dentro de otras actividades.
Junior: Menos de 2 años de experiencia.
Semi Senior: De 2 a 6 años de experiencia.
Senior: Más de 6 años de experiencia.

Conocimientos técnicos

Principalmente referido a las herramientas, tecnologías, lenguajes de programación, paradigmas de programación, base de datos, arquitecturas, etc. que deba utilizar para cumplir sus labores.
Junior: Para desempeñarse suele requerir acompañamiento. El código que genera puede presentar mayor cantidad de bugs de lo esperado. Probablemente no maneja todas las herramientas que se necesitan para la tarea.
Semi Senior: Técnicamente autosuficiente. Puede desarrollar funcionalidades más complejas y ejecutar proyectos de mayor envergadura. Pero no es un crack y todavía comete errores “evitables”.
Senior: Es referente técnico dentro del equipo. Su conocimiento le permite colaborar en definiciones arquitectónicas y desarrollar los proyectos más desafiantes. Su código funciona, es bueno y fácil de mantener.

Conocimientos funcionales

Relacionado a los procesos, metodologías, estándares, circuitos requeridos para cumplir sus labores.
Junior: Para desempeñarse suele requerir cierto nivel de acompañamiento. No conoce todos los procesos, ni los estándares. No es experto en los temas propios del negocio.
Semi Senior: Maneja los circuitos lo suficiente como para desempeñarse. Respeta los estándares y metodologías. Conoce buena parte de los procesos del negocio.
Senior: Ayuda a definir procesos, metodologías, estándares y circuitos. Por supuesto cumple los existentes.

Otra forma de verlo sería:

Niveles: el análisis, diseño, creación de aplicaciones y convertir ideas en solución informática. Pero que funciona desempeña cada nivel, les muestro a continuación: 

Junior o Nivel 1


A menudo suele recibir instrucciones detalladas de que debe hacer, puede escribir parte del código de un software o realizarlo completo. 

Un junior es normalmente un desarrollador inicial, alguien que empieza a dar sus primeros pasos en el ambiente de la creación de aplicaciones o que recién sale de la universidad sin experiencia laboral previa. El Junior es frecuentemente puesto como pasante y por esto sus funcionen suelen verse limitadas. 

A menudo un Junior no suele interactuar con los clientes o futuros usuarios de la aplicación. Suele dejarse manejar por la presión y por esto no se le encarga labores de duty sobre aplicaciones en producción ni proyectos con premura o corto deadline. 

El periodo en el que se considera Junior puede estar hasta los 2, 3 y 4 años (dependerá en algunos casos de la empresa) de vida laboral en el área. Aunque inicialmente un Junior es tomado para modificar aplicaciones en la mayoría de los casos las empresas suelen preferiblemente ponerlos a hacer pequeñas aplicaciones como parte de su evaluación. 


Senior o Nivel 2



Normalmente recibe una lista de requerimientos para un proyecto en el cual puede que trabaje solo o tenga algún(os) Juniors de asistenté(s) en un proyecto. Se toma la libertad de adecuar los requerimientos y genera un project plan dividido en fases. El Senior no necesita instrucciones en todos los detalles como los Junior, suele ingeniársela para investigar detalles puntuales que quizás no fueron especificados en los requerimientos. 

No es necesario tenerle tanta vigilancia en el cumplimiento de sus metas. 

En cierta medida la mayor diferencia entre un desarrollador senior y un junior radica en su autonomía en la ejecución de sus funciones y pese a su experiencia laboral el senior suele manejar mejor la presión. 

Un senior experimentado suele ser a partir de los 4 años, algunas personas y empresas consideran el espacio entre los 2 y 4 años de experiencia como semi-senior pues no se considera que sus capacidades sean completamente optimas. 


Analista o Nivel 3 


El analista en muchos casos suele ser el puente entre los developers y el cliente; en muchos de los casos cumple la función de team-leader o de project manager; suele ser quien levanta los requerimientos de nuevas aplicaciones, administra recursos y tiempo dentro de su equipo. 

El analista a menudo tiene una clara idea de que puede o no hacer su equipo y cuales son sus límites. Es la persona que se sienta con el cliente, revisa sus ideas para convertirlas en requerimientos y las lleva a alternativas viables. 

Siendo justo y llevando esta descripción al plano laboral pudiera decirse que un analista no necesariamente es un developer pues en algunos casos es una persona que conoce las funciones de los developer, tienes nociones de las herramientas pero no desarrolla. 


Analista Desarrollador o Nivel 4



Este nivel tiene lo mejor de los dos mundos pues un Analista Desarrollador suele ser un Senior con las cualidades y capacidades del analista antes mencionado. 

En este nivel se suele tener una idea más aterrizada de cada requerimiento y el plan de acción suele ser más acabado y preciso en la práctica pues también desarrollar es parte de su día a día. 

Un Analista Desarrollador sabe que herramientas son mejores para cada tarea y por ende sus resultados suelen ser mejores o sus resultados más exactos que los de los Analistas. 

Existe un segmento “Analista Desarrollador Senior” que suele diferenciarse de los anteriores por sus altas capacidades o mejor dominio de la implementación de sus aplicaciones. 


Arquitecto de Software o Nivel 5



Los Arquitectos de Software son quienes determinan las reglas de negocio al momento de implementar una nueva aplicación, no solo se limitan a mirar en el entorno de desarrollo las herramientas y tecnologías a utilizar sino que evalúan y proponen upgrade a nuevo hardware para los sistemas que van a crear. Fuera de lo que puedan pensar los Junior y Senior para los Arquitectos de Software la creación de aplicaciones es un arte. Cuando un Junior piensa en la palabra “Arquitecto” imagina un individuo con grandes maquetas en la cual está impregnada la concepción de su infraestructura, esto mismo hacen los Arquitectos de Software aplicado al desarrollo. 

El trabajo y responsabilidad de los Arquitectos de Software es más grande en cierta medida pues deben hacer las predicciones de cuanto hardware es necesario para correr la nueva aplicación que crearán en base a mediciones de carga o pruebas de stress. 

La Arquitectura de Software, tiene que ver con el diseño y la implementación de estructuras del software, desempeño del sistema, la escalabilidad y portabilidad de forma adecuada para satisfacer las necesidades del negocio. 



Fuentes: taringa.net , diegosalama.com










domingo, 24 de mayo de 2015

Picture, el nuevo lenguaje que reduce 1000 líneas de código a 50


Durante décadas, los lenguajes de programación han basado su funcionamiento en las matemáticas y la lógica.
Tendemos a ver los ordenadores como unas máquinas inteligentes, pero en la práctica son las máquinas más tontas del mundo. Se limitan a ejecutar un programa, y ese programa no es más que una lista de órdenes (el código) que le dice exactamente lo que tiene que hacer. El programa contempla todas las opciones posibles, para que el ordenador no quede atrapado en un callejón sin salida.
"Si ocurre esto, haz aquello. Si ocurre esto otro haz esta otra cosa". Y así en un bucle infinito que no deja ningún cabo suelto.
Es una técnica eficaz, pero en tareas complejas exige mucha potencia de proceso y muchos miles de líneas de código.
Es por eso que los informáticos llevan tiempo desarrollando nuevas formas de programar, que rompan las limitaciones actuales. Una de las tendencias más innovadoras de los últimos años es la programación probabilística, que no sigue la lógica, sino la intuición y las probabilidades. En definitiva, se basa en aplicar la inteligencia artificial a la programación.

Con la programación probabilística no le dices al ordenador lo que tiene que hacer, sino quele obligas a pensar. Le das una serie de directrices básicas, y le ordenas que las ponga en práctica, en función de los datos que tenga. La máquina aplicará la inferencia, es decir, decidirá el algoritmo más adecuado porque es el más probable que funcione, o porque ha funcionado en otras ocasiones. Tal como ocurre con el cálculo de probabilidades, como más datos tenga menos errores cometerá y más se acercará a la solución correcta.
Es lo que se conoce como Machine Learning o Máquina de Aprendizaje, y ya se está aplicando en modelos reales de negocio. El buscador de Google, los filtros de spam o los coches sin conductor emplean técnicas de programación que aprenden y mejoran en función de los datos que capturan. A medida que el buscador de Google acumula más webs y más relaciones entre ellas, ofrece datos más precisos en las búsquedas. Los filtros de spam se vuelven más inteligentes según los avisos sobre emails atacantes o emails seguros que reciben. Un coche autónomo estudia el entorno en tiempo real y toma decisiones sobre la velocidad, el frenado o la dirección en función de los datos que recibe del entorno, y de lo que ocurrió en anteriores ocasiones en que recibió esos datos.
Por ejemplo, si se encuentra con un coche parado en la carretera en una calle con aparcamientos interpreta que está aparcando, en lugar de averiado, porque eso es lo que ocurrió las últimas veces que pasó por esa calle. Son los datos los que le dirán si tiene o no razón: si detecta un triángulo de aviso en el pavimento, entonces no está aparcando, está averiado.
¿Qué objetivos tiene usar la Programación Probabilística? Es más sencilla y rápida de programar porque requiere menos código, y necesitas menos datos. Por tanto, es más barata, más rápida, y exige menos requisitos de hardware.

Picture, el lenguaje para Máquinas de Aprendizaje

El último ejemplo de programación probabilística es el lenguaje Picture, desarrollado por el Instituto Tecnológico de Massachusetts (MIT)  que presentará en la conferencia CVPR el próximo mes de junio.
Gracias al uso de la inteligencia artificial y la probabilidad, Picture es capaz de llevar a cabo tareas con 50 líneas de código, para las cuales un lenguaje tradicional necesitaría al menos mil líneas.
La forma más sencilla de entender cómo funciona Picture es usar el ejemplo que los propios programadores han puesto en práctica para demostrar su eficacia: un programa para convertir una foto de un rostro en 2D, en una imagen 3D.

Un lenguaje tradicional necesitaría una gran cantidad de código para decirle al ordenador cómo convertir una imagen 2D en 3D. Cómo renderizar cada píxel, en función de su posición, perspectiva o color, para llevarlo a la tercera dimensión.
Con la programación probabilística de Picture, el programador sólo le da a la máquina una serie de directrices básicas: un rostro tiene dos objetos distribuidos simétricamente (los ojos), con otros dos objetos más centrados, bajo los primeros (la nariz y la boca). Estas directrices son sencillas de programar y requieren poco código. Después, el programa recibe datos en forma de rostros convertidos con anterioridad de 2D a 3D, y en función de esos datos "aprende" el proceso. Utilizando la inferencia, genera los algoritmos más probables para convertir el rostro 2D a 3D, y los aplica a su trabajo. Como más datos reciba (más rostros ya convertidos) tendrá más elementos para calcular la probabilidad, y por tanto el resultado final será más perfecto.
Tal como se puede ver en la anterior imagen, los resultados obtenidos son muy satisfactorios.
La Programación Probabilística aún está dando sus primeros pasos, pero es fácil darse cuenta de su trascendencia. Obliga a los programadores a olvidarse de todo lo que conocen para aplicar mecánicas de diseño de software completamente nuevas.
Aún más importante, es el germen de la inteligencia artificial aplicada a la programación.
El diccionario define la inferencia como "una evaluación que realiza la mente entre distintas proposiciones". La programación probabilística obliga a los ordenadores a usar la inferencia y el estudio de las probabilidades.

Enseña a las máquinas a pensar.
Son las primeras aplicaciones prácticas de los programas que aprenden de su entorno, toman decisiones y optan por una u otra propuesta en función de cual sea lo más probable que ocurra. Como hacemos nosotros.
Las implicaciones de estas nuevas técnicas de programación son asombrosas. Tienen la capacidad de cambiar la informática, el funcionamiento de los ordenadores, y el comportamiento de los robots. Aún no somos capaces de atisbar hacia dónde nos llevarán, pero es fácil darse cuenta de la revolución que suponen, aunque necesitaremos unos cuantos años para descubrirlo.

Fuente: computerhoy

viernes, 22 de mayo de 2015

Oracle y la comunidad celebran los 20 años de Java

Oracle, los usuarios y la comunidad mundial de desarrolladores están celebrando los 20 años de Java. A día de hoy, Java actúa como la espina dorsal de software que afecta tanto a nuestro trabajo como a la vida personal. Desde innovaciones en big data empresarial, cloud, social, móvil e Internet de las Cosas a los coches conectados, los teléfonos inteligentes y los videojuegos, Java continúa ayudando a los desarrolladores a superar los límites de la innovación tecnológica.
Java ha crecido y evolucionado hasta convertirse en una de las tecnologías más importantes y fiables de nuestra industria hoy. Quienes han elegido Java han sido recompensados muchas veces con el incremento en rendimiento, escalabilidad, fiabilidad, compatibilidad y funcionalidad”, dijo Georges Saab, vicepresidente de Desarrollo de la Plataforma Java en Oracle. “El ecosistema Java ofrece excepcionales bibliotecas, entornos, y recursos para ayudar, por igual, a los programadores novatos y expertos. El desarrollo en sí de Java se da en la transparente comunidad OpenJDK. Con la considerable inversión de Oracle y de otros en la comunidad, esperamos que los próximos 20 años sean de evolución y crecimiento”.
Presentado en 1995, Java es el lenguaje de programación elegido por 9 millones de desarrolladores y hoy opera en 7.000 millones de dispositivos. La mejora de la seguridad vial y del aire, recoger información de los océanos del mundo para aplicaciones científicas, incrementar la calidad de los cultivos de cereales y cuantificar la ayuda para alimentar a las personas hambrientas, simular el cerebro humano y el sistema músculo-esquelético, y los juegos son algunos de los interesantes proyectos mundiales que utilizan la tecnología Java.
Los desarrolladores de empresa pueden elegir entre un ecosistema de 30 implementaciones Java EE 6 y Java EE 7 compatibles de 12 fabricantes. Además, más de 125 millones de dispositivos basados en su capa intermedia en Java han sido desplegados y más de 10.000 millones de tarjetas Java han sido enviadas desde su presentación.
“Los lenguajes de programación no siempre tienen una larga vida, y los que lo hacen, no siempre gozan de salud”, dijo Al Hilwa, IDC program director for Application Development Research.“Pero Java ha resistido la prueba del tiempo y el test de una amplia gama de aplicaciones que la usan, desde grandes sistemas de empresa hasta pequeños dispositivos de juegos”.
El universo Java
Bajo la gestión de Oracle, dos versiones principales de la plataforma han sido suministradas: Java 7 y Java 8 , y Java 9 está previsto para 2016. El Proceso de la Comunidad Java (JCP) es más abierto y transparente que nunca antes, y sirve como un elemento integral de participación de la comunidad en la continua evolución de la tecnología. La Comunidad OpenJDK , el lugar para colaborar sobre una implementación de código abierto de la plataforma Java, Standard Edition, está atrayendo continuamente nuevos participantes a su ya amplia base de participación.
En marzo de 2014, Oracle anunció la disponibilidad de Java SE 8 tras recibir la aprobación final en el Java Community process. Está versión, la cual incluye la mayor actualización del modelo de programación Java desde que la plataforma fue presentada en 1995, fue desarrollada en colaboración con la OpenJDK Community. Poco después, en abril de 2014, la Java Platform, Micro Edition 8 (Java ME 8) y las versiones relacionadas de Oracle’s Java Embedded products estuvieron también disponibles tras su aprobación final en el Java Community Process. Con una plataforma Java 8 consistente a través de dispositivos embebidos, escritorios, centros de datos y cloud, los clientes pueden desarrollar aplicaciones más rápido, procesos y análisis de datos en tiempo real; y actuar en eventos tan pronto como se producen.
Marcando el comienzo de la próxima era de Java
Oracle y la comunidad Java están ahora centrados en el suministro de las nuevas innovaciones en Java 9. La característica prevista clave de este comunicado es Project Jigsaw, que persigue modularizar la plataforma para que sea escalable para una amplia gama de dispositivos, facilitar a los desarrolladores la construcción y el mantenimiento de las librerías y aplicaciones de gran tamaño, y mejorar la seguridad, el mantenimiento y el rendimiento. Otras características previstas para Java 9 incluyen Java Shell, una herramienta interactiva para la evaluación de fragmentos de Código de Java; un nuevo HTTP client API para soportar HTTP/2 y Web Sockets; un puerto para ARM AArch64 architecture en Linux; y una variedad de actualizaciones para las APIs existentes junto con algunas mejoras significativas de rendimiento.
“Java toca directa o indirectamente a todos los seres humanos de este planeta. Es el pegamento que permite operar con éxito al móvil o al banco en áreas remotas del mundo, entretiene a millones de personas con juegos como Minecraft, y acciona el motor económico de nuestros mercados globales”, dijo Martijn Verburg, co-leader of Java User Group, London. “Es extremadamente importante que esta plataforma sea gestionada por un líder que comprenda la importancia de Java para el mundo, y Oracle hace un excelente trabajo al colaborar con una comunidad de usuarios altamente diversa, desarrolladores, proyectos open source y grandes empresas. Estoy deseando ver lo próximo que va a plantear la próxima generación de ingenieros. Usando Java, las posibilidades parecen infinitas”.
Para conmemorar los 20 años de Java, Oracle Certification está ofreciendo un 20% de descuento en todos los exámenes de certificación Java. La oferta está disponible globalmente hasta el 31 de diciembre de 2015. Los candidatos deben proveer el código promocional Java20 en el momento del registro. Para más detalles pinche aquí.

Fuente: muycomputerpro.com

jueves, 21 de mayo de 2015

OFERTA DE EMPLEO DE PROGRAMADORES Y ANALISTAS PARA SEVILLA



Empresa ubicada en la Isla de la Cartuja necesita los siguientes perfiles:

1 Analista Programador (Ref: #CFP-AP)

    indispensable experiencia en EJB 3
    indispensable experiencia en JPA
    indispensable experiencia en JSF
    deseable experiencia en servicios web (rest,soap)
    deseable experiencia en Oracle
    deseable experiencia en refactoring
    deseable conocimiento en pruebas unitarias

2 Programadores (Ref: #CFP-P)

    indispensable experiencia en Java (con algún framework MVC)
    deseable experiencia en EJB 3
    deseable experiencia en JPA
    deseable experiencia en JSF
    deseable experiencia en servicios web (rest,soap)
    deseable experiencia en Oracle
    deseable conocimiento en pruebas unitarias

1 Analista Programador (Ref: #SIG-AP)

    indispensable experiencia en Java (con algún framework MVC)
    indispensable experiencia en hibernate
    indispensable experiencia en JSF
    deseable experiencia en servicios web (rest,soap)
    deseable experiencia en Oracle
    deseable experiencia en refactoring
    deseable conocimiento en pruebas unitarias

4 Programadores (Ref: #SIG-P)

    indispensable experiencia en Java (con algún framework MVC)
    deseable experiencia en hibernate
    deseable experiencia en JSF
    deseable experiencia en servicios web (rest,soap)
    deseable experiencia en Oracle
    deseable conocimiento en pruebas unitarias


2 Analistas Funcionales (Ref: #AF)

    Experiencia en UML y gestión de requerimientos, y trato con Clientes
    Valorable experiencia uso Enterprise Architect
    Experiencia en ERPs y aplicaciones web, especialmente basadas en Facturación y Contabilidad,

Logística (preferiblemente hospitalaria), Catalogación, Contratación Administrativa, Acuerdos de Consumo
    Conocimientos SOA
    Conocimientos Testing
    Deseable conocimientos paradigma J2EE, y PL/SQL


La fecha de incorporación sería el 15 de Junio.
Las personas interesadas pueden contactar con Yolanda Brotrons
E-mail.- yolanda.brotons@experienceis.com
Tlf. 34618279646

Fuente: ORIENTA MANCOMUNIDAD DE ÉCIJA

sábado, 2 de mayo de 2015

Odoo: más que un ERP

Odoo revoluciona el mundo de las aplicaciones yendo más allá de un ERP. Es el único software en el mundo que integra todos los canales de venta: tienda online, terminal punto de venta y ventas directas.


miércoles, 15 de abril de 2015

Los 5 requisitos para ser un buen programador

¿Realmente reunes los requisitos para trabajar en el campo de la programacion de manera profesional? 

Lo que debes tener en cuenta es que un buen programador no se hace de la noche a la mañana, es el resultado de mucho esfuerzo, sacrificio, dedicación,  compromiso y !muchos errores!. 


Algunos requisitos que se deberian tomar en cuenta para llamarse un “buen programador” a nivel profesional.

INTERACCIÓN:

Se puede hablar de interacción en varios niveles: el programador debe ser capaz de trabajar en un equipo donde compartir opiniones, aceptar sugerencias e intercambiar ideas. Y al mismo tiempo, debe ser capaz de empatizar con aquellas otras personas que desconocen el mundo de la programación pero necesitan de sus soluciones. Primer error: el programador no es ese informático que está todo el día encerrado en una habitación con un ordenador.

ANÁLISIS Y SÍNTESIS:

Este profesional debe ser capaz de analizar el problema al que se enfrenta, sintetizar la información que ha recibido y elegir los datos con los que comenzar el trabajo. Segundo error: el programador no trabaja de forma estandarizada.

CONOCIMIENTOS:

Debe tener una formación que lo capacita como tal. Un buen programador más que saber el cómo, sabe el por qué de las cosas. No es lo mismo saber cómo solucionar un problema, que saber realmente cómo funciona esa solución. Tercer error: El programador no es un libro cerrado.

CREATIVIDAD:

El buen programador debe tener creatividad para obtener soluciones factibles, rápidas y sencillas a problemas complicados. En un mismo lenguaje de programación puede encontrar varias formas de solventar una situación. Cuarto error: Los ordenadores son cuadriculados, los programadores no.

INQUIETUD

Un buen programador siempre se sigue formando, busca nuevas formas de enriquecer su trabajo, y es curioso por naturaleza. Algo que repercutirá de forma muy positiva en su trabajo. Quinto error: el programador no es un friki, el programador sigue aprendiendo.

Ahora solo te queda responder… ¿Eres un buen programador?