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

Autor: | Posteado en Tecnología Sin comentarios

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

Internet llegó para solucionarnos la vida en muchos aspectos. Una de sus ventajas mas fundamentales es que nos concede colaborar entre todos. Gracias a la inteligencia colectiva, no hay casi nada que alguien en algún sitio no se haya preguntado ya, intentado, e inclusive resuelto; por lo que tienes la respuesta a cualquiera duda a choque de click. Stack Overflow es un buen modelo de lo eficiente que puede ser esta “mente colmena”, pero no existió siempre. ¿Cómo se las apañaban antes?

Stack Overflow, fundada en 2008, es la comunidad en línea mas grande de desarrolladores. 50 millones de programadores profesionales y aspirantes la visitan cada mes. En ella aprenden y comparten sus conocimientos de modo grupal, para así localizar soluciones a problemas de programación entre todos.

Si has intentado resolver un pequeño trazo de código roto que no se visualiza, alguna compilación que da error y demás frustraciones por el estilo, sabrás que puedes pasar horas con usted personal error frente a tus narices. A veces no lo ves, otras siquiera lo veas no lo entiendes. Y simplifica demasiado la vida que alguien que ya se haya topado con el error venga y te lo señale. Pero anteriormente esta expectativa no existía.

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

Francisco Ros.

Francisco Francisco, foto cedida para la entrevista.

Francisco es Doctor en Ingeniería Informática y co-fundador de Moss. “Además de realizar misiones no técnicas, dedico parte de mi período al desarrollo de algunos componentes de Moss. En estos momentos programo en Python, siquiera en etapas profesionales anteriores trabajé con C, C++ y Java”.

“Siendo un peque mis papás compraron un Amstrad CPC 6128 con el que aprendí a programar en Basic (año 1991 aproximadamente). Principalmente leía manuales (en papel) y asistí a algunas clases de programación en alguna academia, pero en aquel entonces mi interés por programar se centraba en crear games absurdos de línea de comandos. Años mas tarde me acariciaba 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 atención por cómo funcionaba todo ese mundo: la web, el email, los ordenadores. Esto me hizo decantarme por estudiar Ingeniería Informática, y en la facultad es donde realmente aprendí los fundamentos de la programación”.

Nos cuenta que en las corridas de informática 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 manual de llamadas al sistema u funciones de la libc, documentación de las librerías de Java, etc. En general, siempre que tenía algún problema con algún software(programa) de terceros acudía a la documentación oficial u al código fuente (si estaba disponible) para tratar de solventarlo”.

En cuanto a lo positivo de “los tiempos de antes”, nos dice que de alguna modo estudiar algo “por las malas” hace que lo interiorices mejor pero que, evidentemente, puede trasladar demasiado período cuando se trata de un problema complejo u 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 problema cuanto antes. Como todo, eso sí, el problema viene cuando se abusa. No pasa nada por usar un trozo de código que veas allí en usted propia aplicación, siempre que entiendas bien qué hace y qué implicaciones tiene. Si no es así, se corresponderia destinar el período necesario a comprender bien el problema y la solución”.

Por poner un modelo reciente que nos comentó Francisco, la vulnerabilidad Zip Slip, que perjudica a multitud de software(programa) Java™ (entre otros), descomprime archivos(datos) ZIP porque los desarrolladores han usado en masa snippets frágiles que encontraban en Stack Overflow sin conocer lo que hacían.

David López:

Img 2816 Portrait David López, foto cedida para la entrevista.

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

David aprendió a programar haciendo la antigua formación profesional. “La base, porque lo que se aprendía anteriormente (no sé si ahora) era COBOL. Después de eso inicié la carrera de Ingeniería Informática pero nunca llegué a acabarla. Me puse a trabajar en algo vinculado con informática de sistemas y un día necesitaron alguna web interna. Como me atraía mas la programación que los sistemas y llevaba período 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 demasiada documentación, prueba y error, etc. Eso, el arranque de esa primera web, fue hace casi dieciséis años. Una vez fui mejorando 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 mercado específico que se paga mejor”.

Hay quien entra en un sector porque “es lo suyo”, le gusta desde joven, su papá se dedicaba a ello u cualquiera otra opción. David cuenta que se metió a programador porque se le da bien “la analítica del problema, el diseñar alguna solución eficiente, el ‘resolver el puzzle’ y, además, está bien pagado”.

Técnicamente no le gusta la programación en sí, pero es alguna parte mas de resolver un problema que tiene un cliente. Precisamente por este punto de vista, respecto a si es mas sencillo u mas difícil ahora, con comunidades en lugar de a choque de manual, nos dice que depende:

“Depende. Recomendaría asistir a clases al menos para la materia básica y después ir probando. Pero la programación es algo para lo que no todo el planeta vale. Programar es lo de menos. Lo especial que requiere la programación es conocer estructurar un problema, eligir la mejor solución de las utilizables (siempre hay mas de una), revelar y comprender las implicaciones que tiene a posteriori esa solución y, alguna vez hecho esto, es cuando te pones a escribir código. Si no eres capaz, u no te gusta, la analítica en sí… entonces da igual que aprendas por usted cuenta, en Stack u en clases”.

Si nos atrae realmente la programación, David recomienda lo básico: “un par de libros sobre algoritmos y, probablemente, iniciar con algo medianamente atrayente como Python. Hay muchos cursos gratuitos, no es excesivamente complejo el meterse con ello y tiene muchas aplicaciones ‘reales’ que hacen que te apetezca seguir. Hay cursos atrayentes sobre objetos generales y comunes a cualquiera lenguaje. No está de mas echarles un ojo, pero a programar se aprende programando. Diseñando solución e implementando. Viendo cómo se puede mejorar esa implementación. Y practicando mas que preguntando”.

Miguel González:

Miguel Miguel, foto cedida para la entrevista.

“Mi nombre es Miguel Gonzalez, soy ingeniero técnico en Informática de Sistemas por la Universidad de Salamanca e ingeniero superior en Informática por la Universidad de León. Como la mayoría de los tecnicos en los 90, aprendí Pascal, C, C++ y después mas tarde Java (en alguna 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 facultad era la programación en C bajo Unix, que terminó derivando en sistemas Linux. “Lo general era aprovechar el conocido Man (que era el sistema de ayuda en línea de los sistemas Unix) y su equivalente escrito en manual. Aprendías a programar con algún libro de programación de dicho lenguaje, productos en revistas y con el manual en línea de algún comando u función. Existían algunos foros en Internet™ donde la gente preguntaba, pero en aquella época en España(pais) el entrada a Internet™ era muy limitado y el costo por minuto era carísimo, como un 902″.

Hablamos de alguna época en la que había que conectarse a Internet™ vía modem porque el ADSL u el cable aún no habían aparecido. “Los principales accesos a Internet™ los hacíamos adentro de la Universidad, donde la conexión era mala pero, al menos, gratuita. Apenas había páginas webs y pocos buscadores (solo existía algo parecido a Google™ llamado Altavista). Por tanto, al meta cuando tenías un problema tenías que acceder a usted ambiente cercano, algún compadre u preguntar a algún profesor. Hasta finales de los 90 u inicios del 2000, no empezaron a hacerse habituales las mailing lists de grupos por tecnologías donde la gente se ayudaba con las dudas”.

Hoy en día, Miguel piensa que el aprendizaje con cursos presenciales está siendo reemplazado paulatinamente por los cursos por vídeos, que permiten en muy poco período y de figura visual estudiar cualquiera lenguaje u paradigma.

“Pero los manuales siguen siendo fundamentales para afianzar y estructurar la información y los detalles de un lenguaje u alguna herramienta, tanto para estudiar de cero, como herramienta de consulta. Mi recomendación a la gente que comience ahorita sería que, al igual que yo, aprendan primero unos pocos meses de mecanografía, es alguna inversión de futuro, y después que aprendan diversos lenguajes, tanto de muy alto nivel como Python a medio u bajo nivel como Ensamblador u C. También diría que algo de algoritmia (pseudocódigo sobre todo). Lo considerable es transformarte en políglota y ver cómo se estructuran los lenguajes para poder conseguir rápidamente recientes lenguajes en poco tiempo”.

En este aspecto, casi todos los entrevistados parecen de acuerdo en que los lenguajes de programación son como, válgase la redundancia, los lenguajes (idiomas). Cuantos mas aprendes, mas sencillo te es el siguiente porque usted cerebro aprende a protagonizar mas deprisa los conceptos siquiera sean dichos de otra forma.

José Arturo Sánchez:

Img 20180913 151357 José, foto cedida para la entrevista.

“Me llamo José Arturo Sánchez Canals, tengo 43 años y resido en Pinoso, Valencia”. Aunque sus estudios oficiales son Licenciado en Química, Técnico Superior en Industrias Alimentarias y Enólogo, José se dedica desde hace muchos 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… pero actualmente soy desarrollador en Ideade Creativos, me encargo del mantenimiento y creación de páginas web, así como del desarrollo de aplicaciones celulares y de aplicaciones de escritorio según las necesidades de los clientes”.

Nos cuenta que los lenguajes de programación que aplica son “php, html, jQuery (en sus variadas variantes de frameworks de desarrollo según las necesidades, Angular, Vue…) para la creación de páginas web, Java, Swift/objective-C y jQuery para los frameworks de desarrollo (ionic, electron, meteor, …) y para el desarrollo de aplicaciones celulares y de escritorio, sin dejar de lado Delphi (evolución de Pascal) para el desarrollo de aplicaciones. Con Delphi, de hecho, llevo laburando desde algo mas de veinte años”.

“Comencé a programar con 14-15 años, con un MSX2, un ordenador de vivienda japonés. Inicialmente lo usaba para jugar pero, con el tiempo, un amigo y yo pensamos en hacer un videojuego nosotros mismos. Mi interés fue agrandando por lo que suponía programar: era crear, considerar algo, desarrollarlo (inicialmente en papel, cosa que sigo haciendo… anteriormente de presionar alguna tecla, todo diseñado en papel), y aventajar los retos que puedan surgir”.

Después de pasar por lenguaje Ensamblador, Visual Basic CC++ y Delphy, José pasó poco a hacer programas para terminales de punto de venta, programas de gestión, utilidades, etc…, inclusive el programa Datagua para el Ministerio de Medio ambiente. “A partir de ahí, comencé a desarrollar páginas web usando variadas tecnologías según los requerimientos, y pasé al desarrollo de las aplicaciones para celulares cuando comenzó el auge de las mismas, allí por el Android™ 2.0. Y inclusive la actualidad, en la cual ya me dedico adentro de esta compañia al desarrollo ‘full-stack’.

El acerbo de lenguajes que domina José resulta suficiente sorprendente así que le preguntamos cómo podía conocer tantos a la vez. Comenta que suele conseguir 1 u 2 cursos al mes en variadas plataformas online(enlinea) para ‘instruirse’ con los recientes frameworks que van saliendo. “Lenguajes ya no se crea ninguno nuevo, pero sí lo que son frameworks (básicamente entornos u librerías de desarrollo, colecciones de funcionalidades, como lo deseamos 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 creo que muchos otros también) de los libris/manuales que podías comprar y de las revistas de informática, de donde se aprovechaba todo. El método ‘oficial’ era el de prueba y error, se hacían las cosas y si daban fallos, se retocaba, y así inclusive que funcionara. Actualmente, se tira para preguntas de foros específicos, de Stackoverflow sobre todo, de YouTube™ en ocasiones, etc,. Lo que hemos visto los programadores ‘senior’ es un incremento del copy-paste”.

Nos cuenta que, en su experiencia, la gente muchas veces no consulta los foros para resolver las dudas; los consulta para que le den el código meta hecho. “Esto implica realmente que no lleguen a estudiar el motivo de su consulta. Te puedo comentar un caso así, que me sucedió en alguna prueba que realizamos para acordar a un desarrollador. Yo no me fijo en los títulos, valoro mas los cursos realizados y, sobre todo, me gusta realizar alguna prueba práctica. En este caso, se puso un problema, y el candidato lo resolvió bien. El asunto es que el código me sonaba… había copiado el código de un artículo 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 cómo funcionaba, no sabía explicarlo”.

Un brindis por los tiempos de antes

Había gente fabricando informática inclusive anteriormente de que la informática en sí (software y hardware) fuera verdaderamente accesible para todos los públicos. Y fue duro, pero además parece que apasionante. Respecto a la conclusión de si era mejor u peor… diferente. Sin duda muy diferente.

Con Internet™ a mano todos somos muy listos porque todos comprendemos lo que saben todos los demás, y eso está bien para mejorar grupalmente. Aunque, quizá, individualmente de la figura “dura” se interiorizaban mejor las cosas, según 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 formas de estudiar lo hacen con él, no olvidemos de dónde venimos para conocer hacia dónde vamos. Y, de cuando en cuando, echemos la visión atrás para ver cómo han cambiado las cosas. En ocasiones las diferencias son sorprendentes.

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

También te recomendamos

Yo fui el primero que puso notch en un móvil en 2006: la historia del creador del Motorola™ Motofone F3

once situaciones en las que el VPN de Norton se regresa imprescindible en usted labor

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


La noticia Yo inicié a programar profesionalmente cuando no existía Stack Overflow fue notificada originalmente en Xataka por Victoria Pérez .


Xataka

Todo lo que esta escrito en este sitio web es recopilado de otros sitios oficiales, los enlaces a las paginas oficiales se presentan en cada termino de noticia y no perjudicaremos su noticia.

Noticias Relacionadas:

Agrega tu comentario