﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pensamientos de otro más &#187; programación</title>
	<atom:link href="http://www.superjueves.net/pensamientosdeotromas/tag/programacion-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.superjueves.net/pensamientosdeotromas</link>
	<description>Sitio sobre Agilidad, desarrollo de software, programación, etc</description>
	<lastBuildDate>Tue, 24 Jul 2018 19:15:07 +0000</lastBuildDate>
	<language>es-ES</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.8.41</generator>
	<item>
		<title>¿Dejar de programar? Mal!</title>
		<link>http://www.superjueves.net/pensamientosdeotromas/2012/03/19/%c2%bfdejar-de-programar-mal/</link>
		<comments>http://www.superjueves.net/pensamientosdeotromas/2012/03/19/%c2%bfdejar-de-programar-mal/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 07:00:53 +0000</pubDate>
		<dc:creator><![CDATA[Alvaro García Loaisa]]></dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Productividad]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[empresa]]></category>
		<category><![CDATA[profesional]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[Programar]]></category>
		<category><![CDATA[trabajo]]></category>

		<guid isPermaLink="false">http://www.superjueves.net/pensamientosdeotromas/?p=507</guid>
		<description><![CDATA[&#160; ¡Mal! no del todo, pero suficiente para que me tenga que parar a hacerte un par de sugerencias. ¿Parar de programar por qué te han ascendido y tu trabajo es ahora de Súper Arquitecto, de Mega Analista o de Jefe de proyecto? ¡MAL! Empieza a programar otra vez, empieza con Python, Ruby, Scala o [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone size-full wp-image-518" title="sistemas" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/03/sistemas1.jpg" alt="" width="410" height="205" /></p>
<p>&nbsp;</p>
<p><strong>¡Mal!</strong> no del todo, pero suficiente para que me tenga que parar a hacerte un par de sugerencias. ¿Parar de programar por qué te han ascendido y tu trabajo es ahora de Súper Arquitecto, de Mega Analista o de Jefe de proyecto? ¡<strong>MAL</strong>!</p>
<p>Empieza a programar otra vez, empieza con Python, Ruby, Scala o Groovy, el lenguaje que más te llame la atención. Uno con el que puedas aprender nuevas técnicas y que sea productivo. ¡Tu carrera depende de ello!</p>
<p>Si no me haces caso y te olvidas de la programación, te separarás del acto de la creación. Esta importante parte, la verás como si fuera una subcontrata externa, tu lo piensas y diseñas y ellos lo crean. Otra vez <strong>MAL</strong>!</p>
<p>Pensamos que la programación es un proceso automático, que da igual a quién se la demos, que con el mismo tiempo, precio y recursos nos lo entregarán sin problemas ya que yo les doy la parte difícil hecha. Y da igual que sea nuestro propio equipo de desarrollo o una subcontrata, para ti será un proceso externo. <strong>Mal</strong>.</p>
<p>Pero no nos olvidemos que los autómatas no construyen, sino que procesan. Mientras que buenos procesos pueden ahorrar una enorme cantidad de dinero, no van a traer al mundo nada nuevo. ¿Y al final que es el 90% de proyectos de Software? algo nuevo o parcialmente nuevo y sobre todo hecho a medida, para un cliente o para unos usuarios. Con lo que una de las necesidades principales es creatividad.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><img class="size-full wp-image-510 aligncenter" title="monos_picando_codigo" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/03/monos_picando_codigo.jpg" alt="" width="400" height="308" /></p>
<p>&nbsp;</p>
<p>Desvincularte del código es un mal movimiento para tu carrera. En grandes empresas, el control suele mandar y las políticas y los procesos son sus aliados. Al entrar en esta dinámica, podemos olvidar como se desarrolla software. Y mucho más importante, podemos olvidarnos de como está cambiando la industria del desarrollo de software.</p>
<p>No estoy diciendo que debas temer por tu trabajo por qué compañeros se van del país y triunfan fuera. Ni te estoy sugiriendo que te andes con cuidado por qué la crisis está en su peor momento. Te estoy aconsejando que no te olvides de la programación. Por que si te olvidas de esa parte, entonces si debes tener mucho cuidado. Vas a tener que poner todo el cuidado en no dejar que la enorme y rápida evolución del mundo del desarrollo del Software te adelante y sea más rápida que tú.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-514" title="JP no técnico" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2012/03/JP-no-técnico1.jpg" alt="" width="350" height="118" /></p>
<p>&nbsp;</p>
<p>Ten cuidado con pensar que por llevar 10 ó 15 años a tus espaldas como programador y 5 de Manager, ya sabes como desarrollar buen Software aquí y en el futuro. <strong>Este mundo va muy rápido y cada día más, te puedes quedar desfasado en cualquier momento.</strong></p>
<p>Sé que tienes expectativas y lo entiendo, se suele escuchar mucho frases como “Si sigo programando, no voy a escalar en la estructura de la empresa y nunca voy a llegar a nada!” <strong>MAL, muy MAL</strong>. Si lo que realmente te gusta es crear buen software, vivir de ello y disfrutar de tu trabajo, tienes que seguir en la brecha y conocer de primera mano como se hace, las tripas. ¿Esto no es aprender?, ¿esto no es mejorar? ¿esto no es avanzar laboralmente?</p>
<p>Si sigues creyendo que por estar programando no eres nadie, algo falla. Puedes estar orgulloso de ello. Puedes seguir aprendiendo cosas nuevas fuera de este gran espectro y zambullirte en todo el proceso con el cliente y el resto del equipo, pero <strong>no dejes de programar.</strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.superjueves.net/pensamientosdeotromas/2012/03/19/%c2%bfdejar-de-programar-mal/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Historia de un programador</title>
		<link>http://www.superjueves.net/pensamientosdeotromas/2011/09/18/historia-de-un-programador/</link>
		<comments>http://www.superjueves.net/pensamientosdeotromas/2011/09/18/historia-de-un-programador/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 18:16:27 +0000</pubDate>
		<dc:creator><![CDATA[Alvaro García Loaisa]]></dc:creator>
				<category><![CDATA[Positivismo]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Modula2]]></category>
		<category><![CDATA[pascal]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[Tcl/Tk]]></category>

		<guid isPermaLink="false">http://www.superjueves.net/pensamientosdeotromas/?p=286</guid>
		<description><![CDATA[&#160; &#160; Llevo aprendiendo lenguajes de programación desde que tenía 12 años. A esa edad aprendí Basic, del cual muchos de vosotros os acordaréis. Me tiré mucho tiempo aprendiendo y profundizando en ese lenguaje procedural, el cual me introdujo en todo este mundo . Un tiempo más tarde, avance a QuickBasic con más estructuras de [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<div style="text-align: center;"><img class="aligncenter size-full wp-image-288" title="helloworld" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2011/09/helloworld.jpg" alt="" width="235" height="175" /></div>
<p>&nbsp;</p>
<div>
<p>Llevo aprendiendo lenguajes de programación desde que tenía 12 años. A esa edad aprendí<a href="http://es.wikipedia.org/wiki/BASIC"> Basic</a>, del cual muchos de vosotros os acordaréis. Me tiré mucho tiempo aprendiendo y profundizando en ese lenguaje procedural, el cual me introdujo en todo este mundo <img src="http://www.superjueves.net/pensamientosdeotromas/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" />  . Un tiempo más tarde, avance a<a href="http://es.wikipedia.org/wiki/Quick_BASIC"> QuickBasic</a> con más estructuras de control y mejor entorno de desarrollo.</p>
<p>A partir de ahí empecé a interesarme por<a href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascal"> Pascal</a>, con el cual aprendí a estructurar bien el código, o todo lo bien que creía en ese momento. Y con<a href="http://es.wikipedia.org/wiki/Turbo_Pascal"> Turbo Pascal</a> aprendí los principios de la programación orientada a objetos.</p>
<p>Con 16 años y recién salido del instituto sabía que lo que quería hacer para ganarme la vida era programar, aprender más lenguajes y perfeccionar lo máximo su técnica.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-294" title="programmers_day" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2011/09/programmers_day-300x159.jpg" alt="" width="300" height="159" /></p>
<p>&nbsp;</p>
<p>A esa edad ya estudiando, aprendí en una asignatura<a href="http://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)"> C</a>, con su control de memoria, sus librerías, toda esa potencia y su control de bajo nivel. Con este lenguaje empecé a sentirme “poderoso” y a tocar cosas que realmente alteraban el sistema. Aprendí más profundamente en que consistían las fases de compilado y linkado. También empecé a preocuparme por el aspecto de mi código. Con el que yo me sentía muy cómodo. Pero después de volver a mirar hoy las lineas sacadas del baúl de los recuerdos, he visto que me quedaba muchísimo por aprender :S</p>
<p>Ese mismo verano, junto con mi hermano, empecé a vislumbrar los lenguajes de Microsoft con los que era sencillísimo crear las interfaces gráficas de usuario y<a href="http://es.wikipedia.org/wiki/C%2B%2BBuilder"> C++Builder</a> nos sirvió para eso mismo. Lo afiancé con una asignatura al año siguiente sobre<a href="http://es.wikipedia.org/wiki/Visual_Basic"> Visual Basic</a>. Con el que aprendí el paradigma de programación dirigida por eventos.</p>
<p>Una vez trabajando en mi primera empresa, tuve que vérmelas con<a href="http://es.wikipedia.org/wiki/FORTRAN"> FORTRAN</a>, aunque por suerte no demasiado tiempo <img src="http://www.superjueves.net/pensamientosdeotromas/wp-includes/images/smilies/icon_razz.gif" alt=":P" class="wp-smiley" />  De Fortran pasé a estar varios años desarrollando en<a href="http://es.wikipedia.org/wiki/Tcl/Tk"> Tcl/Tk</a>. Un lenguaje ahora en desuso, pero que sigue viniendo por defecto instalado en multitud de distribuciones de Linux.</p>
<p>Con Tcl vi la fuerza de los lenguajes interpretados, su facilidad de uso y sobre todo su potencia en sentencias sencillisimas que no tienen nada que envidiar en la velocidad de ejecución de los programas en C. De hecho, me hice hasta un programa de benchmarking para comparar la rapidez de ejecución entre Tcl y C.</p>
<p>Con este lenguaje llegué a mi mejor nivel de maestría hasta el momento, me conocía toda la sintaxis y sus combinaciones a la perfección. Podía desarrollar cualquier cosa en poquísimo tiempo y me sentía agustísimo utilizándolo. De hecho, hasta colaboré en el proyecto <a href="http://www.amsn-project.net/">a’MSN</a> construido en este lenguaje.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-295" title="dilbert" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2011/09/dilbert-e1316369288694.gif" alt="" width="400" height="158" /></p>
<p>&nbsp;</p>
<p>En esta época me apunté a estudiar en la UNED y en otra asignatura aprendí<a href="http://es.wikipedia.org/wiki/Modula_2"> Modula2</a>. Del cual solo tengo que decir, que no está bien ni para empezar a aprender orientación a objetos, ya que no tiene herencia de ningún tipo.</p>
<p>Después cambie de división y proyecto dentro de la empresa, y entré en el verdadero mundo de los equipos de desarrollo. Un proyecto de 5 años en un equipo de casi 40 desarrolladores escrito en<a href="http://es.wikipedia.org/wiki/C%2B%2B"> C++</a> sobre Linux. En esta época fue cuando más avancé en conocimientos sobre programación. Gracias sobre todo a los compañeros con más experiencia que me iban enseñando paso a paso patrones de desarrollo, control de punteros en profundidad, herencia multiple, a trabajar con ramas en repositorios de código que utilizaba todo el equipo, etc etc&#8230; Y lo más importante de todo, a ver mi trabajo desde el punto de vista de un profesional que quiere hacer todo lo mejor que puede su trabajo.</p>
<p>De ahí cambié de empresa y empecé a trabajar con<a href="http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)"> Java</a>. Simplificándome mucho las cosas al venir de C++. Sin control de memoria, sin punteros, independiente de plataforma y con soporte para red diréctamente. Aunque como no, con muchas taras de fábrica, como el no ser absolutamente orientado a objetos o no poder sobrecargar operadores.</p>
<p>También al principio en esta empresa, me toco mantener un programa desarrollado por otra, hecho en<a href="http://es.wikipedia.org/wiki/Adobe_Flash"> Flash</a> con<a href="http://es.wikipedia.org/wiki/ActionScript"> ActionScript</a>. Este semi-injerto de lenguaje de programación lo sufrí más que degustarlo. Con sus MovieClips y su caótico interfaz en el que tienes que declarar cada objeto en tres sitios diferentes.</p>
<p>He tenido múltiples encontronazos fugaces con otros lenguajes como<a href="http://es.wikipedia.org/wiki/Php"> PHP</a>,<a href="http://es.wikipedia.org/wiki/Bash"> Bash</a> (si lo podemos definir como lenguaje),<a href="http://es.wikipedia.org/wiki/Ruby"> Ruby</a>,<a href="http://es.wikipedia.org/wiki/JavaScript"> JavaScript</a>,<a href="http://es.wikipedia.org/wiki/C_sharp"> C#</a> y esta misma semana<a href="http://es.wikipedia.org/wiki/Clojure"> Clojure</a>, pero con los que solo he aprendido partes de su sintaxis y no he llegado a hacer nada serio.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2011/09/dilbertcobol.jpg"><img class="aligncenter size-full wp-image-299" title="dilbertcobol" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2011/09/dilbertcobol.jpg" alt="" width="450" height="139" /></a></p>
<p>&nbsp;</p>
<p>Ahora mismo estoy inmerso en el aprendizaje de<a href="http://es.wikipedia.org/wiki/Groovy_(Lenguaje_de_Programaci%C3%B3n)"> Groovy</a>, un lenguaje bastante moderno, basado en Java, muy fácil de aprender, pero muy potente y productivo. Con el que pretendo desarrollar una web que seguramente comente en este blog más adelante. Aunque también estoy apunto de empezar en un grupo de trabajo para leer y aprender con “<a href="http://pragprog.com/book/btlang/seven-languages-in-seven-weeks">Seven Languages in Seven weeks</a>” que retrasará mi enseñanza de Groovy seguramente.</p>
<p>En resumen, cada vez que miro atrás y observo mi código de hace algún tiempo, me doy cuenta de que si he avanzado. Veo cosas escritas por mí que ahora nunca permitiría subir al repositorio, código duplicado sencillísimo de refactorizar y este tipo de cosas. Pero ver justamente estos fallos es muy bueno. Me alegro de comprobar que no me he quedado estancado y he aprendido poco a poco como se deben hacer las cosas. Se que aún me queda muchísimo por aprender y practicar, pero sentir ese avance me da más ganas de continuar con ello.</p>
<p>Así que os aconsejo que de vez en cuando vayáis guardando algún trozo de código del que os sintáis orgullosos. Hacedlo cada cierto tiempo, 6 meses, 3, un año, es igual. Pero eso sí, cada año al menos, cuando sintáis un cambio en vuestra vida, cuando estéis decaídos por que creéis que no habéis hecho nada en años, o os apetezca simplemente, mirad ese código y podréis observar si al menos en esto habéis aprendido algo. <img src="http://www.superjueves.net/pensamientosdeotromas/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /> </p>
</div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.superjueves.net/pensamientosdeotromas/2011/09/18/historia-de-un-programador/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Escribes tu mejor código a la primera? No me lo creo!</title>
		<link>http://www.superjueves.net/pensamientosdeotromas/2011/09/05/%c2%bfescribes-tu-mejor-codigo-a-la-primera-no-me-lo-creo/</link>
		<comments>http://www.superjueves.net/pensamientosdeotromas/2011/09/05/%c2%bfescribes-tu-mejor-codigo-a-la-primera-no-me-lo-creo/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 15:37:32 +0000</pubDate>
		<dc:creator><![CDATA[Alvaro García Loaisa]]></dc:creator>
				<category><![CDATA[Agilidad]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Productividad]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[arte]]></category>
		<category><![CDATA[ciencia]]></category>
		<category><![CDATA[codigo]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[refactorización]]></category>

		<guid isPermaLink="false">http://www.superjueves.net/pensamientosdeotromas/?p=271</guid>
		<description><![CDATA[&#160; &#160; La mayoría de gente con la que he trabajado programando, cuando tenían que hacer alguna aplicación, una parte, API, clase o lo que fuera, lo escribían y ya está. Incluso yo hasta hace no mucho tiempo, escribía el código que mejor me salía a la primera y ahí lo dejaba, a veces orgulloso [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<div style="text-align: center;"><img class="aligncenter size-full wp-image-273" title="UncleBob" src="http://www.superjueves.net/pensamientosdeotromas/wp-content/uploads/2011/09/UncleBob1.jpg" alt="" width="235" height="175" /></div>
<p>&nbsp;</p>
<div>La mayoría de gente con la que he trabajado programando, cuando tenían que hacer alguna aplicación, una parte, API, clase o lo que fuera, lo escribían y ya está. Incluso yo hasta hace no mucho tiempo, escribía el código que mejor me salía a la primera y ahí lo dejaba, a veces orgulloso de él y todo :S . Por suerte, después de unos años de experiencia he aprendido que esto no debe ser así.&nbsp;</p>
<p>No nos deberíamos limitar a  escribir un programa de principio a fin a la primera. Más importante aún, no deberíamos esperar ser capaces de escribir programas limpios y elegantes a la primera. Si algo he aprendido durante todo el periplo que ha supuesto mi carrera estudiantil y profesional, es que la programación es un arte más que una ciencia. Para escribir un código limpio, primero debemos escribir código sucio y luego limpiarlo.</p>
<p>Esto no debería ser una sorpresa para nadie. Escribir código limpio, es una cuestión de refinamientos sucesivos. Primero debemos escribir una primera versión, después revisarla, corregir lo que creamos conveniente, a continuación, volver a revisar y volver a refinar, y así sucesivas veces. Tener un ciclo de refactorizaciones sucesivas.</p>
<p>Un símil muy bueno se puede hacer con los polinomios de álgebra, donde los descomponemos en factores y los factorizamos paso a paso para hacerlos más simples y comprensibles sin modificar su resultado para llegar a una solución. Bien, pues con el código debemos hacer lo mismo, llegar a una solución lo más comprensible y simple para todo el mundo que vaya a meter mano a ese código.</p>
<p>La mayoría de los programadores jóvenes (con pocos años de experiencia en este tema) no están de acuerdo con esta técnica y no sigue este consejo muy bien. Ellos creen que el objetivo principal es conseguir que el programa funcione, dando igual como esté escrito por dentro. Terminando así con un código ilegible, código espagueti, o como le queráis llamar. Solo preocupa que funcione lo requerido y poder pasar así rápidamente a la siguiente tarea. Parafraseando a Uncle Bob “Los programadores más experimentados saben que esto es un suicidio profesional”.</p>
<p>El principal problema de que un programador se acostumbre a hacer refactorizaciones sucesivas de su código y cuidarlo con mucho más mimo, es que supone un esfuerzo y este esfuerzo no se ve plasmado en funcionalidades para el proyecto. A pesar de ello, si utilizamos esta forma de programar refactorizando, como técnica de desarrollo a lo largo del proyecto, conseguiremos que nuestro código sea de calidad y mucho más legible, ya no solo para nosotros, sino también para el resto de programadores del equipo. La experiencia dice (y no solo la mía) que este tiempo empleado en cada refinamiento sucesivo, será recuperado repercutiendo con creces en el avance del proyecto en el futuro.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.superjueves.net/pensamientosdeotromas/2011/09/05/%c2%bfescribes-tu-mejor-codigo-a-la-primera-no-me-lo-creo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
