Cita:
Iniciado por NUCKLEAR
Es una verdadera falacia que hasta ahora nadie ha podido rebatir con pruebas concretas y contundentes.
No sé cómo responder a esto. Hasta donde yo sabía, era la norma: te sentás delante de un lenguaje nuevo una tarde, te proponés "voy a programar tal cosa" (un Tetris, una agenda, etcétera) y para cuando llega la madrugada, tenés el programa funcionando, y ya te das una idea clarísima de la sintaxis del lenguaje.
No me malinterpretes: existe un universo de diferencia entre un experto con diez años de experiencia en un lenguaje en particular, y un novatote que tiene que buscar en Google el orden de los parámetros de cada función que usa. Un experto en un lenguaje programa mucho más rápido, y su código es mucho más eficiente, elegante y estable. Eso no se lo quita nadie. La experiencia es rey.
Ahora bien, que un programador se enfrente a un lenguaje completamente nuevo, e inmediatamente se ponga a escribir programas... No sé, me parece lo más natural del mundo. A menos de que te estés enfrentando a un paradigma dramáticamente distinto (venís de Visual Basic y te sientan delante de LISP), el 99% de lo que aprendiste en un lenguaje es aplicable a otro: clases y objetos, eventos, expresiones regulares... La lógica misma de la programación... Una vez que sabés un lenguaje, los demás (dentro del mismo paradigma) son herramientas muy similares para problemas casi idénticos. Buscás en Google cómo se llama la función que estás buscando, le pegás una leída a la sintaxis en 30 segundos, y listo. Si te trabás en un concepto en particular (onda acceder a bases de datos), leer un tutorial son entre cinco y veinte minutos.
Seguro que tu código no va a ser una obra de arte; en esto estamos de acuerdo. Va a ser bastante feo. Pero es un programa, y compila, y hace lo que necesitabas que hiciera. Sería muy injusto decir que eso no es programar. Y es común que ese proceso de aprendizaje transcurra a lo largo de una tarde larga.
A lo mejor mi problema es que vengo de lenguajes de nivel extremadamente alto, y relativamente parecidos entre sí (PHP, JavaScript, ASP.NET y AS/AIR para web, y Python, Pascal/Delphi y diversos gustos Basic para escritorio) y existe todo un mundo de lenguajes que son dramáticamente diferentes y complicados. Es muy posible que si tuviera que programar en C me explotara la cabeza (nunca toqué C). En ese sentido te doy la razón: si te ponen delante de un paradigma que no conocés, la cosa cambia mucho.
Cita:
Iniciado por NUCKLEAR
Es comparable con que digas que saber hablar español entonces hablar Alemán, chino o Ruso es algo trivial.
No me parece una comparación ni remotamente válida.
Los lenguajes de programación tienen una sintaxis muy estricta. Una clase se declara de una forma, y si lo hacés de otra, el programa no compila. Y averiguar cómo se declara son 30 segundos en Google. Un idioma tiene un nivel de ambigüedad sobrecogedor: podés decir lo mismo de una cantidad casi infinita de formas dramáticamente diferentes: "Hola", "¡Qué gusto verte!", "¿Qué cuenta mi gran amigo y colega?", etcétera.
Además, los lenguajes de programación usan palabras en inglés, con caracteres latinos. Uno puede no saber nada de PHP, pero no es difícil darse cuenta de que str_replace tiene algo que ver con cadenas de texto, y reemplazar una cosa por otra. Esa lógica difícilmente puedas aplicarla al ruso.
Además, los lenguajes de programación son constructos diseñados a conciencia, con la simplicidad y la practicidad en mente. Si la función Math.sin() es el seno, sería muy raro que Math.cosin() no sea el coseno. En cambio, en alemán "menos" se dice "minus", pero "más" ciertamente no se dice "masus".
No me parece que se puedan hacer muchos paralelos entre un aprender un lenguaje de programación y aprender un idioma. Una comparación menos descabellada sería comparar técnicas de pintura. Si nunca pintaste, aprender a hacerlo requiere muchísimo esfuerzo. Pero si sos un pintor experimentado, pasar de las témperas a los óleos conlleva relativamente pocos obstáculos, en comparación con lo que ya sabés: teoría del color, perspectiva, luces y sombras, sentido de la estética, etcétera.