Últimos Comentarios

domingo, 7 de junio de 2015

El Mejor Programador del Mundo

Pero antes de todo ¿Quien es un Programador?

Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones que ejecuta el hardware de una computadora para realizar una tarea determinada. 

La programación es una de las principales disciplinas dentro de la informática. En la mayoría de los países, programador es también una categoría profesional reconocida  y en un futuro no muy lejano la Programación sera parte de la Curricula escolar.

Los programadores también reciben el nombre de desarrolladores de software, aunque estrictamente forman parte de un equipo de personas de distintas especialidades (mayormente informáticas), y siendo que el equipo es propiamente el desarrollador.


Piensa en ti mismo, en como eres, en las cosas que haces, en como programas, en las herramientas que utilizas, y contesta a esta pregunta:

¿qué te hace falta para ser el mejor programador del mundo?

Es una buena pregunta, ¿verdad? Bueno, en realidad es la típica pregunta que se hace en las entrevistas. De este tipo de preguntas que no tiene una respuesta única pero que sirve para ver como el entrevistado reacciona y que camino coje para buscar la respuesta.

Y es que la definición de buen programador es tan ambigua. ¿Es mejor programador alguien que codifica muy rápido o quizás alguien que codifica mucho más lento pero lo que hace siempre funciona?, ¿Es mejor programador alguien que conoce muchísimas herramientas o quizás alguién muy especializado en un lenguaje o sistema concreto?, ¿Es mejor programador alguien que conoce muchísimos lenguajes o alguién que conoce uno sólo a la perfección? ¿Es un buen programador alguien que conoce muchísimos patrones, buenas prácticas y domina la ingeniería o alguién que no conoce nada de eso pero que tiene un instinto nato que hace que todo salga bien? ¿Es mejor programador alguien que trabaja en equipo o alguien que quiere hacer todo el sólo? ¿Es mejor programador alguien que es muy social o alguien que es muy arisco pero muy superior codificando?



Demasiadas preguntas abiertas para el especificar un buen programador. 

¿Sería el programador ideal alguién con la vitalidad de un chico de 18 años y la experiencia de un hombre de cincuenta? Es muy posible. Sin embargo es pedir un imposible.

Se podría decir que el mejor programador del mundo necesita estar en la mejor empresa del mundo, para dar a conocer sus creaciones.

El ingeniero de software Yevgeniy Brikman ha publicado un interesante post en su blog Don’t Panic en el que explica que la cuestión no es saber programar, sino aprender a pensar como un auténtico informático, también seria un requisito para ser el mejor programador.

Y a ustedes, ¿qué les hace falta para ser el mejor  programador del mundo?

Fuente: itechnode.com

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