Yo empecé a programar profesionalmente cuando no existía Stack Overflow

Yo empecé a programar profesionalmente cuando no existía Stack Overflow

Internet llegó para solucionarnos la vida en varios aspectos. Una de sus mejorías mas fundamentales es que nos acepta compartir entre todos. Gracias a la inteligencia colectiva, no hay casi nada que alguien en algún sitio no se haya consultado ya, intentado, e inclusive resuelto; por lo que teneis la respuesta a cualquier desconfianza a golpe de click. Stack Overflow es un buen ejemplo de lo efectiva que puede ser esta “mente colmena”, sin embargo no existió siempre. ¿Cómo se las apañaban antes?

Stack Overflow, fundada en 2008, es la sociedad en linea mas enorme de desarrolladores. 50 millones de desarrolladores profesionales y aspirantes la visitan cada mes. En ella aprenden y comparten sus conocimientos de forma grupal, para así hallar respuestas a problemas de programación entre todos.

Si has deseando solucionar un diminuto trazo de codigo roto que no se visualiza, una compilación que da fallo y demás frustraciones por el estilo, sabrás que puedes suceder horas con tu propio fallo frente a tus narices. A veces no lo ves, otras pese a que lo veas no lo entiendes. Y simplifica mucho la vida que alguien que ya se haya topado con el fallo venga y te lo señale. Pero antes esta oportunidad no existía.

Hablamos con desarrolladores que se formaron a sí mismos consultando tutoriales oficiales y respondiendo sus propias preguntas, porque no existían plataformas de participación como estas. Esto es lo que nos han contado sobre el arte de estudiar “a golpe de manual”:

Francisco Ros.

Francisco Francisco, fotografía cedida para la entrevista.

Francisco es Doctor en Ingeniería Informática y co-fundador de Moss. “Además de efectuar actividades no técnicas, dedico parte de mi tiempo al desarrollo de algunos componentes de Moss. En estos instantes programo en Python, pese a que en fases profesionales preliminares trabajé con C, C++ y Java”.

“Siendo un niño mis padres compraron un Amstrad CPC 6128 con el que aprendí a programar en Basic (año 1991 aproximadamente). Principalmente leía tutoriales (en papel) y asistí a varias clases de programación en una academia, sin embargo en aquel entonces mi interes por programar se centraba en inventar videojuegos absurdos de linea de comandos. Años mas tarde me tocaba elegir carrera y por aquella fecha el uso de Internet se había extendido (aunque aún no teníamos tarifas planas y nos conectábamos con módems de 64kbps como mucho), y volví a sentir curiosidad por como funcionaba todo ese mundo: la web, el email, los ordenadores. Esto me hizo decantarme por estudiar Ingeniería Informática, y en la universidad es donde realmente aprendí los fundamentos de la programación”.

Nos cuenta que en las carreras de computación en esos años se aprendía sobre todo a base de apuntes, libros de texto y la documentación del software: “Páginas de tutorial de llamadas al metodo o características de la libc, documentación de las librerías de Java, etc. En general, siempre que tenía algún dilema con algún software de terceros acudía a la documentación oficial o al codigo fuente (si estaba disponible) para tratar de solventarlo”.

En cuanto a lo positivo de “los tiempos de antes”, nos dice que de alguna forma estudiar algo “por las malas” hace que lo interiorices mejor sin embargo que, evidentemente, puede llevar mucho tiempo cuando se intenta de un dilema complejo o difícil de depurar.

“Los sitios Q&A como Stack Overflow son geniales para economizar tiempo y tratar de ir a la raíz del dilema cuanto antes. Como todo, eso sí, el dilema llega cuando se abusa. No pasa nada por usar un trozo de codigo que veas allí en tu propia aplicación, siempre que entiendas bien qué hace y qué implicaciones tiene. Si no es así, se razones dedicar el tiempo necesario a comprender bien el dilema y la solución”.

Por poner un ejemplo nueva que nos comentó Francisco, la vulnerabilidad Zip Slip, que perjudica a multitud de software Java (entre otros), descomprime archivos ZIP porque los desarrolladores han usado en masa snippets indefensos que encontraban en Stack Overflow sin saber lo que hacían.

David López:

Img 2816 Portrait David López, fotografía cedida para la entrevista.

“Soy programador PHP especializado en desarrollos Drupal. Nací en España y he vivido en Londres y, actualmente, en Suiza”.

David aprendió a programar creando la antigua formación profesional. “La base, porque lo que se aprendía antes (no sé si ahora) era COBOL. Después de eso empecé la carrera de Ingeniería Informática sin embargo nunca llegué a acabarla. Me puse a trabajar en algo vinculado con computación de sistemas y un dia necesitaron una web(www) interna. Como me atraía mas la programación que los sistemas y llevaba tiempo practicando por mi cuenta con PHP me puse a ello y quedó medianamente decente”, comenta.

“De ahí salieron mas webs, fui depurando metodología, leyendo mucha documentación, prueba y error, etc. Eso, el arranque de esa 1ª web, fue hace casi 16 años. Una vez fui progresando y podía resolver cuestiones mas complejas decidí hacerme autónomo (jamás lo recomendaría en España, por cierto) y me fui especializando en Drupal porque hay un comercio específico que se paga mejor”.

Hay quien entra en un sector porque “es lo suyo”, le encanta desde joven, su padre se dedicaba a ello o cualquier otra opción. David cuenta que se metió a programador porque se le da bien “la analítica del problema, el plantear una solucion eficiente, el ‘resolver el puzzle’ y, además, esta bien pagado”.

Técnicamente no le encanta la programación en sí, sin embargo es una parte mas de resolver un dilema que tiene un cliente. Precisamente por este punto de vista, respecto a si es mas sencillo o mas difícil ahora, con comunidades en lugar de a golpe de manual, nos dice que depende:

“Depende. Recomendaría asistir a clases al menos para la materia básica y despues ir probando. Pero la programación es algo para lo que no todo el planeta vale. Programar es lo de menos. Lo especial que solicita la programación es saber estructurar un problema, elegir la preferible solucion de las disponibles (siempre hay mas de una), detectar y comprender las implicaciones que tiene a posteriori esa solucion y, una vez hecho esto, es cuando te pones a escribir código. Si no eres capaz, o no te gusta, la analítica en sí… entonces da equivalente que aprendas por tu cuenta, en Stack o en clases”.

Si nos cautiva realmente la programación, David sugiere lo básico: “un par de libros sobre algoritmos y, probablemente, comenzar con algo medianamente atrayente como Python. Hay varios cursos gratuitos, no es excesivamente difícil el meterse con ello y tiene varias programas ‘reales’ que crean que te apetezca seguir. Hay cursos atrayentes sobre componentes generales y comunes a cualquier lenguaje. No esta de mas echarles un ojo, sin embargo a programar se practica programando. Diseñando solucion e implementando. Viendo como se puede optimizar esa implementación. Y practicando mas que preguntando”.

Miguel González:

Miguel Miguel, fotografía cedida para la entrevista.

“Mi nombre es Miguel Gonzalez, soy especialista técnico en Informática de Sistemas por la Universidad de Salamanca e especialista superior en Informática por la Universidad de León. Como la totalidad de los especialistas en los 90, aprendí Pascal, C, C++ y despues mas tarde Java (en una Erasmus que hice en Inglaterra, ya que no se impartía aún en las facultades). También algo de PHP (y HTML, claro) y administración de sistemas Linux”.

Nos cuenta sobre sus tiempos de universidad, que lo típico de la universidad era la programación en C bajo Unix, que acabó derivando en sistemas Linux. “Lo usual era usar el popular Man (que era el metodo de ayuda en linea de los sistemas Unix) y su equivalente redactado en manual. Aprendías a programar con algún libro de programación de dicho lenguaje, artículos en revistas y con el tutorial en linea de algún comando o función. Existían algunos foros en Internet donde la masa preguntaba, sin embargo en aquella época en España el camino a Internet era muy limitado y el valor por minuto era carísimo, como un 902″.

Hablamos de una época en la que había que conectarse a Internet vía modem porque el ADSL o el cable aún no habían aparecido. “Los primeros accesos a Internet los hacíamos dentro de la Universidad, donde la conexión era mala pero, al menos, gratuita. Apenas había paginas webs y pocos buscadores (solo existía algo similar a Google® llamado Altavista). Por tanto, al final cuando tenías un dilema tenías que entrar a tu entorno cercano, algún compañero o preguntar a algún profesor. Hasta terminos de los 90 o principios del 2000, no comenzaron a hacerse habituales las mailing lists de grupos por tecnologias donde la masa se ayudaba con las dudas”.

Hoy en día, Miguel piensa que el aprendizaje con cursos presenciales esta siendo reemplazado paulatinamente por los cursos por vídeos, que aceptan en muy poco tiempo y de forma visual estudiar cualquier idioma o paradigma.

“Pero los tutoriales siguen siendo fundamentales para afianzar y estructurar la información y los fragmentos de un idioma o una herramienta, tanto para estudiar de cero, como tool de consulta. Mi recomendación a la masa que comience ahora sería que, al equivalente que yo, aprendan primero unos pocos períodos de mecanografía, es una inversión de futuro, y despues que aprendan varios lenguajes, tanto de muy alto nivel como Python a medio o bajo nivel como Ensamblador o C. También diría que algo de algoritmia (pseudocódigo sobre todo). Lo significativo es convertirte en políglota y visualizar como se estructuran los idiomas para poder adquirir inmediatamente nuevos idiomas en poco tiempo”.

En este aspecto, casi todos los entrevistados parecen de convenio en que los idiomas de programación son como, válgase la redundancia, los idiomas (idiomas). Cuantos mas aprendes, mas simple te es el siguiente porque tu cerebro practica a interpretar mas deprisa los conceptos pese a que sean dichos de otra forma.

José Arturo Sánchez:

Img 20180913 151357 José, fotografía cedida para la entrevista.

“Me llamo José Arturo Sánchez Canals, tengo 43 años y resido en Pinoso, Valencia”. Aunque sus analisis oficiales son Licenciado en Química, Técnico Superior en Industrias Alimentarias y Enólogo, José se dedica desde hace varios años a la informática, y mas en concreto a la programación.

“No hice la carrera de informática, porque en mis tiempos no te enseñaban a programar, solo daban unas nociones… sin embargo recientemente soy programador en Ideade Creativos, me pedido del mantenimiento y creación de paginas web, así como del desarrollo de programas moviles y de programas de escritorio segun las necesidades de los clientes”.

Nos cuenta que los idiomas de programación que maneja son “php, html, jQuery (en sus multiples variantes de frameworks de desarrollo segun las necesidades, Angular, Vue…) para la creación de paginas web, Java, Swift/objective-C y jQuery para los frameworks de desarrollo (ionic, electron, meteor, …) y para el desarrollo de programas moviles y de escritorio, sin dejar de lado Delphi (evolución de Pascal) para el desarrollo de aplicaciones. Con Delphi, de hecho, llevo laborando desde algo mas de 20 años”.

“Comencé a programar con 14-15 años, con un MSX2, un computador de home japonés. Inicialmente lo utilizaba para jugar pero, con el tiempo, un amigo y yo pensamos en inventar un videojuego nosotros mismos. Mi interes fue creciendo por lo que suponía programar: era crear, pensar algo, desarrollarlo (inicialmente en papel, cosa que sigo haciendo… antes de apretar una tecla, todo esquematizado en papel), y superar los desafíos que puedan surgir”.

Después de suceder por idioma Ensamblador, Visual Basic CC++ y Delphy, José pasó poco a inventar programas para terminales de punto de venta, programas de gestión, utilidades, etc…, inclusive el software Datagua para el Ministerio de Medio ambiente. “A partir de ahí, comencé a crear paginas web(www) usando multiples tecnologias segun los requerimientos, y pasé al desarrollo de las programas para moviles cuando comenzó el auge de las mismas, allá por el Android® 2.0. Y hasta la actualidad, en la cual ya me dedico dentro de esta compañia al desarrollo ‘full-stack’.

El acerbo de idiomas que controla José resulta suficiente sorprendente así que le preguntamos como podía saber tantos a la vez. Comenta que suele adquirir uno o 2 cursos al mes(30dias) en multiples plataformas online para ‘instruirse’ con los nuevos frameworks que van saliendo. “Lenguajes ya no se desarrolla ninguno nuevo, sin embargo sí lo que son frameworks (básicamente entornos o librerías de desarrollo, colecciones de funcionalidades, como lo queramos llamar), así siempre estoy al día”.

“En mi época (hablo ya como los viejos), Internet no estaba tan extendido como ahora, por lo que dependía (y supongo que varios otros también) de los libris/manuales que lograbas comprar y de las revistas de informática, de donde se aprovechaba todo. El procedimiento ‘oficial’ era el de prueba y error, se hacían las cosas y si daban fallos, se retocaba, y así hasta que funcionara. Actualmente, se tira para consultas de foros específicos, de Stackoverflow sobre todo, de YouTube en ocasiones, etc,. Lo que hemos visto los desarrolladores ‘senior’ es un crecimiento del copy-paste”.

Nos cuenta que, en su experiencia, la masa varias veces no consulta los foros para solucionar las dudas; los consulta para que le den el codigo final hecho. “Esto implica realmente que no lleguen a estudiar el fundamento de su consulta. Te puedo comentar un caso así, que me sucedió en una prueba que realizamos para contratar a un desarrollador. Yo no me fijo en los títulos, valoro mas los cursos realizados y, sobre todo, me encanta efectuar una prueba práctica. En este caso, se puso un problema, y el candidato lo resolvió bien. El asunto es que el codigo me sonaba… había copiado el codigo de un capítulo mío, con líneas de comentario y todo. Al comentárselo y pedirle que me explicara la solución, es decir, que me explicara el como funcionaba, no sabía explicarlo”.

Un brindis por los tiempos de antes

Había masa construyendo computación inclusive antes de que la computación en sí (software y hardware) fuera verdaderamente asequible para todos los públicos. Y fue duro, sin embargo además parece que apasionante. Respecto a la conclusión de si era preferible o peor… diferente. Sin desconfianza muy diferente.

Con Internet a mano todos somos muy preparados porque todos entendemos lo que saben todos los demás, y eso esta bien para optimizar grupalmente. Aunque, quizá, individualmente de la forma “dura” se interiorizaban preferible las cosas, segun algunos de nuestros entrevistados.

Lo cierto, al final, es que este tipo de plataformas se han vuelto imprescindibles y han venido para quedarse. Mientras los tiempos siguen avanzando y las maneras de estudiar lo crean con él, no olvidemos de dónde venimos para saber hacia dónde vamos. Y, de cuando en cuando, echemos la vista atrás para visualizar como han variado las cosas. En ocasiones las diferencias son sorprendentes.

Imágenes: portada de Emile Perron, siguientes de los respectivos entrevistados.

También te recomendamos

once ocasiones en las que el VPN de Norton se vuelve necesario en tu trabajo

Yo fui el 1° que puso notch en un dispositivo en 2006: la historia del fundador del Motorola® Motofone F3

PET De Lux, el bonito (e inalcanzable) homenaje artesanal al mítico Commodore PET 2001


La novedad Yo empecé a programar profesionalmente cuando no existía Stack Overflow fue publicada originalmente en Xataka por Victoria Pérez .


Xataka



Agradecemos a la fuente original por la información que nos ayudo a crear este articulo.

También puedes revisar estas noticias relacionadas.

Tags: #Cuando #empecé #existía #Overflow #profesionalmente #programar #Stack

Deja un comentario

Author: 
    author