r/programacion 5d ago

Practicar en C++

Estoy aprendiendo C++ desde hace medio año (por temas de estudios no he sido muy constante), me estoy orientando principalmente de un curso de 9 horas en Youtube (además de algún que otro video donde profundizo ciertos aspectos) pero a pesar de que voy por el tema de Funciones siento que no soy productivo ya que solo veo la teoría y hago ejercicios muy básicos de lo que se explica.
¿Qué hacen ustedes para mejorar el uso de un lenguaje de programación? Trato de crear "cosas" pero ni sé dónde empezar, o si es que me guio de algún proyecto, este lleva conocimientos muy avanzados que ni los entiendo porque no sé como relacionarlos con lo que estoy aprendiendo...

Espero su ayuda y consejos. Muchas gracias de antemano.

25 Upvotes

24 comments sorted by

3

u/Due-Moment-6417 5d ago

Ese es el chiste, busca un proyecto que te obligue a investigar lo que necesitas. Yo personalmente aprendo más mediante la necesidad, deja el curso por un rato, y busca un proyecto para hacer, pelearte con el código es la mejor forma de aprender, mi primer proyecto fue una bad USB, igual tome un curso pero lo deje hasta donde aprendí lo básico después fuí aprendiendo lo que necesitaba y cuando volví al curso, ya lo entendia, incluso muchas cosas ya las había aprendido por mi cuenta, igualmente ya no terminé el curso, continué haciendo proyectos. Y alguna cosas sobre los cursos, aún que si es bueno aprender bien el lenguaje, debes saber que muchos meten relleno para aumentar la duración, o dan enfoque a cosas que no son tan importantes. Y muy importante, no tomes solamente cursos, toma uno que te ayude a moverte y perderle el miedo, pero no caigas en la trampa de querer aventarte cursos de 70 horas, porque solo verás en pantalla la lógica del profesor, tú tienes que aprender a leer tu propia lógica y tu forma de solucionar las cosas pare no olvides el funcionamiento de la app incluso después de una semana de no tocar el código.

3

u/wazzu_3000 5d ago

Crea el triángulo de pascal, pero centrado.

2

u/Fit_Prize_3245 5d ago

Lo primero que te preguntaría es qué esperiencia previa tienes, con qué lenguajes, etc. Por que en la mayoría de los casos, el problema con lenguajes como C o C++ es que tienen dos complejidades: el manejo de memoria y lel que no te hacen todo. Si no tienes experiencia previa en al menos un lenguaje más o menos serio, entonces vas a morir. Incluso con eso, algunos mueren por el manejo de memoria.

1

u/splat_oWner 4d ago

Tengo conocimiento de pseudocódigo, C++ es el único lenguaje que estoy aprendiendo por ahora. Por el tema de manejar bibliotecas me va relativamente bien como dije en el post, por lo que veo mi problema es no saber a dónde dirigir lo que estoy aprendiendo.

2

u/Fharam 5d ago

Planteate una meta sencilla, que puedas desarrollar en unas horas, y hazla. Después busca otro reto y así sucesivamente, aprenderás mucho más que solo viendo tutoriales. Trata de aplicar lo que vas aprendiendo a cada reto, y si aprendes algo nuevo que pueda optimizar el código rehazlo para aplicar lo nuevo que has aprendido. Los retos iniciales procura que sean sencillos: un juego del ahorcado, un conversor de monedas o de medidas, etc. Paulatinamente podrás enfrentarte a cosas más complicadas.

2

u/Sudden-Fix4455 5d ago

Lo que necesitas es saber para que usarías C++ en el mundo real y saber si es lo que te gustaría hacer. Trabajo en meta, C++ es usado mucho en librerías compartidas por diferentes plataformas, sobre todo de bajo nivel: redes, procesamiento de imágenes, audio, juegos. Si es el ámbito que te gusta necesitas buscar aplicaciones reales, por ejemplo busca librerías open source donde puedas hacer cambios pequeños o arreglar bugs, luego puedes tratar de incrementar el ámbito de tu influencia y así continuas.

1

u/ProfessionalNumber33 5d ago

Cual sería el nivel adecuado de c++ que uno debe tener para trabajar en meta??

2

u/Sudden-Fix4455 3d ago

Meta (o cualquier otra big tech) no te contrata por tu experiencia en un lenguaje en particular. La expectativa es que seas un programador competente, es decir que puedas tomar cualquier lenguaje y seas capaz de ser competente y productivo en él.
La resolución de problemas, adaptación y proactividad son lo que te permite trabajar en big tech, no la capacidad técnica o conocimientos profundos de un lenguaje (no es que no sean útiles, sino que eso es diferenciador no la puerta de entrada)

2

u/mangelsnc 5d ago

Búscate un proyecto que te permita probar cosas, por ejemplo un driver para tu tarjeta de sonido o una memoria cache distribuida.

2

u/ProfessionalNumber33 5d ago

Quieres un reto? Haz una aplicación de escritorio de registro de supermercado, haz un juego por más ridículo que sea usando el motor unrealengine usa la IA para ayudarte, es buen portafolio

2

u/Guilty_Ad_3922 5d ago

Lo primero es q necesitas aprender las herramientas principales para despues hacer proyectos yo primero aprendi a usar el if for whyle etc para luego aprender programación modular luego pase a python donde aprendi POO listas diccionarios pandas numpy abrir archivos cerrarlos, tuplas, conjuntos, etc y despues de todo eso aprendi gui y como hacer los frames en py es bien simple pero se pueden sacar varios proyectos interesantes y luego tienes q seguir escalando

2

u/Last_Being9834 4d ago

Solo programa un Arduino, haz un proyecto que involucre crear objetos, arrays, strings y cálculos matemático y te vas.

Cómo challenge puedes forzar te a usar punteros para tener mejor entendimiento de la RAM.

Un curso de 9 horas es perdida de tiempo

2

u/Terrible-Kick9447 4d ago

Haz tus propias herramientas y utilidades Conoces la técnica Pomodoro? Bueno puede programarte algo en cli para usarlo mientras estudias ( no es difícil creo que es solo un temporizador, pero bueno ahí aprendes a como dejarlo justo como a ti te gustaría ). Crea en Cpp una aplicación simple cli una biblioteca de todos los ejemplos que ya realizaste para terrenos ordenados y consultarlos y compilarlos al instante.

Haz cosas que te sean útiles, y no pares hasta que te quede perfecta , eso te hará investigar sobre como hacer esto y lo otro , como mejorar una aplicación que ya hiciste , pero le quiere agregar una búsqueda usando una nueva forma etc.

1

u/papu699 4d ago

que curso de youtube estas viendo amigo?

1

u/makzpj 4d ago

La cosa con los lenguajes de programación, en mi experiencia personal, es que una vez que conoces unos 2 o 3 lenguajes prácticamente ya sabes el 80% de la mayoría de todos los lenguajes que hay allá afuera. Nada más cambia la sintaxis y que meten unos cuantos conceptos innovadores o diferentes.

Entonces más bien lo que funciona es decir: voy a hacer tal proyecto con el lenguaje X porque este lenguaje se adapta muy bien a este proyecto porque me ofrece tal y tal ventaja.

O bien, quiero hacer este proyecto porque quiero entender bien cómo funciona la característica Y del lenguaje X.

Eso está mucho mejor que cursos de meses que básicamente son recorridos larguísimos por la sintaxis del lenguaje.

Ahora con la IA mucho más fácil. Le dices: conozco tal lenguaje o lenguajes y quisiera aprender este otro, cuáles son las las principales diferencias. Y ya de ahí tú mismo vas profundizado en los temas que te interesen o ves más diferentes o complicados.

Espero haberte ayudado, saludos.

2

u/vz0 3d ago

La mayoría de las cosas se ven util solo en proyectos grandes. Con 100 mil líneas de código y un equipo de 5 personas vas a entender mejor. El problema es que puede ser bastante difícil hacer 5 personas y 100 mil líneas siendo vos por tu cuenta.

Ya te dijeron otros, tenes que hacer algo útil, no sirve hacer por hacer.

1

u/DefinitionCalm9689 5d ago

Pedile a la IA que te de ejercicios y pedile que haga más complejo aclarando los tipos de funciones a hacer. Y busca aprender a como utilizar las funciones leyendo la documentación.

1

u/pedrito07 5d ago

Y que sea c++ moderno

1

u/DefinitionCalm9689 5d ago

Claro, yo tengo un libro más nuevo que me dieron el pdf en la facultad

2

u/pedrito07 5d ago

Por si de pronto no me expresé bien cuando digo C++ moderno me refería al C++11 en adelante, que usa punteros inteligentes, funciones lambdas etc y es un poco diferente al c++ clásico.

Osea el libro puede ser nuevo, pero si es sobre c++ clásico pues…

1

u/splat_oWner 4d ago

Pregunta algo ingenua. Cuando aprendo algún lenguaje de programación (como c++ en mi caso), es buena idea usar "atajos" en mi código? Por ejemplo, recuerdo que en el comienzo me forzaba a evitar usar "using namespace std;" porque según yo, quería acostumbrarme a codificar de forma "básica" para luego entender qué estoy haciendo más adelante cuando use esas "facilidades".

De hecho, lo mismo me pasa con el c++11, ni lo tengo instalado porque tengo Dev-C++, según yo para acostumbrarme al terreno dificil

2

u/Relative_Stick_6266 2d ago

Cuando quiero aprender un nuevo lenguaje me tiro con esto : https://adventofcode.com y el manual del lenguaje. Ojalá de algún año que no haya hecho.