Apreneder programacion desde 0 , mejor dicho desde -1000

hola buenas , soy un geek, y quiero aprender a programar el problema: que no se nada , y leyendo en internet hay demasiada informacion , quiero saber por donde empezar que lenguaje , lo mas facil para empezar. gracias
Lo más fácil ahora mismo, en mi opinión, es python, con el libro Dive into python, por ejemplo. Si tuviera que empezar a programar ahora, pero aprender bien, empezaría con C, después C++, y una vez sepas manejarte con POO puedes adentrarte más en estos lenguajes (python, java), investigar otros paradigmas o empezar con librerías gráficas para hacer programas con GUI.

En fin, te vas a hartar de leer sea como sea.
Pero sin saber nada de programacion es recomendable un lenguaje '?? , es que he leido algo de pseudocodigos , que no son lenguajes en si y que ayudan para aprender que opinas?
Pseudocódigo es un lenguaje inventado que después puedes traducir a cualquier lenguaje de programación. En algunas asignaturas nos ponen los algoritmos en pseudocódigo y nos dan a elegir unos lenguajes con los que hacer las prácticas a partir del mismo, pero para aprender por tu cuenta no le veo demasiada utilidad (aunque la tiene, no lo niego). Programando "de verdad" puedes ver los resultados.

Para empezar a programar te aconsejo un lenguaje difícil, tipado y en el que tengas que aprender bien qué es cada cosa, como C. Por ejemplo si empiezas con python, hay muchas cosas que las hace el lenguaje automáticamente y si pasas después por un lenguaje no tan sencillo, te perderás, pero con python conseguirás resultados mucho más rápido, y no es compilado. Es cuestión de elección.

En mi universidad empezamos con Ada y C, los industriales empiezan con Pascal. Ada lo veo bastante bien para empezar y coger buenas costumbres, pero quizá no encuentres tanta información, no es un lenguaje muy usado en ámbitos generales. C a veces es una putada.

Java es otra buena opción pero meterse en POO de primeras no lo veo sencillo.

En fin, es que hay muchísimas opciones.
Te voy a recomendar lo mismo. Yo empecé con C en la carrera, y aunque es complicado y un tanto "puntilloso" sirve muy bien como base, además es más "cercano a la máquina" que la mayoría de lenguajes, por lo que puedes visualizar lo que realmente está haciendo el ordenador con tu programa. El problema es que puedes cansarte rápido si lo intentas aprender por tu cuenta, especialmente cuanto progreses un poco y llegues a punteros y demases. Python tiene la ventaja de permitirte hacer mucho con poco trabajo, por ejemplo el manejo de listas, cadenas o ficheros es mucho más cómodo en Python que en C.

Yo empezaría con C, y luego daría el salto a Python/C++/Java para meterte en lenguajes orientados a objetos.

De todas formas, y elijas cual elijas, lo primero que yo haría es instalarte una distribución Linux (Ubuntu puede estar bien para empezar) los compiladores (gcc para C/C++, python suele venir ya instalado) y un editor de texto sencillo (Gedit para empezar o Geany si quieres algo más tirando a IDE) y empezar desde ahí. Desde Linux por ejemplo tienes acceso a toda la documentación de C simplemente escribiendo:
man loquesea


Por ejemplo:

man strcpy

STRCPY(3)          Manual del Programador de Linux         STRCPY(3)

NOMBRE
       strcpy, strncpy - copian una cadena de caracteres

SINOPSIS
       #include <string.h>

       char *strcpy(char *dest, const char *orig);

       char *strncpy(char *dest, const char *orig, size_t n);

DESCRIPCIÓN
       La  función  strcpy()  copia la cadena de caracteres apuntada
       por orig (incluyendo el carácter terminador '\0')  al  vector
       apuntado  por  dest.  Las cadenas no deben solaparse, y la de
       destino, dest, debe ser suficientemente grande como para alo‐
       jar la copia.

       La función strncpy() es similar, pero no se copiarán más de n
       bytes de orig. Así,  si  el  byte  cero  no  está  entre  los
       primeros  n  bytes  de  orig, el resultado no será una cadena
       terminada en cero.


Si estás interesado en empezar con C, puedes bajarte este pdf para ayudarte:
http://www.tecnun.es/asignaturas/Inform ... leng_c.pdf

Si prefieres python, puedes bajarte Dive into Python, que te ha recomendado amuchamu, también puedes pasarte por el hilo de EOL en python y comentar tus dudas:
hilo_hilo-oficial-python_1468701
Mirate las bases en C, continúa por C++ y después ya puedes atacar un lenguaje de más alto nivel como C#, Java, Python, etc etc.
Yo sabía algo de pascal, pero empecé en serio con java y me he ido metiendo cada vez más en lenguajes de más bajo nivel, si empiezas con java puedes aprender rápido muchas cosas, pero si no te metes con los lenguajes a bajo nivel no vas a saber que está pasando realmente. Te dan una perspectiva muy buena que te vale para programa mejor en cualquier cosa, como java.

Algo muy sencillo para aprender lo más básico (funciones, if-else, for, while..)sería javascript, pero cogerías demasiadas malas costumbres.
Jooo , es que cada uno dice una cosa , entonces sigo sin saber que hacer c , java , python , basic....
Básicamente te hemos dicho todos que empieces por C y después C++, si llegas hasta ahí ya sabrás elegir por dónde seguir.
DE ACUERDO MUCHAS GRACIAS , EMPEZARÉ POR C! algun libro , curso o algo para recomendarme???



buscando ejercicios de C , he encontrado esto :
#include <stdio.h>
main()
{
float s,r,o,x;
inicio:
printf("\n\t\t\tCalculadora - By Slappter.");
printf("\nPrimer Número: ");
scanf("%f", &s);
printf("\nSegundo Número: ");
scanf("%f", &r);
printf("\nSumar = 1 / Restar = 2 / Multiplicar = 3 / Dividir = 4 : ");
scanf("%f", &o);
if (o==1)
{
printf("\nResultado: %f\n", s+r);
printf("\nPresiona 2 para Salir o 5 para volver a Comenzar: ");
scanf("%f", &x);
if (x==5)
{
goto inicio;
}
if (x==2)
{
}
}
else if (o==2)
{
printf("\nResultado: %f\n", s-r);
printf("\nPresiona 2 para Salir o 5 para volver a Comenzar: ");
scanf("%f", &x);
if (x==5)
{
goto inicio;
}
if (x==2)
{
}
}
else if (o==3)
{
printf("\nResultado: %f\n", s*r);
printf("\nPresiona 2 para Salir o 5 para volver a Comenzar: ");
scanf("%f", &x);
if (x==5)
{
goto inicio;
}
if (x==2)
{
}
}
else if (o==4)
{
printf("\nResultado: %f\n", s/r);
printf("\nPresiona 2 para Salir o 5 para volver a Comenzar: ");
scanf("%f", &x);
if (x==5)
{
goto inicio;
}
if (x==2)
{
}
}
else
{
}
}


quiero aprender que es cada cosa
El mejor libro de C para mí es "The C Programming Language" de Ritchie (creador de C) y Kernighan. Cursos en internet hay muchos, ahora no te sé decir uno. También mira el enlace que te ha puesto Korso10 que no pinta mal, quizá te parezca muy teórico pero es mejor aprender el por qué de cada cosa.

Ese código que has puesto no sé de dónde lo has sacado pero si es de un curso no lo sigas, da penica. La sentencia goto debe evitarse siempre que se pueda y más en un lenguaje que no la necesita, los nombres de las variables deben de tener cierto sentido...

Como te ha dicho de nuevo Korso10, si tienes linux (seguramente en otros unix también) puedes mirar qué hace cada función simplemente mediante "man nombredelafunción". Si no, por internet tendrás muchas páginas de referencia con las funciones de la librería estándar de C y de otras librerías, por ejemplo: http://www.acm.uiuc.edu/webmonkeys/book/c_guide/
pues uso mac os , que segun tengo entendido tiene nucleo unix noo??? , voy a seguir el curso de gorka de elrincondelc , que opinais?¿
idraw escribió:pues uso mac os , que segun tengo entendido tiene nucleo unix noo???


Abre una terminal y ejecuta "man fprintf" por ejemplo, a ver si te sale. Si no quizá tengas que instalar las manpages. Desconozco MacOS X así que no te puedo ayudar en esto.

idraw escribió:voy a seguir el curso de gorka de elrincondelc , que opinais?¿


Lo desconozco. Si sabes inglés (aunque supongo que también estará traducido) te aconsejo el libro que te he indicado antes, lo encontrarás en PDF sin problemas. El pdf que ha puesto Korso10 pinta bien. Si ves que el curso que dices está bien pues adelante.
El pdf que te he puesto es de la colección de "aprenda <lenguaje> como si estuviera en primero" de la Universidad de Navarra, y a mí me ayudó cuando aprendí C, también tienen de otros lenguajes como C++ o Java, y hasta ahora me han servido. The C Programming Language es de lo mejor que hay, pero si sólo vas a empezar, es un tocho considerable, aunque es "la Biblia de C" por así decirlo.

El programa que has puesto no se de donde lo has sacado, pero los goto hacen daño a los ojos [+risas]. Es muy recomendable evitarlos ya que conforme el programa crece resulta cada vez más difícil su análisis, por lo que siempre es preferible usar llamadas a función.

Cuando acabe los exámenes, miro a ver si tengo algún código en C y lo pongo por aquí por si ayuda.
Una pregunta, Visual Basic que lenguaje usa exactamente?
mikecv escribió:Una pregunta, Visual Basic que lenguaje usa exactamente?


Visual Basic es un lenguaje de programación.
Amuchamu, con todos mis respetos, tus consejos de libros son algo duros.

El dive into python es una puta maravilla de libro, pero presupone que sabes programar en otro lenguaje, así que no le vale, y el K&R necesita que sepas programar, ese es duro de cojones.

el rincondelc está bastante majete.
Jeje, sí, bueno, son con los que aprendí yo, aunque es cierto que cuando toqué el Dive into Python ya sabía programar algo, la verdad es que no recuerdo bien cómo es el libro, sólo que me gustó. El K&R fue el primer libro de programación que toqué en mi vida, de mi hermano, pero sí, es cierto que hay conceptos que los da por conocidos.

Quizá me he excedido un poco [ayay]
OK, gracias por cierto de ide en mac uso codeblocks y eclipse alguno me conseja algo¿
amuchamu escribió:
mikecv escribió:Una pregunta, Visual Basic que lenguaje usa exactamente?


Visual Basic es un lenguaje de programación.


Ah, vale, jaja.

Y para alguien que "sabe" (entiende) programar en visual basic (fundamentos de informática, primero de industriales), también aconsejais "empezar" con C? He estado informándome y la verdad es que tienen cierto parecido.
Y para alguien que "sabe" (entiende) programar en visual basic (fundamentos de informática, primero de industriales), también aconsejais "empezar" con C? He estado informándome y la verdad es que tienen cierto parecido.


Si quieres hacer programas para windows de manera rapida, y sin complicaciones, pues el VB es genial,y los conocimientos de programacion que adquieras, te serviran de base para otros lenguajes

Por el contrario, si estas haciendo una carrera tecnica, en donde tal vez no siempre se programa para PCs x86, y por ejemplo tengas que programar para una placa motorola , ahi el C es muy util
Hay una colección de libros en español muy buenos, con teoría, ejemplos y ejercicios resueltos.

"Programación en [INSERTAR LENGUAJE AQUÍ]" (Schaum. McGrawHill).
Vale estoy haciendo el curso de gorka y demomento todo bien , no he aprendido mucho todavia pero ya he hecho lo de el hello world , y buscar fallos en un codigo fuente , ahora estoy con las cadenas ...gracias a todos!
http://www.elrincondelc.com/cursoc/cursoc.html
Yo te recomendaria empezar por python , es muy sencillo y es como leer un libro Imagen
pues ya he empezado con C , y de momento no es muy dificil claro solo llevo una leccion , despues pasare a python, pero como dice por aqui con c aprender mejor , pues mas vale aprender lo jodido y luego ya ir a tu ritmo, pero GRACIAS DE TODAS FORMAS!
No sé si he leído por ahí pero he visto algo de mac...

Si es así (y sino también puede ayudarte) la guía de masters of the void está bastante bien, en inglés eso sí.

Saludos
pues tengo un pequeño problema que hasta ahora no me ha causado grandes errores, y es que no se con que ide trabajar en mac , hasta ahora para hacer los ejercicios del curso (hello world...) , tiro de xcode y la opcion console application , que opinais vosotros cual me recomendais???
Para mi en mac lo mejor es xcode, aunque tambien si te interesa, podrias comenzar a utilizar eclipse como IDE y el gcc para compilar, asi ya te valen los conocimientos para linux o windows

El gcc se instala junto al xcode, asi q ya lo tendras en la consola

http://developer.apple.com/tools/gcc_overview.html

Eclipse

http://www.eclipse.org/downloads/


Aunque eclipse a mi no me gusta mucho, te lo menciono ya que es popular y encontraras muchos manuales

Personalmente prefiero mas otros como el codeblocks http://www.codeblocks.org/downloads/binaries

Aunque hace tiempo que no programo en C, casi todo lo hago en RealBasic
ahora mismo tengo instalado Codeblocks, xcode y eclipse, pero el que mas facil meparece es xcode

POR CIERTO!!! tengo un problema , y es que no me reconoce la accion de clrScrn en xcode, me da un error leve , alguien sabe porque??? y para utilizar gotoxy ???
mikecv escribió:
amuchamu escribió:
mikecv escribió:Una pregunta, Visual Basic que lenguaje usa exactamente?


Visual Basic es un lenguaje de programación.


Ah, vale, jaja.

Y para alguien que "sabe" (entiende) programar en visual basic (fundamentos de informática, primero de industriales), también aconsejais "empezar" con C? He estado informándome y la verdad es que tienen cierto parecido.


joer, y quien te da clase? no será juan el andaluz, no? yo soy industrial de vigo pero del plan viejo, hace ya unos añitos que terminé. no sé porque os meten visual basic en primero, me parece una forma bastante chunga de aprender. nosotros empezamos por c y luego java (antes era c y luego c++ y antes aún era pascal y luego c), también un poco de fortran que fue perder el tiempo... y esto te hablo de la gente de electrónica o electrotecnia, el resto ni veían programación...
y todo esto para terminar la carrera sin saber matlab o autocad a menos que te buscaras la vida por tu cuenta... valiente mierda de profesores...
idraw escribió:POR CIERTO!!! tengo un problema , y es que no me reconoce la accion de clrScrn en xcode, me da un error leve , alguien sabe porque??? y para utilizar gotoxy ???


gotoxy es parte de la librería conio.h, clrscr creo que también. conio.h era una librería de DOS, no es parte de la librería estándar de C, ni de POSIX ni de ISO C. En resumen, no está en mac, linux y otros sistemas, cualquier programa que lo use dificulta su portabilidad.
idraw escribió:ahora mismo tengo instalado Codeblocks, xcode y eclipse, pero el que mas facil meparece es xcode


Para C efectivamente eclipse no es la mejor opción. Pero para Java, eclipse es EL IDE (con el permiso de NetBeans). Para python, ruby, y demás mierdas modernas [+risas] la verdad es que ni idea :P
Aqui teneis un reto sencillito para arrancar la seccion , puedes intentarlo haber que tal te va Imagen

www.zonaperezosos.eu ( Sin enlace , no spamm )
33 respuestas