PDA

Ver la versión completa : Aprender a programar desde cero (ayuda)



eel_colo
04-09-2014, 09:17 PM
Bueno, lo del titulo... ya vi algunos otros post pero no me parecio mal crear otro
me gustaria ir aprendiendo algun idioma ahora como hobbie y ademas tengo pensado el año que viene empezar ingenieria en sistemas en la fing (que por lo que estaba viendo ahora se llama ingenieria en computacion en realidad)
el fin de este post es que me recomienden por que idioma comenzar, teniendo en cuenta utilidad y facilidad(que siempre dependera de la persona al final pero ta) y libros en español (se muy poco en ingles como para entender algo nuevo) ya sean pdf o fisicos(que se puedan comprar aca)

Legolas
04-09-2014, 10:50 PM
Suscribo. A ver que hay...

Enviado desde mi telégrafo usando código morse

Rodribera32
04-09-2014, 11:04 PM
P1 en la fing arranca con Pascal. Es una cagada pero ta capaz q te sirve estudiarlo ahora y ya cuando lo des te va a ser mucho mas facil.
Yo creo q tengo los libros x ahi sino en la fing vas al CEI (Planta baja - vas a ver el cartel) y ahi compras los dos tomos de P1 que deben sali 70p c/u

eel_colo
04-09-2014, 11:17 PM
gracias por el pique knamanya32 , googleo a ver que onda

Løan
04-09-2014, 11:21 PM
Python, y a lo mejor antes darle un poco el pseudocódigo?. Recuerdo que la primera vez que dí programación arrancamos haciendo cosas más o menos bobas con PSeInt.

Everybody
04-09-2014, 11:23 PM
Pasense por el topic de Python de Zuji

http://www.gameover.uy/showthread.php?282-Aprendiendo-Python!

eel_colo
04-09-2014, 11:39 PM
si, lo lei antes de crear este post y me baje un par de pdf en español que hay ahi para ir leyendo a ver que tal

klose
05-09-2014, 12:10 AM
lo mejor es arrancar con pascal, no te recomiendo arrancar con python. Podrias hacer Pascal->Java(o c++)->Python. y para cualquier cosa que hagas no compres libros, en internet esta todo.

Everybody
05-09-2014, 09:31 AM
lo mejor es arrancar con pascal, no te recomiendo arrancar con python. Podrias hacer Pascal->Java(o c++)->Python. y para cualquier cosa que hagas no compres libros, en internet esta todo.
Por qué ese orden?

Sehnsucht
06-09-2014, 12:33 PM
lo mejor es arrancar con pascal, no te recomiendo arrancar con python. Podrias hacer Pascal->Java(o c++)->Python. y para cualquier cosa que hagas no compres libros, en internet esta todo.
Pascal fue el lenguaje pensado especificamente para arrancar a programar (y yo siempre fui un defensor casi acérrimo . En ortas universidades (desde la UBA hasta el MIT) te tiran con Python de primera. Y yo por lo que estuve viendo es muy simple de aprender desde la linea de comandos, y despues te podes expandir a frameworks mas complejos. Pascal por momentos es extremadamente arcaico (y mas cuando salis de P1 y te encontras con el aborto de la naturaleza llamado Modula).

Ryuug4
06-09-2014, 02:48 PM
Pseudocodigo y diagramas de flujo para entender el concepto de programar fuera de lenguajes específicos es ideal, en especial si empezas el año que viene y te sobra el tiempo, luego elegís algun lenguaje y es mas fácil aprender

eel_colo
07-09-2014, 01:01 AM
ahi va, me leo algo de pseudocodigo y diagramas de flujo antes de arrancar con algun lenguaje en particular, gracias Ryuug4

zuji
07-09-2014, 05:03 AM
lo mejor es arrancar con pascal, no te recomiendo arrancar con python. Podrias hacer Pascal->Java(o c++)->Python. y para cualquier cosa que hagas no compres libros, en internet esta todo.

Cuando te referís a "está todo en internet" te referís en cuestión de material suelto o por el hecho de que los libros están en pdf "gratis"?

Digo porque me parece que los libros siempre son mejores que un tutorial por una cuestión de estructura o didáctica, más si son libros clásicos de referentes en la materia.

Master of the Wind
07-09-2014, 11:35 AM
Python + pseudocodigo.


Pascal? Se da en la fing, luego de esos 6 meses nunca mas lo vas a ver en la vida. Ademas de ser tecnologicamente un lenguaje de la decada del 70.

klose
07-09-2014, 02:48 PM
Cuando te referís a "está todo en internet" te referís en cuestión de material suelto o por el hecho de que los libros están en pdf "gratis"?

Digo porque me parece que los libros siempre son mejores que un tutorial por una cuestión de estructura o didáctica, más si son libros clásicos de referentes en la materia.

Yo pienso todo lo contrario. En otra epoca los libros eran lo mejor, ahora no. Podes seguir un curso on-line o un curso de una universidad si encontras. http://www.fing.edu.uy/inco/cursos/prog1/pm/field.php
Y si no te sale algo vas a google y "como hacer tal cosa en este lenguaje" y ya hay muchas personas que tuvieron la misma duda y es probable que la hayan contestado.

Master of the Wind
07-09-2014, 03:20 PM
Y ahi en vez de aprender a programar, aprendes a usar un lenguaje.


Internet te enseña eso, en un foro vos preguntas hacer X cosa en Y lenguaje, y lo encontras, de ahi a que sea la mejor y eficiente, es otra.

eel_colo
07-09-2014, 06:46 PM
entonces a pascal lo voy a ver en p1 y probablemente nunca mas dicen?
a gran escala el pseudocodigo es una representacion de un algoritmo sin importar su lenguaje no?
creo que voy a leerme algo de eso y despues arrancar con python ya que varios lo recomendaron y por lo que vi en otros lados es bastante usado
p.d: estoy de acuerdo en que no es indispensable tener libros fisicos ya que los podes encontrar en pdf como tambien estoy de acuerdo que lo de buscar como se hace tal cosa en tal lenguaje no va si quiero aprender a programar bien
Gracias a todos

Admiral Kutznesov
07-09-2014, 07:12 PM
de cero es una buena opcion este sitio, ha tenido buenas reviews, incluso bloomberg el alcade de nueva york dijo haber aprendido a programar gracias a ese sitio. Igual yo no entiendo nada y nose si sea tan bueno pero si parece bastante amigable para quien quiere aprender desde menos cero.

http://www.codecademy.com/es

Everybody
07-09-2014, 08:33 PM
de cero es una buena opcion este sitio, ha tenido buenas reviews, incluso bloomberg el alcade de nueva york dijo haber aprendido a programar gracias a ese sitio. Igual yo no entiendo nada y nose si sea tan bueno pero si parece bastante amigable para quien quiere aprender desde menos cero.

http://www.codecademy.com/es

No, eso no te enseña a programar, codeacademy te enseña los conceptos básicos y la sintaxis de un conjunto de lenguajes, pero nada que ver con "aprender a programar".

zuji
07-09-2014, 10:07 PM
Sí, yo pienso parecido a Master y Everybody, para mi internet es genial como fuente de referencia (ej. sitios como stackoverflow), pero para aprender desde cero es más delicado porque en general el material que hay suele ser muy práctico y poco conceptual.

Obviamente si elegís mal también vas a tener ese mismo problema con un libro, pero al menos tenés la ventaja de que podés revisar la bibliografía recomendada en las facultades y capaz bajarte algunos prácticos o lecturas y complementar.

maturrus
09-09-2014, 11:26 AM
Pascal es una forma de aprender a programar, lo que tiene de malo es que es todo muy manual, la detección de errores el linea por linea de código, mientras que en JAVA por ejemplo te las marca el mismo entorno gráfico -sea eclipse, netbeans...-

En la UTU en 1ero haces JAVA lineal y pseudocódigo, 2do continuas con JAVA pero orientado a objetos y eventos y en 3ero Visual Basic...

Master of the Wind
09-09-2014, 11:50 AM
Pascal es una forma de aprender a programar, lo que tiene de malo es que es todo muy manual, la detección de errores el linea por linea de código, mientras que en JAVA por ejemplo te las marca el mismo entorno gráfico -sea eclipse, netbeans...-

En la UTU en 1ero haces JAVA lineal y pseudocódigo, 2do continuas con JAVA pero orientado a objetos y eventos y en 3ero Visual Basic...
La deteccion de errores es parte del IDE, no del lenguaje.


Yo deje de usar IDEs para programar, me parecen molestos y sobrecargados muchas veces. Uso un editor de texto plano, que soporte la sintaxis del lenguaje, consola para compilar y listo.


Respecto a Java, yo fui de los profesores que nos opusimos a dar java, porque C era mucha mejor base para aprender a programar, pero bue... hay profesores ignorantes que dicen que "C es viejo".

maturrus
09-09-2014, 11:57 AM
La deteccion de errores es parte del IDE, no del lenguaje.


Yo deje de usar IDEs para programar, me parecen molestos y sobrecargados muchas veces. Uso un editor de texto plano, que soporte la sintaxis del lenguaje, consola para compilar y listo.


Respecto a Java, yo fui de los profesores que nos opusimos a dar java, porque C era mucha mejor base para aprender a programar, pero bue... hay profesores ignorantes que dicen que "C es viejo".

Capaz no fui claro, pero quise decir que en un lenguaje (ejemplo JAVA) el entorno grafico te marca los errores.

Vos decís que C no quedó obsoleto?

Master of the Wind
09-09-2014, 12:10 PM
Seguis equivocado, el IDE es el que te marca errores en cualquier lenguaje. En pascal hay IDEs modernos que lo hacen, solo que en la Fing no los usan.


C y C++ no son obsoletos, primero porque PHP, Java, Python, C#, D,los procedures de Genexus en gran medida, Ruby y un largo etc, son lenguajes basados en C y C++.

Los SO se programan en C++ y asembler, la programacion de sockets en su mayoria se hace con C, los drivers se hacen con C++, los juegos se hacen con C++, los entornos KDE, Gnome, LXDE de Linux estan hechos con C++, y muchos sistemas de telecomunicaciones se hacen con C++.

Dejo de ser un lenguaje de proposito general, y ahora es un lenguaje de bajo nivel y de alta velocidad y presicion, pero eso no lo hace obsoleto. Pasa que en la UTU hay profesores que solo saben lo que dice el librito y mas nada. Si el libro le dice que C es viejo, C es viejo para ellos.

maturrus
09-09-2014, 02:13 PM
Seguis equivocado, el IDE es el que te marca errores en cualquier lenguaje. En pascal hay IDEs modernos que lo hacen, solo que en la Fing no los usan.

Seguis sin entenderme.

Entorno Grafico/Desarrollo = IDE = Eclipse, NetBeans, JCreator, JBuilder, etc etc etc

Por casualidad vos das clases de taller de redes en la utu?

zuji
09-09-2014, 02:13 PM
Acá en el laburo hay muchos que usan Vim (con mil plugins) para codear, pero la verdad es que para proyectos grandes a mi me quedan más cómodos los features de un IDE (ej PyCharm).

klose
09-09-2014, 02:39 PM
en java pro ejemplo es mucho mas productivo usar netbeans, no tiene sentido usar un editor de texto

Master of the Wind
09-09-2014, 02:54 PM
Para mi es relativo, he hecho proyectos grandes en Django y PHP solo con Kwrite (uso linux con KDE), y ahora uso Sublime Text, porque puedo invocar bloques de codigo predefinidos con comodos atajos (por ejemplo, escribo .conexion y apreto tab, y me escribe un metodo definido por mi para conectar a una BD), solo por eso.

Mi jefe usa Vim pelado para programar.

Hay gente que prefiere tener todo en uno, yo prefiero separado, generalmente tengo el editor en una ventana, y la consola corriendo en otra, en casa conecto la notebook al monitor, y codifico en la notebook, y corro la consola en el monitor. La consola da un debugger y un traceback mucho mejor de lo que dan los IDE por defecto, que muestran cosas solo cuando explota algo practicamente.



maturrus: no, doy clase de Base de datos, Sistemas operativos, Programacion, Redes microsoft, Redes POSIX, y Conectividad. Pero taller no :P

jlarrayoz
10-09-2014, 10:50 PM
Disculpen mi ignorancia, pregunta para los que mencionaron que trabajan con editores de texto + plugins.

Si tienen que hacer un refactor de un método, buscar de donde se llama, etc., ¿eso esta resuelto de forma automática, o hay que salir a buscar a pedal?

Saludos.

zuji
11-09-2014, 12:18 AM
En particular para vim hay plugins para todo, pero son específicos para cada lenguaje así que dependiendo de en qué vayas a desarrollar puede haber más o menos cosas en la vuelta.

Pienso que superada la curva de aprendizaje es bastante más eficiente/productivo que otros editores, pero es difícil que alguien se acostumbre a eso a menos que ya tenga cierto gusto/costumbre de uso de sistemas por linea de comandos.

Master of the Wind
11-09-2014, 12:27 AM
Disculpen mi ignorancia, pregunta para los que mencionaron que trabajan con editores de texto + plugins.

Si tienen que hacer un refactor de un método, buscar de donde se llama, etc., ¿eso esta resuelto de forma automática, o hay que salir a buscar a pedal?

Saludos.

Lo tenes que buscar medio a mano, pero si sos prolijo con la codificacion, no me parece un problema mayor.

klose
11-09-2014, 12:59 AM
Lo tenes que buscar medio a mano, pero si sos prolijo con la codificacion, no me parece un problema mayor.

extrayendo metodos, renombrando variables , haciendo getters, setter, constructores a mano:
http://thumbs.dreamstime.com/x/mono-que-juega-con-una-computadora-port%C3%A1til-10349845.jpg

zuji
11-09-2014, 01:25 AM
Lo tenes que buscar medio a mano, pero si sos prolijo con la codificacion, no me parece un problema mayor.

Creo que eso de la prolijidad es nomás manejable en proyectos chicos, pero en una empresa que los proyectos se vuelven momias que tienen años de código, decenas de developers y cambios de requerimientos todo el tiempo tarde o temprano necesitas organizar las cosas como la gente y no sirve un grep.

Para Python hay al menos un plugin conocido para refactoring, para Java según stackoverflow lo mejor es en realidad un plugin de Eclipse que agrega los bindings de vim de manera de tener lo mejor de los dos mundos.

Everybody
11-09-2014, 09:56 AM
extrayendo metodos, renombrando variables , haciendo getters, setter, constructores a mano:
http://thumbs.dreamstime.com/x/mono-que-juega-con-una-computadora-port%C3%A1til-10349845.jpg
En sublimetext tenes plugins para refactoreo. El resto lo podes hacer desde el propio editor.