Recomendaciones para iniciarme en programación

Pordiosero

Hola buenas, me gustaría saber que lenguaje me recomendáis para iniciarme desde 0 en programación. Tenía pensado empezar por C++, pero he visto en algún plan de estudios de ingenieria del software en el que se empieza por Java y también recomendaciones sobre empezar con Python. ¿Cuál me recomendáis?
También busco recomendaciones de manuales de programación, si puede ser con versíon pdf disponible para descargar y en castellano.
Otro par de dudas:

¿Es necesario/recomendable saber C antes de iniciarse en C++?

¿Es necesario saber algún lenguaje concreto para utilizar Visual Basic?

Todso

Yo no tengo ni idea de programar pero un profesor con el que estuvimos hablando de empezar a programar nos dijo que Visual Basic es una mierda, que la ha intentado meter Windows con calzador con presiones en la industria y tal, pero que no vale para nada. Y que aunque el principal era C++, se está imponiendo JAVA por las aplicaciones multiplataforma, que de esctructura de pensamiento son muy parecidos.

No sé si te ayuda xD

PD: Post a favoritos que me interesa xD

#4 y #10 Ya digo que yo no sé nada, a mí eso me lo dijo un profesor con el que íbamos a apuntarnos a clases de JAVA.

2 respuestas
DantePD

Depende de a que quieras dedicarte despues.

Yo te recomiendo empezar por uno facil. En C++ vas a necesitar muchisimas horas para hacer lo mas basico. Invirtiendo esas horas en otro lenguaje podras hacer muchas mas cosas. Obviamente C++ es el lenguaje mas potente y te servira para muchas mas cosas.

¿Mi recomendacion? Phyton

Para darte una idea. El programa mas basico llamado "Hello World" en Java es:

public class HolaMundo {
     public static void main(String[] args) {
        System.out.println("Hola Mundo!");
  }
}

En Python es:

print "Hello World"

Si entiendes ingles hay algunos cursos gratis o baratos muy muy buenos con lo que en nada te pones a hacer cosas interesantes. Mi favorito para Python es: "Learn Phyton de Hard Way" (version html gratis)

BLZKZ

#2 Te equivocas, c se usa más que java.

Para #1 date un paseo por este foro o utiliza el buscador, hay decenas de hilos exactamente iguales y todos terminan en guerra.

Sinceramente el más didáctico que he usado es python, teniendo en cuenta que he tocado bastante de php, java, c, c++, c# y algún otro más.

2 respuestas
Merkury

¿Es aquí donde cada uno venimos con nuestros argumentos a favor/contra de ciertos lenguajes?

Si vuelvo a hablar de algoritmia me pegaréis? XD

De todas formas si quieres empezar a programar a saco (para hacer cosas chulas) Java o Python aunque si quieres hacer paginas web mirate html y css para maquetar y tal y PHP que esta to wapens.

1 respuesta
B

Lo mejor para aprender es Python + un libro de algoritmia como dice #5. Una vez que dominas Python, puedes pasarte a Java / C. Ojo con la gestión de memoria, que es muy puta a veces.

elkaoD

#4 pues yo cada día me gusta menos Python.

No me pretendo empezar una guerra xD Seré breve: cosas como que "a = 2," (típico error tipográfico) asignen una tupla (2,) a "a" tienen huevos... y luego dicen que explícito es mejor que implícito xD

1 1 respuesta
DantePD

#7 Tampoco me parece algo tan grave como para no usar python xD

1 respuesta
elkaoD

#8 ya me contarás cuando en un desarrollo enorme te salga un bug de esos por un mal copypaste y tú sólo veas un efecto mariposa de acontecimientos (Python no es tipado así que la tupla se cuela everywhere) y, si tienes suerte, salta una excepción en algún lado...

No digo no usar Python, no me malinterpretes, pero hay aspectos del lenguaje que creo que son contra-intuitivos y van en contra de la propia filosofía simplista de Python.

1 1 respuesta
B

#1 cualquiera... yo empece con Pascal por ejemplo... total para aprender lo que son los conceptos basicos de la programacion... bucles, arrays, etc...una vez tienes lo basico te sera mas facil programar en cualquier lenguaje
PD: para usar Vb necesitas conceptos de programacion

y #2 Vb sera una mierda pero por ponerte ejemplos de programas hechos con vb para el proyecto del ciclo superior de ASI:

  1. tetris multijugador, 1v1,si uno se hacia una linia al otro le aparecian linias incompletas para putearlo
  2. Un bingo que te hacia los cartones y te cantaba los numeros pudiendo elegir tu la voz (tio, tia)
  3. Un gestor de camaras ip.
  4. Un programa que se conectaba al servidor se bajaba la info para trabajar sin conexion, luego subia la info y comprobaba que no ubiera avido cambios desde la descarga, si era asi te avisaba y te decia donde estaban los cambios y que querias hacer, añadir, modificar o sobreescribirlo todo
  5. (mi proyecto)Un programa de gestion para un centro de estetica, con su agenda en un grid (al pulsar sobre una hora vacia se habria una ventana y introducias todo lo que se iba ha hacer... dependiendo del tiempo se llenaban las horas siguientes y no podias añadir a nadie), sus facturas, sus clientes en base de datos, etc.

estos por poner algunos ejemplos.

2 respuestas
B

#9: Es un problema serio que puede llevar a muchos dolores de cabeza, pero se soluciona con un buen linter.

#10: Esos programas que has puesto son de lo más sencillo, qué tienen que ver con la calidad de Visual Basic?

#12: Lo que quiero decir es que eso se hace con cualquier lenguaje. De todas formas VB a mí me parece una cagada, pero es opinión personal.

#20: Coño, pues tienes razón. GL

2 respuestas
B

#11 Pues que sera una mierda pero que sirve para hacer cosas y para practicar conceptos basicos podria valer para comenzar.

Y lo de sencillo... pues para alguien que lleva tiempo si, pero para alguien que esta empezando pues...

PD: ahora que me viene a la cabeza en la uni hay gente que ha comenzado con vb (si hace como 6 - 7 años xD)

1 respuesta
DantePD

Yo no invertiria mi tiempo aprendiendo VB.

Como comentas es un lenguaje "no esta mal". Yo prefiero estudiar un lenguaje "es la ostia", como Python, Ruby on Rails, Java, Javascript...

Es normal que uno intente defender el lenguaje que se ha tirado horas y horas aprendiendo xD

2 respuestas
B

#13 no, si vb nos enseñaron lo basico y dijeron el proyecto en esto (sabiendo todos programar en java), asi que lo que no sabiamos lo buscabamos.

Yo soy de la opinion de aprende a programar y luego usa el lenguaje que quieras

Almondriga

Phyton sin duda el primero, es muy simple, y para que vayas entendiendo como va lo de programar o te hagas una idea es lo mejor.
Luego C o C++ indiferentemente y por ultimo Java.

Aunque Java es mas fácil que C++, en este último pillas conceptos importantes para empezar en Java sabiendo mucho.

varuk

Para empezar a pensar en Arrays, bucles, condicionales y todo eso... para mi de lo mejor es el lenguaje Pascal, que se acerca más que otros al pseudocódigo y es un lenguaje bastante bueno para aprender con programación imperativa.

Después, ya pasarte de un lenguaje a otro es trivial, en programación imperativa digo. Cuando pases a programación orientada a objetos, pues ya deberás coger C++ o Java, por ejemplo.

En fin, mi recomendación es que empieces con Pascal, con un libro (yo siempre apuesto por los libros), y ayudándote de foros e internet. Que el libro te proponga ejercicios y vayas haciéndolos.

Importante: Yo no me metería a empezar usando un entorno como Eclipse, si es que quiere empezar con Java, porque el eclipse te lleva muy de la mano, como hasta que no se te pase poner el ";" al final de la sentencia o te sugiere muchas cosas y te hace el trabajo. Eso está bien cuando ya sabes programar, pero yo me inclinaría por no tener eso si quieres aprender. Parece una tontería, pero es mejor así, al menos creo yo.

Por eso, repito, te recomiendo PASCAL y que uses para ello la herramienta (que incluye compilador y todo lo necesario) http://www.freepascal.org/ . Verás que es la típica de pantalla de fondo azulada y letras blancas, tipo MS-DOS, de toda la vida, pero te obligará a escribirlo tú todo desde 0.

Aquí una guía para instalar y usar el Free Pascal ese: http://www.nachocabanes.com/videojuegos/ipj/ipj01d.php (pasa de eso de "probando el modo gráfico")

Toma, ejercicios de 1º de Carrera: http://recursos.paraninfo.es/materiales/8497321855/programasPascal.pdf

Son del libro, que eso no es completo:

Una introducción a la programación: un enfoque algorítmico


    Páginas : 602
    Editorial : International Thomson Publishing
    Idioma : Español
    Fecha de Publicación : 01/09/2005
    ISBN: 978-84-9732-185-3
    Encuadernación : Rústica
    País de Publicación : ESPAÑA
    Lugar de Publicación : Madrid
3 respuestas
B

#16: Tïo, para eso usa GEdit o Sublime Text, pero ese IDE da ascazo xD

#18: A mí tampoco me parece buena idea, ni VB ni Pascal. Yo aprendí con Pascal y ojalá hubiese aprendido con Python.

DantePD

No entiendo lo de usar un lenguaje que ya no se usa para aprender la base, cuando puedes aprender la misma base en un lenguaje que si se usa.

Es como decirle a un ingles que quiere aprender español que empieze por el aragones (idioma casi muerto) para pillar la base. ¿No es mejor que comience con español del tiron?

Ojo, lo estoy preguntando porque no tengo ni idea de programacion. Hace 2 semanas que estoy con python. No lo pregunto en plan "yo se y vosotros no".

1 1 respuesta
Wasd

Python no se, pero JavaScript es bastante sencillo como lenguaje de programación. Implementarlo a la web ya es un poco mas complejo, pero para conocer arrays, ifs, whiles, foreaches, fors, incluso funciones y objetos, pues va que chutas.
www.codecademy.com y au

elkaoD

#11 ojo, es sintaxis correcta, así que pasa el PyLint/PyFlakes

1 respuesta
B

#16 Buf menudos recuerdos de turboc/pascal con ese pantallazo. Lo menos 15 años de golpe.

BLZKZ

#13 ruby on rails no es un lenguaje, es un framework de ruby.

#16 en la vida empezaría con pascal, por desgracia me tocó darle en mis comienzos y es una puta basura, aunque sí es cierto que el paso a c/c++ fue muy intuitivo, pero para esas me meto con C directamente.

RandomNick

#1
Hola buenas, me gustaría saber que lenguaje me recomendáis para iniciarme desde 0 en programación. Tenía pensado empezar por C++, pero he visto en algún plan de estudios de ingenieria del software en el que se empieza por Java y también recomendaciones sobre empezar con Python. ¿Cuál me recomendáis?

Siendo prácticos, te diría que depende de tu aproximación a la programación: ¿Quieres hacer programas para usuarios (como app de móviles, de gestión, típicos programas de ventana) o quieres programar y aprender las tripas de un ordenador? Si es lo primero, tal vez si quieras estudiar Java, un lenguaje muy popular con el que podrás incluso hacer aplicaciones en Android. Si es lo segundo, si te recomendaría C. C tiene ventaja, y es que aprendiendo a programar en él comprenderás el por qué en otros lenguajes x cosas funcionan de tal modo. Muchos lenguajes ahorran complicaciones al programador en ciertos aspectos, pero eso no quiere decir que no existan. Creo que si tienes interés por como suceden las cosas en tu ordenador, querrás aprender C. Además, una vez aprendas en él, podrás aprender cualquier otro con poca dificultad.

También busco recomendaciones de manuales de programación, si puede ser con versíon pdf disponible para descargar y en castellano.

http://es.wikiversity.org/wiki/Programaci%C3%B3n_en_C
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C


¿Es necesario/recomendable saber C antes de iniciarse en C++?

C++ amplía las capacidades de C. De modo que es recomendable que empieces con C antes de conocer las particularidades de C++.

¿Es necesario saber algún lenguaje concreto para utilizar Visual Basic?

No, aunque la sintaxis varía un poco del resto de lenguajes de programación. Cuando programes en C (si llegas a hacerlo), verás que hay muchos otros programas "parecidos" en apariencia. Mírate en internet códigos de javascript, java, C o C# y verás que parece como si se escribieran igual. Si luego comparas esos códigos con Visual Basic, verás que aparantemente parecen diferentes.

eisenfaust

Algunos ejemplos del castañismo de Python:

>>> [x for x in range(1, 10 + 1)]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
x
10
>>> x = 1
def foo():
	x += 1
	print x


foo()

Traceback (most recent call last):
  File "<pyshell#38>", line 1, in <module>
    foo()
  File "<pyshell#37>", line 2, in foo
    x += 1
UnboundLocalError: local variable 'x' referenced before assignment

Con un par.

Perl para niñatos mediocres que deberían estar picando Basic. Lo único decente que tiene es SciPy.

Un gran lenguaje para aprender, pequeño, sencillo eficiente y MUY bien diseñado que recomiendo a todo el mundo es Lua.

Meleagant

Yo empecé con Pascal (aunque ya había hecho algo de C en bachillerato) y ni tan mal.

El paso a C++ desde Pascal me parece sencillo e intuitivo.

¿Por qué no recomendaría Java para empezar? Porque es un lenguaje orientado a objetos. Vas a estar manejando clases, instanciando objetos, creando métodos en clases sin saber ni siquiera lo que estás haciendo.

  • Empiezas con Pascal, C o algún lenguaje procedimental clásico.

  • Cuando entiendas bien todo el funcionamiento de tipos, variables, operadores, condicionales, bucles, funciones (y procedimientos, depende del lenguaje) y punteros, empiezas a estudiar la teoría de POO con Java o C++.

  • Aprendes lo que es una clase, atributos y métodos, encapsulación, constructores, destructores (en Java no se usan por el GC), herencia, polimorfismo, etc.

Yo es el camino que seguiría. Y Java es más fácil que C++, pero POO lo aprendí con C++ y el salto a Java es más fácil que aprender Java, pasar a C++ y volverte loco porque no sabes controlar la basura que generas.

Foxandxss

La verdad es que a mi me daría una pereza el empezar... A mi particularmente me costó bastante.

Aunque si dijera de empezar de nuevo, cogería Python sin duda.

Python es sencillo, práctico, productivo y te permite hacer cualquier cosa, desde apps para consola, juegos, escritorio, web...

Mucha gente lo usa hoy en día de forma profesional y va muy de puta madre.

A mi personalmente me gusta mucho Ruby, pero entiendo que no es el más idoneo para empezar, puesto que no proviene de C y la sintaxis cambia bastante.

De python por otro lado, hay mucha doc en castellano, aunque lo suyo es aprender inglés.

Pordiosero

Gracias a todos por vuestras respuestas. Finalmente creo que me decantaré por C.

Saludos.

allmy

#1 Empieza por python. Si bien es verdad que no es el mejor idioma para programación bruta en sistemas, si que es muy útil y muy limpio para que aprendas como funcionan las estructuras, los controles de flujo, las tuplas, las variables y todas esas cosas. Después de python que no te costará mucho yo si que me metería con C/C++ a saco, o si prefieres puedes pasar por otro lenguaje intermedio.

Mira, puedes meterte en el curso de hacer un buscador en python de "http://www.udacity.com "

1 respuesta
DantePD

hahahahah 90% del post dice que empieze por otra cosa antes que C y decide C xD

#28 Udacity es AMAAAAAAAAAAAZING. Es el futuro de las universidades.

Para el que no lo sepa es un proyecto donde profesores de grandes universidades como Standford o MIT dan cursos gratis (solo pagas si quieres sacarte el titulo y es poquisimo dinero)

Ademas estan llegando a acuerdos con las grandes tecnologicas como Google para que ese diploma sirva para trabajar en Google y demas. Vamos, que no es un curso CCC con -3 de valor en el CV.

Es un proyectazo. El tipo que lo ha creado trabajaba en Google X (los que desarrollan cosas como las gafas con pantalla, el coche que conduce solo...)

1 respuesta
B

#29: Es la hostia. Ahora si te crees que vas a trabajar en google por hacer esos cursos vas bueno. Cualquiera que se dedique a esto sabe diez o veinte veces lo que se da en todos esos cursos, y que yo sepa a google solo van unos pocos.

Pero vamos, ojalá sea como tu dices, saco todo 10s y me convierto en CTO de Google, np.

1 respuesta

Usuarios habituales