Javascript se consolida como el lenguaje de programación más popular de los últimos años. En la encuesta a 71.000 desarrolladores de 100 países llevada a cabo por HackerRank, el 71% dominan Java, y el 73% Javascript, por lo que puede decirse que es el lenguaje de programación más popular de 2018. Curiosamente, solo el 42% de los estudiantes de informática lo dominan, indicando que es un lenguaje que se aprende en el trabajo, no en la Universidad.
#6:
#1 La unica manera de aprender a programar es programando. Si quieres que no se pierdan cuando les sacas de su lenguaje de programación entonces enseñale diferentes lenguajes y muy diferentes.
#1:
En la universidad no se debería de enseñar ningún lenguaje de programación, sino que se debería de enseñar a programar en si, después te encuentas a gente que le sacas de su lenguaje de programación y están perdidos.
#50:
#c-11" class="content-link" style="color: rgb(, , )" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment//order/11">#11 el pseudocódigo es un cáncer. La algoritmia es la misma, la programes en C, Java o pseudocódigo, con la diferencia que el último no es tangible.
#1 Da igual cómo te lo plantees: es imposible que una persona sepa mil lenguajes de programación en cuatro años de universidad. Además es innecesario. Por no hablar que en la universidad casi que lo que menos se hace es programar.
Por más que nos desviemos, hay lenguajes clave de los que derivan los conceptos de la mayoria del resto y son los que deben de enseñarse. Una persona que domine C y Java, en ua cuantas horas estará pilotando en php, .net, C#, javascript,... sin más ayuda que la documentación de soporte.
#43:
#1#3#5 No sólo en las ingenierías informáticas.
A mi en industriales me enseñaron C, y cuando le preguntamos al profesor que por qué ese y no otro nos dijo que con C y entendiendo pseudocódigo nos podían enseñar los fundamentos y la estructuración para poder luego programar en lo que nos tocase (si nos tocaba)
Y razón no le faltaba, porque a día de hoy a mi me ha tocado picar código en 3 o 4 lenguajes diferentes, y como dice #6, sólo programando se aprende a programar
#77:
#43 estoy totalmente en desacuerdo. Yo enseñaria C++, por ser programación orientada a objetos y heredar toda la mierda o gloria (segun se vea) de C.
Creo que es un lenguaje que te ayuda sobremanera a entender luego cualquier otro lenguaje porque abarca cosas de muy bajo nivel y cosas de alto nivel.
Si solo te enseñan C, no sabes nada de objetos y por tanto para mi, aun no has aprendido nada de programación y te va a costar muchismo cualquier otra cosa que no sean lenguajes para maquinas herramientas rudimentarios o cosas muy muy específicas.
#24:
#1 Pues malos estudiantes. Si aprendes un lenguaje entrar en otro es sumamente fácil, quien no lo consigue probablemente sea porque la programación no es lo suyo o no ha aprendido bien, muchos se limitan al corta y pega y poco más.
En el fondo la programación que se usa habitualmente es imperativa y de un lenguaje a otro no hay tanto cambio, lo básico, lo elemental se repite de un lenguaje a otro. Pueden cambiar la sintaxis, ser más o menos estrictos, con más menos instrucciones y estructuras (que si no existe en un lenguaje se pueden reconstruir con lo que hay)... En fin aprendido uno pre-aprendidos todos.
#13:
#11 no creo que sea buena idea. Pseudocódigo para aprender y para empezar está bien, pero con pseudocódigo no puedes hacer pruebas reales, no lo puedes ejecutar, no puedes comprobar la sintaxis automáticamente... hay un tipo de práctica que necesariamente se debe hacer en entornos reales.
#36:
#1 A ver cómo enseñas tú mecánica sin dejar a los chavales y chavalas practicar con un motor de verdad.
Pues lo mismo con la programación: si bien es cierto que hay que enseñar unas bases muy sólidas, si no practican con lenguajes reales, estas no les servirán de nada.
#86:
#77"Si solo te enseñan C, no sabes nada de objetos y por tanto para mi, aun no has aprendido nada de programación"
#37:
#c-11" class="content-link" style="color: rgb(, , )" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment//order/11">#11 Pues en Grado Superior de Informática de Programación, al menos en Zamora, lo primero que te enseñan es pseudocódigo, y una vez lo dominas casi a la perfección, te muestran el primer lenguaje de programación (Java o C#) y te dicen entonces: "Como podéis observar, este lenguaje usa atajos y órdenes que aglutinan varias palabras (e incluso líneas enteras) en una sola. Sí, podríamos haberos enseñado directamente a través del lenguaje este, y así ahorraros el tener que pensar por vosotros mismos cómo funcionan los lenguajes de programación; pero preferimos enseñaros así porque sí, a día de hoy el lenguaje más utilizado es Java, pero mañana puede ser cualquier otro, incluso alguno que aún no exista todavía... y sólo sabiendo pseudocódigo podemos estar seguros, tanto nosotros como vosotros, que ese lenguaje del futuro no será un muro infranqueable, sino otra forma de representación con atajos y aglutinantes varios".
#47:
#1 Eso es una perdida de tiempo. Quieres aprender Programación Orientada a Objetos? Aprendes con un lenguaje como java. Quieres aprender programación funcional? Haskell, etc
Programar es mucho mas que la sintaxis y las estructuras de control. Tienes que aprender a hacer debug, a extender, testear, etc.
Todo eso no se puede aprender con pseudocodigo.
Otra cosa diferente es que en algunos sitios te enseñen un lenguaje (sintaxis) y no a programar, pero eso es un problema de la metodologia y no de enseñar sobre un lenguaje en lugar de usar pseudocodigo.
#7:
#1 Pero entonces todos lloran diciendo que les han enseñado a programar en Pascal/ADA/Modula y que eso no sirve para nada y la universidad está desconectada de la sociedad y que mi vecino aprendió a programar con fascículos y ahora cobra 5.000 eur al mes.
#80:
Cada linea en Javascript se convierte en legacy code justo después del Enter.
#11:
#c-6" class="content-link" style="color: rgb(, , )" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment//order/6">#6 o pseudocódigo, sin una sintaxis establecida, así cuando vaya a programar en php, java, c#, c++ se dará cuenta que realmente todo es lo mismo cambiando un poco la sintaxi. Yo tenía un profesor que cuando le preguntábamos que hacía tal o cual función nos respondía: "Acaso crees que yo soy un manual con patas", y después miraba el código y con un vistazo te decía que estaba bien o mal.
#12:
#10 Ya, por eso el nivel de lloros sobre el "lenguaje de mierda que enseñan en la uni, que no lo conoce ni el tato" sería un buen filtro para diferenciar entre los buenos profesionales y los que son un poco paquetes.
#1 La unica manera de aprender a programar es programando. Si quieres que no se pierdan cuando les sacas de su lenguaje de programación entonces enseñale diferentes lenguajes y muy diferentes.
En la universidad no se debería de enseñar ningún lenguaje de programación, sino que se debería de enseñar a programar en si, después te encuentas a gente que le sacas de su lenguaje de programación y están perdidos.
#1 Pero entonces todos lloran diciendo que les han enseñado a programar en Pascal/ADA/Modula y que eso no sirve para nada y la universidad está desconectada de la sociedad y que mi vecino aprendió a programar con fascículos y ahora cobra 5.000 eur al mes.
#11 no creo que sea buena idea. Pseudocódigo para aprender y para empezar está bien, pero con pseudocódigo no puedes hacer pruebas reales, no lo puedes ejecutar, no puedes comprobar la sintaxis automáticamente... hay un tipo de práctica que necesariamente se debe hacer en entornos reales.
#c-11" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3075356/order/11">#11 el pseudocódigo es un cáncer. La algoritmia es la misma, la programes en C, Java o pseudocódigo, con la diferencia que el último no es tangible.
#1 Da igual cómo te lo plantees: es imposible que una persona sepa mil lenguajes de programación en cuatro años de universidad. Además es innecesario. Por no hablar que en la universidad casi que lo que menos se hace es programar.
Por más que nos desviemos, hay lenguajes clave de los que derivan los conceptos de la mayoria del resto y son los que deben de enseñarse. Una persona que domine C y Java, en ua cuantas horas estará pilotando en php, .net, C#, javascript,... sin más ayuda que la documentación de soporte.
#1 Pues malos estudiantes. Si aprendes un lenguaje entrar en otro es sumamente fácil, quien no lo consigue probablemente sea porque la programación no es lo suyo o no ha aprendido bien, muchos se limitan al corta y pega y poco más.
En el fondo la programación que se usa habitualmente es imperativa y de un lenguaje a otro no hay tanto cambio, lo básico, lo elemental se repite de un lenguaje a otro. Pueden cambiar la sintaxis, ser más o menos estrictos, con más menos instrucciones y estructuras (que si no existe en un lenguaje se pueden reconstruir con lo que hay)... En fin aprendido uno pre-aprendidos todos.
#1#3#5 No sólo en las ingenierías informáticas.
A mi en industriales me enseñaron C, y cuando le preguntamos al profesor que por qué ese y no otro nos dijo que con C y entendiendo pseudocódigo nos podían enseñar los fundamentos y la estructuración para poder luego programar en lo que nos tocase (si nos tocaba)
Y razón no le faltaba, porque a día de hoy a mi me ha tocado picar código en 3 o 4 lenguajes diferentes, y como dice #6, sólo programando se aprende a programar
#10 Ya, por eso el nivel de lloros sobre el "lenguaje de mierda que enseñan en la uni, que no lo conoce ni el tato" sería un buen filtro para diferenciar entre los buenos profesionales y los que son un poco paquetes.
#1 A ver cómo enseñas tú mecánica sin dejar a los chavales y chavalas practicar con un motor de verdad.
Pues lo mismo con la programación: si bien es cierto que hay que enseñar unas bases muy sólidas, si no practican con lenguajes reales, estas no les servirán de nada.
#c-6" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3075356/order/6">#6 o pseudocódigo, sin una sintaxis establecida, así cuando vaya a programar en php, java, c#, c++ se dará cuenta que realmente todo es lo mismo cambiando un poco la sintaxi. Yo tenía un profesor que cuando le preguntábamos que hacía tal o cual función nos respondía: "Acaso crees que yo soy un manual con patas", y después miraba el código y con un vistazo te decía que estaba bien o mal.
#c-11" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3075356/order/11">#11 Pues en Grado Superior de Informática de Programación, al menos en Zamora, lo primero que te enseñan es pseudocódigo, y una vez lo dominas casi a la perfección, te muestran el primer lenguaje de programación (Java o C#) y te dicen entonces: "Como podéis observar, este lenguaje usa atajos y órdenes que aglutinan varias palabras (e incluso líneas enteras) en una sola. Sí, podríamos haberos enseñado directamente a través del lenguaje este, y así ahorraros el tener que pensar por vosotros mismos cómo funcionan los lenguajes de programación; pero preferimos enseñaros así porque sí, a día de hoy el lenguaje más utilizado es Java, pero mañana puede ser cualquier otro, incluso alguno que aún no exista todavía... y sólo sabiendo pseudocódigo podemos estar seguros, tanto nosotros como vosotros, que ese lenguaje del futuro no será un muro infranqueable, sino otra forma de representación con atajos y aglutinantes varios".
#1 Eso es una perdida de tiempo. Quieres aprender Programación Orientada a Objetos? Aprendes con un lenguaje como java. Quieres aprender programación funcional? Haskell, etc
Programar es mucho mas que la sintaxis y las estructuras de control. Tienes que aprender a hacer debug, a extender, testear, etc.
Todo eso no se puede aprender con pseudocodigo.
Otra cosa diferente es que en algunos sitios te enseñen un lenguaje (sintaxis) y no a programar, pero eso es un problema de la metodologia y no de enseñar sobre un lenguaje en lugar de usar pseudocodigo.
#16 yo también aprendí así, pero me parece un método bastante ineficiente. En primer lugar porque se traslada una parte importante del aprendizaje a "la casa", que lo haga el alumno por su cuenta, desaprovechando recursos y conocimientos de las instituciones; y en segudo lugar porque ese aprendizaje "en casa" tampoco lo evalúa el profesor.
De todas formas creo que una cosa no debe quitar la otra, practicar con un lenguaje concreto no debería suponer limitarse a ese lenguaje y su paradigma y estilo.
#3 En mi universidad igual [obviamente en la ingeniería informática], nos enseñaban pseudocódigo, después en algunas asignaturas, en las prácticas debías de programar en un lenguaje que normalmente se la soplaba al profesor [yo utilizaba java o c++]. Es que eso me hacía muy versátil, ya que aprendía a programar cualquier lenguaje, o incluso arreglar problemas con código fuente de otro lenguaje en poco tiempo... hasta que ví PHP en 2006 y dije "Que horror de lenguaje", aunque lo programé sin problemas.
#43 estoy totalmente en desacuerdo. Yo enseñaria C++, por ser programación orientada a objetos y heredar toda la mierda o gloria (segun se vea) de C.
Creo que es un lenguaje que te ayuda sobremanera a entender luego cualquier otro lenguaje porque abarca cosas de muy bajo nivel y cosas de alto nivel.
Si solo te enseñan C, no sabes nada de objetos y por tanto para mi, aun no has aprendido nada de programación y te va a costar muchismo cualquier otra cosa que no sean lenguajes para maquinas herramientas rudimentarios o cosas muy muy específicas.
#77 La orientación a objetos es importante, pero en un ámbito más avanzado de la programación. Programación 2, o 3. Es mucho mas importante enseñar la estructura básica de los lenguajes (tipos nativos, bucles, sentencias condicionales, estructuras, punteros... y sobre todo algoritmia). Si tienes una base de todo eso, ya puedes entender que significa public void static main (Object[]) que lleva el hola mundo de un lenguaje orientado a objetos como Java.
Dudo mucho que el 73% de programadores de Javascript "dominen" Javascript. Es un lenguaje que parece una cosa (un lenguajillo sencillo con sintaxis tipo C), pero que es una bestia parda, que se parece más a un lenguaje funcional que a un C++/Java. Por no hablar de cómo ha evolucionado en los últimos años, y todas las filigranas que soporta hoy día.
#44 eso es muy de java en los 90. Hay un compilador JIT que traduce al código máquina en tiempo de carga que aporta que no haya que compilar en cada S.O. como habría que hacer en un compilador tradicional. El único código máquina que es "tú código" es el que escribas en assembler o en hexadecimal pero no están hablando de eso.
#13#14 Claro que sí, el pseudocódigo no se ejecuta, después el estudiante de la ingeniería tenía que irse a su casa o a la sala de prácticas, y poner en práctica eso que había aprendido, con el lenguaje de programación que más le gustara. Yo aprendí así, dándome hostias con los compiladores, entiendo cual era el mejor lenguaje de programación para cada caso, aprendiendo sintaxis en las bibliotecas [en aquel entonces no existía ni StackOverflow, ni tutoriales online de lenguajes, y faltaban años para que apareciera Youtube por primera vez], si llega un profesor y te dice lo que tienes que aprender, estás realmente jodido. En la universidad deberían de preparar a la gente para ser ingenieros, para ver los procesos por encima, para enseñarles como evaluar un sistema u otro y él después en su casa, aprende a programar lo que desea. Yo, como te digo, aprendí así, y no me arrepiento para nada, he aprendido un motón de lenguajes de programación porque tengo una base no especializada en un lenguaje, sino que sé como funcionan en general.
#1 Eso lo hacían, porque ahora mismo no lo sé... en la U.P.M en los exintos planes de Ingeniería Informática, gracias a eso te podías defender en cualquier lenguaje con tan sólo mirar la sintaxis.
#25 Java se convierte a un lenguaje de una máquina, y esa máquina es la JVM. Que no sea práctico tener una implementación física de la JVM no quiere decir que su lenguaje no sea "lenguaje máquina", igual que el código máquina de ARM no deja de serlo porque lo ejecutes en un emulador sobre x64.
#125 Es que no capturar en una llamada al server las excepciones tiene delito. Insisto en que cada cosa en su sitio. Yo concretamente prefiero que el lenguaje me deje a mi aire a que me esté todo el rato molestando con lo que supone que es lo correcto. No hay que confundir lenguaje "profesional/adulto" con paternalista. Por ejemplo Python no tiene sistema de atributos publico/privado y en palabras del creador "Aquí todos somos adultos y sabemos que se puede tocar" https://mail.python.org/pipermail/tutor/2003-October/025932.html
Otra cosa en Java son los frameworks, que siempre he tenido la sensación de que potencian la densidad intriseca de Java. Yo he usado Vertx para microservicios con MongoDB (y mucho antes JSF con Hibernate pero no para microservicios) y no vuelvo a tocar eso ni con el palo de Goku, funciona, pero vaya coñazo. https://geekandpoke.typepad.com/.a/6a00d8341d3df553ef01901c96dd1d970b-pi
#1 No estoy de acuerdo.
Yo estudié Cobol en los años 70 y posteriormente me sirvió de base para estudiar otros lenguajes.
Compilaba en tarjeta perforada y eso no fue impedimento para entender el funcionamiento en soporte magnético ni óptico.
#1 No son cosas incompatibles. En la universidad hay clases teóricas y prácticas. En las primeras se puede enseñar a programar en pseudo código y en las segundas se pueden aplicar los conocimientos teóricos a un caso práctico "real".
Así es como mejor se aprende, de hecho. Y así es como se suele hacer.
Mierda, otra vez que llego tarde a decir que javascript es una puta mierda y que lo que mola es el lenguaje que salió ayer por la tarde que solo conozco yo y mis tres amigos imaginarios.
#64 No nos engañemos ... a trabajar se aprende trabajando. Ni Fp, ni universidad, ni autodidactas. Los profesores de FP, igual que los de la Uni no tienen pq haber trabajado como programadores en su vida, ni estar al dia de las ultimas tendencias en buenas practicas, o que tecnologias son mejores para este o este otro problema. Eso se aprende siendo un profesional, ejerciendo la profesion, y estableciendo rutinas de renovacion continua para no quedarse estancado.
Puedes tener suerte y que te toque un buen profesor, pero no se puede generalizar "FP es mejor o es peor" ... he trabajado con muchos FPs y, en general, el nivel con el que salen no es profesional ni se le acerca.
En cualquier caso habría que ver que significa "programar mejor" o "programar bien" ... pq conocer un lenguaje no es saber programar ... y la cantidad de tiempo dedicado a la comprension de las estructuras de datos, a la comprension de la gestion de la memoria, al funcionamiento de los compiladores, a la algoritmia, al algebra (q es basico para BBDDs), ... pues podemos decir lo que sea pero no es el mismo en un FP que en la universidad.
¿Es necesario entender el funcionamiento de los arboles binarios balanceados para ser un buen programador? ... pues si quieres entender y predecir ciertos comportamiento y problemas en tus bases de datos es bastante conveniente.
#30 Ya, yo lo que digo es que es un problema exclusivamente de las empresas, concretamente de las empresas malas. No me parece que sea un problema ni de la universidad ni de la sociedad en general, ni que haya que hacer algo al respecto para proteger a las pobrecitas empresas que no se saben gestionar
#35#32 Digamos que al lenguaje máquina de una máquina / arquitectura sintética.
Pasa como con el CLR de .NET.
Tienes incluso traductores a ensamblador y ensambladores de esa arquitectura.
Hace muchos años, cuando todavía existía SUN, había rumores de que querían sacar "chips Java", esto es, procesadores que implementaban en hardware físico esa arquitectura.
#11 El pseudocódigo no se ejecuta. Es como aprender ofimaica haciendo dibujitos de que botón apretar.
Python o javascript ya son practicamente pseudocódigo, con la ventaja que lo puedes probar directamente
#64 No se a que universidad habrás ido, pero en la mía programabamos un monton. Desde las asignaturas de fundamentos de programacion (anual), en el primer cuatrimestre veíamos mucho pseudocódigo y pascal, en el segundo cuatrimestre todo pascal, laboratorio de programacion 1 (pascal) y 2 (c y c++), talf (programar un compilador de un lenguaje ficticio sencillito en c) , programacion concurrente (java), sistemas operativos (bash), bases de datos (sql), ensamblador 8086 (el juego de la vida, nunca se me olvidará) en fundamentos y estructuras de computadores, algunas más que eran optativas y otras que no recuerdo, eso si, recuerdo que las practicas eran implementar arboles b y demas estructuras de ese estilo.
Todas ellas tenían su parte teórica por la mañana y su parte practica por la tarde, mucho curro.
#92 Lo adulto es dejarme lanzar excepciones cuando me salga de las narices y no obligarme por que sí. Java es un lenguaje molestamente ceremonioso.
Es imposible seguir guías sin usar un IDE completo (monstruoso) por que se supone como algo ya totalmente intrínseco al uso de Java.
Java se usa por que va muy bien para tener a mucha gente controlada y que te salga código "fácil" de mantener, de ahí su uso en gran empresa. Pero si quieres ser ágil es una peste.
A mí javascript me encanta y si sabes usarlo quedan unos flujos asíncronos preciosos. Entiendo que no es el lenguaje adecuado para un novato que tiene que ser medianamente productivo, pero eso no significa que no sea "adulto".
#16 El pseudocódigo iba bien cuando el acceso al ordenador estaba muy restringido. Ya no es el caso. Todo el mundo tiene un ordenador y puedes hacer todas las pruebas que quieras.
#12 yo he hecho ambos, (fp y uni) y no solo he aprendido a programar mejor en la fp, en la que se dedicaba más tiempo a programar y menos a diapositivas, sino que hay gente que sale de la carrera sin saber diferenciar bien c de c++.
#14 Claro que sí, el pseudocódigo no se ejecuta, después el estudiante de la ingeniería tenía que irse a su casa o a la sala de prácticas, y poner en práctica eso que había aprendido, con el lenguaje de programación que más le gustara. Yo aprendí así, dándome hostias con los compiladores, entiendo cual era el mejor lenguaje de programación para cada caso, aprendiendo sintaxis en las bibliotecas [en aquel entonces no existía ni StackOverflow, ni tutoriales online de lenguajes, y faltaban años para que apareciera Youtube por primera vez], si llega un profesor y te dice lo que tienes que aprender, estás realmente jodido. En la universidad deberían de preparar a la gente para ser ingenieros, para ver los procesos por encima, para enseñarles como evaluar un sistema u otro y él después en su casa, aprende a programar lo que desea. Yo, como te digo, aprendí así, y no me arrepiento para nada, he aprendido un motón de lenguajes de programación porque tengo una base no especializada en un lenguaje, sino que sé como funcionan en general.
#35 En realidad es así como se compila hoy en día cualquier cosa. Tanto GCC como LLVM compilan cualquier lenguaje a una especie de "ensamblador genérico", con infinitos registros y demás, y luego sobre ese ensamblador aplican optimizaciones y sólo al final eso se convierte en código máquina "de verdad" para el procesador concreto que tengas, pero se trata de un paso interno. En el caso de Java, en lugar de darte el fuente o el binario final, te dan el "ensamblador genérico" intermedio, y luego tú lo conviertes al código máquina final con un compilador JIT.
#64 No estoy diciendo que la FP sea peor ni mucho menos, de hecho es verdad que igual aprendes mejor a programar en una FP que en la carrera, que se orienta (además de a programar) a otras cosas que no son programación. Yo hablaba más bien de autodidactas que se venden como expertos en el lenguaje tal a partir de cuatro vídeos de Youtube o unos fascículos. Esos sí que tienen mucho peligro.
Pero bueno, que hablo en términos generales, hay autodidactas que son los putos amos, universitarios que son unos patanes totales y todos los puntos medios que quieras. Pero estadísticamente unos son más escasos que otros.
#2 creo que es uno de los que más estan creciendo en popularidad dado el crecimiento de ML y que no está siendo usado solo por programadores, sino por data scientists, cientificos, estadistas, matematicos, etc. En SO veo muchas preguntas sobre Python, pero muy especificas a Pandas, Numpy y cosas por el estilo desde hace algun tiempo ya. Ahora, sobre el uso de Python, no llega ni de lejos a Javascript, que es basicamente, todo Internet y muchos otros dispositivos: consolas, TVs, smartphones.
#11 con pseudo código no puedes darle a ejecutar y ver cuál es el resultado. Ni puedes cambiar esta variable o esta otra y comparar la ejecución o si ahora falla.
Dependes de un experto que tenga tiempo de leer tu pseudo código y sepa ver el resultado sin equivocarse.
Un desastre, vaya.
Yo aún funciono de la misma forma: leo algo en el manual y tengo que trastear con ello para entenderlo realmente.
#49 lo dices como si fuera algo muy novedoso... que tiene ya 10 años y si está javascript arriba de todo es precisamente por eso, todos el mundo desarrolla webs en nodejs ahora
#25 Bueno, se convierte a un pseudo-lenguaje máquina, que luego se convierte a lenguaje máquina, por lo que está entre medias. No exactamente al 50%, sino más cerca de los interpretados que de los compilados.
#1 En la universidad ya se enseña a programar, y a demás de eso, de enseñan varios lenguajes de programación. Como debe ser.
Si encuentras gente que si le sacas de su lenguaje se pierden es por otro motivo. De la misma manera que hay arquitectos incompetentes, médicos incompetentes, abogados incompetentes, profesores incompetentes, ...
#1 Eso es. 4 años dando pseudocódigo. Madre mía lo que hay que leer. Luego que salgan de facultad y las empresas se encuentren con "pseudodesarrolladores" que sólo saben hacer bucles y condicionales.
#76 Aun estoy por ver Clean Code en Javascript o Python. La gente no dedica tiempo a pensar en el diseño antes de teclear por la excesiva flexibilidad.
#48 una cosa es que ejecutes código máquina en un hardware emulado y otra llamar "código máquina" a un middleware. No creo que sea comparable. Eso no lo he visto nunca salvo en este artículo (y en tu comentario).
#50 Los lenguajes son modas y productos de terceros, como te enseñen en JAVA o VB y luego no seas capaz de usar otros, en que por ejemplo, no gestione la memoria automaticamente, te vas a la mierda.
#23 Oye, nada impide al universitario tomar el cursillo de javascript. De hecho sería muy recomendable que lo hiciera para complementar sus estudios universitarios y, precisamente, mejorar su empleabilidad.
En PHP 7 el tipado estático lo tienes en cualquier caso si usas type hints - las definiciones de tipo para argumentos, valores de retorno, atributos de objectos (en 7.4), son explícitas y se pueden validar estáticamente antes de la ejecución.
Si declaras el fichero en modo estricto, además no habrá conversión implícita de tipos si por ejemplo pasas un string a un argumento definido como integer (strong typing).
Si no usas type hints (y lógicamente tampoco declaras modo estricto), tienes entonces PHP con tipado dinámico débil como antaño.
#93 si, pero para tener en un curso una vision global, si no te enseñan OOP entonces te queda muchisimo.
No digo que solo haya eso, digo que es bastante importante como para decir que aun no te han enseñado nada.
#5 Mi profesor de programación en primero de ingeniería informática nos dijo el primer día
"yo no tengo ni idea de C (que era el lenguaje de programación de la asignatura) pero les voy a enseñar a programar".
Y vaya si lo hizo. La verdad es que era un crack explicando. Y ni una línea de código echabas en sus clases, en las prácticas sí, pero eso era otro profesor.
#10 La informática no es una ingeniería clásica. Si esperas que un ingeniero informático sea capaz de diseñar una arquitectura, eligiendo las tecnologías apropiadas para cada capa sin tener ni idea de programar... lo llevas clarinete. Un industrial puede empollarse y consultar las resistencias de distintos materiales y diseñar un cacharro. No necesita saber montarlo él mismo. Un ingeniero informático que no sabe programar no vale ni pa tomar por culo y lo que diseñe va a ser una mierda con problemas por todas partes.
#46 Yo tuve un profesor en la Universidad de Deusto que decía que si dependiese de él, no tocabamos un ordenador hasta 4º de carrera (eran 5 años). Daba estadística y no recuerdo qué otra asignatura matemática.
Sí, los que hayáis estudiado allí sabéis a quien me refiero
#102 la cuestión es que no existe ninguna máquina que entienda el código de Java. Lo interpreta un software, igual que ocurre con Python, con la diferencia de que este último es humanamente legible. Por esa razón no creo que sea "lenguaje máquina" el término más adecuado; pero bueno, vale, ya sabemos que en informática los términos y las definiciones suelen ser muy difusos.
#26 Una vez leí que la forma de saber que alguien no tiene idea de un tema es cuando dice que lo domina :-). Los verdaderos expertos normalmente son conscientes de todo lo que les falta por saber, y no van de ese palo.
No encuentro el enlace, pero recuerdo hace unos años que el creador de python reconocía que no entendía muy bien las implicaciones de alguna de las nuevas características que se estaban estudiando.
#28 Es el concepto de "Solo se que no se nada" de Sócrates.
Llevo un tiempo con javascript, ahora más con temas de Angular, pero realmente a la hora de plantear soluciones te das cuenta a partir de otros que uno tiene ni puta idea.
Yo me plantearía en el nivel medio, y nunca en "domino" el lenguaje.
#65 Está muy bien, pero eso requiere una placa bastante tocha (y cara) en comparación con un Arduino o similar. Por no hablar de que implementa un subconjunto del lenguaje.
A ver, que al final casi todo se puede programar casi con cualquier cosa. Total el toolchain de GCC está portado a prácticamente cualquier arquitectura, y si quieres programar un Arduino en C++ o en Java, seguramente puedes hacerlo. La cuestión es si es la herramienta más adecuada a la tarea, o es un pelín matar moscas a cañonazos.
#1 En la universidad deben enseñar un lenguaje, pero no como algo principal, sino como un componente secundario. Un ingeniero informático no debería llegar a ser programador, es un derroche de tiempo y recursos. Los ingenieros informáticos son los que diseñan sistemas, protocolos y los propios lenguajes. Si un ingeniero decide incluir un componente en su sistema que requiere programación, entonces se contrata un programador. Un buen programador es un artista. Y no todo el mundo vale, por mucho que estudie.
La gran diferencia con el "industrial" es que aqui los materiales cambian cada pocos años. El ingeniero en informatica tiene que ser capaz de analizar nuevas tecnologias e incorporarlas en su cartera de conocimientos y, de esa manera, ir construyendo su especializacion profesional. Es completamente inviable y sería contraproducente que en la facultad te enseñaran a construir con el ecosistema de Microsoft (por poner un ejemplo) o con el de Spring, o usar el Cloud de Amazon, o el de Google.
La universidad enseña los conceptos generales y tu luego aprendes los conceptos concretos a medida que vas adquiriendo experiencia.
Por tanto ... "un Ingeniero en informatica que no sabe programar no vale para nada". Cierto. Solamente con los conocimientos de la universidad no vales para nada, pero tienes un potencial de crecimiento importante ... que es de lo que se trata.
#173 bueno ,no se como fue la tuya, pero volviendo al ejemplo de sql...
vale que en pl/sql programes, pero la asignatura es bases de datos,
es decir, vas a usar pl/sql 1/3 del tiempo de la asignatura siendo generoso. El resto va a ser álgebra relacional, sql, diseño de bases de datos... a lo que además quitas otros 2/3 de tiempo que va a ser solo de teoría...
#131 aun hay servidores compartidos con PHP4, y alguno he visto con PHP3.x. Sin embargo, que PHP POR FIN haya dado el salto a tipado fuerte no hace mas que reforzar mi tesis: PHP es (o era) un lenguaje traicionero, y el tipado fuerte y la declaracion explicita es una obligacion de cualquier lenguaje de programacion serio.
#7 tienes toda la razón; sin embargo creo que el problema no es solo de los estudiantes, sino también de los empleadores.
Si sales de la universidad y no puedes poner "JavaScript" en el currículum, sino "Pascal" entienden que no cumples los requisitos para trabajar ahí y dificulta la búsqueda del primer empleo.
Muchos de los que toman decisiones en las empresas no tienen ni quieren tener conocimientos técnicos y van a lo fácil, y si pueden pagar poco mejor. ¿Para qué pagar a un universitario que no sabe JavaScript si tienes a uno que ha hecho un cursillo de JavaScript, cobra menos y ya sabe el lenguaje?
#23 Pues porque el universitario probablemente te haga ganar más dinero a medio plazo, porque el del cursillo seguramente hará desastres que te acabarán costando mucho más de lo que te ahorraste en esos 15-30 días que tardaría el universitario en ponerse al día.
Si eres empresario, no tienes conocimientos técnicos, y tomas decisiones técnicas sin asesorarte, te mereces todo lo que te pase, la verdad. Supongo que también ese empresario se preguntará por qué hace falta comprar una furgoneta de 15.000 eur, cuando mi cuñado me vende una con 200.000 km por 1.200 eur, y me ahorro un pastizal. O por qué hay que pagar 100 eur al mes por la fibra óptica, cuando poniendo una tarjetilla prepago con un router de los chinos tenemos internet igual, y las webs acaban cargando de todas formas.
La universidad, y la sociedad en general, no creo que tengan que pensar en proteger a los malos empresarios. Más bien deberían permitir y promover que los malos empresarios se peguen el batacazo cuanto antes, y dejen paso a otros que sepan gestionar mejor sus empresas.
#1 bueno, para cosas básicas eso funciona. Luego me dices como enseñar a programar en bajo nivel sin enseñar ensamblador o a manejar memorias y punteros sin pelearte con C.
Comentarios
#1 La unica manera de aprender a programar es programando. Si quieres que no se pierdan cuando les sacas de su lenguaje de programación entonces enseñale diferentes lenguajes y muy diferentes.
En la universidad no se debería de enseñar ningún lenguaje de programación, sino que se debería de enseñar a programar en si, después te encuentas a gente que le sacas de su lenguaje de programación y están perdidos.
#1 Pero entonces todos lloran diciendo que les han enseñado a programar en Pascal/ADA/Modula y que eso no sirve para nada y la universidad está desconectada de la sociedad y que mi vecino aprendió a programar con fascículos y ahora cobra 5.000 eur al mes.
#11 no creo que sea buena idea. Pseudocódigo para aprender y para empezar está bien, pero con pseudocódigo no puedes hacer pruebas reales, no lo puedes ejecutar, no puedes comprobar la sintaxis automáticamente... hay un tipo de práctica que necesariamente se debe hacer en entornos reales.
#c-11" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3075356/order/11">#11 el pseudocódigo es un cáncer. La algoritmia es la misma, la programes en C, Java o pseudocódigo, con la diferencia que el último no es tangible.
#1 Da igual cómo te lo plantees: es imposible que una persona sepa mil lenguajes de programación en cuatro años de universidad. Además es innecesario. Por no hablar que en la universidad casi que lo que menos se hace es programar.
Por más que nos desviemos, hay lenguajes clave de los que derivan los conceptos de la mayoria del resto y son los que deben de enseñarse. Una persona que domine C y Java, en ua cuantas horas estará pilotando en php, .net, C#, javascript,... sin más ayuda que la documentación de soporte.
#1 Pues malos estudiantes. Si aprendes un lenguaje entrar en otro es sumamente fácil, quien no lo consigue probablemente sea porque la programación no es lo suyo o no ha aprendido bien, muchos se limitan al corta y pega y poco más.
En el fondo la programación que se usa habitualmente es imperativa y de un lenguaje a otro no hay tanto cambio, lo básico, lo elemental se repite de un lenguaje a otro. Pueden cambiar la sintaxis, ser más o menos estrictos, con más menos instrucciones y estructuras (que si no existe en un lenguaje se pueden reconstruir con lo que hay)... En fin aprendido uno pre-aprendidos todos.
#1 #3 #5 No sólo en las ingenierías informáticas.
A mi en industriales me enseñaron C, y cuando le preguntamos al profesor que por qué ese y no otro nos dijo que con C y entendiendo pseudocódigo nos podían enseñar los fundamentos y la estructuración para poder luego programar en lo que nos tocase (si nos tocaba)
Y razón no le faltaba, porque a día de hoy a mi me ha tocado picar código en 3 o 4 lenguajes diferentes, y como dice #6, sólo programando se aprende a programar
#10 Ya, por eso el nivel de lloros sobre el "lenguaje de mierda que enseñan en la uni, que no lo conoce ni el tato" sería un buen filtro para diferenciar entre los buenos profesionales y los que son un poco paquetes.
#1 A ver cómo enseñas tú mecánica sin dejar a los chavales y chavalas practicar con un motor de verdad.
Pues lo mismo con la programación: si bien es cierto que hay que enseñar unas bases muy sólidas, si no practican con lenguajes reales, estas no les servirán de nada.
#7 Pero es que va a la universidad para ser ingeniero, no programador. Para ser programador especialista en PHP + Mysql están los FP.
#9 ¿Te refieres al Callback Hell?
#c-6" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3075356/order/6">#6 o pseudocódigo, sin una sintaxis establecida, así cuando vaya a programar en php, java, c#, c++ se dará cuenta que realmente todo es lo mismo cambiando un poco la sintaxi. Yo tenía un profesor que cuando le preguntábamos que hacía tal o cual función nos respondía: "Acaso crees que yo soy un manual con patas", y después miraba el código y con un vistazo te decía que estaba bien o mal.
#c-11" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3075356/order/11">#11 Pues en Grado Superior de Informática de Programación, al menos en Zamora, lo primero que te enseñan es pseudocódigo, y una vez lo dominas casi a la perfección, te muestran el primer lenguaje de programación (Java o C#) y te dicen entonces: "Como podéis observar, este lenguaje usa atajos y órdenes que aglutinan varias palabras (e incluso líneas enteras) en una sola. Sí, podríamos haberos enseñado directamente a través del lenguaje este, y así ahorraros el tener que pensar por vosotros mismos cómo funcionan los lenguajes de programación; pero preferimos enseñaros así porque sí, a día de hoy el lenguaje más utilizado es Java, pero mañana puede ser cualquier otro, incluso alguno que aún no exista todavía... y sólo sabiendo pseudocódigo podemos estar seguros, tanto nosotros como vosotros, que ese lenguaje del futuro no será un muro infranqueable, sino otra forma de representación con atajos y aglutinantes varios".
#1 Eso es una perdida de tiempo. Quieres aprender Programación Orientada a Objetos? Aprendes con un lenguaje como java. Quieres aprender programación funcional? Haskell, etc
Programar es mucho mas que la sintaxis y las estructuras de control. Tienes que aprender a hacer debug, a extender, testear, etc.
Todo eso no se puede aprender con pseudocodigo.
Otra cosa diferente es que en algunos sitios te enseñen un lenguaje (sintaxis) y no a programar, pero eso es un problema de la metodologia y no de enseñar sobre un lenguaje en lugar de usar pseudocodigo.
#16 yo también aprendí así, pero me parece un método bastante ineficiente. En primer lugar porque se traslada una parte importante del aprendizaje a "la casa", que lo haga el alumno por su cuenta, desaprovechando recursos y conocimientos de las instituciones; y en segudo lugar porque ese aprendizaje "en casa" tampoco lo evalúa el profesor.
De todas formas creo que una cosa no debe quitar la otra, practicar con un lenguaje concreto no debería suponer limitarse a ese lenguaje y su paradigma y estilo.
Mis intentos por hacer subir en la lista a Turbopascal 5.5 han sido en vano
Cada linea en Javascript se convierte en legacy code justo después del Enter.
#3 En mi universidad igual [obviamente en la ingeniería informática], nos enseñaban pseudocódigo, después en algunas asignaturas, en las prácticas debías de programar en un lenguaje que normalmente se la soplaba al profesor [yo utilizaba java o c++]. Es que eso me hacía muy versátil, ya que aprendía a programar cualquier lenguaje, o incluso arreglar problemas con código fuente de otro lenguaje en poco tiempo... hasta que ví PHP en 2006 y dije "Que horror de lenguaje", aunque lo programé sin problemas.
#58 Obligatorio ver ésto: https://www.destroyallsoftware.com/talks/wat
#43 estoy totalmente en desacuerdo. Yo enseñaria C++, por ser programación orientada a objetos y heredar toda la mierda o gloria (segun se vea) de C.
Creo que es un lenguaje que te ayuda sobremanera a entender luego cualquier otro lenguaje porque abarca cosas de muy bajo nivel y cosas de alto nivel.
Si solo te enseñan C, no sabes nada de objetos y por tanto para mi, aun no has aprendido nada de programación y te va a costar muchismo cualquier otra cosa que no sean lenguajes para maquinas herramientas rudimentarios o cosas muy muy específicas.
#77 "Si solo te enseñan C, no sabes nada de objetos y por tanto para mi, aun no has aprendido nada de programación"
#77 La orientación a objetos es importante, pero en un ámbito más avanzado de la programación. Programación 2, o 3. Es mucho mas importante enseñar la estructura básica de los lenguajes (tipos nativos, bucles, sentencias condicionales, estructuras, punteros... y sobre todo algoritmia). Si tienes una base de todo eso, ya puedes entender que significa public void static main (Object[]) que lleva el hola mundo de un lenguaje orientado a objetos como Java.
Dudo mucho que el 73% de programadores de Javascript "dominen" Javascript. Es un lenguaje que parece una cosa (un lenguajillo sencillo con sintaxis tipo C), pero que es una bestia parda, que se parece más a un lenguaje funcional que a un C++/Java. Por no hablar de cómo ha evolucionado en los últimos años, y todas las filigranas que soporta hoy día.
#44 eso es muy de java en los 90. Hay un compilador JIT que traduce al código máquina en tiempo de carga que aporta que no haya que compilar en cada S.O. como habría que hacer en un compilador tradicional. El único código máquina que es "tú código" es el que escribas en assembler o en hexadecimal pero no están hablando de eso.
#92 por eso la tendencia con JS es hacia Typescript.
#18 No, el callback hell es más un problema de malas prácticas, y apenas rasca la superficie de lo que se puede hacer con Javascript.
#13 #14 Claro que sí, el pseudocódigo no se ejecuta, después el estudiante de la ingeniería tenía que irse a su casa o a la sala de prácticas, y poner en práctica eso que había aprendido, con el lenguaje de programación que más le gustara. Yo aprendí así, dándome hostias con los compiladores, entiendo cual era el mejor lenguaje de programación para cada caso, aprendiendo sintaxis en las bibliotecas [en aquel entonces no existía ni StackOverflow, ni tutoriales online de lenguajes, y faltaban años para que apareciera Youtube por primera vez], si llega un profesor y te dice lo que tienes que aprender, estás realmente jodido. En la universidad deberían de preparar a la gente para ser ingenieros, para ver los procesos por encima, para enseñarles como evaluar un sistema u otro y él después en su casa, aprende a programar lo que desea. Yo, como te digo, aprendí así, y no me arrepiento para nada, he aprendido un motón de lenguajes de programación porque tengo una base no especializada en un lenguaje, sino que sé como funcionan en general.
#1 Eso lo hacían, porque ahora mismo no lo sé... en la U.P.M en los exintos planes de Ingeniería Informática, gracias a eso te podías defender en cualquier lenguaje con tan sólo mirar la sintaxis.
#25 Java se convierte a un lenguaje de una máquina, y esa máquina es la JVM. Que no sea práctico tener una implementación física de la JVM no quiere decir que su lenguaje no sea "lenguaje máquina", igual que el código máquina de ARM no deja de serlo porque lo ejecutes en un emulador sobre x64.
#6 Hmmm... Discrepo.
Se deberían enseñar lenguajes fuertemente estructurados para no permitir "triquiñuelas" y esas cosas que luego se convierten en malos hábitos.
Yo aprendí a programar "en serio" en Pascal. Y luego lenguajes orientados a objetos en Smalltalk. Luego pasar a C, C++ o Java era sencillo.
#11 El psudocódigo está bien, pero para aprender tienes que ejecutar lo que programas y corregir errores.
#125 Es que no capturar en una llamada al server las excepciones tiene delito. Insisto en que cada cosa en su sitio. Yo concretamente prefiero que el lenguaje me deje a mi aire a que me esté todo el rato molestando con lo que supone que es lo correcto. No hay que confundir lenguaje "profesional/adulto" con paternalista. Por ejemplo Python no tiene sistema de atributos publico/privado y en palabras del creador "Aquí todos somos adultos y sabemos que se puede tocar" https://mail.python.org/pipermail/tutor/2003-October/025932.html
Otra cosa en Java son los frameworks, que siempre he tenido la sensación de que potencian la densidad intriseca de Java. Yo he usado Vertx para microservicios con MongoDB (y mucho antes JSF con Hibernate pero no para microservicios) y no vuelvo a tocar eso ni con el palo de Goku, funciona, pero vaya coñazo. https://geekandpoke.typepad.com/.a/6a00d8341d3df553ef01901c96dd1d970b-pi
#1 No estoy de acuerdo.
Yo estudié Cobol en los años 70 y posteriormente me sirvió de base para estudiar otros lenguajes.
Compilaba en tarjeta perforada y eso no fue impedimento para entender el funcionamiento en soporte magnético ni óptico.
#1 No son cosas incompatibles. En la universidad hay clases teóricas y prácticas. En las primeras se puede enseñar a programar en pseudo código y en las segundas se pueden aplicar los conocimientos teóricos a un caso práctico "real".
Así es como mejor se aprende, de hecho. Y así es como se suele hacer.
Mierda, otra vez que llego tarde a decir que javascript es una puta mierda y que lo que mola es el lenguaje que salió ayer por la tarde que solo conozco yo y mis tres amigos imaginarios.
#64 No nos engañemos ... a trabajar se aprende trabajando. Ni Fp, ni universidad, ni autodidactas. Los profesores de FP, igual que los de la Uni no tienen pq haber trabajado como programadores en su vida, ni estar al dia de las ultimas tendencias en buenas practicas, o que tecnologias son mejores para este o este otro problema. Eso se aprende siendo un profesional, ejerciendo la profesion, y estableciendo rutinas de renovacion continua para no quedarse estancado.
Puedes tener suerte y que te toque un buen profesor, pero no se puede generalizar "FP es mejor o es peor" ... he trabajado con muchos FPs y, en general, el nivel con el que salen no es profesional ni se le acerca.
En cualquier caso habría que ver que significa "programar mejor" o "programar bien" ... pq conocer un lenguaje no es saber programar ... y la cantidad de tiempo dedicado a la comprension de las estructuras de datos, a la comprension de la gestion de la memoria, al funcionamiento de los compiladores, a la algoritmia, al algebra (q es basico para BBDDs), ... pues podemos decir lo que sea pero no es el mismo en un FP que en la universidad.
¿Es necesario entender el funcionamiento de los arboles binarios balanceados para ser un buen programador? ... pues si quieres entender y predecir ciertos comportamiento y problemas en tus bases de datos es bastante conveniente.
Quien no lo conozca que pruebe Node.js
#51 Se llama Duck Typing.
#27 precisamente por eso estoy diciendo que el problema es de las empresas también.
#30 Ya, yo lo que digo es que es un problema exclusivamente de las empresas, concretamente de las empresas malas. No me parece que sea un problema ni de la universidad ni de la sociedad en general, ni que haya que hacer algo al respecto para proteger a las pobrecitas empresas que no se saben gestionar
#35 #32 Digamos que al lenguaje máquina de una máquina / arquitectura sintética.
Pasa como con el CLR de .NET.
Tienes incluso traductores a ensamblador y ensambladores de esa arquitectura.
Hace muchos años, cuando todavía existía SUN, había rumores de que querían sacar "chips Java", esto es, procesadores que implementaban en hardware físico esa arquitectura.
#77 composition over inheritance
#11 El pseudocódigo no se ejecuta. Es como aprender ofimaica haciendo dibujitos de que botón apretar.
Python o javascript ya son practicamente pseudocódigo, con la ventaja que lo puedes probar directamente
Java no se convierte a "lenguaje máquina", como dice el autor.
#64 No se a que universidad habrás ido, pero en la mía programabamos un monton. Desde las asignaturas de fundamentos de programacion (anual), en el primer cuatrimestre veíamos mucho pseudocódigo y pascal, en el segundo cuatrimestre todo pascal, laboratorio de programacion 1 (pascal) y 2 (c y c++), talf (programar un compilador de un lenguaje ficticio sencillito en c) , programacion concurrente (java), sistemas operativos (bash), bases de datos (sql), ensamblador 8086 (el juego de la vida, nunca se me olvidará) en fundamentos y estructuras de computadores, algunas más que eran optativas y otras que no recuerdo, eso si, recuerdo que las practicas eran implementar arboles b y demas estructuras de ese estilo.
Todas ellas tenían su parte teórica por la mañana y su parte practica por la tarde, mucho curro.
#92 Lo adulto es dejarme lanzar excepciones cuando me salga de las narices y no obligarme por que sí. Java es un lenguaje molestamente ceremonioso.
Es imposible seguir guías sin usar un IDE completo (monstruoso) por que se supone como algo ya totalmente intrínseco al uso de Java.
Java se usa por que va muy bien para tener a mucha gente controlada y que te salga código "fácil" de mantener, de ahí su uso en gran empresa. Pero si quieres ser ágil es una peste.
A mí javascript me encanta y si sabes usarlo quedan unos flujos asíncronos preciosos. Entiendo que no es el lenguaje adecuado para un novato que tiene que ser medianamente productivo, pero eso no significa que no sea "adulto".
#16 El pseudocódigo iba bien cuando el acceso al ordenador estaba muy restringido. Ya no es el caso. Todo el mundo tiene un ordenador y puedes hacer todas las pruebas que quieras.
#12 yo he hecho ambos, (fp y uni) y no solo he aprendido a programar mejor en la fp, en la que se dedicaba más tiempo a programar y menos a diapositivas, sino que hay gente que sale de la carrera sin saber diferenciar bien c de c++.
¿Por qué existiendo C la gente usa mierda para programar?
#2 Popular no sé... pero en ioT es desde luego lo que más uso...
#14 Claro que sí, el pseudocódigo no se ejecuta, después el estudiante de la ingeniería tenía que irse a su casa o a la sala de prácticas, y poner en práctica eso que había aprendido, con el lenguaje de programación que más le gustara. Yo aprendí así, dándome hostias con los compiladores, entiendo cual era el mejor lenguaje de programación para cada caso, aprendiendo sintaxis en las bibliotecas [en aquel entonces no existía ni StackOverflow, ni tutoriales online de lenguajes, y faltaban años para que apareciera Youtube por primera vez], si llega un profesor y te dice lo que tienes que aprender, estás realmente jodido. En la universidad deberían de preparar a la gente para ser ingenieros, para ver los procesos por encima, para enseñarles como evaluar un sistema u otro y él después en su casa, aprende a programar lo que desea. Yo, como te digo, aprendí así, y no me arrepiento para nada, he aprendido un motón de lenguajes de programación porque tengo una base no especializada en un lenguaje, sino que sé como funcionan en general.
#35 En realidad es así como se compila hoy en día cualquier cosa. Tanto GCC como LLVM compilan cualquier lenguaje a una especie de "ensamblador genérico", con infinitos registros y demás, y luego sobre ese ensamblador aplican optimizaciones y sólo al final eso se convierte en código máquina "de verdad" para el procesador concreto que tengas, pero se trata de un paso interno. En el caso de Java, en lugar de darte el fuente o el binario final, te dan el "ensamblador genérico" intermedio, y luego tú lo conviertes al código máquina final con un compilador JIT.
#1 eso... que lleguen a la empresa y te digan "dónde escribo los pseudocódigos y los diagramas de flujo que necesitas? También sé UML"
De JS puedo contar dos chistes: inserción automática de punto y comas y this
https://www.reddit.com/r/ProgrammerHumor/comments/621qrt/javascript_the_good_parts/
#64 No estoy diciendo que la FP sea peor ni mucho menos, de hecho es verdad que igual aprendes mejor a programar en una FP que en la carrera, que se orienta (además de a programar) a otras cosas que no son programación. Yo hablaba más bien de autodidactas que se venden como expertos en el lenguaje tal a partir de cuatro vídeos de Youtube o unos fascículos. Esos sí que tienen mucho peligro.
Pero bueno, que hablo en términos generales, hay autodidactas que son los putos amos, universitarios que son unos patanes totales y todos los puntos medios que quieras. Pero estadísticamente unos son más escasos que otros.
#77 tío, hay mucho más que OOP y puedes basar toda tu carrera y jubilarte dentro de 40 años, solo programando con C.
#2 creo que es uno de los que más estan creciendo en popularidad dado el crecimiento de ML y que no está siendo usado solo por programadores, sino por data scientists, cientificos, estadistas, matematicos, etc. En SO veo muchas preguntas sobre Python, pero muy especificas a Pandas, Numpy y cosas por el estilo desde hace algun tiempo ya. Ahora, sobre el uso de Python, no llega ni de lejos a Javascript, que es basicamente, todo Internet y muchos otros dispositivos: consolas, TVs, smartphones.
#25 lol.
Ahora mismo ya SI.
Como te quedas? No puedes hacer reflection pero... si quieres lo paas a maquina...
#11 con pseudo código no puedes darle a ejecutar y ver cuál es el resultado. Ni puedes cambiar esta variable o esta otra y comparar la ejecución o si ahora falla.
Dependes de un experto que tenga tiempo de leer tu pseudo código y sepa ver el resultado sin equivocarse.
Un desastre, vaya.
Yo aún funciono de la misma forma: leo algo en el manual y tengo que trastear con ello para entenderlo realmente.
#49 lo dices como si fuera algo muy novedoso... que tiene ya 10 años y si está javascript arriba de todo es precisamente por eso, todos el mundo desarrolla webs en nodejs ahora
#22 Tarjetas perforadas? Mis respetos por tu dilatada trayectoria.
#25 Bueno, se convierte a un pseudo-lenguaje máquina, que luego se convierte a lenguaje máquina, por lo que está entre medias. No exactamente al 50%, sino más cerca de los interpretados que de los compilados.
#1 En la universidad ya se enseña a programar, y a demás de eso, de enseñan varios lenguajes de programación. Como debe ser.
Si encuentras gente que si le sacas de su lenguaje se pierden es por otro motivo. De la misma manera que hay arquitectos incompetentes, médicos incompetentes, abogados incompetentes, profesores incompetentes, ...
#1 Eso es. 4 años dando pseudocódigo. Madre mía lo que hay que leer. Luego que salgan de facultad y las empresas se encuentren con "pseudodesarrolladores" que sólo saben hacer bucles y condicionales.
#76 Aun estoy por ver Clean Code en Javascript o Python. La gente no dedica tiempo a pensar en el diseño antes de teclear por la excesiva flexibilidad.
#48 una cosa es que ejecutes código máquina en un hardware emulado y otra llamar "código máquina" a un middleware. No creo que sea comparable. Eso no lo he visto nunca salvo en este artículo (y en tu comentario).
#14 Cierto, es como hacer el plano de una casa y los calculos de estructuras, en un plano no puedes vivir, es mejor hacer la casa directamente....
#50 Los lenguajes son modas y productos de terceros, como te enseñen en JAVA o VB y luego no seas capaz de usar otros, en que por ejemplo, no gestione la memoria automaticamente, te vas a la mierda.
#23 Oye, nada impide al universitario tomar el cursillo de javascript. De hecho sería muy recomendable que lo hiciera para complementar sus estudios universitarios y, precisamente, mejorar su empleabilidad.
#131 Python tiene tipado fuerte. No es tipado débil.
Con fuerte, te refieres a dinámico/estático o a fuerte/débil?
#166 Ambos.
En PHP 7 el tipado estático lo tienes en cualquier caso si usas type hints - las definiciones de tipo para argumentos, valores de retorno, atributos de objectos (en 7.4), son explícitas y se pueden validar estáticamente antes de la ejecución.
Si declaras el fichero en modo estricto, además no habrá conversión implícita de tipos si por ejemplo pasas un string a un argumento definido como integer (strong typing).
Si no usas type hints (y lógicamente tampoco declaras modo estricto), tienes entonces PHP con tipado dinámico débil como antaño.
#93 si, pero para tener en un curso una vision global, si no te enseñan OOP entonces te queda muchisimo.
No digo que solo haya eso, digo que es bastante importante como para decir que aun no te han enseñado nada.
#12 Si a mi me dicen eso, entiendo que no es buen programador.
#1 En algún lenguaje tendrán que hacer las prácticas (que es con lo que más se aprende).
#5 Mi profesor de programación en primero de ingeniería informática nos dijo el primer día
"yo no tengo ni idea de C (que era el lenguaje de programación de la asignatura) pero les voy a enseñar a programar".
Y vaya si lo hizo. La verdad es que era un crack explicando. Y ni una línea de código echabas en sus clases, en las prácticas sí, pero eso era otro profesor.
#8 Micropython https://micropython.org/
#10 La informática no es una ingeniería clásica. Si esperas que un ingeniero informático sea capaz de diseñar una arquitectura, eligiendo las tecnologías apropiadas para cada capa sin tener ni idea de programar... lo llevas clarinete. Un industrial puede empollarse y consultar las resistencias de distintos materiales y diseñar un cacharro. No necesita saber montarlo él mismo. Un ingeniero informático que no sabe programar no vale ni pa tomar por culo y lo que diseñe va a ser una mierda con problemas por todas partes.
#71 Era más bien por seguir con mi lema: "¿De qué se habla, que me opongo?"
#46 Yo tuve un profesor en la Universidad de Deusto que decía que si dependiese de él, no tocabamos un ordenador hasta 4º de carrera (eran 5 años). Daba estadística y no recuerdo qué otra asignatura matemática.
Sí, los que hayáis estudiado allí sabéis a quien me refiero
#102 la cuestión es que no existe ninguna máquina que entienda el código de Java. Lo interpreta un software, igual que ocurre con Python, con la diferencia de que este último es humanamente legible. Por esa razón no creo que sea "lenguaje máquina" el término más adecuado; pero bueno, vale, ya sabemos que en informática los términos y las definiciones suelen ser muy difusos.
#117 Cobol es la versión beta de Java
#195 No te puedo votar mil veces positivo.
Eso, y los patrones del GoF (como mínimo) es lo que se tendría que enseñar
#26 Una vez leí que la forma de saber que alguien no tiene idea de un tema es cuando dice que lo domina :-). Los verdaderos expertos normalmente son conscientes de todo lo que les falta por saber, y no van de ese palo.
No encuentro el enlace, pero recuerdo hace unos años que el creador de python reconocía que no entendía muy bien las implicaciones de alguna de las nuevas características que se estaban estudiando.
#28 Es el concepto de "Solo se que no se nada" de Sócrates.
Llevo un tiempo con javascript, ahora más con temas de Angular, pero realmente a la hora de plantear soluciones te das cuenta a partir de otros que uno tiene ni puta idea.
Yo me plantearía en el nivel medio, y nunca en "domino" el lenguaje.
#35 Sabes que es JIT?
Despues de pasar un threshold configurado en la JVP, SI se convierte a lenguaje maquina
#65 Está muy bien, pero eso requiere una placa bastante tocha (y cara) en comparación con un Arduino o similar. Por no hablar de que implementa un subconjunto del lenguaje.
A ver, que al final casi todo se puede programar casi con cualquier cosa. Total el toolchain de GCC está portado a prácticamente cualquier arquitectura, y si quieres programar un Arduino en C++ o en Java, seguramente puedes hacerlo. La cuestión es si es la herramienta más adecuada a la tarea, o es un pelín matar moscas a cañonazos.
#24 Hasta que te encuentras un LISP o remasterizado en Clojure.
#1 En la universidad deben enseñar un lenguaje, pero no como algo principal, sino como un componente secundario. Un ingeniero informático no debería llegar a ser programador, es un derroche de tiempo y recursos. Los ingenieros informáticos son los que diseñan sistemas, protocolos y los propios lenguajes. Si un ingeniero decide incluir un componente en su sistema que requiere programación, entonces se contrata un programador. Un buen programador es un artista. Y no todo el mundo vale, por mucho que estudie.
#69 Cierto pero incompleto.
La gran diferencia con el "industrial" es que aqui los materiales cambian cada pocos años. El ingeniero en informatica tiene que ser capaz de analizar nuevas tecnologias e incorporarlas en su cartera de conocimientos y, de esa manera, ir construyendo su especializacion profesional. Es completamente inviable y sería contraproducente que en la facultad te enseñaran a construir con el ecosistema de Microsoft (por poner un ejemplo) o con el de Spring, o usar el Cloud de Amazon, o el de Google.
La universidad enseña los conceptos generales y tu luego aprendes los conceptos concretos a medida que vas adquiriendo experiencia.
Por tanto ... "un Ingeniero en informatica que no sabe programar no vale para nada". Cierto. Solamente con los conocimientos de la universidad no vales para nada, pero tienes un potencial de crecimiento importante ... que es de lo que se trata.
#116 El objetivo de la universidad no es hacerte contratable.
#173 bueno ,no se como fue la tuya, pero volviendo al ejemplo de sql...
vale que en pl/sql programes, pero la asignatura es bases de datos,
es decir, vas a usar pl/sql 1/3 del tiempo de la asignatura siendo generoso. El resto va a ser álgebra relacional, sql, diseño de bases de datos... a lo que además quitas otros 2/3 de tiempo que va a ser solo de teoría...
#88: Siempre puede programar un navegador que acepte código en C.
#197
#198 si te tomas en serio mi comentario, entonces sí, se puede considerar un owned.
#131 aun hay servidores compartidos con PHP4, y alguno he visto con PHP3.x. Sin embargo, que PHP POR FIN haya dado el salto a tipado fuerte no hace mas que reforzar mi tesis: PHP es (o era) un lenguaje traicionero, y el tipado fuerte y la declaracion explicita es una obligacion de cualquier lenguaje de programacion serio.
¿Seguro que no es Python el más popular?
#7 tienes toda la razón; sin embargo creo que el problema no es solo de los estudiantes, sino también de los empleadores.
Si sales de la universidad y no puedes poner "JavaScript" en el currículum, sino "Pascal" entienden que no cumples los requisitos para trabajar ahí y dificulta la búsqueda del primer empleo.
Muchos de los que toman decisiones en las empresas no tienen ni quieren tener conocimientos técnicos y van a lo fácil, y si pueden pagar poco mejor. ¿Para qué pagar a un universitario que no sabe JavaScript si tienes a uno que ha hecho un cursillo de JavaScript, cobra menos y ya sabe el lenguaje?
#23 Pues porque el universitario probablemente te haga ganar más dinero a medio plazo, porque el del cursillo seguramente hará desastres que te acabarán costando mucho más de lo que te ahorraste en esos 15-30 días que tardaría el universitario en ponerse al día.
Si eres empresario, no tienes conocimientos técnicos, y tomas decisiones técnicas sin asesorarte, te mereces todo lo que te pase, la verdad. Supongo que también ese empresario se preguntará por qué hace falta comprar una furgoneta de 15.000 eur, cuando mi cuñado me vende una con 200.000 km por 1.200 eur, y me ahorro un pastizal. O por qué hay que pagar 100 eur al mes por la fibra óptica, cuando poniendo una tarjetilla prepago con un router de los chinos tenemos internet igual, y las webs acaban cargando de todas formas.
La universidad, y la sociedad en general, no creo que tengan que pensar en proteger a los malos empresarios. Más bien deberían permitir y promover que los malos empresarios se peguen el batacazo cuanto antes, y dejen paso a otros que sepan gestionar mejor sus empresas.
#1 bueno, para cosas básicas eso funciona. Luego me dices como enseñar a programar en bajo nivel sin enseñar ensamblador o a manejar memorias y punteros sin pelearte con C.
#1 eso no lo he visto en la vida,he visto a gente sin tener ni puta idea,en ningún lenguaje.
#138 No creo que sea simple para nada (aunque de la parte electrónica no tengo conocimientos). Pero, por poderse, se puede: https://www.jopdesign.com/
(Y también las máquinas Lisp que había mencionado. Hubo de esas en los años 80)