Lenguaje programación para empezar.

amchacon escribió:C++ en un año se queda corto la verdad...

Eso es muy relativo. Como dice Bjarne Stroustrup: "depende de la persona".

Yo digo que depende de la persona que aprende, del interés que tenga en aprender, y de la persona que enseña.
Si buscas en google encontrarás gente que ha aprendido los conceptos básicos en 3 o 4 semanas.

Ej: un libro como "A Tour of C++" de Stroustup no llega a las 200 páginas y explica los conceptos más importantes del lenguage de una manera muy sencilla.
Trabis escribió:
amchacon escribió:C++ en un año se queda corto la verdad...

Eso es muy relativo. Como dice Bjarne Stroustrup: "depende de la persona".

Yo digo que depende de la persona que aprende, del interés que tenga en aprender, y de la persona que enseña.
Si buscas en google encontrarás gente que ha aprendido los conceptos básicos en 3 o 4 semanas.

Ej: un libro como "A Tour of C++" de Stroustup no llega a las 200 páginas y explica los conceptos más importantes del lenguage de una manera muy sencilla.

Comprender los conceptos básicos no es conocer el lenguaje. Eso es chapurrear...

Solo hay una forma de hacerlo en 3 semanas:

Imagen
En mi caso yo aprendí con C y luego C++ pero vamos, no te recomiendo pasar por el infierno de C jejeje
xip2 escribió:En mi caso yo aprendí con C y luego C++ pero vamos, no te recomiendo pasar por el infierno de C jejeje


Pues a mí C siempre me ha parecido maravilloso y de todos los que he catado (muchos lustros bregando con todo tipo de jergas y códigos) sigue siendo mi preferido.

Tiene sus cosillas, pero... ¿quien no?
Deschamps escribió:
xip2 escribió:En mi caso yo aprendí con C y luego C++ pero vamos, no te recomiendo pasar por el infierno de C jejeje


Pues a mí C siempre me ha parecido maravilloso y de todos los que he catado (muchos lustros bregando con todo tipo de jergas y códigos) sigue siendo mi preferido.

Tiene sus cosillas, pero... ¿quien no?

Uff yo lo pasé realmente mal aprendiendo punteros (malditas matrices de punteros y punteros a punteros) jaja. Seguramente mi "infierno" se creo ya que fue el primer lenguaje de programación que aprendí y me costó bastante "acostumbrarme".
^ Pero una persona que empiece con C/C++ no tiene la obligación de batallar con punteros a punteros... puedes usar std::vector, y si no te gusta puedes usar otra.

Si, es verdad que C++11 ha añadido muchas cosas que practicamente lo han convertido en un lenguaje nuevo, pero tú decides que quieres usar y que no:
Nada me obliga a usar programación orientada a objetos,
Nada me obliga a usar templates,
Nada me obliga a usar la STL,
Nada me obliga a utilizar la librería standard de C...

En definitiva, en C++ tenemos la libertad de decidir que es aquello que queremos usar. Y ese es uno de sus grandes aciertos.
Prácticamente, C++11 tiene un depurador automático de memoria gracias a las STL...

¿Any problem Java? [hallow]
Estas discusiones siempre abren el mismo debate absurdo donde todo el mundo quiere imponer su verdad y en realidad nadie la tiene. Quien recomienda un lenguaje para aprender a programar es como quien intenta enseñar a hablar a un bebé con un libro de gramática. Ya no digamos recomendar usar lenguajes anclados a un paradigma como puede ser Java o C# y su orienación a objetos...

Todo tiene su proceso y es indispensable aprender primero los conceptos básicos para luego aplicarlos a conceptos mas complejos. Primero va sumar y restar, luego multiplicar y dividir y por último los exponenciales y las raices. Yo aprendí a programar desde muy joven porque me gustaba, pero vi a compañeros durante el ciclo que intentaban aprender de memoria conceptos muy básicos que ni siquiera entendían como ver en que casos usar un bucle "for" en lugar de un "while", no entender que es un vector y para que se usa o el por qué definir una función que realice una tarea cuando puedes escribirlo directamente.

Sin entender esos conceptos básicos es imposible entender como resolver un problema y diseñar un algoritmo. Una vez se aprenden esos conceptos y se sabe como aplicarlos se puede aprender a usarlos en cualquier lenguaje. En este sentido, las universidades suelen impartir en primer año asignaturas basadas en pseudocódigo donde aprender.

Tras unas búsqueda por Google he encontrado documentación de una Universidad de Chile que no tiene mala pinta. Se enseña la materia, se aplica a ejercicios muy básicos y luego se trasladan a C (fácilmente remplazable por cualquier otro lenguaje como Python, Javascript, etc.).

http://progra.usm.cl/apunte/
Pues en mi universidad en primero damos Java directamente, nada de pseudocódigo ni nada.
En Granada se enseña de primeras C++. Primero de manera estructurada (como C pero con la comodidad de cin y cout XD) y luego con orientación a objetos. Luego en el segundo cuatrimestre te enseñan punteros, punteros a punteros XD, referencias, sobrecarga de operadores, destrucción de objetos... Y en segundo curso (en Estructuras de Datos) a parte de todo lo relacionado con el tema te enseñan a usar templates, iteradores...

Y ya en otras asignaturas como Programación y Diseño Orientado a Objetos te "exigen" Java y otro lenguaje a tu elección (en el mío fue Python) para hacer un seminario en clase.

La verdad es que esta metodología me parece correctísima porque empiezas con un lenguaje de bajo nivel (entre los de alto nivel, como yo lo llamo [+risas] ) y vas entendiendo bien todos los conceptos, y cuando ya tienes todo claro (incluida la POO) ya te piden Java y demás. Lo que me parece horroroso es algunos amigos que me han comentado (o incluso en este hilo) que empiezan con Java y su POO y de primeras ya te encuentras el problema de algoritmia y el problema de interfaces, objetos, instancias y demás, todo junto.

Ah! Y dando una opinión para lo que es el hilo en sí: Yo creo que se puede empezar perfectamente por C/C++ (sin usar punteros, usa arrays o vector para empezar y ya más adelante te metes con ellos) o bien por uno de más alto nivel como Python. Con este último (o cualquiera similar, pero por ejemplo Ruby no es de mi agrado) creo que se puede empezar a hacer cositas más rápido, pero después el salto a C/C++ es más difícil. En mi caso me fue bien empezando en C/C++ pero eso ya depende de las ganas, el tiempo y las aptitudes de cada uno :).

Salu2!!!
Con c/c++ coges una base muy buena que te servira para cambiar a cualquier otro lenguaje practicamente sin esfuerzo, ademas de que son lenguajes muy potentes.

De los que pones yo escogeria python sin pensarmelo
^ Hablando de python...

El otro día vi una película de ciencia ficción muy buena: Ex Machina.

En ella hay un momento en el que aparece "alguien" escribiendo el siguiente código, os dejo una imagen:

Imagen

Y aquí os dejo el código de la derecha:
#BlueBook code decryption

import sys
def sieve(n):
#Compute primes using sieve of Eratosthemes

    x = [1] * n
    x[1] = 0
    for i in range(2,n/2):
        j = 2 * i
        while j < n:
            x[j]=0
            j = j+i
    return x

def prime(n,x):
#Find ath prime
    i = 1
    j = 1
    while j <= n:
        if x[i] == 1:
            j = j + 1
        i = i + 1
    return i - 1

# Compute BlueBook unlock code

x=sieve(10000)

code = [1206,301,384,5]
key =[1,1,2,2,]

sys.stdout.write("".join(chr(i) for i in [73,83,66,78,32,61,32]))

for i in range (0,4):
    sys.stdout.write(str(prime(code[i],x)-key[i]))
print


¡Precioso huevo de pascua de Alex Garland! (tranquilos, que no es ningún spoiler de la película).
MI recomendacion es Java (y un libro. "Pensando en Java").
Opiniones como decir que java es un virus como he leido aqui me parec emuy fuerte, pero tampoco quiero entrar en discusiones sin sentido.

Java es un lenguaje orientado a objetos que te permite luego si te es necesario saltar a otros lenguajes como C# mas facilmente que al reves.

Ademas, que la plataforma de java es muchisimo mas amplia en opciones. Yo personalmente con netbeans y Tomcat como servidor de aplcaciones (o en su defecto cualquier desarrollo de apache.org), me veo mas que cubierto.

Cierto es que Visual Studio ahora desde que lo han liberado los de M$ es mas atractivo y es una plataforma buenisima. Pero yo no me centraria en ella, salvo expreso requisito de trabajo (no se si me explico).
65 respuestas
1, 2