Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: schlägt en 28 Agosto 2011, 08:47 am



Título: ¿Con qué lenguaje de programación empezar?
Publicado por: schlägt en 28 Agosto 2011, 08:47 am
Hola comunidad, soy nuevo acá y este es mi primer tema :D

Como bien el título dice ¿Con que lenguaje de programación empezar?

Tengo 15 años, utilizo GNU/Linux y estoy interesado en aprender a programar.

Sé que hay varias ramas de la programación, pero estoy buscando aprender a programar enserio con algún lenguaje que me de buenos hábitos para luego ir a otros más especializados y tener una buena base.

Algunos dicen "Empezá con C" pero a mi entender es super complejo y no entendería nada, aunque no sé si esta "teoría" es cierta. Otros dicen que es mejor empezar con Pascal y Delphi, pero bueno, mucho no sé por eso hago este tema.




  Muchísimas Gracias, Saludos (: 



Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: Shell Root en 28 Agosto 2011, 09:06 am
Si apenas empiezas, empieza bien así que no caería mal C/C++.


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: schlägt en 28 Agosto 2011, 09:10 am
Si apenas empiezas, empieza bien así que no caería mal C/C++.

Genial, voy a esperar a ver que dice la mayoría.

Gracias por responder (:


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: Senior++ en 28 Agosto 2011, 09:32 am
Yo te recomiendo Visual basic 6.0 es fácil y tiene (para mi y para muchos) la misma  capacidad de hacer los mismo programas QUE CUALQUIER OTRO LENGUAJE y mucho mas rápido.

Saludos


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: Queta en 28 Agosto 2011, 12:55 pm
la misma  capacidad de hacer los mismo programas QUE CUALQUIER OTRO LENGUAJE

Primera mentira; a parte de que Visual Basic es un lenguaje totalmente obsoleto, ya me gustaría ver un sistema operativo desarrollado en Visual Basic, que lógicamente no se puede.

y mucho mas rápido.

Hablar por hablar. Antivirus, sistemas operativos, drivers, programas de edición, etcétera, todo, absolutamente todo es C o C++ y si no vete a Adobe y diles que hagan el Photoshop en Visual Basic, que si no pierde mucha velocidad y potencia :laugh:.


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: BlackWolf en 28 Agosto 2011, 13:02 pm
a mi me recomendaron el Python para comenzar, estoy en ello, tengo que leerme el manual en inglés todavia... vv' Creeis que tiene salida o que es util este lenguaje?


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: Valkyr en 28 Agosto 2011, 14:13 pm
¿Has resuelto problemas en pseudocódigo? Ya que si no es así, esa sería la mejor forma de empezar. No tienes problemas de lenguaje porque el lenguaje puede ser el que tú quieras, o puedes buscar algún pseudocódigo que alguien haya escrito.

Sí ya has hecho eso, entonces podrías empezar con C o C++, o Pascal que también es bastante intuitivo y no tiene mucha complejidad.

saludos.


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: schlägt en 28 Agosto 2011, 22:17 pm
¿Has resuelto problemas en pseudocódigo? Ya que si no es así, esa sería la mejor forma de empezar. No tienes problemas de lenguaje porque el lenguaje puede ser el que tú quieras, o puedes buscar algún pseudocódigo que alguien haya escrito.

Sí ya has hecho eso, entonces podrías empezar con C o C++, o Pascal que también es bastante intuitivo y no tiene mucha complejidad.

saludos.

De Pseudocodigo no vi nada de nada, pero tengo una noción de algoritmos.

Buen consejo, Gracias :D


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: Feedeex en 29 Agosto 2011, 23:52 pm
Es una buena idea empezar con C, y sino, te recomiendo java. Por cierto, si necesitas ayuda enviame un MP que quizás puedo orientarte un poco.

Suerte y que logres tu meta de aprender a programar ;-)


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: BlackZeroX en 30 Agosto 2011, 07:46 am
Antes de entrar afirmaciones erradas de alguna manera, te recomiendo probar distintos lenguajes, nosotros te podemos decir X, Y, Z lenguaje pero la vdd eso lo vas a decidir TU, con el que te acomodes y sea mejor. la vdd yo no te recomendaria Java ni .NET, debido a que son leeentos en procesamiento hasta mi punto de vista y debido a que no les he sacado mucho su jugo, esta claro que son buenos tienen lo suyo pero te dan malas practicas como programador en mi consideracion, es lo mismo con vb y cualquier lenguaje de alto nivel... esta bien que los conoscas y veas sus PRO y CONTRAS.

Mi recomendacion: C/C++ Java, .net (TODOS los lenguajes incorporados y la plataforma en si), Basic (cualquier derivacion)...

Ahora si vamos a lo nuestro:

Yo te recomiendo Visual basic 6.0 es fácil y tiene (para mi y para muchos) la misma  capacidad de hacer los mismo programas QUE CUALQUIER OTRO LENGUAJE y mucho mas rápido.

He usado bastante VB como para decirte que NO; No es rapido en algunas cuestiones, Hay trucos para acercarse mucho a la velocidad de C/C++ pero dependes mucho de APIS como RtlMoveMemory y de el tipo de dato long (esto lo uso para los retos de velocidad en vb6, que se publican en el subforo de VB).

 * Carece de punteros reales ( los puedes simular pero Dependes del API RtlMoveMemory ).
 * Barrido de bits... (en VB a fuerzas debes multiplicar o dividir...).
 * Heredacion (en si en vb6 TODO ereda de el tipo Object, pero no se puede heredar de otra lado...).
 * Otras cosillas...

VB no es malo salvo lo que ya cite... y si tu algoritmo es malo o bueno lo puedes escribir donde quieras pero eso si si sabes algunos trucos para la velocidad en este lenguaje u otro puedes hacercarte a la velocidad de C/C++... almenos que tu algoritmo sea mas eficiente que el que esta escrito en C/C++...

Primera mentira; a parte de que Visual Basic es un lenguaje totalmente obsoleto, ya me gustaría ver un sistema operativo desarrollado en Visual Basic, que lógicamente no se puede.

Como visualbasic viene de una vertiente del Basic... Entonces pondre lo siguiente:

"me escupo a mi mismo"

En Basic SI SE PUEDEN crear S.O., Microcontroladores, Drivers, etc...

Aqui te dejo un S.O. super pequeño("Hello World") en FreeBasic (Lenguaje Basic + ASM inline):

kernel.bas
Código
  1.  
  2. DECLARE SUB PrintString(src AS Byte Ptr, x AS LONG, y AS LONG)
  3. DECLARE SUB main ()
  4.  
  5. SUB multiboot ()
  6.   Asm
  7.  
  8.     .set ALIGN,    1<<0            
  9.     .set MEMINFO,  1<<1            
  10.     .set FLAGS,    ALIGN | MEMINFO  
  11.     .set MAGIC,    0x1BADB002      
  12.     .set CHECKSUM, -(MAGIC + FLAGS)
  13.  
  14.     .align 4
  15.     .LONG MAGIC
  16.     .LONG FLAGS
  17.     .LONG CHECKSUM
  18.  
  19.     .set STACKSIZE, 0x4000          
  20.     .comm stack, STACKSIZE, 32      
  21.  
  22.     .global loader                  
  23.  
  24.     loader:
  25.       lea   esp, stack + STACKSIZE
  26.       push  eax                      
  27.       push  ebx                      
  28.  
  29.       CALL  MAIN
  30.  
  31.       cli
  32.       hlt                    
  33.   END Asm
  34.  
  35. END SUB
  36.  
  37. SUB main ()
  38.    CONST s = "Hello World"
  39.  
  40.    PrintString CPtr(Byte Ptr, @s), 35, 12
  41.  
  42. END SUB
  43.  
  44. SUB PrintString(src AS Byte Ptr, x AS LONG, y AS LONG)
  45.  
  46.    DIM dst AS Byte Ptr
  47.    DIM counter AS LONG
  48.  
  49.    dst = CPtr(Byte Ptr, &HB8000 + y * 160 + x * 2)
  50.  
  51.    counter = 0
  52.  
  53.    WHILE src[counter] <> 0
  54.        dst[2 * counter] = src[counter]
  55.        dst[2 * counter + 1] = 15
  56.        counter = counter + 1
  57.    WEND
  58. END SUB
  59.  
  60.  

link.ld
Código
  1.  
  2. OUTPUT_FORMAT("elf32-i386")
  3. ENTRY (loader)
  4.  
  5. SECTIONS{
  6.    . = 0x00100000;
  7.  
  8.    .text :{
  9.        KERNEL_START = .;
  10.  
  11.        *(.text)
  12.    }
  13.  
  14.    .rodata ALIGN (0x1000) : {
  15.        *(.rodata)
  16.        _CTORS = .;
  17.        *(.ctors)
  18.        _CTORS_END = .;      
  19.    }
  20.  
  21.    .data ALIGN (0x1000) : {
  22.        *(.data)
  23.    }
  24.  
  25.    .bss : {
  26.        SBSS = .;
  27.        *(COMMON)
  28.        *(.bss)
  29.        EBSS = .;
  30.  
  31.        KERNEL_END = .;
  32.    }
  33. }
  34.  
  35.  

Para construir el pequeño S.O.:

Código
  1.  
  2. fbc -c kernel.bas -o kernel.o
  3. i586-elf-ld -T link.ld -o kernel.bin kernel.o
  4.  
  5.  

Temibles Lunas!¡.


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: Queta en 30 Agosto 2011, 15:28 pm
¡Cómo no! Hacer por hacer un sistema operativo, puedes hacer incluso esto:

http://www.codeproject.com/KB/cs/CosmosMS5.aspx (http://www.codeproject.com/KB/cs/CosmosMS5.aspx)

Pero dejémonos de tonterías, al hacer un proyecto serio y un poco grande perderías mucha velocidad e incluso cosas tan básicas como la gestión de archivos. Los propios creadores de FreeBASIC lo dicen:

Citar
Can I write an OS in FreeBASIC ?

YES and NO. If you really insist to write an OS and involve FB, the answer is YES. If the question is, whether it is a good idea that you, even more if a beginner, should start coding an OS using FB now, the answer is NO. Several pitfalls apply:
OS development is hard, see http://www.osdev.org/wiki/Getting_Started∞ .
FB won't help you to bypass the need to deal with assembly, also C might be almost impossible to avoid.
You won't be able to use most of the trusted FB features, like graphics, file I/O, threads, memory management, even console I/O ... just control flow, math and logic. If you need those library functions, you will have to reimplement them.
FreeBASIC relies on GCC, and available informations about developing an OS in C apply to FreeBASIC as well. FB will help you neither more nor less than GCC.


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: BlackZeroX en 30 Agosto 2011, 19:15 pm
@schlägt

C/C++, y Java... te va a gustar mas java por eso de que apenas estas empesando... pero es lento en muchas vertientes (Arranque, procesamiento...).

Primera mentira; a parte de que Visual Basic es un lenguaje totalmente obsoleto, ya me gustaría ver un sistema operativo desarrollado en Visual Basic, que lógicamente no se puede.

¡Cómo no! Hacer por hacer un sistema operativo, puedes hacer incluso esto:

http://www.codeproject.com/KB/cs/CosmosMS5.aspx (http://www.codeproject.com/KB/cs/CosmosMS5.aspx)

Solo di un pequeño codigo en basic para sobrecallar una mentira que esta desde hace tiempo en boca de los lectores sobre el lenguaje Basic de que NO SE PUEDE CREAR UN S.O. ( Despresiando otros aspectos que no se traen al caso ), si quieres sacarme .Net ya es otra historia.

Pero dejémonos de tonterías, al hacer un proyecto serio y un poco grande perderías mucha velocidad e incluso cosas tan básicas como la gestión de archivos. Los propios creadores de FreeBASIC lo dicen:

Todo depende de la frase ¿Para que se utilizara? (Si nesesitas crearlo rapido en un lapso corto esta claro de que C/C++ puede o no ser la mejor opcion, por ello se usa actualmente mas java debido a que se crean las aplicaciones mas rapido, ya que no tienes que estar viendo las fujgas de memoria como en C/C++ por decir un ejemplo ). esta claro y NUNCA nege ni dije que era rapido Basic, solo dije que SI, SI SE PUEDE CREAR UN S.O. en lenguaje Basic. Esta claro que C/C++   +   ASM es mas acto para el puesto de los S.O., eso hasta ahora NADIE lo a negado.

En lugar de crear un Flame, Propon Pros y contras, de los lenguajes que ya conoces a realmente a fondo.

Dulces Lunas!¡.


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: Eternal Idol en 30 Agosto 2011, 19:38 pm
Que lindo este BASIC:

Asm
 
     .set ALIGN,    1<<0             
     .set MEMINFO,  1<<1             
     .set FLAGS,    ALIGN | MEMINFO 
     .set MAGIC,    0x1BADB002       
     .set CHECKSUM, -(MAGIC + FLAGS)
 
     .align 4
     .LONG MAGIC
     .LONG FLAGS
     .LONG CHECKSUM
 
     .set STACKSIZE, 0x4000         
     .comm stack, STACKSIZE, 32     
 
     .global loader                 
 
     loader:
       lea   esp, stack + STACKSIZE
       push  eax                       
       push  ebx                       
 
       CALL  MAIN
 
       cli
       hlt                   
   END Asm

PD. Se hablaba de VB 6.0.


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: Queta en 30 Agosto 2011, 19:44 pm
Solo di un pequeño codigo en basic para sobrecallar una mentira que esta desde hace tiempo en boca de los lectores sobre el lenguaje Basic de que NO SE PUEDE CREAR UN S.O. ( Despresiando otros aspectos que no se traen al caso ), si quieres sacarme .Net ya es otra historia.

El tema del proyecto en .NET era un simple ejemplo de lo que no se debe hacer. Actualmente, se usa el término sistema operativo para hacer proyectos como ese, sin tener unos mínimos de conocimientos acerca de la arquitectura de uno real.

En lugar de crear un Flame, Propon Pros y contras, de los lenguajes que ya conoces a realmente a fondo.

No estoy creando ningún flame. Simplemente respondo a la gente; puedo decir perfectamente que Visual Basic es un lenguaje de programación ideal para crear GUIs y me quedo tan ancho.


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: BlackZeroX en 30 Agosto 2011, 19:46 pm
@Eternal Idol

[Tociendo un poco]
Aqui te dejo un S.O. super pequeño("Hello World") en FreeBasic (Lenguaje Basic + ASM inline):
[/Tociendo un poco]

No se si me exprese mal pero de vb6 nadie niega lo de Queta, al citarlo era para añadir no para negar, sin afirmar nada a VB6 ya que dije claramente Vertiente = Derivacion dando una opcion mas.

Dulces Lunas!¡.


Título: Re: ¿Con qué lenguaje de programación empezar?
Publicado por: Eternal Idol en 30 Agosto 2011, 20:35 pm
schlägt: te recomiendo que te pases por aca Orientación - ¿Con que lenguaje Empezar? (http://foro.elhacker.net/programacion_general/orientacion_iquestcon_que_lenguaje_empezar-t282163.0.html).