¿Cómo os soltasteis programando?

Reptilian

Buenas.

Yo y los de mi clase estamos empezando con C#, y estamos en un punto en el que más o menos sabemos lo que nos pide el profe a la hora de hacer un ejercicio pero luego no sabemos llevarlo a código, nos liamos con los bucles, o nos atascamos en cualquier tontería y no sabemos terminar el programita. El profe dice que esta esperando a que veamos la "luz". Abro este post para preguntar ¿Cómo os desatrancasteis programando? ¿Cuando os disteis cuenta que ya no fallabais tanto y empezaban a salir las cosas? ¿Como lo conseguisteis? No damos pie con bolo, cuando nos explican la solución todos nos enteramos y se ve super fácil pero luego nos ponen el siguiente ejercicio y nos volvemos a estancar.

Un saludo.

Zoth

Haciendo un juego.

B

Dandole 3 vueltas antes de ponerme a escribir para entender qué tengo que hacer y si lo necesito un dibujillo no viene mal.

7
B

#1 Te parecera una tontería, pero para los problemas estos de tipo clase; intenta realizarlos en papel en un lenguaje natural o pseudocodigo, luego traducirlo a cualquier lenguaje de programación es fácil.

11 2 respuestas
AikonCWD

En el momento que aprendes a utilizar el debugger de tu IDE (pero ha utilizarlo bien, con inspecciones y tal), no se te atascará jamás ninguna rutina, bucle, programa...

2 respuestas
B

#1 Coincido con #4, intentad generar la lógica del programa en un papel, entender como va el flujo del programa y luego intentad traducirlo.

Drhaegar

Diagramas de flujo, dibujos, esquemas, escribir paso a paso lo que debe hacer el script...

Antes de darle a las teclas tienes que tener bien claro que vas a hacer y como lo vas a hacer. Es como ponerte a traducir textos del inglés al español sin entender lo que dicen dichos escritos.

MartiONE

Aprendiendo a desmenuzar los problemas complicados en muchos otros mas pequeños y fáciles.

4
Crash94

#1 Te entiendo, a nuestra clase le pasa exactamente lo mismo. También me aconsejaron hacerlo primero en papel (que no viene nada mal) pero creo que al final con la practica acabaran saliendo más rápido.

NiBeLHe1M

#4 Es un buen consejo, pero creo que te saltas algun paso. Pasar de pseucodigo a un lenguaje de programacion no es facil hasta que dominas las bases de ese lenguaje. Es decir, si no entiendes bien lo que es un foreach, no lo vas a usar nunca aunque sea la "traduccion" logica.

#1 Yo te recomiendo lo mismo que #5. Aprende a usar bien el Visual Studio (supongo que lo estaras usando). Cuando entiendas las posibilidades que te ofrece, lo que es poner puntos de interrupcion y analizar paso a paso lo que estas haciendo... veras la luz.

1 respuesta
glolg

#1 A mi me va muy bien y además me gusta, ver los proyectos del resto del mundo.

Tienes a tu alcance muchísima información en internet, encuentra buenas referencias que compartan código, descárgate sus proyectos y entiende lo que están haciendo partiendo de la base que te dan en clase. Sobre todo eso, en las escuelas los profesores (no todos) tienden a no actualizarse como deberían y en ocasiones explican métodos casi obsoletos.

Como te dicen, debuggear es importante y en un IDE como Visual Studio (se sobreentiende) no es nada difícil entenderlo.

¿qué os están enseñando exactamente ahora mismo? Y ya por curiosidad, si puedes deja por aquí un ejercicio para ver el "nivel" que os están exigiendo.

(con más tiempo ya te pasaré un MP con buenas referencias de .NET en general)

Merkury

#10 Aprender a utilizar un IDE sobre aprender a analizar y planificar codigo, no es el mejor consejo.

Lo mejor es antes de ponerte a picar codigo, pensar bien lo que quieres hacer y ya ahi, usando el debugger o las herramientas que te apetezcan, refinar tu propuesta.

1 respuesta
Soulscx

#1 haciendo muchos ejercicicos, con todo lo q eso conlleva

NiBeLHe1M

#12 Estamos hablando de una persona que esta empezando. No creo que necesite planificar mucho codigo o hacer diagramas de flujo para sacar por pantalla un holamundo, un menu y 4 operaciones matematicas.
Si, como ha dicho, se queda atascado en bucles o tonterias, la mejor forma de analizar, entender y solucionar los problemas, es debuggear para comprobar paso a paso lo que estas haciendo. Al principio parece complicado, pero es la mejor manera de "ver la luz".

1 respuesta
Merkury

#14 Ahi es donde te equivocas, ahora que es cuando esta aprendiendo es cuando mas necesita hacerlo.
Es un error el que la algoritmia se este dejando de lado como parte de la formacion en cursos IT.

#1Reptilian:

nos liamos con los bucles, o nos atascamos en cualquier tontería

Esto al principio, es porque, te has puesto a programar sin entender el problema y la solucion, una vez que sabes el problema y la solucion, es facil escribir codigo, y ya luego debuggear para poder ver el flujo de tu aplicacion en accion, ver si te has olvidado una llave o un ;...

En serio, antes de codificar hay que analizar y entender problema y aunque parece una tonteria, entender la solucion y luego ya si eso, debuggear.

1 respuesta
NiBeLHe1M

#15 Yo me pongo en su lugar, te leo diciendo que lo importante es "planificar el codigo, entender el problema y la solucion" y como que no me sirve de mucho y sigo sin saber como sacar los numeros primos del 1 al 100.
Si tiene un problema con un bucle porque se atasca o le devuelve locuras, lo mejor que puede hacer es entrar en ese bucle y paso a paso ver lo que esta haciendo. Asi es como realmente entendera el comportamiento de sus variables y donde esta el error.

1 respuesta
Merkury
#16NiBeLHe1M:

sigo sin saber como sacar los numeros primos del 1 al 100.

Vamos a hacer un ejemplo, si quisieses sacar todos numeros primos del 1 al 100, sin programar, utilizando lapiz y papel, que harias?

1 respuesta
SilentMike

#1 Esto te pasará al principio, todo son lios, problemas con los bucles, que me falta un ";", que me he dejado una llave, esto no sale del bucle, etc etc.
Yo empecé con Pascal, un lenguaje de 1970, y ahí no habia IDE ni debbugger que te salvara el pellejo, era todo ensayo y error, y aprendias a planificar, escribir en un papel lo que querias hacer, cajas y flechas, y aun asi fallaba, hazte una idea de si la liaba que mi primer programa era un bucle infinito (y yo quería que contara hasta 10) y no sé cómo conseguí que se cargara antes del inicio de windows, con lo que nunca iniciaba windows (Win95), jejeje.

Solo te recomiendo, perseverancia, animo y ver que este mundo si te pica el gusanillo no paras. En cuanto a tu pregunta, hay un momento en el que cambias el chip, a base de repetir y repetir, aprendes a pensar de forma distinta, a pensar como un programador, y relacionar facilmente lo que quieres con el como vas a resolverlo. En mi caso, no estoy muy seguro, creo que fué en segundo de carrera, en la asignatura de estructura de datos II, teniamos una profesora muy buena, y entendí en que estaba fallando en el resto de asignaturas de programación, y empecé a encajar piezas, primero despacio y cada vez con mas soltura.

Naith

Usar un Debugger en vez de entender la lógica debajo del código. Ayyyyy lmaoo.

HeXaN

Primero se programan los tests y luego si eso el código.

1
totespare

Trasladando el problema al papel, y del papel al código. Hasta que no empecé a hacerme mis diagramas de clases, y de flujo (muy gitanos, eso si) y mis casos de uso, no empecé a entender bien lo que hacía.

NiBeLHe1M

#17 Si yo entiendo a lo que te refieres. Evidentemente el debe tener clara la logica matematica para sacar los numeros primos y, a partir de ahi, programar. Si no sabe hacerlo en un papel o simplemente no sabe lo que es un numero primo, obviamente no va a sacar ese ejercicio.
Yo parto de que el "problema matematico" esta superado y lo que le cuesta es construir los bucles necesarios, ahi es donde pondra alguna locura incorrecta y la manera de verlo es debuggear.

B

Copia al de al lado!!!

Todo es planificación, desde lo más pequeño a lo más grande.

A mí siempre me gusta tener mis hojas de papel al lado para planificarlo de una forma sencilla. Lo emjor es despiezar todo el puzzle e ir poco a poco. Creando clases o metodos que me ayuden a realizarlo. Los bucles es saber como funciona su mecánismo. Al final puedes usar el debugger pero si lo haces en papel igual lo ves mejor.

Usar log de errores en pantalla para ver que falla o que no ocurre es lo normal al empezar.

No te va a llegar la inspiración divina si antes no sabes los fundamentos teóricos y de porque se hacen las cosas así.

Traber

Yo creo que primero, más que programar, hay que saber estructurar muy bien lo que quieres hacer, cómo organizar el código, etc. Es muy importante saber dividir las tareas grandes en tareas más pequeñas, y te recomendaría antes de hacer nada en código que aprendieras a estructurar los procedimientos en pseudocódigo.

Ejemplo:

- Obtengo items de base de datos
- Por cada item:
    - Imprimo en pantalla el ítem
    - Imprimo en pantalla el precio del ítem
- Fin

Se podría traducir en (PHP):

<?php
    $items = $this->items_model->get_items(); // Obtener items de un modelo de base de datos
    foreach($items as $item){ // Por cada item
        echo $item->name . ': ' . $item->price . PHP_EOL; // Imprimo Nombre y Precio del item
    }
?>

Tener el pseudocódigo a mano siempre te ayuda a entender cómo estructurar luego el código final, independientemente del lenguaje de programación.

Esto a nivel de programación de código, a nivel organizativo es otra historia. Primero siempre va aprender a estructurar procedimientos, y luego aprender a hacerlos con un lenguaje de programación X.

0nLy

Yo me acuerdo que al principio para entender los Arrays en Java me hacía en un papel el dibujito de los cuadrados de las celdas del array todo guarro y dibujando flechitas iba diciendo a que posición del array quería que fueran los datos, y después lo pasaba a código.

Me acuerdo que lo hice en un examen y le hice el dibujo en el folio del examen y la profesora se quedó flipando y me djio "¿como cojones puedes entender algo aqui?" riendose XD

2 respuestas
Traber

Bueno, y respondiendo a la pregunta de cómo me solté programando, yo en particular llevaba trasteando VB6 desde los 14 años, pero cuando de verdad aprendí fue cuando entré a trabajar en la primera empresa que estuve, que me empapé bien de PHP con Codeigniter y empecé a utilizar el esquema MVC, mucho más organizado que hacer todo a capón. Ahora miro para atrás y veo las virguerías que hacía con PHP plano y me parece una locura xD.

N

Cuando tuve que entender la recursividad y el funcionamiento MVC.

Merkury

#25 Pues vaya profesora de palo si es la representacion de un array más básica xD

A mi en primero de carrera mi mente hizo "click" con la algoritmia y el resto de matematicas y desde ahi.

Beogh

Probablemente lo que más me ayudó fue dejar de usar una ide, y usar un editor y la linea de comandos.

3
eXtreM3

Algoritmia -> Pseudocódigo -> Código

1 respuesta