En mi opinión, cualquiera que esté relacionado con tu trabajo o que tenga aplicación inmediata en tu entorno. Por ejemplo, si trabajas en una empresa de electrónicos, entonces C y ensamblador. Si trabajas en una empresa de diseño gráfico, entonces el combo HTML+CSS3+Javascript. Y así sucesivamente.
A programar se le puede aprender de muchas maneras. Pero ninguna tan rápida como aquella de la que depende tu sueldo de la semana.
Como dijo @LeiaMoon, la lógica es esencial. Pero también depende de para qué vayas a usarlo.
Para programación web, HTML5+CSS+JavaScript, aunque sea un asco. En el lado del servidor, algunos dicen que PHP, pero si quieres ahorrarte dolores de cabeza, ve por Perl o Ruby.
Para propósito general, Ruby y Python (y algún BASIC si aguantas).
Para aplicaciones de Android, Dart (recomiendo este) y Kotlin. Rust es muy popular actualmente, pero su semántica es... rara. Java es el oficial, pero no recomiendo que sea el primer lenguaje que aprendas.
Para aplicaciones en general, Dart, C y Zig (este es más moderno). C++17 si tienes experiencia en C o usas Haiku. Ruby y Python son definitivamente los más fáciles para esto, pero los bindings disponibles para ellos suelen ser limitados.
Para cosas más interesantes, C (C11 añade TLS, inferencia de tipo (ej. __thread __auto_type foo = *bar()->baz;), y otras cosas de C++), C++17 o 20, Zig, y ensamblador (ver más abajo) de ARMv8 o algún otro CPU de tipo RISC (x86 y AMD64 son de tipo CISC y tienen cientos instrucciones) cuando creas que estás listo para renunciar a la abstracción.
En cualquier caso, si no conoces ningún lenguaje, al menos al principio deberías alejarte de VisualBasic, te enseñará algunos de los peores hábitos, y si vas en serio, de Java.
Nota sobre Ensamblador:
Si bien todos los ensambladores tienen una sintaxis simple, esta varía de uno a otro. El conjunto de instrucciones también es distinto para cada arquitectura y en algunos casos ciertas instrucciones pueden no existir en todos los modelos. Por ejemplo el siguiente código:
AMD64 con sintaxis de AT&T (para hacerlo más breve), ABI de SYSV:
.globl main
main: lea hello(%rip), %rdi; call puts; xor %eax, %eax; ret
hello: .string "Hello, world!"ARMv8:
.globl main
main: str x30, [sp,-16]!; adr x0, #hello; bl puts; ldr x30, [sp], #16; mov w0, wzr; ret
hello: .string "Hello, world!"Soma Kurusu wrote:si tengo que elegir uno como más difícil, creo que sería el ensamblador.
Ciertamente. El de x86 es infernal con sus escasos registros, los descriptores de segmento, el límite de 32bits -y es mucho peor en modo real que es 16bits-, la falta de direccionamiento relativo y cientos de opcodes. El de ARM (el de 64bits, el de 32 no tanto), en cambio, es bastante limpio.
Shadiel1 wrote:para escribir un simple programa con un par de ciclos era un dolor de cabeza
Considerando que hay instrucciones que tardan varios ciclos (de CPU o memoria), otras que no usan ciclos (NOP) y cosas como especulación, cambios de contexto, excepciones, cachés y MMIO, asumo que quieres decir "un par de instrucciones".
Ara wrote:Aprende la lógica de la programación o a razonar para hacer cualquier proyecto, app o ejercicio.... Un mismo ejercicio puedes hacerlo con C++, Cchart o Javascript por ejemplo...al final lo que se diferencia es la introducción del lenguaje en si, y ya te digo no es difícil, lo que tienes que analizar que quieres hacer y según el lenguaje será más fácil o difícil hacerlo....por ejemplo lo que puedes hacer con dos líneas de código en Java o Cchart...en C++ se duplica o triplica....y así pasa con otros lenguajes.....esto se aplica también a los algoritmos...por ejemplo los algoritmos de búsqueda.... son muchos hay fáciles y difíciles....solo tienes que saber cuál se aplica mejor a tu proyecto .....es decir según lo que quiera el cliente....si aprendes a razonar ...y entiendes un lenguaje de programación ya puedes entender cualquiera y elegir cuál te gusta más...
Para ampliar la explicación, el paradigma es importante al escoger un lenguaje (ej. al implementar una GUI, probablemente no tomarías la misma ruta en un lenguaje puramente orientado a objetos como Java, que en uno funcional como C). Tampoco todos los lenguajes tienen las mismas capacidades: no puedes crear un kernel solamente en Python. Ni tienen la misma optimización: Java, incluso con JIT usa mucha más memoria y CPU de lo necesario, haciéndolo indeseable para operaciones que requieren velocidad.
Lucien wrote:La mejor forma de aprender un lenguaje para programar es no aprendiendo ninguno, si aprendes la lógica detrás de una condicional, de un tipo de dato, cuando de verdad entiendes la parte más fácil de la programación entonces no importa si inicias con Python, Golang o Rust , vas a entenderlo todo.
No lo niego, el problema es que no todo el mundo tiene paciencia para tomar sólo clases teóricas y algunas personas aprenden mejor con otros métodos (que pueden resultar más interesantes).
Lucien wrote:Mi primera recomendación sería C# ,ya que no requiere de programas externos, puedes hacer "inventos" con .bat y listo
No es tanto así. Siendo .Net propiedad de Micro$oft, el runtime viene con Windows, pero en la mayoría de los UN*X el usuario tiene que instalar Mono, y aún así hay librerías que no se instalan automáticamente.
Si te refieres a incluir las librerías usadas junto al ejecutable o enlazarlo de manera estática a estas, fuera de Android eso suele no ser la mejor forma de hacer las cosas.
Yo comenzaría con Python (como ya has dicho), y luego avanzaría hacia C++ o Zig.
labrian wrote:Si se trata de comenzar a aprender o jugar con las propiedades que te brinda un LP orientado a objetos (principiante) te recomiendo Visual Basic, es un lenguaje de programación dirigido por eventos, para los que comienzan a dar sus primeros pasos en el mundo de la programación y que nunca antes haya trabajado con este lenguaje de programación o con otro, ni con sus versiones anteriores, le resultará muy estimulante y te daras cuenta que avanzas rápidamente.
=, un tipo de bucle termina next otro en loop, etc.).CreateObject("Scripting.Dictionary")), que están declarados obsoletos, dependen del registro y son un potencial agujero de seguridad.Tiene muchas más desventajas de las que voy a poner aquí, pero creo que con esto es suficiente.
Visual Basic .NET es más reciente, pero hereda la muchos de sus problemas.
He sugerido Python porque es un lenguaje actual, portable y fácil de aprender y usar para el principiante (más que VisualBasic) sin descuidar su potencia. Todo en Python es un objeto, incluso los tipos primitivos, pero permite programación procedural.
Luego de Python sugerí Zig al ser un lenguaje moderno y fácil de aprender si tienes experiencia, aunque al ser de bajo nivel, no es tan fácil de usar, pero es tan potente como C, con el que es interoperable e intenta competir.
C++ no requiere descripción.
EvilShadow wrote:En mi opinión, cualquiera que esté relacionado con tu trabajo o que tenga aplicación inmediata en tu entorno. Por ejemplo, si trabajas en una empresa de electrónicos, entonces C y ensamblador. Si trabajas en una empresa de diseño gráfico, entonces el combo HTML+CSS3+Javascript. Y así sucesivamente.
A programar se le puede aprender de muchas maneras. Pero ninguna tan rápida como aquella de la que depende tu sueldo de la semana.
Yo siempre quise aprender a programar. En 12 estudié por mi cuenta hacer cosillas en Visual Studio, pero quería aprender un lenguaje como tal. Cuando traté de inscribirme en un Curso de invierno de la UCI de Android por Java me dijeron que solo eran posgrados, y yo ni siquiera me he graduado. Siempre me han dicho que uno de los más fáciles es Python, yo empecé unos días, pero lo tuve que dejar porque necesitaba practicar postproducción, que es lo que más hago, por eso me atrae más el diseño y la programación front-end.
PD: Cada vez que uno me decía que me iba a enseñar a programar lo que quería era halarse el ganso?.
Bueno lo esencial es aprender la lógica si sabes y dominas la lógica pues te será fácil aprender cualquier lenguaje de programación, esto me lo han dicho muchos profesores de la universidad además de personas que dan cursos de programación en Youtube y para mí es cierto, es verdad que hay quien comienza por los más básicos como es mi caso yo empecé por C después C++ y bueno ahra estoy aprendiendo Java.
Pues bueno, es cierto lo que dice @LeiaMoon , teniendo la lógica ya te resulta fácil aprender cualquier lenguaje, aunque considero que Python es de los más fáciles , ya que ofrece muchas facilidades , aunque yo le tengo cariño a Java por qué fue con el que aprendí a programar ?. Aunque me han dicho que Android es muy fácil pero a la verdad es que no he aprendido, y en cuanto a programación web, al menos HTML5 y CSS3 son muy sencillos. Pero supongo que al final todo es cuestión del lenguaje en elmquente piden trabajar ?.
Yo también pienso que dominando la lógica se aprende cualquier lenguaje, yo empecé con Pascal y Delphi, después con C y C++, y así sucesivamente, y cambian ciertas estructuras, pero la lógica es una sola, aunque si tengo que elegir uno como más difícil, creo que sería el ensamblador.
Soma Kurusu wrote:Yo también pienso que dominando la lógica se aprende cualquier lenguaje, yo empecé con Pascal y Delphi, después con C y C++, y así sucesivamente, y cambian ciertas estructuras, pero la lógica es una sola, aunque si tengo que elegir uno como más difícil, creo que sería el ensamblador.
Uffff si lenguaje ensamblador, me acuerdo de el, para escribir un simple programa con un par de ciclos era un dolor de cabeza, si, definitivamnete el más difícil.
Danita Yoshi ?? wrote:Cuando traté de inscribirme en un Curso de invierno de la UCI de Android por Java me dijeron que solo eran posgrados, y yo ni siquiera me he graduado.
A ver, técnicamente su hubieras podido pasar el curso en la escuela de invierno de la UCI, lo que tú al no ser ingeniero pues en vez de obtener un título de postgrado, obtendrías un entrenamiento... Lo que pasa es que tendría que solicitarlo tu empresa o centros laboral en base a su propio interés. Saludos!
Happy Sunny Flower wrote:A ver, técnicamente su hubieras podido pasar el curso en la escuela de invierno de la UCI, lo que tú al no ser ingeniero pues en vez de obtener un título de postgrado, obtendrías un entrenamiento... Lo que pasa es que tendría que solicitarlo tu empresa o centros laboral en base a su propio interés. Saludos!
No trabajo, soy estudiante, ese es el problema. ??♀️No tengo centro de trabajo ni nada, y a mi escuela no es que le interese mucho eso.
Danita Yoshi ?? wrote:Yo siempre quise aprender a programar. En 12 estudié por mi cuenta hacer cosillas en Visual Studio, pero quería aprender un lenguaje como tal. Cuando traté de inscribirme en un Curso de invierno de la UCI de Android por Java me dijeron que solo eran posgrados, y yo ni siquiera me he graduado. Siempre me han dicho que uno de los más fáciles es Python, yo empecé unos días, pero lo tuve que dejar porque necesitaba practicar postproducción, que es lo que más hago, por eso me atrae más el diseño y la programación front-end.
PD: Cada vez que uno me decía que me iba a enseñar a programar lo que quería era halarse el ganso?.
Aprende la lógica de la programación o a razonar para hacer cualquier proyecto, app o ejercicio.... Un mismo ejercicio puedes hacerlo con C++, Cchart o Javascript por ejemplo...al final lo que se diferencia es la introducción del lenguaje en si, y ya te digo no es difícil, lo que tienes que analizar que quieres hacer y según el lenguaje será más fácil o difícil hacerlo....por ejemplo lo que puedes hacer con dos líneas de código en Java o Cchart...en C++ se duplica o triplica....y así pasa con otros lenguajes.....esto se aplica también a los algoritmos...por ejemplo los algoritmos de búsqueda.... son muchos hay fáciles y difíciles....solo tienes que saber cuál se aplica mejor a tu proyecto .....es decir según lo que quiera el cliente....si aprendes a razonar ...y entiendes un lenguaje de programación ya puedes entender cualquiera y elegir cuál te gusta más...
La mejor forma de aprender un lenguaje para programar es no aprendiendo ninguno, si aprendes la lógica detrás de una condicional, de un tipo de dato, cuando de verdad entiendes la parte más fácil de la programación entonces no importa si inicias con Python, Golang o Rust , vas a entenderlo todo.
Mi primera recomendación sería C# ,ya que no requiere de programas externos, puedes hacer "inventos" con .bat y listo, con Python si tienes internet y puedes bajarlo y también ponerle librerías.
Otro dato muy importante es que no te conviertas en un estudiante eterno, siempre que estudies algo practícalo ?
Ara wrote:Aprende la lógica de la programación o a razonar para hacer cualquier proyecto, app o ejercicio.... Un mismo ejercicio puedes hacerlo con C++, Cchart o Javascript por ejemplo...al final lo que se diferencia es la introducción del lenguaje en si, y ya te digo no es difícil, lo que tienes que analizar que quieres hacer y según el lenguaje será más fácil o difícil hacerlo....por ejemplo lo que puedes hacer con dos líneas de código en Java o Cchart...en C++ se duplica o triplica....y así pasa con otros lenguajes.....esto se aplica también a los algoritmos...por ejemplo los algoritmos de búsqueda.... son muchos hay fáciles y difíciles....solo tienes que saber cuál se aplica mejor a tu proyecto .....es decir según lo que quiera el cliente....si aprendes a razonar ...y entiendes un lenguaje de programación ya puedes entender cualquiera y elegir cuál te gusta más...
Nunca me decidí?, por eso no me enfoqué en nada concreto y lo fui dejando de largo. Luego apareció la edición, y entre eso, la escuela y el Francés no tenía tiempo para respirar. Admito que esta cuarentena sí he perdido bastante el tiempo ? podría haberlo aprovechado en aprender.
Lucien wrote:La mejor forma de aprender un lenguaje para programar es no aprendiendo ninguno, si aprendes la lógica detrás de una condicional, de un tipo de dato, cuando de verdad entiendes la parte más fácil de la programación entonces no importa si inicias con Python, Golang o Rust , vas a entenderlo todo.
Mi primera recomendación sería C# ,ya que no requiere de programas externos, puedes hacer "inventos" con .bat y listo, con Python si tienes internet y puedes bajarlo y también ponerle librerías.
Otro dato muy importante es que no te conviertas en un estudiante eterno, siempre que estudies algo practícalo ?
Es amor por ti lo que siento??toda la razón puto mío fuiste el único en mencionar mi amado c# no se si es que yo te lo metí por la cabeza(es que se lo meto a todo el mundo(doble referencia ?)) pues si c# es un lenguaje muy bueno y amplio de función general tanto para aplicaciones, juegos, programas para Windows y desarrollo web. Aunque no tiene tanta facilidad en comparación con Python pero su sintaxis es relativamente parecida a Java, aunque hay que reconocer que el mero hecho de que le pertenezca a Microsoft hace que muchos de la comunidad Linux le tengan cierto repudio al no ser totalmente código libre.... Cambiando de tema la lógica es lo principal si no se sabe de lógica es como darte un pirograbador no sabrás que carajos hacer con el lenguaje no tendrás ni mediana idea de cómo construir un programa y mucho menos aplicar el funcionamiento de la programación. Dominar un lenguaje o 20 como yo no hace a nadie un programador a las empresas no les importa hoy en día los títulos les importa los resultados si tú eres capaz de hacer una red social o un programa basado en blockchain para ellos les importará poco si tienes o no título jajajaa
Si se trata de comenzar a aprender o jugar con las propiedades que te brinda un LP orientado a objetos (principiante) te recomiendo Visual Basic, es un lenguaje de programación dirigido por eventos, para los que comienzan a dar sus primeros pasos en el mundo de la programación y que nunca antes haya trabajado con este lenguaje de programación o con otro, ni con sus versiones anteriores, le resultará muy estimulante y te daras cuenta que avanzas rápidamente.
Un poco de historia. En la década de los 80 e inicios de los 90 del siglo pasado el problema de qué lenguaje utilizar en la enseñanza de la programación tuvo una respuesta segura, diseñada para la pregunta: Pascal.
Sin embargo, con el advenimiento de la programación orientada a objetos, Pascal dejó de ser una opción viable dada la necesidad de la industria de profesionales con conocimientos modernos en materia de programación. En esta situación, la elección del primer lenguaje de programación se convirtió en un problema de respuesta mucho menos clara. Se comienzan a utilizar entonces lenguajes comerciales como Scheme, Haskell, ML, GBeta, Smalltalk, Delphi, C++ y sobre todo Java [1]. Es en este contexto es donde surge Python.
Un lenguaje de programación usado en la educación debe ser fácil de aprender, organizado en su diseño, de uso general y poderoso computacionalmente. Debe tener además una sintaxis simple, proveer un fácil manejo de la entrada y salida de datos, entre otras características.
Con el objetivo de determinar el más adecuado para la introducción a la programación, un interesante estudio utiliza 17 indicadores sugeridos por creadores de lenguajes considerados útiles para la enseñanza por la comunidad académica: Seymour Papert (creador de LOGO), Niklaus Wirth (creador de Pascal), Guido van Rossum (creador de Python) y Bertrand Meyer (creador de Eiffel). En la comparación de 12 lenguajes, Eiffel y Python obtuvieron 15 puntos, Java 14, C++ 11 y Visual Basic 9.
Con la entrada en escena, a finales de los 80’, del paradigma de la programación orientada a objetos, Pascal dejó de ser el lenguaje preferido de los educadores, quienes se volcaron a utilizar los nuevos lenguajes surgidos al calor de la nueva corriente, como C++, ADA, Java, Eiffel,
Smalltalk, entre otros. Sin embargo, luego de algún tiempo, comenzó a ser evidente para algunos que estos lenguajes, aunque muy útiles en el ámbito industrial o de investigación, no necesariamente poseían las características necesarias para la docencia.
¿Qué programas existen para programación básica?
Hay centenares de lenguajes de programación existentes (FORTRAN, Ada, Perl, ALGOL, ASP, Python, BASIC, Java, JavaScript, Ruby, C, C++, C#, Lisp, COBOL, Delphi, Visual Basic, Objetive-C, Pascal, ) y, al igual que ocurre con los idiomas, los hay que son muy populares, muy usados o más fáciles. ;)
Tomado de Autodesk Maya. www.autodesk.es/maya
Depende mucho de la persona en sí y de lo que lo haya llevado aprender a programar. El más fácil de aprender para mi es Python, siguiéndole Ruby. Los que dominamos el inglés sabemos que su sintaxis es muy similar a la de esta lengua, por lo que es muy fácil de aprender por personas que dominen el lenguaje, incluyendo aquellos dedicados a las matemáticas, las ciencias y sus derivados.
Bombom Asesino wrote:Depende mucho de la persona en sí y de lo que lo haya llevado aprender a programar. El más fácil de aprender para mi es Python, siguiéndole Ruby. Los que dominamos el inglés sabemos que su sintaxis es muy similar a la de esta lengua, por lo que es muy fácil de aprender por personas que dominen el lenguaje, incluyendo aquellos dedicados a las matemáticas, las ciencias y sus derivados.
😱.... el mundo del desarrollo de software gira en torno al inglés, así fue desde un principio y no hay motivo para cambiarlo. Es como la medicina o leyes que se basan en el latín, una lengua ya muerta. Así que si deseas programar tienes que aprender Ingles pues no existe programación en otra lengua.