Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: FKT en 24 Agosto 2015, 20:59 pm



Título: Es normal esta dificultad?
Publicado por: FKT en 24 Agosto 2015, 20:59 pm
Hace como un año que estudio programación de forma autodidacta y algo de kali linux y tal y de programación que estoy en C solo se usar variables, imprimir datos en pantalla, operaciones aritméticas, simplificadas, leer datos introducidos, bucles, controles de ejecución y poco más, es normal que avance tan lentamente? Y además de que soy muy joven, más de lo que cualquiera piensa ,ronda entre los 13 y 16 años(no quiero decir la exacta),  tengo una gran dificultad para comprender programación y su sintaxis y cosas así, no sé si es porque los que lo explican en este foro ya saben programación y no son conscientes de que no se mucho y lo explican como si se lo explicaran después de entenderlo o no sé la verdad. Aver si alguien me puede dar su opinión o un consejo, sobretodo en la dificultad de entender.

Gracias de antemano.  


Título: Re: Es normal esta dificultad?
Publicado por: Machacador en 24 Agosto 2015, 21:11 pm
Los árboles de madera fuerte crecen lentamente... eso dicen...

Sigue leyendo mucho y practicando bastante...

Suerte.


Título: Re: Es normal esta dificultad?
Publicado por: engel lex en 24 Agosto 2015, 21:22 pm
la programación es un nivel de abstracción (esta frase también XD) que quiero decir con eso?

es una cosa que no tiene nada que ver con el contexto en el que vives, es decir, es un lenguaje, muy diferente al español... que pasa con esto? que es como aprender una lengua, te toca pelear con ella, entender sus pormenores, captar sus relaciones con lo que entiendes en la realidad... ahora... por que te explican de manera complicada? es porque normalmente es más fácil explicar una cosa en su propia lengua que en otra y por lo general se asume un nivel básico de conocimiento

entre mayor la abstracción del lenguaje mayor su curva de aprendizaje (https://es.wikipedia.org/wiki/Curva_de_aprendizaje), por eso, ASM es mucho más complejo de entender que python...

cual es tu conflicto? que te has tirado de cabeza con C... y C no es fácil ni amistoso... sin embargo una vez entendido, tienes una comprensión muy buena de otros lenguajes solo con verlos y los comportamientos internos de los programas y el sistema

mi consejo... si se te hace muy complicado, puedes bajar el nivel y aprender python y php que son infinitamente más fáciles, una ve que entiendas lo común de los lenguajes, te vas con C de nuevo.. por luego de C te toca una abstracción bastante pesada y se llama POO (https://es.wikipedia.org/wiki/Programación_orientada_a_objetos) que es la diferencia real entre C y C++, sin embargo una vez aprendido, puedes subir mucho tu nivel de programación... esa abstracción podrías aprenderla en php y seria simple...

algo que si te digo... no es simple... muchos aquí llevamos años programando y aún hay cosas relativamente simples que pueden ser bastante complicadas de lograr



Título: Re: Es normal esta dificultad?
Publicado por: Orubatosu en 24 Agosto 2015, 21:42 pm
Un problema con muchos libros y manuales, es que son áridos y presuponen ciertos conocimientos.

Te sugiero busques algún tutorial por Youtube, como "minidosis" donde los conceptos se explican de forma muy amena.

Puede parecer una tontería, pero no es lo mismo leer una cosa en un libro, que el que una persona te lo explique, te haga ejemplos, esquemas y demás.



Título: Re: Es normal esta dificultad?
Publicado por: FKT en 24 Agosto 2015, 21:54 pm
Los árboles de madera fuerte crecen lentamente... eso dicen...

Esto me ha animado un poco :)

la programación es un nivel de abstracción (esta frase también XD) que quiero decir con eso?

es una cosa que no tiene nada que ver con el contexto en el que vives, es decir, es un lenguaje, muy diferente al español... que pasa con esto? que es como aprender una lengua, te toca pelear con ella, entender sus pormenores, captar sus relaciones con lo que entiendes en la realidad... ahora... por que te explican de manera complicada? es porque normalmente es más fácil explicar una cosa en su propia lengua que en otra y por lo general se asume un nivel básico de conocimiento

entre mayor la abstracción del lenguaje mayor su curva de aprendizaje (https://es.wikipedia.org/wiki/Curva_de_aprendizaje), por eso, ASM es mucho más complejo de entender que python...

cual es tu conflicto? que te has tirado de cabeza con C... y C no es fácil ni amistoso... sin embargo una vez entendido, tienes una comprensión muy buena de otros lenguajes solo con verlos y los comportamientos internos de los programas y el sistema

mi consejo... si se te hace muy complicado, puedes bajar el nivel y aprender python y php que son infinitamente más fáciles, una ve que entiendas lo común de los lenguajes, te vas con C de nuevo.. por luego de C te toca una abstracción bastante pesada y se llama POO (https://es.wikipedia.org/wiki/Programación_orientada_a_objetos) que es la diferencia real entre C y C++, sin embargo una vez aprendido, puedes subir mucho tu nivel de programación... esa abstracción podrías aprenderla en php y seria simple...

algo que si te digo... no es simple... muchos aquí llevamos años programando y aún hay cosas relativamente simples que pueden ser bastante complicadas de lograr



Entiendo... El problema es que me gusta ir paso a paso y me explican algo de forma tan formal o tan abstracto como dices tu pues me quedo saturado y si me quedo saturado por ejemplo posteo mi duda en este foro y alomejor tardan digamos unas 3 horas en responder y alomejor el tema se alarga unos días y al final en un mes acabo aprendiendo una única cosa o dos.

Ves no se si te he entendido xD, la diferencia de C a C++ es que C++ es una herramienta de C o un suplemento que esta orientado a objetos, estas diciendo que la orientacion a objetos la podria aprender en PHP¿?


Título: Re: Es normal esta dificultad?
Publicado por: engel lex en 24 Agosto 2015, 22:14 pm
si C++ trae varias innovaciones sobre C, una de las principales es la orientación a objetos que simplifica muchísimo el trabajo...

sobre la orientacion a objetos, la mayor parte de los lenguajes modernos la tienen... php, python, java(solo es poo), .net, jscript (gran parte es poo), etc...

por ejemplo en jscript cada vez que usas  por ejemplo
Código
  1. document.baseURI

estás accediendo a la propiedad baseURI de el objeto document

por lo menos en php es simple porque tiene lo mínimo necesario y la sintaxis es bastante básica... pero te daría las bases necesarias de su comprensión


Título: Re: Es normal esta dificultad?
Publicado por: FKT en 24 Agosto 2015, 22:24 pm
Vale, pues lo que creo que are es seguir con C hasta que vea que lo domino para "mis objetivos" que serian cosas de memorias, lo de los ratones y algunas cosas más, y bueno claro si puedo aprendere más de C, después ire a python o a php aunque creo que ire a por python ya que me gustaría entrar en el tema de la ingeniería inversa, y cosas de ese tipo, y despues imagino que ire hacia C++.

Bueno, Gracias a todos por darme animos y bueno que seguire estudiando y a por todas  :laugh:


Título: Re: Es normal esta dificultad?
Publicado por: Oblivi0n en 24 Agosto 2015, 22:56 pm
Yo aprendí a programar en C, y he visto a mucha gente aprender a programar en C y no te lo recomiendo en absoluto. No es que sea excesivamente mas complicado que otros lenguajes, pero si en un año tienes el avance que comentas, creo que deberías irte a algo mas sencillo y mas abstracto. Con esto no quiero desanimarte, pero C es un lenguaje para unos propositos que desde luego no son los de un adolescente que aprender a programar, python es un lenguaje mas sencillo, que tiene los conceptos de la programación moderna ( funcional y objetos ) y que hace que te olvides de ciertas cosas que probablemente te acaben liando la cabeza ( por ejemplo, punteros).

Hay una falsa premisa que dice que si sabes C el resto de lenguajes te resultarán mas sencillos, esto es mentira. Si bien la mayoría de lenguajes cogen la sintaxis de C o muy similar, no hay nada parecido en la forma de programar, que es lo que al final importa. un malloc de C no se parece en nada a un new de Java ( y eso que es el mismo concepto, reservar memoria). Dado que aún eres muy joven y ciertos conceptos de compiladores/programación te serán dificiles de aprender C va a ser un lenguaje muy duro.


Título: Re: Es normal esta dificultad?
Publicado por: FKT en 25 Agosto 2015, 12:47 pm
Yo aprendí a programar en C, y he visto a mucha gente aprender a programar en C y no te lo recomiendo en absoluto. No es que sea excesivamente mas complicado que otros lenguajes, pero si en un año tienes el avance que comentas, creo que deberías irte a algo mas sencillo y mas abstracto. Con esto no quiero desanimarte, pero C es un lenguaje para unos propositos que desde luego no son los de un adolescente que aprender a programar, python es un lenguaje mas sencillo, que tiene los conceptos de la programación moderna ( funcional y objetos ) y que hace que te olvides de ciertas cosas que probablemente te acaben liando la cabeza ( por ejemplo, punteros).

Hay una falsa premisa que dice que si sabes C el resto de lenguajes te resultarán mas sencillos, esto es mentira. Si bien la mayoría de lenguajes cogen la sintaxis de C o muy similar, no hay nada parecido en la forma de programar, que es lo que al final importa. un malloc de C no se parece en nada a un new de Java ( y eso que es el mismo concepto, reservar memoria). Dado que aún eres muy joven y ciertos conceptos de compiladores/programación te serán dificiles de aprender C va a ser un lenguaje muy duro.

Vale, bueno pensare a cambiarme a Python aver que tal pero el avance lento cabe decir que en invierno tenia  un monton de examenes, y en invierno no puede estudiar mucho que digamos, esto me faltaba decirlo en la primera pregunta jeje pero se me fue. lLa verdad me gustaria aprender mucho el lenguaje C y encima que me compre un libro de unos 5o euros y usa C, el libro en general es de Técnicas de hacking... Cuanto me echas para aprenderlo si ahora estudiare como un "loco" C? Aunque hay muchos factores que interfieren en el resultado aproximadamente cuanto le echarias?


Título: Re: Es normal esta dificultad?
Publicado por: Oblivi0n en 25 Agosto 2015, 13:16 pm
Vale, bueno pensare a cambiarme a Python aver que tal pero el avance lento cabe decir que en invierno tenia  un monton de examenes, y en invierno no puede estudiar mucho que digamos, esto me faltaba decirlo en la primera pregunta jeje pero se me fue. lLa verdad me gustaria aprender mucho el lenguaje C y encima que me compre un libro de unos 5o euros y usa C, el libro en general es de Técnicas de hacking... Cuanto me echas para aprenderlo si ahora estudiare como un "loco" C? Aunque hay muchos factores que interfieren en el resultado aproximadamente cuanto le echarias?

No te puedo decir un numero, pero te puedo decir que en C las ideas se expresan de una manera mas "complicada". El tema no es dominar el lenguaje ( que también ), el tema es dominar los conceptos. C es un lenguaje bastante pequeño ( lo que viene siendo solo ANSI C ) y no lleva mucho aprenderlo si ya sabes programar, si no sabes programar vas a tener que pararte a mirar como y porque hace ciertas cosas, y eso te llevará a mirar otras cosas sobre las anteriores.

C es como un F1, todos queremos conducir uno y creemos que porque tiene volante y pedales será como conducir un coche, pero solo hay 20 tíos en el mundo que lo hacen correctamente  :laugh: . Aunque tu libro este en C, si coges el concepto de lo que está haciendo no te será muy dificil adaptarlo a lenguajes como python o ruby


Título: Re: Es normal esta dificultad?
Publicado por: FKT en 25 Agosto 2015, 13:28 pm
No te puedo decir un numero, pero te puedo decir que en C las ideas se expresan de una manera mas "complicada". El tema no es dominar el lenguaje ( que también ), el tema es dominar los conceptos. C es un lenguaje bastante pequeño ( lo que viene siendo solo ANSI C ) y no lleva mucho aprenderlo si ya sabes programar, si no sabes programar vas a tener que pararte a mirar como y porque hace ciertas cosas, y eso te llevará a mirar otras cosas sobre las anteriores.

C es como un F1, todos queremos conducir uno y creemos que porque tiene volante y pedales será como conducir un coche, pero solo hay 20 tíos en el mundo que lo hacen correctamente  :laugh: . Aunque tu libro este en C, si coges el concepto de lo que está haciendo no te será muy dificil adaptarlo a lenguajes como python o ruby

Esque me llevo una decepción :xD La cantidad de días que les he dicho a mis amigos un NO para quedarme a estudiar C son muchos... Y me sabe muy mal dejarlo la verdad..


Título: Re: Es normal esta dificultad?
Publicado por: Oblivi0n en 25 Agosto 2015, 13:34 pm
Esque me llevo una decepción :xD La cantidad de días que les he dicho a mis amigos un NO para quedarme a estudiar C son muchos... Y me sabe muy mal dejarlo la verdad..

Yo solo te recomiendo, al fin y al cabo la decisión es tuya. No tienes porque decepcionarte por dejar de lado un tiempo un lenguaje, te llevas el conocimiento que te aporto y volverás con el conocimiento que te aportaron otros, al fin y al cabo cualquier informático que se precie se ha de poder manejar con soltura en 5 o mas lenguajes y tener uno de ellos como referencia.


Título: Re: Es normal esta dificultad?
Publicado por: FKT en 25 Agosto 2015, 13:37 pm
Yo solo te recomiendo, al fin y al cabo la decisión es tuya. No tienes porque decepcionarte por dejar de lado un tiempo un lenguaje, te llevas el conocimiento que te aporto y volverás con el conocimiento que te aportaron otros, al fin y al cabo cualquier informático que se precie se ha de poder manejar con soltura en 5 o mas lenguajes y tener uno de ellos como referencia.

Lo que veo que si no se C mmmm... como que no puedo seguir el libro al pie de la letra, lo único que podria hacer es sacal alguna información de el. Porque muchas cosas las hace con C y python no compila así que no se si se podrían hacer.
jeje Bueno de todas formas gracias por tu consejo. :)


Título: Re: Es normal esta dificultad?
Publicado por: ivancea96 en 25 Agosto 2015, 14:54 pm
C es de los lenguajes más cercanos a Ensamblador. No tiene un montón de conceptos nuevos, pero tienes que hacer las cosas casi desde 0. Si aprendes C, luego ASM y C++ se te harán muy faciles. Y si ves C++, tendrás acceso instantáneo a prácticamente todos los lenguajes de paradigma imperativo (el paradigma funcional ya es otra cosa xD)

Aunque cueste, C o C++ es una decisión muy acertada.

Aunque tal vez prefieras primero C++.

En C tienes básicamente:
  • Entrada/Salida
  • Condiciones
  • Bucles
  • Funciones
  • Estructuras
  • Punteros
  • Arrays y matrices

Visto eso, el resto es una combinación de esos elementos.

Por curiosidad, de esas cosas que enumeré, ¿qué viste?


Título: Re: Es normal esta dificultad?
Publicado por: FKT en 25 Agosto 2015, 16:31 pm
C es de los lenguajes más cercanos a Ensamblador. No tiene un montón de conceptos nuevos, pero tienes que hacer las cosas casi desde 0. Si aprendes C, luego ASM y C++ se te harán muy faciles. Y si ves C++, tendrás acceso instantáneo a prácticamente todos los lenguajes de paradigma imperativo (el paradigma funcional ya es otra cosa xD)

Aunque cueste, C o C++ es una decisión muy acertada.

Aunque tal vez prefieras primero C++.

En C tienes básicamente:
  • Entrada/Salida
  • Condiciones
  • Bucles
  • Funciones
  • Estructuras
  • Punteros
  • Arrays y matrices

Visto eso, el resto es una combinación de esos elementos.

Por curiosidad, de esas cosas que enumeré, ¿qué viste?


Entrada/Salida, que imagino que es lo de printf() y scanf(), condiciones, bucles, funciones se como se usan pero bueno es en lo me estaba metiendo ahora..., y de arrays pues también me estaba metiendo junto con las funciones, lo que me falta es estructuras y punteros.



Título: Re: Es normal esta dificultad?
Publicado por: Orubatosu en 25 Agosto 2015, 18:07 pm
Quizás el problema es simplemente el que he comentado en alguna ocasión. Aprender un lenguaje "desde cero" en un libro es algo muy muy árido. Si tienes una base en, por ejemplo programación imperativa, cualquier lenguaje es simplemente diferentes instrucciones y algunos conceptos, pero asimilar el "como" no es lo mismo que saber aplicarlo.

La programación es mucho mas que conocer estructuras y recordar como se escriben, o pretender acordarse de "todas las instrucciones". Esto en el caso del C++ por ejemplo es ridículo. La gente busca las librerías que necesita, mira la documentación y ve que argumentos piden, y a partir de ahi ensambla lo que necesita.

Yo sigo pensando que probar algún curso en vídeo es mas llevadero. A menudo los libros de texto carecen de ejemplos o de explicaciones que par muchos "son obvias" y no, no lo son siempre.



Título: Re: Es normal esta dificultad?
Publicado por: ivancea96 en 25 Agosto 2015, 18:10 pm
Yo sigo pensando que probar algún curso en vídeo es mas llevadero. A menudo los libros de texto carecen de ejemplos o de explicaciones que par muchos "son obvias" y no, no lo son siempre.

+1
Además, estamos en una época en la que no se necesitan para nada libros para aprender a programar. Por no decir, que no puedes copiar y pegar código, que es algo que ayuda mucho.

Minidosis (http://minidosis.org)


Título: Re: Es normal esta dificultad?
Publicado por: FKT en 25 Agosto 2015, 18:21 pm


Yo sigo pensando que probar algún curso en vídeo es mas llevadero. A menudo los libros de texto carecen de ejemplos o de explicaciones que par muchos "son obvias" y no, no lo son siempre.



El libro tiene bastante pseucodigo que se entiende con facilidad.

+1
Además, estamos en una época en la que no se necesitan para nada libros para aprender a programar. Por no decir, que no puedes copiar y pegar código, que es algo que ayuda mucho.

Minidosis (http://minidosis.org)

Conocia la página minidosis, pero gracias por recordarmela.

Respecto a tu penúltimo mensaje pensaba que me dirias si me queda mucho o no xD
Y si no te lo pregunto ahora, los conceptos que me has dicho son todo lo que es C? bueno sin contar librerias y etc...


Título: Re: Es normal esta dificultad?
Publicado por: ivancea96 en 25 Agosto 2015, 18:51 pm
Los conceptos que he dicho son los básicos de los lenguajes de bajo nivel, como C.
Una vez sepas eso, solo te quedará conocer librerías y trabajar con sockets, ventanas gráficas, APIs, etc.
Pero todo eso se reduce a conocer librerías.

Ah, y saber compilar librerías estáticas y dinámicas. Pero esas cosas ya son un poco cosa del compilador, que no es programación como tal.

Bueno, y por último, coger velocidad al programar. Tener las ideas claras, pero eso ya practicando xD


Título: Re: Es normal esta dificultad?
Publicado por: FKT en 25 Agosto 2015, 18:56 pm
Los conceptos que he dicho son los básicos de los lenguajes de bajo nivel, como C.
Una vez sepas eso, solo te quedará conocer librerías y trabajar con sockets, ventanas gráficas, APIs, etc.
Pero todo eso se reduce a conocer librerías.

Ah, y saber compilar librerías estáticas y dinámicas. Pero esas cosas ya son un poco cosa del compilador, que no es programación como tal.

Bueno, y por último, coger velocidad al programar. Tener las ideas claras, pero eso ya practicando xD

Jaja, vale  ;D
Gracias a todos  :P