Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: edr89 en 18 Mayo 2013, 06:14 am



Título: Qué significa aprender el lenguaje C?
Publicado por: edr89 en 18 Mayo 2013, 06:14 am
Hola,
estoy llevando introducción a la programación en la universidad y nos dan C, aprendemos las funciones principales, definicion de variables, uso de loops, la sintaxis, etc.
Creo que aprender C es importante pero no fundamental, empiezo a familiarizarme con C++  y me di cuenta que algunas cosas cambian como printf por cout, scanf por cin, detalles de sintaxis; pero el algoritmo y diseño del programa no cambia.

¿Qué pasa por ejemplo si quiero trabajar con java, visual basic, authorware? Es indispensable el conocimiento de C? Si quisiera enfocarme en GUI's?

Desconozco el panorama general de la programacion pero me parece un poco atrasado aprender C, tal vez estoy en lo incorrecto, tengo esta impresión por un libro que encontre en la biblioteca, era el manual del header file graphics.h, no tenia idea que la libreria ya es obsoleta y que la manera de manejar los gráficos ha cambiado, pero eso lo descubrí hasta que terminé de transcribir un ejemplo de código y no compilaba.  ;-)

Saludos!




Título: Re: Qué significa aprender el lenguaje C?
Publicado por: CodeSource en 18 Mayo 2013, 07:59 am
Hola,
estoy llevando introducción a la programación en la universidad y nos dan C, aprendemos las funciones principales, definicion de variables, uso de loops, la sintaxis, etc.
Creo que aprender C es importante pero no fundamental, empiezo a familiarizarme con C++  y me di cuenta que algunas cosas cambian como printf por cout, scanf por cin, detalles de sintaxis; pero el algoritmo y diseño del programa no cambia.

¿Qué pasa por ejemplo si quiero trabajar con java, visual basic, authorware? Es indispensable el conocimiento de C? Si quisiera enfocarme en GUI's?

Desconozco el panorama general de la programacion pero me parece un poco atrasado aprender C, tal vez estoy en lo incorrecto, tengo esta impresión por un libro que encontre en la biblioteca, era el manual del header file graphics.h, no tenia idea que la libreria ya es obsoleta y que la manera de manejar los gráficos ha cambiado, pero eso lo descubrí hasta que terminé de transcribir un ejemplo de código y no compilaba.  ;-)

Saludos!




C y C++ son casi lo mismo como tu dices son cambios en las palabras clave pero la estructura es la misma, C es un lenguaje estructurado, cada lenguaje tiene su sintaxis y palabras clave, si quieres programar en otro como java es probable que te sea más familiar pues java es hijo de C , java es derivado de C, pero si te vas de C a python , wow es diferente tanto la sintaxis como las palabras clave por ejemplo en python no hay un switch y en C no hay objetos si me entiendes?, claro conocer un lenguaje amplia tu panorama pero no quiere decir que sea obligatorio.


saludos


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: Cönnectome en 18 Mayo 2013, 17:38 pm
Hola,
estoy llevando introducción a la programación en la universidad y nos dan C, aprendemos las funciones principales, definicion de variables, uso de loops, la sintaxis, etc.
Creo que aprender C es importante pero no fundamental, empiezo a familiarizarme con C++  y me di cuenta que algunas cosas cambian como printf por cout, scanf por cin, detalles de sintaxis; pero el algoritmo y diseño del programa no cambia.

¿Qué pasa por ejemplo si quiero trabajar con java, visual basic, authorware? Es indispensable el conocimiento de C? Si quisiera enfocarme en GUI's?

Desconozco el panorama general de la programacion pero me parece un poco atrasado aprender C, tal vez estoy en lo incorrecto, tengo esta impresión por un libro que encontre en la biblioteca, era el manual del header file graphics.h, no tenia idea que la libreria ya es obsoleta y que la manera de manejar los gráficos ha cambiado, pero eso lo descubrí hasta que terminé de transcribir un ejemplo de código y no compilaba.  ;-)

Saludos!


Con C/C++ lo puedes hacer todo. El problema es que puede que te se complique la cosa, y por eso existen lenguajes como Visual Basic que te facilitan la tarea. Aunque, también existen librerias y API de Windows que te permiten entrar en el entorno grafico.

Para hablar en temas actuales, Curiosity fue escrito en lenguaje C, el robot que fue lanzado a Marte. Para hablar de tiempos pasados, el sistema operativo más importante fue escrito en C (UNIX). Y, si te fijas, mucha sintaxis de otros lenguajes, como Java, PHP, lenguaje de Arduino, se asemeja mucho a C.

Por eso, en mi opinión, es fundamental aprender C. Al menos, con l'aprendizaje de este lenguaje te servira para ayudar a aprender de otros "mas especificos".

C y C++ varian mucho. Notaras la diferencia cuando entres en Programación Orientada a Objetos que tiene C++, cosa que C no tiene, y es una herramienta muy importante si quieres entrar en programación más avanzada(según tengo entendido).

Saludos,

Cönnectome


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: edr89 en 18 Mayo 2013, 23:59 pm
por ejemplo en python no hay un switch y en C no hay objetos si me entiendes?, claro conocer un lenguaje amplia tu panorama pero no quiere decir que sea obligatorio.

saludos
Si, lo entiendo y por eso creo que se puede dar en primer curso otro lenguaje distinto de C, aunque los academicos parecen admirar los estandares americanos. Aprendí procesos muy especificos hace 2 años de Visual Basic Aplicado en office, todo enfocado a documentos, hojas de calculo, busqueda de info, cosas triviales, y nunca me paso por la cabeza la sintaxis de C o sus caracteristicas.

Ahora que estoy formalmente aprendiendo en un curso la primera impresion que me da es muy amarga, todo el conocimiento relativo a visual basic se convierte en algo inutil a la hora de trabajar en C. Lo que hice en Basic hace tiempo no lo podre hacer en C hasta que no lleve aprobados al menos un par de cursos me ha dicho el profesor, en fin quedé decepcionado y frustrado, sobre todo porque los temas que necesito aprender son de C++ (Steinberg SDK y Juce C++). Por esto no se si pueda comenzar con C++ o deba enfocarme y perfeccionar C).


Con C/C++ lo puedes hacer todo. El problema es que puede que te se complique la cosa, y por eso existen lenguajes como Visual Basic que te facilitan la tarea. Aunque, también existen librerias y API de Windows que te permiten entrar en el entorno grafico.

Para hablar en temas actuales, Curiosity fue escrito en lenguaje C, el robot que fue lanzado a Marte. Para hablar de tiempos pasados, el sistema operativo más importante fue escrito en C (UNIX). Y, si te fijas, mucha sintaxis de otros lenguajes, como Java, PHP, lenguaje de Arduino, se asemeja mucho a C.

Por eso, en mi opinión, es fundamental aprender C. Al menos, con l'aprendizaje de este lenguaje te servira para ayudar a aprender de otros "mas especificos".

C y C++ varian mucho. Notaras la diferencia cuando entres en Programación Orientada a Objetos que tiene C++, cosa que C no tiene, y es una herramienta muy importante si quieres entrar en programación más avanzada(según tengo entendido).

Saludos,

Cönnectome

La programacion orientada a objetos! ¿Qué relacion tiene con C? imagino que al trabajar con objetos la codificacion se torna distinta.

En general, qué pasa si el plan de trabajo incluye html, php, bases de datos y multimedia (todo lo relacionado con imagen, audio y video), es relevante el conocimiento de C? A medida que uno programa paraa dispositivos contemporaneos, una tablet un ipad un smartphone, el lenguaje C es necesario?. Espero que entiendan el punto de todo esto.

Me han comentado incluso que quiero aprender temas de moda y que no vale la pena porque despues van a desaparecer y nada podre hacer.

saludos!


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: amchacon en 19 Mayo 2013, 01:26 am
La programacion orientada a objetos! ¿Qué relacion tiene con C? imagino que al trabajar con objetos la codificacion se torna distinta.
Con C no tiene ninguna relación puesto que no la soporta.

C++ sí, Ahora bien, C++ es retrocompatible (quiero decir, que un programa de C lo puedes compilar en un compilador de C++ o incluso puedes irlos mezclando (un archivo en C y otro en C++)).

De modo que no te preocupes, lo único que aporta nuevo C++ es la programación orientada a objetos y es opcional (la puedes usar o no)). Cuando la veas te darás cuenta que es una metodología de programar muy bonita y elegante.

En general, qué pasa si el plan de trabajo incluye html, php, bases de datos y multimedia (todo lo relacionado con imagen, audio y video), es relevante el conocimiento de C?
Si tu pregunta es: ¿Es necesario saber C para crear páginas web? La respuesta es no, puesto que C es un lenguaje compilado y las páginas web son interpetradas.

A medida que uno programa paraa dispositivos contemporaneos, una tablet un ipad un smartphone, el lenguaje C es necesario?. Espero que entiendan el punto de todo esto.
Pues depende del dispositivo donde te vallas:

- Windows Mobile: C++
- Iphone/Ipad: Objetive-C (es una modificación del lenguaje C realizada por Apple...).
- Android: Java, pero si quieres usar alguna función nativa del movil (o alguna operación que necesite un rendimiento alto) tienes que usar unas librerías en C++.

Me han comentado incluso que quiero aprender temas de moda y que no vale la pena porque despues van a desaparecer y nada podre hacer.
C se inventó en los años 70 y aún se sigue usando a dia de hoy (no hay ningún otro lenguaje que ofrezca el mismo rendimiento aparte de ensamblador).

C/C++ nunca desaparecerá.


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: edr89 en 19 Mayo 2013, 07:07 am
lo único que aporta nuevo C++ es la programación orientada a objetos y es opcional (la puedes usar o no)). Cuando la veas te darás cuenta que es una metodología de programar muy bonita y elegante.

No lo veremos este curso... y tengo dudas respecto a si trabajar con C o C++, la uni insiste en C, claro.

saludos!


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: CodeSource en 19 Mayo 2013, 08:26 am
Citar
De modo que no te preocupes, lo único que aporta nuevo C++ es la programación orientada a objetos y es opcional
?? y la función ++? por algo se llama C++.


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: edr89 en 19 Mayo 2013, 08:49 am
?? y la función ++? por algo se llama C++.
Leí que se llamaba "C with classes" y posteriormente se le cambio a C++ que representa el incremento que tuvo C.  :silbar:


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: 0xDani en 19 Mayo 2013, 14:53 pm
C se inventó en los años 70 y aún se sigue usando a dia de hoy (no hay ningún otro lenguaje que ofrezca el mismo rendimiento aparte de ensamblador).

C/C++ nunca desaparecerá.

En realidad fue creado en el 69, no en los 70.

?? y la función ++? por algo se llama C++.

Si te refieres al operador unario de incremento, creo que ya existía en C.

@edr89:

En Visual Basic lo tienes mucho más fácil para trabajar con GUIs, bases de datos, multimedia, etc... porque tienes un montón de APIs "prehechas", en cambio el estándar de C o C++ no cubre esos aspectos, porque trabaja más a bajo nivel y pretende ser más portable. Ten en cuenta que Visual Basic es una versión de Basic creada por Microsoft.

De todas formas, C sigue siendo hoy día el lenguaje más usado del mundo, y su sintaxis ha marcado la programación irreversiblemente, de forma que nunca está de más saber C, ya que te da una base excelente para aprender otros muchos lenguajes y ejercitar la algorítmica.

Saludos.


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: Cönnectome en 19 Mayo 2013, 15:39 pm

Si te refieres al operador unario de incremento, creo que ya existía en C.


Existe, seguro. Si no, nadie se acuerda de como hacer un bucle for en C? En el incremento se pone i++, i no i=i+1.

@edr89:
Una cuestión que te puedes plantear para ayudarte, es preguntarte porque aprendes C en la universidad y no aprendes otro lenguaje de programación. Todas las universidades, en las ingenierias, según tengo entendido, tienen el lenguaje C en su plan de estudios.

Si realmente quieres deducir si vale la pena o no, mira el perfil que buscan ciertas empresas como analista/programador o algo relacionado con ingeniería informatica/electronica/telecomunicación..etc. Veras, que, daran importancia a C, C++, o si no, C#, pero no cabe duda que te pondrian C/C++ como base.  Eso depende, claro de la empresa y su intenciones...(si han llevado toda la vida programando en Python porque ya tienen todas sus librerias y eso con este lenguaje, no te pediran que aprendas LISP...)

Creo que vi alguna encuesta sobre los lenguajes que se utilizan más en este foro. El que ganaba creo que era C/C++..., está clarisimo y no es nada paradoxal.

Saludos,

Cönnectome


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: 0xDani en 19 Mayo 2013, 15:46 pm
Existe, seguro. Si no, nadie se acuerda de como hacer un bucle for en C? En el incremento se pone i++, i no i=i+1.

Ya sé que existe, de lo que no estaba tan seguro es de que existiera cuando se creó C originalmente, antes de la aparición de C++.


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: kaiserr en 19 Mayo 2013, 15:58 pm
@edr89:
Una cuestión que te puedes plantear para ayudarte, es preguntarte porque aprendes C en la universidad y no aprendes otro lenguaje de programación. Todas las universidades, en las ingenierias, según tengo entendido, tienen el lenguaje C en su plan de estudios.
Hay ingenierias que utilizan python.

Se estudia C porque es la base de casi todo. En mi carrera el primer año se estudia C y luego C++, y el siguiente año python.
Nunca he preguntado el porque, pero me imagino que sera porque de C a C++ no hay grandes cambios y es facil pasar de uno a otro, y una vez que se aprende la programacion orientada a objetos (C++), puedes pasar a otros lenguajes del mismo tipo mas facilmente.

Es como subir una escalera poco a poco.


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: leosansan en 19 Mayo 2013, 17:02 pm
Hay ingenierias que utilizan python.
Se estudia C porque es la base de casi todo. En mi carrera el primer año se estudia C y luego C++, y el siguiente año python.

No obstante existen universidades en que en el primer semestre dan python y luego C/C++. El objetivo es que manejen lo básico, variables, bucles y funciones y, sobre todo, aprendan la importancia de la indentación en los códigos, obligatorio a la fuerza en python donde no se usan llaves para delimitar el "cuerpo" y que tanto se peca en C/C++ por defecto. Claro que luego al pasar a C/C++ se hacen un lío, no por las llaves, sino por el uso de arrays de un solo tipo, en python un array puede contener valores de distintos tipos, y ni te cuento lo de los punteros.

Vamos que para gustos colores.

Saluditos!. .... ...
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: edr89 en 20 Mayo 2013, 07:05 am
Una cuestión que te puedes plantear para ayudarte, es preguntarte porque aprendes C en la universidad y no aprendes otro lenguaje de programación. Todas las universidades, en las ingenierias, según tengo entendido, tienen el lenguaje C en su plan de estudios.
...
Creo que vi alguna encuesta sobre los lenguajes que se utilizan más en este foro. El que ganaba creo que era C/C++..., está clarisimo y no es nada paradoxal.



Hay ingenierias que utilizan python.

Se estudia C porque es la base de casi todo. En mi carrera el primer año se estudia C y luego C++, y el siguiente año python.
Nunca he preguntado el porque, pero me imagino que sera porque de C a C++ no hay grandes cambios y es facil pasar de uno a otro, y una vez que se aprende la programacion orientada a objetos (C++), puedes pasar a otros lenguajes del mismo tipo mas facilmente.

Es como subir una escalera poco a poco.

Para ser un curso introductorio creo debe ser dinamico, es decir, que ofrezca los distintos tipos de lenguajes y sus caracteristicas, es mejor saber desde un inicio para que sirve cada lenguaje y en que se aplica a seguir un plan de estudios que te va a dar lo que cree conveniente.

A veces siento que trabajar en C es analogo a querer trabajar en windows 95 cuando existe una version actualizada. Si C++ es una consecuencia de C, mi sentido comun optaria por C++ a no ser que haya cosas que C haga y C++ no.

saludos


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: kaiserr en 20 Mayo 2013, 13:00 pm


Para ser un curso introductorio creo debe ser dinamico, es decir, que ofrezca los distintos tipos de lenguajes y sus caracteristicas, es mejor saber desde un inicio para que sirve cada lenguaje y en que se aplica a seguir un plan de estudios que te va a dar lo que cree conveniente.



En un primer año de una ingenieria esta mas dedicada a la ingenieria y no al tipo de ingenieria (no se si me explico jaja), por lo que te enseñan una base de "casi todo".
Si el primer año te enseñan 5 lenguajes diferentes terminaria siendo un follon, y no a todo el mundo le gusta programar, ni a todos los ingenieros les hacen falta 20 lenguajes diferentes, o es mas, no se le da bien programar y necesitas dedicarle mas tiempo.

A mi me parece bien que en el primer curso te enseñen uno o dos lenguajes de programacion.  :silbar: aunque como tu dices, podrian explicar la utilizacion de los lenguajes mas utilizados en las primeras clases.


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: amchacon en 20 Mayo 2013, 14:31 pm
A veces siento que trabajar en C es analogo a querer trabajar en windows 95 cuando existe una version actualizada. Si C++ es una consecuencia de C, mi sentido comun optaria por C++ a no ser que haya cosas que C haga y C++ no.
En mi universidad se da C++ en el primer curso ;)


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: edr89 en 21 Mayo 2013, 01:08 am
A mi me parece bien que en el primer curso te enseñen uno o dos lenguajes de programacion.  :silbar: aunque como tu dices, podrian explicar la utilizacion de los lenguajes mas utilizados en las primeras clases.

Asi es,el contenido seria contemporaneo y aplicado, ya decidirá uno si quiere trabajar con C o Delphi, Java, lo que sea. Poco a poco resuelvo las dudas de C pero poder llevar a la par C++ con las mismas instrucciones básicas y tipos de bucles, variables, arreglos... no veo el inconveniente o complejitud, en fin.


En mi universidad se da C++ en el primer curso ;)
>:D
Cuál es el contenido tematico?


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: leosansan en 21 Mayo 2013, 07:36 am
Asi es,el contenido seria contemporaneo y aplicado, ya decidirá uno si quiere trabajar con C o Delphi, Java, lo que sea. Poco a poco resuelvo las dudas de C pero poder llevar a la par C++ con las mismas instrucciones básicas y tipos de bucles, variables, arreglos... no veo el inconveniente o complejitud, en fin.


Respecto a lo segundo darte la razón sólo en parte, el tema de bucles, funciones y en parte el de variables y punteros son parecidos, pero C++ apenas profundizas es un mundo aparte. Sus nuevos tipos, clases  y librerías con sus múltiples nuevas  funciones ofrecen una "nueva"  visión a la hora de programar respecto de C. Cierto que algunas de las nuevas funciones de C++ se pueden programar en C "a mano", pero C++ va mucho más allá. Como dije, un mundo nuevo, no se limita  sólo a cambiar print y scanf por cout y cin.

Y respecto de temarios hay de todo en la viña del Señor. En la Superior de Ingenieros Industriales donde estudié ni daban programación, eso sí, pedían trabajos escritos en algún lenguaje pero normalmente era Fortran o lo que te  apeteciera, ya que lo daban como explicado y tú búscate la vida.

En cambio se hacía mucho incapie en los programas "reales" a utilizar, por mencionar los más usuales el SPSS en estadística, El Cypecad,Corel,  Autocad y acólitos para todas las asignaturas referidas a construcción y diseño y, como no, el Mathematica y Matlab para casi todo, desde cálculo a regulación automática y.......

En lo personal soy partidario de aprender paquetes de programas "de uso real" en la vida profesional. Otra cosa son las carreras de Informática y afines, entiéndase las Telecos, pero incluso ahí es fundamental y más práctico manejar muy bien el Matlab yel Simulink con los que puedes hacer "virgurerias" que en C llevaría mucho de llegar a dominar y el aprendizaje de multitud de librerías externas con mucha soltura además, con librerías de números grandes y gráficas, cosa que en Mathematica y Matlab son inmediatas, amén de sus posibilidades en cuanto a programación básica incluidas.

>>Como muestra un desarrollo de Fourier de una señal tan simple como un escalón sería un código "tormentoso en C/C++, primero obtener el desarrollo a mano y luego el uso en profundidad de alguna librería, con su anterior aprendizaje, gráfica, cosa que en Mahematica por ejemplo, y en Matlab algo parecido, ni hago a mano, por no hablar de la potencia de gráficos matemáticos, es decir reales, no para jueguitos:

(http://i1280.photobucket.com/albums/a497/leosansan/GRAFICOS1/fourier1_zps662d0942.jpg)

(http://i1280.photobucket.com/albums/a497/leosansan/GRAFICOS1/cono_paraboloide_zpsbc3a38ac.jpg)

y no hablo en profundidad de Autocad. SolidEdge, Cypecad etc, porque los doy por más que conocidos.

Vamos que C/C++ es fundamental en Ingenieras como lo puede ser el inglés, cuestión de tener cultura, pero su manejo en sentido profesional lo dejaría para los profesionales del sector.

Y si se trata de tener conocimientos generales no me conformaría con C/C++, yo en la actualidad soy partidario de entrar en el mundo de la programación con Python,luego C/C++ , siempre que esté enfocado a un lenguaje de uso genérico y no, por ejemplo orientado a la programación Web o al diseño gráfico ....ufff !!!!, como dije, todo un mundo.

Es sólo una opinión y ya sé que para gustos colores. Sólo trataba de poner cada cosa en su sitio.


Saluditos! .... ...(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: amchacon en 21 Mayo 2013, 08:31 am
Cuál es el contenido tematico?
Estructuras condicionales, vectores, ficheros... Vamos, todo salvo punteros y orientación a objetos que se da en 2º.


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: cypascal en 21 Mayo 2013, 14:25 pm
Completamente de acuerdo con el último mensaje de leosansan, además de compartir una situación muy parecida a la suya.
Para ingenierías que no sean la informática o teleco, lo mejor es aprender a usar MatLab, Mathematica,Autocad... y un lenguaje de programación, que en mi opinión no importa cual, ya que lo importante es el proceso de programación y resolución del problema planteado

Salu10


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: leosansan en 21 Mayo 2013, 15:28 pm
Completamente de acuerdo con el último mensaje de leosansan, además de compartir una situación muy parecida a la suya.
Para ingenierías que no sean la informática o teleco, lo mejor es aprender a usar MatLab, Mathematica,Autocad... y un lenguaje de programación, que en mi opinión no importa cual, ya que lo importante es el proceso de programación y resolución del problema planteado




(http://i1280.photobucket.com/albums/a497/leosansan/leosan2/bravo_zps235727f6.gif)



Saluditos!  .... ..
(http://i1280.photobucket.com/albums/a497/leosansan/leosan1/leones%20peques/lioncolorespeque_zps86224745.jpg)


Título: Re: Qué significa aprender el lenguaje C?
Publicado por: edr89 en 21 Mayo 2013, 23:47 pm
Vamos que C/C++ es fundamental en Ingenieras como lo puede ser el inglés, cuestión de tener cultura, pero su manejo en sentido profesional lo dejaría para los profesionales del sector.

...

Es sólo una opinión y ya sé que para gustos colores. Sólo trataba de poner cada cosa en su sitio.

Si, lo entiendo, ademas tomo nota de Mathlab y mathematica, los he visto en libros de calculo y algebra lineal pero poco se hacer con ellos. 

...ya que lo importante es el proceso de programación y resolución del problema planteado
asi es, el color del código es lo de menos, pensarlo es lo importante creo yo.