EDICIóN GENERAL
198 meneos
6824 clics
Algunas cosas que los científicos pueden aprender de los programadores -

Algunas cosas que los científicos pueden aprender de los programadores -

Mi carrera científica tuvo un parón en 2012. O al menos entonces pensé que era un parón. Nada más licenciarme en física, en lugar de continuar directamente hacia un doctorado (como me hubiese gustado), las circunstancias me obligaron a buscar un empleo a tiempo completo. Tuve la suerte de encontrar uno, concretamente de ingeniero en una empresa de diseño de

| etiquetas: científicos , programadores -
Sencillo pero interesante porque es cierto que en academia se obvian estas cosas. Meneo.
El día en el que los programadores de 2018 se den cuenta de que son como los torneros fresadores de de 1960 se les bajan los aires de golpe.
#2 En 2018, se han dado muchos pasos para convertir la programación en un proceso industrial, pero por suerte o por desgracia, sigue siendo un arte. Que un programa sea óptimo o no, extensible o no, robusto frente a errores o no, etc. depende mucho de la persona que lo ha programado.
#3 Programar es un arte por mis cojones. Artesanos en todo caso. Como los torneros fresadores sesenteros, insisto.
#23 Pongalos en un museo joven
#23 A reiterar ciertas lineas de código lo llaman arte. Encima desde una silla y hasta pretendiendo cobrar como el que se desloma como Barrendero.
#29 Si dibujasen las meninas con funciones de C++ lo sería. Por ahora tan solo son currelas como cualquier otro, pero con ínfulas.
#30 No son las meninas, y nos es C++ (es CSS), pero oye tiene su encanto:

diana-adrianne.com/purecss-francine/
#31 Buehhhhhh, HTML o CSS no es programar. :troll:
#33 Oye que SCSS y LESS ya tienen condicionales y bucles. :-D
#34 Los condicionales de CSS son como los de mi mujer: son sus putas condiciones, no las tuyas. Y si no quieres cumpliarlas, te jodes y las cumples. xD
#33 Troll o programador frustrado, no encuentro otra explicación.

Syntax Error
#33 sé que es medio broma, pero mira los enlaces (demos) de este usuario de StackOverflow:
es.stackoverflow.com/users/250/alvaro-montoro

No es mi perfil, no es autobombo, pero puedes ver la potencia actual de CSS
#33 Exacto, es maquetar :-D
#31 C++ es algo muy diferente a CSS. C++ es un lenguaje de programación base, apto para diseñar hasta sistemas operativos. CSS es un lenguaje de programación web que complementa, entre otros, al HTML, base de la estructura de cualquier página web. Básicamente CSS le da al código web formato (osea colores, letras, fondos...).

Son dos universos diferentes.
#54 ehh era una coña se perfectamente que es C++ y que es CSS.

Y te equivocas, CSS no es ningún lenguaje de programación.

Y con C++ podrías hacer lo mismo que con CSS así que es válido también para C++.
#59 Te creo, no es algo de lo que yo sepa mucho. De MatLab y un poco de Python no paso.

Por curiosidad, entonces, ¿cómo se llama al lenguaje CSS? ¿El HTML tampoco se considera un lenguaje de programación? No va con segundas, es una pregunta honesta.
#61 CSS es un lenguaje de hojas de estilo y HTML es un lenguaje de marcas o etiquetas. Un lenguaje de programación tiene que ser Turing completo y admitir funciones básicas como condicionales y ciclos.

Con C++ podrías crearte tu propio intérprete de CSS y HTML y tu propio navegador por eso también valdría C++ para crear lo que hagas con CSS. Con C++ puedes crear casi cualquier cosa que ves en tu ordenador.
#63 Gracias por tu explicación. :-)
#63 un lenguaje de programación no tiene que ser turing completo.
#61 HTML es un lenguaje de marcado. CSS son hojas de estilo.
#61 Se quiera o no, html y CSS son lenguajes de programación... de 4ª generación. Son de más alto nivel y su función es más específica, en este caso dirigida a programación Web.
#80 Falso. No se puede programar con HTML, nada, lo unico que puedes hacer es definir un documento para que lo renderice el navegador. Para la programacion web, esta JavaScript. Con HTML dices: aqui va un titulo, aqui un parrafo, aqui un boton, aqui un enlace, etc... Con JavaScript es con lo que programas en la parte cliente de la web.
#61 HTML es un lenguaje de etiquetas y CSS son hojas de estilo en cascada. Ninguno son lenguajes de programación. Son lenguajes, pero no de programación.
#59 Ehmmmmm, creo que te equivocas ...

"CSS+HTML actually is turing complete because you can encode Rule 110 in CSS."

en.m.wikipedia.org/wiki/Rule_110

Por mucho que nos joda, CSS es un lenguaje de programacion.
#88 No entiendo muy bien que quieres decir. Tal como lo veo yo es como si dijeses "la carrocería es un coche porque junto con un motor puede moverse" Entonces el coche será la carrocería mas el motor no solo la carrocería, ¿no? De la misma forma que una pierna no es una persona, necesita un porcentaje mayor de partes del cuerpo para al menos poderlo llamar cadaver o mutilado.
#54 CSS no es un lenguaje de programacion, ni HTML. HTML es un lenguaje de marcado, para diseñar un documento. CSS es un lenguaje para definir estilos del HTML. Y finalmente, y hablando de lo que es la parte web, JavaScript es el lenguaje de programacion para la web.
#30 www.shadertoy.com/view/MsGSRd

He visto arte mucho menos complejo e interesante que esto, por ejemplo.

Por si quieres algo más clásico: www.shadertoy.com/view/4dlGW8
#29 #30 Me encanta oler a envidia por la mañana. El que se desloma como barrendero cobra 40000€ al año? Yo sí, desde mi silla y echando un ojo al Facebook cada 5 minutos :->

Haber estudiado.
#97 es un comentario muy perro , pero positivo por darle en la cara a los haters.
#97 Acabo de volver a tener el privilegio de responder. Me mola como te crujen negativos sin sentido en ese comentario, es la puta risa como son la pequeña mafia Izquierdista-fascista-soygayperohetero de meneame.
#23 La calidad de la lógica de un programa está directamente relacionada con la inteligencia y la capacidad de abstracción del programador. Una cabeza mal organizada no puede crear buen código, como mucho puede aprender a replicar lo que hacen los buenos.
#23 No diré que es un arte, pero me sorprende tu analogía. Además creo que no es cierta (y soy ingeniero civil, no programador, así que no me toca directamente, aunque sí de cerca).

Lo dices como si la programación fuera una mera subrutina con tintes burocráticos de procesos mayores y más nobles. Pero hay muchos ejemplos de ocupaciones y labores de élite basadas en programación y su dominio, desde Big Data al enormísimo mundo de la informática. Pasando por técnicas de simulación de procesos…   » ver todo el comentario
#3 La programación no es solo programar en si, hay muchos procesos que intervienen en una correcta entrega del software: construcción repetible, entornos de integración, entornos de QA, de integración, despliegues con alta disponibilidad, workflow de las ramas de control de versiones, metodología de tests, estilos comunes, organización y division de la tareas, automatización de infraestructura por APIs, unificar el formato de artefactos (aka Docker), coordinación, gestión y escalado de los componentes (orquestadores como K8s), etc. Poco a poco, se esta madurando en llegar a unos estándares de profesionalidad y calidad que hace una década parecían inalcanzables.
#28 exacto, mis dieces tio.
#2 artesano tambien hay.

#0 me deja flipao q prpgramen si repositorio....

Q si hay prisas y no hay tiempo puede no haber tests.... pero repositorio....

Hacer algo sin tener un repositorio es una locura....
#4 a que te refieres? si en el articulo menciona claramente el control de versiones
#5 Tal vez se refiera a esos científicos que no lo usan, y por eso es una de las "cosas que los científicos pueden aprender de los programadores".

'Cosas' las puedes traducir por herramientas, técnicas, paradigmas, ...
#2 Todos los trabajos tenderán a desaparecer, pero los programadores seremos los últimos ;)
#11 Los enterradores discrepan de tu comentario.
#20 Juas, lo dudo. Los incineradores puede, pero los enterradores caerán en breve.

Edit: Bueno y pensándolo ni así. Te carbonizará una puta máquina.
#11 Los últimos serán los fontaneros. Esto dalo por más que cierto, con permiso de #20.
#38 Las ultimas las putas y los pescadores.
#46 el ultimo sera el que os entierre/incinere a todos los demas, de eso no hay discusión.
#48 A lo mejor en un futuro distópico nos morimos en la calle a merced de los buitres pero te digo yo que putas, cazadores y pescadores seguirá habiendo.
#46 lo primero, puede, si los programadores decide dejar la pantalla un rato. Lo segundo, al ritmo que desciende lo pescable y al que crecen la acidificacion del mar y las zonas muertas sin oxigeno..... No se yo....
:-/
#20 ... robots enterradores... no se hacen porque es una falta de respeto, pero los pobres nunca han merecido respeto.
#11 El deep learning funciona mejor cuanta más información puedas alimentarle, y precisamente de programación hay alimento a patadas. Seguramente el ámbito en el que hay mayor facilidad para alimentar una IA.

Así que no sé yo si pesará más la complejidad o el acceso al alimento del deep learning a la hora de sustituir o no a los programadores.

Quizá, solo quizá, el ámbito de programación quede reducido al de analista. Con el diseño a muy alto nivel quizá baste para que la IA rellene la programación para obtener el resultado definido por el diseño.
#22 Mientras las máquinas no piensen por si mismas harán falta ingenieros.

El día que las máquinas puedan sustituir a los ingenieros, empezará la guerra contra Skynet (que perderemos).
#26 Skynet logra tomar conciencia de sí misma el 29 de agosto de 1997, a las 2:14 A.M. Google se registró el 15 de Septiembre de 1997. Ahí lo dejo :tinfoil:
#26 Mientras las máquinas no piensen por si mismas harán falta ingenieros.

Mientras las máquinas no piensen por sí mismas harán falta conductores de vehículos.

Mientras las máquinas no piensen por sí mismas harán falta personas para concertar una cita telefónica.
#42 Que va no hace falta que piensen para eso.
#50 Y si consiguen hacerlos programar dirás lo mismo para la programación.

A cada avance se sube el listón.
#51 Tendrán la habilidad de hacer cosas para las que se programen como conducir o concertar una cita, pero sin inteligencia y capacidad de resolución de problemas NUEVOS no pueden crear cosas por sí mismas.

Una máquina nunca podrá crear un número aleatorio y de ahí se deriva todo el tema de la creación.
#56 Una máquina puede obtener un número aleatorio observando la realidad, influenciado por la realidad.

Cuando una maquina llama por teléfono y se comunica "verbalmente" con otra persona se encuentra con problemas nuevos, como que esa persona entienda mal lo que le dice la máquina. Cuando una maquina conduce por una carretera por la que no ha conducido nunca se encuentra con problemas nuevos, y debe actuar para resolver ese nuevo problema.

El tema de fondo es que no hemos descrito…   » ver todo el comentario
#60 Cuando una máquina se comunica con una persona verbalmente solo está procesando los sonidos mediante una red neuronal con la que ha practicado cientos de miles de veces para obtener datos discretos y contestar una opción previamente programada, no hay inteligencia ahí.

Cuando conduce simplemente son cientos de sensores de los que recoge señal y los procesa para actuar a respuestas programadas. tienes un objeto cerca por delante, entonces la máquina frena, no hay inteligencia ahí.

No una máquina no puede decir 4, 48, 36. Necesita un input de donde sacarlo. No puede inventarse un número.
#62 Cuando una máquina se comunica con una persona verbalmente solo está procesando los sonidos mediante una red neuronal con la que ha practicado cientos de miles de veces para obtener datos discretos y contestar una opción previamente programada, no hay inteligencia ahí.

Cuando una persona se comunica con otra persona verbalmente solo está procesando los sonidos mediante una red neuronal con la que ha practicado cientos de miles de veces para obtener datos discretos y contestar una…   » ver todo el comentario
#64 Lo que quieres decir es que cuando yo digo 84 es porque estoy teniendo un input de algún lado como lo tiene una máquina de un sensor de temperatura o de presión.

Lo que estás diciendo es que yo no he escogido el 84 sino que ha sido un proceso de inputs a lo largo de mi vida que me ha llevado irremediablemente a elegir el 84. Estás diciendo que no existe el libre albedrío y que todas las decisiones y pensamientos que tenemos están predestinados por cada uno de los succesos que vivimos.…   » ver todo el comentario
#67 Todo eso estás diciendo al afirmar que un humano obtiene un número aleatorio igual que una máquina y eso, amigo mío, no lo puedes demostrar.

Recuerdo haber visto en un documental un experimento con una persona que por un accidente había perdido la capacidad de almacenar la memoria a corto plazo pero tenía intacta la memoria a largo plazo. Reconocía a sus familiares pero no podía recordar ninguna charla con éstos tras el accidente.

En este caso si el familiar entra por la puerta y…   » ver todo el comentario
#70 Pff eso que afirmas por que lo viste en un documental cógelo con pinzas porque no hay estudios sobre ello (Bueno hay muchos, pero no se ha podido demostrar) decir que las personas somos deterministas es una afirmación extraordinaria que requiere evidencias extraordinarias ni los más grandes físicos se atreven a decir tal cosa.

Ya no hablamos del ser humano sino del universo, ¿Es determinista?

es.wikipedia.org/wiki/Determinismo_científico

No intentemos dar por hecho cosas que no se han demostrado. Lo que si sabemos a ciencia cierta es que las máquinas son deterministas. ¿El Ser humano? ¿El universo? Quizás, pero ni tu ni yo lo sabremos jamás.
#72 Cualquier sistema determinista suficientemente complejo a efectos prácticos es indistinguible de uno que no sea determinista.

Y precisamente el resultado del deep learning es consecuencia de un alto nivel de complejidad.
#73 Es indistinguible, cierto es. Como lo son los generadores de números pseudoaleatorios que son indistingibles de un número aleatorio en la práctica, peeero por mucha complejidad que haya el sistema sigue siendo determinista y en mismas condiciones actuará exactamente igual y se pueden saber todos sus comportamientos futuros. Por tanto no podría resolver problemas NUEVOS.
#74 sigue siendo determinista y en mismas condiciones actuará exactamente igual

Basta con que aprenda de todo lo que le ocurre para que sea literalmente imposible que se den las mismas condiciones (la maquina forma parte de las condiciones).

Por tanto no podría resolver problemas NUEVOS.

Los problemas nuevos son condiciones distintas, es irrelevante que sea determinista para resolver problemas nuevos.
#75 Eso de que los problemas nuevos son condiciones distintas te lo sacas de la manga.
#76 Si es nuevo no son condiciones que ya se hayan producido. O es nuevo o es una repetición, no puede ser ambas cosas.
#77 Y si es nuevo la IA determinista de la que se saben todos sus resultados porque cumple unos algoritmos y se saben cuales pueden ser sus entradas de datos si de repente aparece una nueva entrada de datos (algun tipo de señal no conocido o lo que sea) que la IA no es capaz de procesar no puede adaptarse a ese medio y resolver ese nuevo problema porque al ser determinista ya se conoce su comportamiento y no se puede tener saber un comportamiento de algo que no sabes que es.

Me voy a dormir. Buena charla, saludos.
#78 si de repente aparece una nueva entrada de datos (algun tipo de señal no conocido o lo que sea)

Las personas tampoco podemos reaccionar a tipos de señales que no nos aparecen como entrada de datos. Por ejemplo no podemos reaccionar a un incremento de radiación en el espectro infrarojo. Tampoco a un incremento de radiación ionizante, la cual puede incluso matarnos. Ni siquiera podemos reaccionar a un vehículo silencioso que se nos acerque por atrás (o sin ser silencioso si tenemos…   » ver todo el comentario
#41 Sobre todo los programadores como #78 que se fumaron la clase de algoritmos geneticos pero van sentando catedra por ahi.
#72 En qué te basas para decir que un ser humano es capaz de generar un numero totalmente aleatorio a partir de ninguna entrada?
No somos los seres vivos, básicamente, máquinas biológicas?
Si tomamos un ser vivo suficientemente simple, como una ameba, no crees que podríamos con un programa suficientemente complejo simular y predecir al 100% las reacciones de la ameba a su entorno? Yo creo que la respuesta es sí.
De la ameba a un hongo solo aumenta el orden de complejidad. Pero nada…   » ver todo el comentario
#92 Tú crees tú mismo lo has dicho. Realmente no lo sabemos.
#67 Habrá información arbitraria, pero acaso los seres vivos no obedecemos a una programación que se ha ido desarrollando desde hace millones de años? Acaso nuestros sistemas biológicos no están programados para realizar procesos en segundo plano?
El determinismo quizá sea una postura bastante radical, pero quizá sea cierta y cobre sentido en una dimensión superior. Quién sabe...
#67 PD: 84 no será el año q naciste verdad? xD
#26 El dia que las maquinas piensen, tendras compañeros IA, pero no acabaras cpn la capacidad ilimitada de la imaginacion, que es la base de la ingeniería.
#22 Dejas claro que no sabes lo que es ingeniería del software y lo que es machine learning/deep learning. El primero es exacto, el segundo es estocástico.
#32 Los programadores son estocásticos, es a éstos a los que sustituiría el deep learning.
#11 No seremos los últimos pero mientras está el mundo como está somos imprescindibles. Cuando ya luchemos con palos y piedras en la cuarta guerra mundial a lo mejor no tanto.
#11 Los políticos son y serán las cucarachas de los empleos.
#2 No me parece una profesión muy comparable.
#12 Ambos, líderes en su sector.
#14 El trabajo de un programador puede escalar muchísimo más...
#2 Que Gilipollez
#13 Tú, desarrollador en Java ¿no?
#37 Y tu, ¿a qué te dedicas, o qué has estudiado?
#37 Hace mucho, también de .NET y últimamente sobre todo en PHP con un poco JavaScript. También he sido DBA y administrador/consultor de la base de datos de marketing, aunque mi especialidad son los sistemas de información geográfico entorno en el que he sido jefe de proyecto y consultor.
Además de rotunda gilipollez, menospreciar el trabajo de "bajo nivel" es propio de pobres de espíritu que no valoran el trabajo, que indica básicamente que no has hecho nada de valor en tu triste vida. El trabajo de un buen tornero fresador en los 60 era fundamental, igual de fundamental, importante y necesario que el de un buen programador.
#99 Eso he dicho.
#2 Aires? Los programadores? Somos más de cosas como lo que pego debajo que de darnos aires.

Informático vs puta
1. Trabajas en horas extrañas. ¡Como las putas!.
2. Te pagan para mantener al cliente feliz. ¡Como las putas!.
3. El cliente paga mucho más pero tu jefe se queda con casi todo el dinero. ¡Como las putas!.
4. Cobras por hora pero tu tiempo se extiende hasta que termines. ¡Como las putas!.
5. Te recompensan por satisfacer las fantasías de tus clientes. ¡Como las putas!.
6. Es difícil…   » ver todo el comentario
#25 ¿Y qué vengo diciendo?
#2 ¿Perdona? Tu has programado en Basic, Turbo Pascal dos chorradas y piensas que con un framework o con un entorno como unity lo tienes hecho. ¿No?
#2 A mi hace años se me abrieron los ojos cuando vi un documental de la industria cuando las máquinas de vapor.

Y en aquel tiempo todo lo relacionado con el vapor eran maquina de la empresa tal con X características, maquina de empresa cuál con Y características...no había ingeniería o ciencia.

Y hoy estamos en informática igual, el producto blabla, o el producto bleble...por eso pienso que el software libre es lo que más acerca a ingeniera esta rama.
#49 Que no hay ingeniería de software? Se te ve conocedor del tema xD
#95 Pues salvo bare metal y gente de ese palo o cosas de otros tiempos, ahora la gente usa productos...

...o no recuerdas el pifostio que se montó con nodejs hace 2 años o así por el tema de que había un paquete npm que implementaba un trim y estaba en miles de paquetes.
#2 Se te ha olvidado el otro mantra hater: la IA nos quitará el trabajo, uuuh.
A programar, por ejemplo :-)
A trabajar por comida y agua.
El control de versiones vale para todo, si la gente lo entendiese... Hasta para el cv..
Test Unitarios, ¿Qué es eso? ¿Se come? xD xD xD
#9 Es Pez unitario
#9 Los Test Unitarios son los padres
#17 De los bugs :-D
A echar horas y ver mujeres por la tele. Que aprendan.
Los tests unitarios no se me ocurre como usarlos para una tesis, por ejemplo, pero el control de versiones yo ya he llegado a utilizarlo en documentos.
¿Para cuando un nobel para Linus Torvalds por sus aportes a la humanidad?
#40 Si acaso a Richard Stallman que es el que puso las piedras para que comenzará todo el tema del software libre.
#55 Linus desarrolló git la herramienta que se menciona explícitamente en el meneo.

Si por mi fuera habría que darle uno también a Dennis Ritchie y a Ken Thompson.
Amén a todo, me quedé :ffu: con lo de test unitario pero es algo que uno implementa de forma natural.

Lo impresionante es que a pesar de la complejidad que puede llegar a tener un artículo y el número de pezuñas que meten mano ahí, la herramienta preferida y más extendida es el puto word de office. Sí.
#53 cosa que no entiendo y jamás entenderé. Los procesadores de texto del tipo Word me dan cáncer.

Están diseñados para torpes. Gente que no tiene ni idea de maquetar un documento.

Así que el Word está todo el rato intentando predecir lo que quiere hacer el usuario sin que este lo especifique.

A mí me saca de quicio cuando estima oportuno cambiarme el formato, indentado, desajustado las imágenes, tablas... Con comportamientos poco predecibles creados para que un novato en lenguaje informático pueda apañarse y un experto se vuelva loco.
#69 Veeeenga, escúpelo que lo estás deseando... xD
#86 Pues prefiero mil veces usar Markdown. :-D
#61HTML es un lenguaje que solo sirve para estructurar contenido (maquetar) y CSS para dotar de estilo a ese contenido maquetado.

Por lo que lo llamaría lenguaje de maquetación y lenguaje de estilo, respectivamente... o algo así.
Qué despreciada es la palabra "ingeniero" en la actualidad. No solo en informática, pero especialmente en informática.

Ingeniero es aquel que tiene un título de ingeniero. Luego puede trabajar de muchas cosas.
Un físico puede trabajar como programador pero ¿autoproclamarse ingeniero? La ingeniería es mucho más que hacer test unitarios y usar un control de versiones.
Igual que un ingeniero puede trabajar como investigador pero nunca le verás decir que es físico. Porque físico es aquel que tiene una licenciatura en física.

Lamentablemente vemos como cualquiera que tire dos líneas de código ya dice que es ingeniero, desde físicos a maestros. Y algunos lo hacen mejor que un ingeniero, claro que sí, pero eso no les convierte en uno.
#84 esto es España, si logras arrancar un Windows ya eres ingeniero :wall:
Los programadores dominaremos el mundo
#90 y los de letras escribiran como lo hacemos
Pelín condescendiente... Sabéis que los programadores también son personas y también pueden enseñar muchas cosas sin que las traduzca un "científico" que se hace "ingeniero" en un plis :palm:
«12
comentarios cerrados

menéame