Consejo para empezar a programar

Camp1

Hola, soi nuevo en esto y quería preguntarles con qué puedo empezar a programar y si conocen algun curso online facilito que este bien. ¿En qué me recomiendan que empieze, en C#?

Quiero estudiar ingenieria informática y quisiera llevar algo de base antes de empezar.

0buS

Diagramas de flujo

De empezar por algun lenguaje, deberias empezar por C. Aunque no te recomiendo entrar directamente a código porque no aprenderás.

1 respuesta
Camp1

#2 thx lo unico de codigos que he visto ha sido html

Rivendel

Te recomiendo paciencia

ManuKNT

Yo te recomiendo que empieces por hacer programas sencillitos, tipo suma y poco más, en pseudocódigo y después meterte en C.

eisenfaust

Scheme o Python.

Deja C para la carrera.

Ni te molestes con el pseudocodigo. No sirve para nada e impide abstraerse.

3 respuestas
Markitos_182

Java es muy simple y con poca experiencia puedes hacer cosas 'serias'. Aunque lo ideal es que aprendas C, ya que es El Lenguaje. Eso si, te rompes mil la cabeza.

Edit.: Yo no sé PHP, pero creo que también está bastante, bastante bien para empezar.

1 respuesta
ManuKNT

#6 No estoy de acuerdo, el pseducódigo para empezar ayuda a familiarizarse con el razonamiento lógico, algo muy importante a la hora de programar

#7 Yo no me iría directamente a objetos, y por facilidad sería mejor C#, es mucho más simple que Java, y para ello es mejor tener la gran base que es C, que como dices, es El Lenguaje.

MTX_Anubis

yo haría caso a #6 añadiendo ruby

varuk

¿Y no sería mejor empezar con algo tipo PASCAL y luego cuando cogiera soltura pasarse a otro como C?

1 respuesta
Nucklear

Yo para empezar a programar te diria que entendieses como se estructuran los lenguajes y luego te pusieses a programar. Aunque sepas hacer cuatro cosas con codigo en lenguaje random te faltará la base, sobre todo para la programación orientada a objetos.

Que es un framework, que son las clases, las librerías, objetos, etc,etc...

Para mi eso es mucha mejor base que aprenderte de principio a fin un API de cualquier lenguaje.

Después yo para la carrera me metería a C, Python y Ruby para luego irme a la POO (Programacion orientada a objetos) tan pronto como cojas algo de soltura.

0buS

que empiece por ensamblador, coño!

#6 como puedes decir que el pseudocódigo no vale para nada?

Craw

Estoy con #10. Pascal es probablemente lo más parecido a pseudocódigo.
Empieza con Pascal, luego C, y luego metete en objetos.

2 respuestas
ManuKNT

#13 Esta opción también me parece buena para empezar en este mundillo.

eisenfaust

PASCAL no deberia ni de plantearse. Estamos locos o que? xD

Lo mas parecido al pseudocodigo es Python, tanto que muchisimos libros de algoritmos e IA se estan portando de pseudocodigo a este lenguaje.

Aprender pseudocodigo a alto nivel es dificil, tanto o mas que aprender determinados lenguajes. La tendencia hoy y mi recomendacion es no perder el tiempo con pseudocodigo y empezar directamente con Python, que al menos compila y permite resolver problemas reales (importantisimo este ultimo punto, ya que no son pocos los que terminan asqueados de la programacion sin haber tocado una linea de codigo).

Sumadle a esto la dificultad de abstraerse o expresar determinadas funcionalidades con pseudocodigo. Que si, que es lenguaje humano y todo lo que querais, pero no deja de estar basado en el ingles, uno los lenguajes humanos mas limitados que existen hoy dia. Por que hemos de expresar nuestros programas con algo que parte de una sintaxis erronea? Que estemos acostumbrados a algo no quiere decir que sea la mejor opcion.

Guste o no, la gran mayoria de las veces es mejor expresar un programa en lenguaje matematico* que en lenguaje humano. Por eso Scheme es en mi opinion, junto a Python, uno de los mejores lenguajes para iniciarse. Y luego ya segun gustos. Unos prefieren la sintaxis heredada de Algol, y otros verlo todo petado de parentesis.

  • En realidad el lenguaje matematico tambien lenguaje humano, pero supongo que nos entendemos.
2 respuestas
Deoxys

#1 Si quieres el mejor consejo que alguien puede darte, NO EMPIECES.

Si aún así quieres empezar, C. Cuando lo domines (No es difícil, en un mes se coge con el libro de 'el lenguaje de programación C) pásate a C++. Con esos dos dominados podrás pasarte cómodamente a cualquier otro lenguaje. Bueno, a la mayoría de ellos.

Vefalst

Lo que dice #13. Mejor empezar con PASCAL. C es de mas bajo nivel (se acerca mas al ensamblador).

1 respuesta
Craw

#15 en mi opinión, Pascal, para empezar, es cojonudo. Tal vez es porque yo empecé con Pascal, pero creo que es suficientemente sencillo como para entender las cosas sin meternos en conceptos complicados y tienes la posibilidad de ver bien como funcionan todas las estructuras de datos básicas.

Si empiezas con Python, cuando quieras meterte en C va a ser casi como empezar de cero...

Además #1 lo que quiere es coger una base de cara a la carrera, asi que más razón para empezar con Pascal.

Sigo pensando que Pascal para empezar de forma sencilla, y luego C. Python es cojonudo, pero creo que hay que aprender otras cosas antes.

pd: Decidas lo que decidas, no te desanimes. Programar puede llegar a ser muy frustrante:

2 1 respuesta
ManuKNT

#15 El pseudocódigo lo puede hacer en el idioma que más le convenga. Sólo sirve para coger soltura con el razonamiento lógico. Por ejemplo, si tengo que mostrar 100 veces hola mundo, cómo lo haría? Y lo pone en su idioma y con sus palabras. Ya llegará el momento de codificar, compilar y ejecutar en el lenguaje que sea.
Empezar con cualquier lenguaje sin tener una nociones teóricas básicas me parece una locura.

#17 C es El Lenguaje. En C aprenderá muchas cosas que otros lenguajes "tapan". Por ejemplo, el uso de punteros de un modo casi total, algo que en los lenguajes de más alto nivel no te permiten hacerlo. Aprender C es aprender el paradigma del lenguaje estructurado. Sí es cierto que C es muy duro, pero si lo consigues manejar, cuando pases a cualquier otro lenguaje de más alto nivel, te será muuuucho más sencillo.

1 respuesta
MTX_Anubis

#19 Aprender C es aprender el paradigma del lenguaje estructurado

Como lo puedes aprender con casi la totalidad de los lenguajes, solo que la mitad serán más sencillos y podrás hacer muchas más cosas antes que con C y escribiendo menos de la mitad de las lineas.

Lo más probable es que si aprender C, no lo vuelva a utilizar en su vida para nada.

2 respuestas
eisenfaust

#20 this.

Ademas de la logica aplastante de algunos, que opinan que es mejor pasar de no tener base a C, a venir de otro lenguaje mas sencillo y con un mindset adecuado.

C, hoy por hoy, salvo algunas excepciones donde la velocidad es crucial (algo que el 99% de los aqui presentes jamas necesitaremos), no se usa para nada. Y mas que ayudar crea malos habitos (en la programacion el lenguaje es simplemente un medio de expresion, pero cuando se convierte en una forma de pensar es un problema bastante serio, mas si es un lenguaje tan limitado en cuanto a creatividad). Hay muchisimos programadores a los que les sacas de C y no saben que hacer, o peor, intentan programar C en otros lenguajes (algo realmente comico y frustrante de mantener).

Ademas de que todos los que se dedican profesionalmente a C terminan quemadisimos, creo que todos conoceremos a alguno. Como va a ser un lenguaje que ha terminado con carreras recomendable para iniciarse en el mundo de la programacion?

2 respuestas
Craw

#21 yo creo que los que recomiendan que empiece por C, se lo recomiendan para que aprenda lo básico, no para que se meta a nivel profesional.

1 respuesta
ManuKNT

#20 Vale, ¿y no usarlo en tu vida significa no estudiarlo? Aprendí C como mi primer lenguaje, prácticamente no lo uso, pero aprendí gracias a él, por ejemplo, a usar punteros, algo que da mucho potencial al programador. ¿Aprendes el paradigma del lenguaje estructurado con Java, C#, VB, etc?

#21 No creo que lo digas por mí, ya que no era de no saber nada a C, si no tener el paso intermedio de entender la lógica que se usa en la programación. Como dice #22, lógicamente no le estoy diciendo que se dedique laboralmente a programar en C porque sería una locura. Pero igual locura me parece no seguir unos pasos. C++ significa "incremento de C", es decir, un C mejorado. C# es la unión de "C++ ++". Muchos lenguajes utilizan la base de C para su sintaxis y sentencias. ¿No es lógico que si aprendes a usar a un padre, te costará menos aprender de los hijos?

Lógicamente, repito, no te vas a dedicar a programar en C, pero sí creo que es un buen comienzo para empezar a programar. Aunque claro, cada cuál tendrá su opinión según su experiencia y lo respeto. Yo empecé con C y no me arrepiento, aprender C#, C++, VB y Java no me costó mucho teniendo una base tan grande. Por ejemplo, cuando aprendí Java, me di cuenta de la cantidad de cosas "difíciles" de C que ya no tenía que hacer, como los punteros o la utilización del recolector de basuras.

1 respuesta
MTX_Anubis

#23 ¿Acaso no se puede aprender el paradigma en esos lenguajes? Pero sabes lo que es programación estructurada para decir que no se puede? Cualquier programador aplica ese paradigma. En cualquiera de esos lenguajes se utiliza ese paradigma también a parte del orientado a objetos y programacion imperativa.

Con java, aunque trabajas con referencias a memoria que aunque no son lo mismo que los punteros en la practica no difiere. Otra ventaja de utilizar otros lenguajes es que no te permiten hacer las guarrerías que te permiten C con o cual de inicio se agradece porque te obliga a escribir mejores programas y mejor código.

Empezar por C a día de hoy, yo lo veo perder el tiempo.

1 respuesta
LOc0

Quiero estudiar ingenieria informática y quisiera llevar algo de base antes de empezar.

http://algoritmia.net

http://www.tecnun.es/asignaturas/Informat1/AyudaInf/aprendainf/ansic/leng_c.pdf

Bienvenido y GL!

ManuKNT

#24 Sí, se perfectamente lo que es la programación estructurada, y en el caso de Java, aún siendo un lenguaje OOP híbrido, tiene poquitas cosas del lenguaje estructurado.

De todas formas, veo la discusión un poco tonta, cada cual aprenda lo que quiera, en mi opinión no pierde el tiempo aprendiendo un lenguaje aunque no sea utilizado, si es un lenguaje potente y que da una base muy buena para lanzarte a otros lenguajes. Si es por lo que se utiliza, que aprende Java y C# que son los más utilizadas y se olvide del resto, ¿no? Programadores conformistas no llegan muy lejos...

Pero bueno, tú no lo ves así y lo respeto, aunque sigo diciendo que NO es para dedicarse a ello profesionalmente, sólo para aprender. Y soy de la idea que aprender con un lenguaje que te lo da todo "masticadito" no es que enseñe mucho de programación, la verdad. Una cosa es aprender un lenguaje, y otra aprender a "programar".

PD: ¿Que no difieren las referencias a memorias de Java de los punteros de C? Ahora te pregunto yo...¿sabes algo de C y punteros? ¿Guarrerías en C? Aprendes a optimizar código, porque o lo haces tú o no te lo hace nadie, algo que no se puede decir de algunos lenguajes tan masticaditos.

1 respuesta
GamA

C no es un lenguaje de programación pensado para empezar. Yo empezaría por Java u otro más sencillo, y cuando más o menos sepas de que va el control de flujo, los tipos de variables, las clases, los métodos, etcétera, ya podrás echarle mano a C.

#1, ir de cara contra C puede hacer que lo dejes por frustración. No es precisamente sencillo el manejo de punteros si nunca lo has visto. Seguramente te cagarás en las madres de los que inventaron C.

Sin profesor delante C me parece una locura como inicio :/, pero claro esa es mi opinión...

#26 C es optimizado por el compilador, imagino que lo sabrás :P, con lo de que no te lo hace nadie... jeje, dejémoslo en que tienes que controlar tú todo, entre ello la gestión de memoria, que en otros lenguajes como java te lo encubren, y eso simplifica mucho la labor. Un free olvidado puede armarlas gordas xD

1 respuesta
dagavi

Por aquí veo que comentáis mucho que no es bueno empezar por C, etc.

¿Realmente veis tan diferente hacer un if o un for en C que hacerlo en Java?

Porque yo cuando empecé a programa, coincidiendo que cuando entré cambiaron la metodología de la asignatura y se hacía todo en C++ (en vez de hacer pseudocodigo + java en labs) lo que hacíamos en C++ era el casi lo mismo que el C que necesitábamos en las asignaturas de arquitectura de computadores:

if+else, for, crear funciones / acciones, structs (no clases), usar la clase vector + cin y cout para leer (todo eso que se pone al principio de include iostream using namespace std para nosotros es algo que se había de poner y punto, no se entra en más detalle)

Con eso nos machaban a problemas (si querías hacerlo, claro), por lo que en verdad lo que hacías era algoritmia (que es lo más importante, especialmente al inicio) pero ejecutable, en vez de hacer pseudocódigo "aburrido" que ni se puede probar pues directamente en C++. Además te ponían tantas restricciones (las cosas que se usan no eran lo mínimo que te daban, si no eran también un máximo: no podías usar otras cosas fuera de eso [memoria dinámica, clases, estructuras ya existentes, etc.]) que el subconjunto que queda es igual en casi todo lenguaje.

1 respuesta
Spank

La mejor manera es empezar en C para mi gusto, y no entrar en pseudocódigo, sino hacerlo todo a la vez, mientras vas viendo que es pseudocódigo vas implementando cosillas en C, una vez te hagas con declarar variables, a condicionales, bucles....y así te vas enterando de todo más o menos.

#18 Lo peor es cuando te compila y se ejecuta con un segmentation fault y a poner printf xD

2 respuestas
Craw

#29 "Violación de segmento"

...

FUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU