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 (:
Si apenas empiezas, empieza bien así que no caería mal C/C++.
Cita de: Shell Root en 28 Agosto 2011, 09:06 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 (:
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
Cita de: SixToes en 28 Agosto 2011, 09:32 AM
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.
Cita de: SixToes en 28 Agosto 2011, 09:32 AM
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:.
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?
¿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.
Cita de: 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.
De Pseudocodigo no vi nada de nada, pero tengo una noción de algoritmos.
Buen consejo, Gracias :D
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 ;-)
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:
Cita de: SixToes 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.
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++...
Cita de: Queta en 28 Agosto 2011, 12:55 PM
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
DECLARE SUB PrintString(src AS Byte Ptr, x AS LONG, y AS LONG)
DECLARE SUB main ()
SUB multiboot ()
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
END SUB
SUB main ()
CONST s = "Hello World"
PrintString CPtr(Byte Ptr, @s), 35, 12
END SUB
SUB PrintString(src AS Byte Ptr, x AS LONG, y AS LONG)
DIM dst AS Byte Ptr
DIM counter AS LONG
dst = CPtr(Byte Ptr, &HB8000 + y * 160 + x * 2)
counter = 0
WHILE src[counter] <> 0
dst[2 * counter] = src[counter]
dst[2 * counter + 1] = 15
counter = counter + 1
WEND
END SUB
link.ld
OUTPUT_FORMAT("elf32-i386")
ENTRY (loader)
SECTIONS{
. = 0x00100000;
.text :{
KERNEL_START = .;
*(.text)
}
.rodata ALIGN (0x1000) : {
*(.rodata)
_CTORS = .;
*(.ctors)
_CTORS_END = .;
}
.data ALIGN (0x1000) : {
*(.data)
}
.bss : {
SBSS = .;
*(COMMON)
*(.bss)
EBSS = .;
KERNEL_END = .;
}
}
Para construir el pequeño S.O.:
fbc -c kernel.bas -o kernel.o
i586-elf-ld -T link.ld -o kernel.bin kernel.o
Temibles Lunas!¡.
¡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:
CitarCan 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.
@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...).
Cita de: Queta en 28 Agosto 2011, 12:55 PM
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.
Cita de: 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)
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.
Cita de: Queta en 30 Agosto 2011, 15:28 PM
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!¡.
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.
Cita de: BlackZeroX▓▓▒▒░░ en 30 Agosto 2011, 19:15 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.
Cita de: BlackZeroX▓▓▒▒░░ en 30 Agosto 2011, 19:15 PM
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.
@Eternal Idol
[Tociendo un poco]
Cita de: BlackZeroX▓▓▒▒░░ en 30 Agosto 2011, 07:46 AM
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!¡.
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).