Estoy aprendiendo C y tengo unas dudas (no son del código)

Grise

Creo que no estás partiendo de la base correcta para aprender a programar y tampoco con el lenguaje ni la metodología más sencilla.

Quizás te valdría la pena mirar algún curso en el que empiecen explicando las diferentes estructuras de control de datos y su utilidad, luego ir pasando a herencia y así poco a poco, porque creo que tal y como estás intentando aprender ahora va a haber muchos conceptos que vas a saber cómo funcionan pero no cuando aplicarlos y vas a tener que hacer mucho trabajo de reaprendizaje, lo que te puede llevar a cansarte.

1 respuesta
Javielitros

#30

Perfect, pues me viene de perlas saber eso asi incluso me sube la motivación jaja.

#31

Te adjunto con el que estoy aprendiendo, explica bastante bien pero no se hasta que punto se profundiza, si lo puedes mirarlo asi de rapido y opinar os lo agradecería, ¿y qué me recomendarias tu para empezar a programar?, realmente en lo que me quiero enfocar es en el tema de juegos, como por ejemplo los scripts de unity en csharp, es algo que me esta llamando muchiiisimo la atención, y por ejemplo en c++ cuando aprendi en dev no me llamo tanto la atención y lo acabe "dejando", porque segui mirando cosillas.

https://www.youtube.com/watch?v=dHcV7BemHS4

Voy por el apartado de switch ya, pero con toda la teoria plasmada en el cuaderno, 38 páginas llevo ya que no son muchas pero bueno, algo son jaja

2 respuestas
Grise

#32 Está bastante bien el ritmo que sigue.

Cuando dijiste que estabas intentando aprender a programar con Unity pensaba que darían por hecho muchas cosas y se centrarían en aspectos concretos propios de Unity, pero visto por encima el curso para principiantes no es tanto aprender a programar en Unity como aprender a programar en C#, partiendo de cero, lo que es genial porque te servirá más adelante para comprender aspectos particulares de Unity que se basan en lo que estás aprendiendo ahora, que es de lo que pensaba que iría el curso.

1 respuesta
Soltrac

#32 los lenguajes imperativos son todos iguales. Además de eso, los lenguajes orientados a objetos, como c#, pues tb son todos iguales.

Respondiendo a tu pregunta, sí. Si puedes hacer un programa en c# lo puedes portar a c++ porque ambos son orientados a objetos pero te costará implementarlo en c porque c no tiene clases y te será más difícil todavía portarlo a f# porque es declarativo.

Además, java y c# tienen recolectores de basura automáticos q limpian de memoria cosas q no liberamos bien, cosa que c++ no, lo que hace cometer más fallos.

En resumen, si quieres ir por la vía fácil sabiendo c# podrás meterle mano a unity, entenderás códigos en java e incluso serás capaz de meterle mano al backend de programación web de lenguajes como php o apunte.

Llevo trabajando con c# más de 13 años... Imagina si lo adoro

1 respuesta
B

Que son las clases? Estas obligado a trabajar con ellas?

1 respuesta
Soltrac

#35 c# puede funcionar como lenguaje imperativo, pero a poco q lo utilices usas clases si o si. Hasta un formulario en el que tengas un label y una caja de texto es una clase de tipo formulario.

Busca en Internet. Hay millones de explicaciones de lo que es una clase

1 respuesta
Javielitros

#33

Si es bastante maquina y explica todo muy muy bien,

En otros tutoriales que segui al principio si que era más ponemos esto y lo otro y mirad como se mueve la caja, y no entendias una mierda el porque de nada simplemente copiabas el texto y tirando, por eso estoy siguiendo estos tutoriales que yo creo que profundiza y explica muy bien.

#34

Hasta en el momento que hablas de importar a c++ te estaba entendiendo jajaja

"En resumen, si quieres ir por la vía fácil sabiendo c# podrás meterle mano a unity, entenderás códigos en java e incluso serás capaz de meterle mano al backend de programación web de lenguajes como php o apunte."

Hay esta, en cierta parte esto es lo que me gustaría!, porque aparte de los scripts de c# que me estan enamorando y eso de poder editar cosas de un juego me llama muchisimo la atención, tambien me gustaría una vez aprenda este lenguaje seguir ampliando mis conocimientos

B

#36 no si ya, pero cuanto mas busco menos me entero de que es y para que se usa

3 respuestas
kreigon

Yo siempre que alguien me dice que quiere aprender C# le recomiendo esta serie de videos.

https://mva.microsoft.com/en-US/training-courses/c-fundamentals-for-absolute-beginners-16169?l=LhI1HGRIC_8806218949

Van desde lo básico hasta algo un poco más avanzado, y también son unas cuantas horas de video. También para aprender yo empezaría por aplicaciones de consola, nada gráfico, así aprenderás a usar cosas básicas como clases, estructuras, enums...Y puedes ir por muchas otras ramas como apertura de sockets lo cual te puede ayudar a entender cómo hacer un juego multijugador... Y más cosas como puede ser la gestión de eventos. Luego te recomendaría a lo mejor hacerte alguna aplicación en UWP por muy básica que sean. Con ello ya me metería a hacer un juego con Unity.

Lo bueno que tiene Unity es que usa C# puro y duro, mientras que usa un pseudo JavaScript. Sabiendo C# bien no cambia nada a programar los scripts de Unity mientras que con JavaScript por lo que tengo entendido (Yo sólo los he programado en C#) si cambian cosas.

Cuando ya tengas idea de C# también puedes intentar hacerte algún tuto de los que cuelga Unity en su web que no están mal. Aunque alguno está para versiones antiguas de Unity y las liberías que usan están obsoletas y tendrás que cambiar alguna cosilla.

Animo !

kreigon

#38 Una clase de manera sencilla es un contenedor de atributos (variables) y métodos (funciones). El concepto es muy semejante al de una estructura en C aunque también incluye métodos.

Y sí, estás básicamente obligado a trabajar con clases, C# es un lenguaje orientado a objetos y un objeto es una clase. Casi todo lo que vas a tener en tu programa c# van a ser clases o estructuras, la estructura en c# es básicamente lo mismo que una clase con la salvedad de que no se instancia, es un valor.

Aloy

#38

Para mí una clase es un molde con el que crear objetos, definidos por sus atributos y sus métodos.

Cada objeto creado es una instancia de la clase correspondiente, como sería un objeto ventana en una interfaz gráfica o un objeto coche programando un controlador de un taller mecánico.

La idea es representar objetos reales que influyen en tu programa, como el coche anterior, o dar una cierta forma concreta a cosas abstractas como la ventana de la interfaz gráfica; de modo que se acerque a una manera humana de entenderlas y a la vez se estructure en módulos independientes.

Grise

#38 La programación orientada a objetos se sustenta en los objetos y la herencia, te pongo un ejemplo gráfico y espero no confundirte xD.

Piensa en primer lugar en el ser humano y todas las cosas que lo definen. Por ejemplo su altura o peso (atributos), forma de caminar o saltar (métodos), etc. Eso sería una clase de tipo Persona.

Una clase se convierte en un objeto cuando se le asignan unos valores a sus atributos, por ejemplo decimos que una persona mide 1.70 y pesa 60 Kg y otra 1.90 y 100 Kg. Ahora tendríamos dos objetos de tipo Persona.

Finalmente el concepto de herencia entre clases. Tú y tu padre sois Personas y tenéis muchas cosas en común como que los dos medís una altura concreta y tenéis un peso, pero también tenéis cosas que os diferencia como la forma de caminar o la ropa que vestís, además, tú puedes saber muchas cosas que tu padre no sabe como por ejemplo programar, pero es innegable que los dos sois Personas. Para marcar esas diferencias se utiliza la herencia, en la que el hijo comparte los atributos y métodos del padre, pero puede definir un comportamiento propio para los métodos o incluso añadir nuevos métodos o atributos

Espero haberme explicado bien, si tienes alguna duda pregunta.

1
QuitCat

#1 Aquí tendrás opiniones mas precisas:
http://www.mediavida.com/foro/dev

B

Que puedes hacer con clases que sin clases no puedas?

1 respuesta
Grise

#44 Nada, pero aportan muchas características útiles entre las que destacaría:

  • Las clases se asemejan más al "mundo real" lo que hace más fácil comprender su estructura.
  • Facilitan el testing, mantenimiento y escalabilidad.
  • Permiten herencia, encapsulación, abstracción, etc.

Por poder puedes programar cualquier cosa en ensamblador, pero los paradigmas van surgiendo con la intención de facilitar a los programadores su labor y, entre otras cosas, es mucho más fácil e intuitivo coger 5 clases de 1000 líneas cada una y entender su funcionamiento que pillar un cacho de código estructurado de 5000 líneas y tratar de hacer lo mismo.

1
X-Crim

Te has equivocado de subforo

Usuarios habituales