Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: eimattz en 9 Abril 2017, 11:39 am



Título: Tengo muchas ganas de ser programador
Publicado por: eimattz en 9 Abril 2017, 11:39 am
Hace ya mucho tiempo que me gusta esto, pero todas las veces que me quise iniciar, no supe por donde empezar... tengo ideas, muchas ideas pero busco la manera de plasmarlo y no se que es lo que tengo que aprender. Por ejemplo veo en todos lados que los unicos ejemplos que dan son puras matematicas, nunca vi otro tipo de ejemplo, veo puras i; i++ y no entiendo eso. Se leer codigo en parte, se MODIFICAR, pero no tengo idea de como empezar un nuevo proyecto. Tampoco vi un tema o post que te enseñe a como PENSAR para poder programar... mucha gente que es y fue autodidacta, por donde empieza?
Por ejemplo te muestran como ir armando un programa que basicamente te lo arman ellos, vos no tenes que hacer nada... hasta ahi todo bien, entendes todo, pero cuando queres armar uno de 0, como carajos haces si no te enseñan como pensar. Bueno eso es lo que no me permite avanzar, espero que me puedan ayudar. Agradezco a todas las personas que ayudan a poder empezar en este mundo, de verdad se aprecia mucho. Gracias.


Título: Re: Tengo muchas ganas de ser programador
Publicado por: engel lex en 9 Abril 2017, 14:10 pm
lo primero es entender seriamente la algoritmia, es decir saber plantearte los pasos a seguir, por ejemplo

hacer una calculadora en consola:
-mostrar menu
-leer opcion
-ir a la operación
-pedir valor 1
-pedir valor 2
-calcular resultado
-mostrar resultado

ya sabes en general los pasos... ahora lo primero, para empezar a escribir el programa es... que librerías necesito?
- necesito mostrar datos en pantalla eso es iostream
- no necesito hacer nada más especial
- no quiero escribir std:: por todos lados, así que debo usar el espacio de nombre std
- main es obligatorio

ok, vamos a armar lo inicial

Código
  1. #define <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6.  
  7.  return 0;
  8. }

ahora... voy a hacer el menu de opciones


Código
  1. #define <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6.  
  7.  /***********MENU************/
  8.  
  9.  
  10.  char opcion;
  11.  
  12.  cout << "por favor escoja una operacion: + - * /" << endl;
  13.  cin >> opcion
  14.  
  15.  switch(opcion){
  16.    case '+':
  17.      break;
  18.    case '-':
  19.      break;
  20.    case '*':
  21.      break;
  22.    case '/':
  23.      break;
  24.    default:
  25.      cout << "Operacion no valida, adios!" << endl;
  26.      break;
  27.  }
  28.  return 0;
  29. }

ahora, quiero hacer todo dentro de los breaks o armar funciones?

y ya debes haber entendido la idea....

si revisas ese programa tal ves tenga un error, es normal que cometas errores basicos al armar código

la cosa es ir programando, empieza por cosas simples y ve subiendo el nivel,así es como los que aprendimos lo hicimos

tema movido a dudas generales


Título: Re: Tengo muchas ganas de ser programador
Publicado por: Randomize en 9 Abril 2017, 14:22 pm
Me gustaría estar ahora mismo en el año 2004 y haber leído ésto...


Toy ya mayor yo hasta para el put* wow.


eimattz ...

Qué no te tumben las ganas, ni nada, ni nadie y si necesitas un mal chiste usa el IM ¿OK?

Un saludo.


Título: Re: Tengo muchas ganas de ser programador
Publicado por: Soy_El_Misterioso en 9 Abril 2017, 17:22 pm
Eimattz mira cursos de programacion, empieza por lenguaje de programacion de estilo (así es como yo lo llamo, sirve para crear paginas web) o de programacion. Empieza por estilo, si ves que te gusta sigue con ese, y si no te convence, prueba con lenguaje de programacion. No entiendo bien tu pregunta, ¿Dices que no sabes por donde empezar? Pues estudia, prueba las cosas y ya sabrás.  :silbar:


Título: Re: Tengo muchas ganas de ser programador
Publicado por: Randomize en 9 Abril 2017, 18:04 pm
eimattz...


¿Qué conejo es el que vuela más alto?



Pasa de éste de arriba, dice que me conoce (si eso fuera cierto se iba del foro jejeje).




Título: Re: Tengo muchas ganas de ser programador
Publicado por: Soy_El_Misterioso en 9 Abril 2017, 18:14 pm
Randomize, en serio, al veces no te entiendo, y puede que si te conozca, o puede que no... pero bueno en cuanto a ti eimattz, prueba las cosas y ya sabrás.  :silbar:


Título: Re: Tengo muchas ganas de ser programador
Publicado por: Orubatosu en 9 Abril 2017, 21:03 pm
Básicamente lo que necesitas es aprender a "desmenuzar" problemas, practicando idealmente con diagramas de flujo.

Todo proceso sigue una serie de pasos, debes aprender simplemente a descomponer problemas grandes en problemas pequeños, y estos en muy sencillo. Luego es simplemente programar esos pequeños, y juntarlo

Bueno, ojala fuera tan sencillo, pero básicamente es eso.

Vamos, que lo que tienes que aprender es a hacer algoritmos

https://es.wikipedia.org/wiki/Algoritmo

Empieza por los simples, y a partir de ahi los mas complejos. Los programas reales suelen tener literalmente centenares o miles de ellos. Algunos los creas tu, otros los tienes "ya hechos"


Título: Re: Tengo muchas ganas de ser programador
Publicado por: RevolucionVegana en 10 Abril 2017, 00:17 am
Básicamente lo que necesitas es aprender a "desmenuzar" problemas, practicando idealmente con diagramas de flujo.


Exactísimo, eso es, y la verdadera potencia yo me he dado cuenta en tanto tiempo queriendo programar y haces cosas útiles cuando utilizas APIs y librerías.


Título: Re: Tengo muchas ganas de ser programador
Publicado por: Serapis en 10 Abril 2017, 01:45 am
Efectivamente... cuando dicen que te enseñan a programar, lo que en verdad hacen (si lo logran) es enseñarte a usar un lenguaje y/o el IDE (el programa con el que escribes el código). Aprender a programar, es por encima de eso, aprender a generar los pasos que debes seguir para realizar determinada tarea. La mayor parte de tareas (habituales) tienen solución, para otras debe uno conformarse con aproximaciones.

A esto último, se le ha llamado siempre "saber pensar", y la forma en que se accede a eso es usando la lógica, el razonamiento puro y duro. Es muy bueno para ello conocer la lógica matemática, aplicado al ámbito informático es la lógica buleana.

Ahora bien, el problema está en que para descomponer un problema en piezas, primero debes saber qué piezas puedes tienes disponibles para usar, para descomponerlo en ellas. Es decir si no sabes que piezas existen, quizás estén dando solución con piezas inexistentes, por lo que no resolverás el problema sin antes crear también esas 'nuevas' piezas. Imagina un mecánico... para diseñar un motor, debe conocer antes las piezas mecánicas existentes, para que pueda decir, aquí pongo un engranaje, y allá un eje que comunica con ese engranaje y luego una cadena, etc... 'eje', 'cadena', 'engranaje'... son piezas que ya existen y conoce y entonces puede diseñar algo nuevo con 'viejas' piezas (piezas conocidas).

Por ello, debes conocer primero las bases, el fundamento (igual que un edificio, se empieza creando sus cimientos) ... conocer las piezas existentes en la actualidad:
- Las matemáticas básicas: cosas como las bases numéricas, números enteros reales con y sin signo, complemento a dos... la lógica buleana (que lo conocerás de niño como los disgramas de Venn)
- Introducción a la informática (las piezas básicas elementales): los tipos de datos, las estructuras de datos,  los bucles los condicionales y las llamadas a metodos (que son el control del flujo)...
Todo esto es común a todos los lenguajes, ... es por aquí por donde debes empezar, incluso aunque no entiendas ningún lenguaje de programación.

"los diagrama de flujo"... eso más adelante, cuando ya entiendas todo lo básico que te he dicho, es imposible  conocer como funciona algo complejo, si no sabes como funcionan sus piezas elementales. Un diagrama de flujo, es ver conjunto completo, y para entenderlo, primero debes entende rlas piezas pequeñas de que se compone...

Una vez tengas esto claro, puedes elegir algún que otro lenguaje de programación y es entonces cuando empezarás a poder aplicar todo esto que hasta ahora era teoría. A medida que todo eso vaya sucediendo (que tú lo vayas entendiendo), tu mente se irá aclarando en ordenar las cosas y finalmente podrás llegar a saber descomponer un problema en los pasos necesarios.

Pero en fin, saber pensar no es algo que se enseña es algo que se aprende, es algo innato a veces y algo que uno adquiere en otras... pero nadie puede enseñarte a pensar por tí mismo. Si tu mente es inquieta ella misma te sugerirá soluciones qye luego tu debes trasnformar, modificar, alterar (o no), para convertirlo en un programa, una librería, un algoritmo...

Ayuda mucho leer muchos libros. Lee, estudia, piensa, piensa estudia y lee... es un ciclo sin fin. No te conformes con estudiar un lenguaje y ya creerte que lo sabes todo (la pasa a a muchos). Después de 40 años, verás que no has dejado de aprender contínuamente y que la informática es inabarcable, por que trata de 'dominar al mundo', que como sabes también es inabarcable...


Título: Re: Tengo muchas ganas de ser programador
Publicado por: eimattz en 10 Abril 2017, 03:14 am
muchas gracias a todos los que respondieron, estoy empezando de a poco con diagramas de flujo, especificamente este:

(http://www.comolohago.cl/wp-content/uploads/2009/06/flujo-completo-final3.jpg)

hasta ahora arme esto:

Código:
#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
  float nota1, nota2, nota3, promedio, resultado;
  
  cout << "Ponga su primer nota:" << endl;
  cin >> nota1;
  
  cout << "Ponga su segunda nota:" << endl;
  cin >> nota2;
  
  cout << "Ponga su tercera nota:" << endl;
  cin >> nota3;
  
  promedio = nota1+nota2+nota3;
  resultado = promedio/3;
  
  
  cout << "Su promedio final es %s" << resultado << endl;
  
  return 0;
  
}

pero el netbeans no me compila... en que estoy fallando?



Título: Re: Tengo muchas ganas de ser programador
Publicado por: RevolucionVegana en 10 Abril 2017, 04:09 am
A mi en Code::Blocks con el compilador GNU GCC Compiler si que me compila correctamente, por cierto:

Código
  1. cout << "Su promedio final es %s" << resultado << endl;

Estás mezclando C con C++, ese %s no es necesario y si estuviesemos en C debería de ser %f ya que la variable resultado es de tipo float no string.

Quedaría tal que así:

Código
  1. cout << "Su promedio final es " << resultado << endl;

Saludos!


Título: Re: Tengo muchas ganas de ser programador
Publicado por: Randomize en 10 Abril 2017, 04:12 am


pero el netbeans no me compila... en que estoy fallando?



¿Y con el pseint?  :-\


Título: Re: Tengo muchas ganas de ser programador
Publicado por: eimattz en 1 Julio 2021, 11:42 am
Que increíble, voy a revivir este thread porque creo que puede serle útil a mucha gente que recién se inicia en la programación.

Lo que realmente me preguntaba en este thread era simplemente la SINTAXIS de c++. No entendía las funciones ni las estructuras. No entendía el main y que debía escribir ahí, pero SI sabía escribir líneas de código.

Luego de esto descubrí Python. Su simplicidad me ayudo a entender absolutamente todo. Una vez que estaba 100% preparado en Python, me pasé a javascript sin ningún tipo de problemas.

Hoy en día ayudo a un amigo mío que está aprendiendo c, y es increíble lo SIMPLE que es aprender un lenguaje nuevo sabiendo PROGRAMAR.

Si les gustaría aprender esto, yo empezaría entendiendo QUE es programar, y no hay mejor lenguaje que Python. No tiene tantas trabas como c o c++, yo sé que hay mucha gente que me va a decir que es mejor aprender esos lenguajes porque te dan bases más sólidas y es verdad, pero desde mi experiencia puedo decir que Python también.

La clave es muy fácil... NO FRENAR NI RENDIRSE, nada es imposible. Es así de simple, me leo en este post y veo a un chico que no tenía p**a idea ni siquiera de lo que preguntaba, pero siempre supe que lo que quería era esto.

PD: Espero que los mods no se enojen por revivir esto, siento que es necesario.


Título: Re: Tengo muchas ganas de ser programador
Publicado por: Tachikomaia en 1 Julio 2021, 12:28 pm
¿Y qué es programar? Recuerdo que la gente me decía que yo no sabía programar aunque hacía temas mostrando códigos con algún error que pedía corrigieran. Así cansado de que me dijeran eso, o por algún motivo que no recuerdo, propuse una definición, parecida a: Dar instrucciones a la computadora de modo que pueda ejecutarlas. En Flash el "hola mundo" se puede hacer con código o con texto insertado en la pantalla... Algunas otras cosas también se pueden hacer con poco código, la línea que separa programar de hacer animaciones interactivas no me parecía tan clara.


Título: Re: Tengo muchas ganas de ser programador
Publicado por: eimattz en 1 Julio 2021, 23:30 pm
Programar es tomar el control absoluto del poder de una computadora. Nada ni nadie te limita.


Título: Re: Tengo muchas ganas de ser programador
Publicado por: Randomize en 2 Julio 2021, 11:54 am
No se reviven threads tan antiguos, se inicia un tema y se hace la referencia.


Un saludo.

{ ... }