Ver la versión completa : [Programación] Aprender a programar, por dónde empiezo?
Molondro
23/06/2010, 12:03
Me gustaría aprender programación, en plan autodidacta. Hace años programé en Basic, VB y Div, pero me temo que de poco me servirá, porque lo tengo muy olvidado. El tema está en que quisiera empezar por lo básico, tanto a nivel teórico como práctico, pensaba en algo así como pascal o similares, lenguajes que me ayuden a sentar las bases para pasar en un futuro a algo más fuerte como C u otros lenguajes.
Por dónde me recomendáis empezar? qué libros, publicaciones o tutoriales me pueden servir para empezar desde cero? No me digáis que empieze en fenix o bennu porque quisiera aprender primero los pilares de la programación, y no necesariamente voy a querer programar juegos.
Un saludo.
aprende c (orientado a funciones) y luego pasate a c++(orientado a objetos) con todo lo que eso conlleva
si controlas eso controlas los conceptos que son la madre del cordero en cualquier lenguaje de programacion
Libros...
C/C++ de ceballos, y C++ de ceballos
PharaOnyx
23/06/2010, 12:13
Yo empezaría con un Pascal o un Módula-2/Módula-3, algo que esté orientado a la enseñanza aunque con poco (nulo) uso real hoy día. Y cambiaría los libros con unos buenos apuntes de alguna asignatura de primero de las ingenierías informáticas. No te lo van a enseñar todo como en los libros, pero para empezar es más ameno y directo
Saludos, Alex
Lo mismo que Jurk, empieza por C y luego da el paso a C++ (o el que quieras), una vez sepas la teoria de la programacion orientada a objetos, el lenguaje es indiferente y va a ser en casi todos lo mismo...
saucjedi
23/06/2010, 12:24
Programar es fácil, es como aprender a escribir. Lo que pasa es que luego querrás escribir algo con sentido y ahí entra ya todo un mundo relacionado con la computación: cómo se almacenan/gestionan gráficos, sonidos, ficheros, gestión de la memoria y por qué se gestiona así... (punteros, reservar bloques, etc.)
Dominar la sintaxis de cualquier lenguaje está al alcance de todos. ¿Quieres empezar desde cero? Bien, pero tienes que saber a donde quieres ir, qué quieres hacer. Porque según lo que quieras hacer tendrás que profundizar más en algunos aspectos y menos en otros.
Ceballos es buena referencia en español. Es muy buen comienzo, pero acabarás cansado de hacer cosas en modo texto y calcular números primos y querrás hacer ventanas en windows y esas cosas... eso para mí ya no es programar, es aprender a usar una librería o framework.
Nada de C, y menos si es autodidacta. Eso solo si quieres hacer algo en serio en el futuro lejano a costa de aburrirte como una ostra ahora. Si sabes DIV sigue con Bennu, y si quieres algo más general y útil prueba los lenguajes de script como Python.
Si en su día hiciste VB puedes intentar el VB.NET de ahora, aunque ten en cuenta que prácticamente solo te va a funcionar en Windows y además el lenguaje VB ha cambiado un mundo. Ahora es mucho más serio y si lo aprendes no te costará demasiado pasarte a C#, C ó Java :)
Sr.Polilla
23/06/2010, 12:32
Nada de C, y menos si es autodidacta. Eso solo si quieres hacer algo en serio en el futuro lejano a costa de aburrirte como una ostra ahora. Si sabes DIV sigue con Bennu, y si quieres algo más general y útil prueba los lenguajes de script como Python.
Yo en clase empecé con C# y luego con Java, y ahora estoy autodicata con Python para el proyecto, y te aconsejo Python, que con PyQT4 te haces unos formularios muy resultones y por lo que tengo visto, con Pygame te haces juegos de forma sencilla.
Lo malo de Python es que se te peguen los vicios feos (como indexar con numeros negativos >_<)
Ñuño Martínez
23/06/2010, 12:34
Yo empezaría con un Pascal o un Módula-2/Módula-3, algo que esté orientado a la enseñanza aunque con poco (nulo) uso real hoy día.
Que se use muy poco en España no significa que no se use, que con Delphi/Lazarus pasa lo mismo que con Mac.
Molondro: Si quieres aprender Pascal (recomendable, aunque luego no lo uses), instálate Lazarus (http://lazarus.freepascal.org) y luego te bajas el libro "La Cara Oculta de Delphi 4" (gratis y totalmente legal) desde esta página (http://www.marteens.com/CaraOculta.htm). Deberás tener en cuenta dos cosas: que está dirigido a negocios, así que hace mucha referencia a bases de datos, red, informes, etc.; y que Delphi y Lazarus son diferentes, pero los conceptos básicos son los mismos ya que el lenguaje (Object Pascal) es el mismo y la biblioteca de clases está prácticamente clonada, pero si tienes dudas te pasas por Club Delphi (http://www.clubdelphi.com/), HispaLazarus (http://www.marteens.com/CaraOculta.htm) o el propio foro de Lazarus (link anterior) y te ayudamos. :brindis:
Lo malo de Python es que se te peguen los vicios feos (como indexar con numeros negativos >_<)
Indexar con números negativos no es un vicio feo, a menos que consideres "fea" una cosa la már de útil que no existe en otros lenguajes :p
(para el que no lo sepa, indexar con negativos es indexar al revés: con a[-1] accedes el último elemento de la lista, con a[-2] al penúltimo...)
PharaOnyx
23/06/2010, 12:41
Que se use muy poco en España no significa que no se use, que con Delphi/Lazarus pasa lo mismo que con Mac.
Yo no he dicho que no se use, he dicho que se usa poco. A la lista esa que has posteado en otro hilo me remito
Saludos, Alex
Sr.Polilla
23/06/2010, 12:42
Indexar con números negativos no es un vicio feo, a menos que consideres "fea" una cosa la már de útil que no existe en otros lenguajes :p
(para el que no lo sepa, indexar con negativos es indexar al revés: con a[-1] accedes el último elemento de la lista, con a[-2] al penúltimo...)
¿¡Útil!? ¡¡Pero si es lo que me esta salvando la vida con el proyecto!! xDDDD
Lo que pasa es que acostrumbarse a ese tipo de cosas y luego pasarse a otro lenguaje te hace sentir algo incómodo (a mi me pasa), aunque realmente esto pasa con todos los lenguajes a los que te acostumbras a trabajar de forma habitual.
Volviendo al hilo, C# también me gustó mucho (y fue el primer lenguaje que toqué realmente), y si un ceporro como yo acabó aprendiendo algo no debe ser muy dificil entonces.
GameMaster
23/06/2010, 13:01
Si quieres aprender los pilares de la programación, pues empiezas por el principio, o sea, aprender el concepto de Algoritmo.
http://es.wikipedia.org/wiki/Algoritmo
Ñuño Martínez
23/06/2010, 13:44
¿¡Útil!? ¡¡Pero si es lo que me esta salvando la vida con el proyecto!! xDDDD
Lo que pasa es que acostrumbarse a ese tipo de cosas y luego pasarse a otro lenguaje te hace sentir algo incómodo (a mi me pasa), aunque realmente esto pasa con todos los lenguajes a los que te acostumbras a trabajar de forma habitual.
Volviendo al hilo, C# también me gustó mucho (y fue el primer lenguaje que toqué realmente), y si un ceporro como yo acabó aprendiendo algo no debe ser muy dificil entonces.
En Pascal también puedes indexar en negativo:
VAR
ListaConIndiceNegativo: ARRAY [-10 .. -1] OF INTEGER
:cool:
SplinterGU
23/06/2010, 13:58
Si quieres aprender los pilares de la programación, pues empiezas por el principio, o sea, aprender el concepto de Algoritmo.
http://es.wikipedia.org/wiki/Algoritmo
:)
muy buena respuesta...
lenguajes para iniciarse, te suguiero algun basic, aunque salvo los visual, estan un poco en desuso... a mi no me gusta por todo el tema de las clases que siempre me parecen un desproposito, pero algo que podes empezar para aprender a programar es java, tambien podrias pensar en php con javascript, pero esto ultimo ya esta mas orientado a web.
como scripting, sin ser necesariamente juegos, lua y bennu, perl tampoco es mala idea, pero python realmente no me agrada.
jduranmaster
23/06/2010, 14:04
si sabes DIV, puedes continuar con Bennu, y luego poco a poco seguir con C, y asi en adelante.
GameMaster
23/06/2010, 14:08
Basic para aprender a programar no lo recomiendo a nadie, ya que se aleja de la mayoria de los lenguajes más usados, eso de ir numerando líneas y goto's por medio para un principiante con lo que hay actualmente es una perdida de tiempo, aunque fuera lo recomendado en la era del Spectrum y donde muchos aprendieron con el.
Por una vez estoy medio de acuerdo con GameMaster: aprender un Basic solo te traerá problemas. La única excepción es VB.NET, aunque solo sea porque éste ya de Basic no tiene nada :)
De todas maneras, los Basic hace decenas de años que no tienen GOTOs o número de línea. Al menos desde QBasic/QuickBasic, y no recuerdo si en GwBasic los números de línea eran obligatorios. En GLBasic, que es más o menos moderno, desde luego que no usa números de línea y siempre se puede programar sin GOTOs
Yo sigo en la mía de recomendar Python. Es tan simple como PHP en su escritura (desde luego, nada parecido a la complejidad de Perl) y tiene literalmente miles de librerías que te solucionan la vida. Desde matemáticas avanzadas (matplotlib, pylab) a frameworks web (cherrypy+cheetah+sqlalchemy es mi preferido) pasando por cosas específicas como el módulo de servicios web, las interfaces gráficas en Qt, o la librería SDL a través de Pygame.
Ñuño Martínez
23/06/2010, 14:22
La única excepción es VB.NET, aunque solo sea porque éste ya de Basic no tiene nada :)
Discrepo: QuickBASIC 4.5 es de lo mejor para aprender, ya que es bastante estructurado (sin llegar al nivel de tocapelotismo de Pascal) con estructuras (TYPE), bloques, funciones y procedimientos, aunque admite muchas de las "malas ideas" del BASIC original (como el GOTO) pero son fácilmente evitables.
En cualquier caso, huye de VB como de la peste. Mejor: huye de cualquier BASIC posterior al QuickBASIC 4.5 ya que aprenderás malas maneras y costumbres que te costará quitarte de encima. QB 4.5 es best BASIC ever.
Yo aprendí con QBasic hace la tira de años así que le tengo un cariño especial. Pero creo que recomendar un lenguaje que solo tiene salida de consola ó VGA y las librerías están más que limitadas es un poco heavy, en estos años :D
De todas formas no es lo mismo el antiguo VisualBasic 4/5/6 que VB.NET y seguidores. VB.NET es prácticamente igual que C# pero con una sintaxis ligeramente diferente. Si no recomiendo VB.NET para empezar es precisamente porque es demasiado parecido a C#, Java o similares. Vamos, que ya es un lenguaje más serio y orientado a empresa.
GameMaster
23/06/2010, 14:57
A ver si pongo los programillas que hice con QBasic por aqui :)
Como ves, cada uno te recomienda lo que sabe... Y yo sigo con lo mío: c y luego c++ ... Porque a nivel de industria, el 90% de las maquinas, microprocesadores, etc SE PROGRAMAN EN C/c++. Ademas es fácil pasar de C++ a Java, C# o similares lenguajes de maquina virtual. Otra cosa es querer hacer aplicaciones estilo win, con botones etc... En este caso buscate un buen IDE, como visual studio, que facilita mogollón estas cosas. Por lo tanto... Cual es tu objetivo futuro?
SplinterGU
23/06/2010, 15:15
Basic para aprender a programar no lo recomiendo a nadie, ya que se aleja de la mayoria de los lenguajes más usados, eso de ir numerando líneas y goto's por medio para un principiante con lo que hay actualmente es una perdida de tiempo, aunque fuera lo recomendado en la era del Spectrum y donde muchos aprendieron con el.
man, actualizate, yo hace facil 20 años (si no mas) que no toco basic, y ya tenia programacion estructurada...
Logica de programacion y algoritmos los podes aprender facilmente con eso, ademas de que no te olvides que existen cosas como glbasic, que son modernas.
Como ves, cada uno te recomienda lo que sabe... Y yo sigo con lo mío: c y luego c++ ... Porque a nivel de industria, el 90% de las maquinas, microprocesadores, etc SE PROGRAMAN EN C/c++. Ademas es fácil pasar de C++ a Java, C# o similares lenguajes de maquina virtual. Otra cosa es querer hacer aplicaciones estilo win, con botones etc... En este caso buscate un buen IDE, como visual studio, que facilita mogollón estas cosas. Por lo tanto... Cual es tu objetivo futuro?
yo no le recomendaria que empiece con C y menos C++, y eso que ahora programo todo en C, o casi todo.
yo recomiendo java, porque para empezar es mejor porque no tiene todo el tema de punteros que es lo mas dificil que un programador que viene de otros lenguajes entienda y ni que hablar de los novatos.
pero tambien puede empezar con bennu, que muchos que no saben programar han hecho cosas con bennu.
pero me parece muy acertada tu pregunta... molondro, que es lo que queres hacer realmente?
GameMaster
23/06/2010, 15:17
Que me actualize por no recomendar un lenguaje ya poco usado y que poco tiene que ver con los actuales ? :D
saucjedi
23/06/2010, 15:21
Que me actualize por no recomendar un lenguaje ya poco usado y que poco tiene que ver con los actuales ? :D
Creo que se refiere a que te actualices acerca de la historia de Basic, que hace 20 años que ya tenía programación estructurada y no iba con números de línea.
Si es eso, tiene razón, en 1990 ya había muchas variantes de Basic así (Turbo Basic de Borland, el QuickBasic de Microsoft...).
SplinterGU
23/06/2010, 15:27
Creo que se refiere a que te actualices acerca de la historia de Basic, que hace 20 años que ya tenía programación estructurada y no iba con números de línea.
Si es eso, tiene razón, en 1990 ya había muchas variantes de Basic así (Turbo Basic de Borland, el QuickBasic de Microsoft...).
exactamente a eso me referia...
vamos free, que tampoco escribi una parabola...
GameMaster
23/06/2010, 15:29
Lo se, pero me refiero al basic más sencillo obviamente.
Nathrezim
23/06/2010, 15:30
Yo empezaría con un Pascal o un Módula-2/Módula-3, algo que esté orientado a la enseñanza aunque con poco (nulo) uso real hoy día. Y cambiaría los libros con unos buenos apuntes de alguna asignatura de primero de las ingenierías informáticas. No te lo van a enseñar todo como en los libros, pero para empezar es más ameno y directo
Saludos, Alex
+1 a lo de Pascal (o en su defecto Ada) y a lo de los apuntes de la asignatura de programación de primero de carrera, ya que no dan nada por aprendido y van metiendo complejidad poco a poco. Y una vez que controles programación estructurada te metes con programación orientada a objetos, en cuyo caso recomendaría Java y también material de alguna asignatura de la universidad donde se explique la POO.
FlipFlopX
23/06/2010, 16:31
A mi de toda la vida de dijeron -> 1º: Algoritmos y diseño modular,(Leer y leer hasta empaparse bien)2º C (la madre de todos los corderos, con muchos IDEs y liberías el tema "ventanas"no es muy complicado), 3º: Una vez manejado bien, bien C pasarse a C++, C#, Java o cualquier programación orientada a objetos.
Y si quieres tralla en plan heavy asm del 68K o de algún mips
Y si quieres tralla en plan heavy asm del 68K o de algún mips
Hombre, ya puestos con lenguajes ensamblador, que aprenda Ook! (http://www.dangermouse.net/esoteric/ook.html) que total son tres palabras y en cinco minutos ya se domina :rolleyes:
Aún así la idea de aprender los conceptos básicos con algún lenguaje sencillo tipo robótica tampoco es mala porque se aprende a estructurar muy bien el programa para que el robot no se equivoque. Lo malo es que es más difícil avanzar de ahí a lenguajes de ordenadores.
Ejemplos de estos lenguajes: Logo (el clásico de la tortuguita) ó LabView (el que usa Lego Mindstorms)
FlipFlopX
23/06/2010, 16:43
Hombre, ya puestos con lenguajes ensamblador, que aprenda Ook! (http://www.dangermouse.net/esoteric/ook.html) que total son tres palabras y en cinco minutos ya se domina :eyes:
JAJJJAJAJJJAJAJJJAJA:D:brindis:
jduranmaster
23/06/2010, 16:45
tmb puede empezar a programar en lenguaje B (el antecesor del C)
tmb puede empezar a programar en lenguaje B (el antecesor del C)
¡Sí! ¡Vamos a decir todos los lenguages que conozcamos aunque tengan 40 años, no los use nadie ni sepan qué es eso de métodos modernos de programación!
Yo voto porque aprenda Prolog. Qué, yo en su día también lo aprendí.
jduranmaster
23/06/2010, 16:54
¡Sí! ¡Vamos a decir todos los lenguages que conozcamos aunque tengan 40 años, no los use nadie ni sepan qué es eso de métodos modernos de programación!
Yo voto porque aprenda Prolog. Qué, yo en su día también lo aprendí.
como os veia tan animados, yo tmb queria ser popular.
FlipFlopX
23/06/2010, 16:58
Yo del asm lo decía en serio, por si le interesa toquetear algo con cachivaches de electrónica un poco, a mi me parece bastante divertido, pero C Ansi es la opción!!
PharaOnyx
23/06/2010, 17:03
¡Sí! ¡Vamos a decir todos los lenguages que conozcamos aunque tengan 40 años, no los use nadie ni sepan qué es eso de métodos modernos de programación!
Yo voto porque aprenda Prolog. Qué, yo en su día también lo aprendí.
¿Y Haskell?. ¿Aprendiste Haskell? :D
Saludos, Alex
Soltfern
23/06/2010, 17:05
¿Nadie aprendió en c++? A mi es lo que metieron el primer día estudiando Físicas
Y cuando estaba en aeronáutica me metieron Matlab de primeras
jduranmaster
23/06/2010, 17:07
¿Nadie aprendió en c++? A mi es lo que metieron el primer día estudiando Físicas
Y cuando estaba en aeronáutica me metieron Matlab de primeras
MATLAB no es tan duro. A mi en la técnica de Teleco me metieron de primeras C, y en el segundo semestre y pal resto de la carrera C++ y Java. Tmb se hacian cosillas en ensamblador para 8086...... .Luego en la superior te encasquetan ADA, C#, pa que haya variedad y pvtear al personal supongo.
Para que torturar al cochino con C/C++ y sus punteros cuando ya no los usa ni peter y todos pasan por librerías como STL para gestionar esas cosas. (Vale, si se usan pero DIOS no es algo que quieras encontrar de buenas a primeras)
Java, orientada a funciones o a objetos, me da igual. Java. Y luego ya te metes con Swing, APIs de lo que quieras y demás.
Nathrezim
23/06/2010, 17:22
¿Y Haskell?. ¿Aprendiste Haskell? :D
Saludos, Alex
Mitiquísimo el Haskell y Gretel, pero seguro que prefiere el paradigma estructurado y/o orientado a objetos.
Jonazan2
23/06/2010, 17:33
Como esto siga así alguien aconsejará empezar por aprender binario :lol:
Yo debo de ser rarisimo, pq en plan autodidacta me lanze a la piscina del C directamente y luego con conocimientos probe el delphi una temporada para volver al C, y no veo que fuera tan complicado el C, pero para gustos los colores
jduranmaster
23/06/2010, 17:39
y no veo que fuera tan complicado el C
y no lo es.:awesome:
PharaOnyx
23/06/2010, 17:41
Yo debo de ser rarisimo, pq en plan autodidacta me lanze a la piscina del C directamente y luego con conocimientos probe el delphi una temporada para volver al C, y no veo que fuera tan complicado el C, pero para gustos los colores
Más que por ser complicado diría que el problema que tiene y por lo que se desaconseja para un principiante es por los malos hábitos que permite
Saludos, Alex
^OMAP-Cranck^
23/06/2010, 17:45
Para malos habitos el JavaScript.
Jonazan2
23/06/2010, 17:47
Más que por ser complicado diría que el problema que tiene y por lo que se desaconseja para un principiante es por los malos hábitos que permite
Saludos, Alex
Pregunto por curiosidad dado que estoy "intentando" aprender un poco de C con el libro de Ceballos. ¿Que malos hábitos puede causar la programación estructurada en C? :brindis: Es para intentar minimizarlos en la medida de lo posible.
Más que por ser complicado diría que el problema que tiene y por lo que se desaconseja para un principiante es por los malos hábitos que permite
Saludos, Alex
¿Malos hábitos? Si hablaras de basic lo entendería, ¿pero de C?
Y los que decis que nadie usa C y sus punteros... como se nota que no programais sistemas a bajo nivel....
Juer molondro a estas alturas se ha debido pegar un tiro, no se si de coca o de pistola pero un tiro seguro XDDDDDDDD
Vaya frikazos! :lol:
Ahi va mi recomendacion, como ya veo que te han gastado la broma del ook! :p yo te recomiendo que para no ser uno mas y si poder destacar sobre el resto, aprendas a hacer cosas muy basicas en ensamblador(haz minifunciones, si es un peñazo, un suplicio y pesado, pero es sencillo), y sepas como llamar a esas minifunciones de ensamblador desde C o C++ a partir de ahi sabras una de las cosas mas buenas de la computacion, OPTIMIZAR!
Manda huevos que lo diga yo, un programador del framework de M$!!! :mad:
Supongo que los malos habitos dependeran de donde lo aprendas, si el autor es alguien con un buen libro no deberian haber muchos malos habitos, si aprendes con tutoriales de cualquier sitio es posible aprender el lado oscuro xD
Nathrezim
23/06/2010, 17:53
a partir de ahi sabras una de las cosas mas buenas e ingratas de la computacion, OPTIMIZAR!
Fixed!:lol:
Pues yo suelto otro mini-punto para C. Para programar lo mejor es entender cómo funciona la máquina, y a día de hoy, C me parece el lenguaje más próximo al funcionamiento del máquina y menos complicado.
Y después, cuando tengas cogido el truquillo a C te pasas a un lenguaje orientado a objetos. Eso sí, necesitarás fuerza de voluntad y tiempo (mucho), pues puede llegar a ser desesperante. Pero vamos, viendo el panorama, siempre puedes acudir aquí con dudas que seguro se solucionan.
Añado, a modo de consulta, tienes un libro que esta bastante bien (de C y C++) por 6€ que sacó la universidad de Cadiz. Yo lo encontré en la casa del libro. Es este: http://www.casadellibro.com/libro-aprendiendo-c-3-ed/1074363/2900001103967
Después de unos 20 años programando y tocando mas o menos todos los lenguajes de programación, casi que aconsejaría Java. Python y C tampoco me parecen mala idea.
Para Java hay un entorno de programación que se llama BlueJ que está diseñado para el aprendizaje. Igual podrías echarle un vistazo.
Otro consejo que te daría es que fueras a la biblioteca y miraras el número de libros que tienen para cada lenguaje y decidas tu en función de los libros que haya. Yo cuando empecé me compré un par de libros de introducción y al poco tiempo no servían ni para consultar. Así que si los encuentras en la biblioteca mejor que mejor.
Sigue y haz los ejemplos prácticos de los libros, que por chorras que puedan parecer también sirven para aprender.
Suerte y ánimos :brindis:
^OMAP-Cranck^
23/06/2010, 17:58
aprender C (programación estruturada) yo creo que es la mejor opción. A partir de ahi ya puedes tirar a cualquier lenguaje orientado a objetos como C++ o Java (entre otros.)
Aunque para empezar NADA como aprender a programar el video! si ya se que los videos no se llevan, son antiguos y han sido sustituidos por el DVD... pero lo mismo pasa con pascal y ahí le tienes!![wei]
jduranmaster
23/06/2010, 18:13
como añoro mi VHS.:awesome:
como añoro mi VHS.:awesome:
Que moderno! yo tenia el Beta, pero como era sistema propietario de $ony y $ony me daba asco, me pase a programar mi Video 2000:lol:
PharaOnyx
23/06/2010, 18:31
Pregunto por curiosidad dado que estoy "intentando" aprender un poco de C con el libro de Ceballos. ¿Que malos hábitos puede causar la programación estructurada en C? :brindis: Es para intentar minimizarlos en la medida de lo posible.
¿Malos hábitos? Si hablaras de basic lo entendería, ¿pero de C?
Y los que decis que nadie usa C y sus punteros... como se nota que no programais sistemas a bajo nivel....
Guarrerías varias con el uso de la memoria en general y la aritmética de punteros en particular. Yo para programar a bajo nivel uso un lenguaje a bajo nivel y no C haciendo cosas extrañas y/o metiendo ensamblador embebido. En C con los punteros puedes hacer lo que te de la gana, que sí, es muy potente, pero para aprender no es un buen hábito
Aunque sí, supongo que para lo que uno es un 'mal hábito' para otro es una 'optimización del copón'
Saludos, Alex
Pero usar mal la memoria no es "un mal hábito" es mala programación. Lo mismo con los punteros. Yo entiendo malos hábitos como no declarar tipos de variables hasta que se usan, usar variables sin inicializar, usar gotos en programacion estructurada, muchos breaks... etc.
Y no se que son esas "cosas extrañas" de programar en C a bajo nivel. Como no entiendas por cosas extrañas usar punteros para acceder a registros mapeados en memoria (algo totalmente normal), o cosas asi...
Y el ensamblador inline es también algo bien normal si es para funciones puntuales en donde requieres manejar con precisión los ciclos o el tamaño de una rutina.
De todas maneras la discursión no versa sobre esto, sino sobre aprender a programar, y C, hablando de programación estructurada, para mi es bien limpio y bien definido, con una sintaxis potente y que deja libertad para avanzar a hacer cosas más complejas o dar el salto a objetos con C++ (o Java que comparte la mayoria de la sintaxis) con lo que englobarias los lenguajes más usados para casi todo hoy en dia, desde sistemas operativos a aplicaciones de escritorio.
FlipFlopX
23/06/2010, 20:30
¿Malos hábitos? Si hablaras de basic lo entendería, ¿pero de C?
Y los que decis que nadie usa C y sus punteros... como se nota que no programais sistemas a bajo nivel....
Aquí uno que despuer de pasar por los asm de 68k, x86,varios mips, c3x... Tiene cateado hasta septiembre programación en C por no usar los free para liberar memoria xDDD.
Mi argumentación fue:
-Pero si el sistema tiene memoria de sobra,(trabajando por ssh con el servidor de la uni)Nunca me había fallado.
-Profesor: Te demuestro que no?(Era una lista enlazada)
-El capullo se hizo un script y a los 3 min petó, memory out of..no se qué, sólo le faltó un MUAHHAHAHA...
jduranmaster
23/06/2010, 20:41
Aquí uno que despuer de pasar por los asm de 68k, x86,varios mips, c3x... Tiene cateado hasta septiembre programación en C por no usar los free para liberar memoria xDDD.
Mi argumentación fue:
-Pero si el sistema tiene memoria de sobra,(trabajando por ssh con el servidor de la uni)Nunca me había fallado.
-Profesor: Te demuestro que no?(Era una lista enlazada)
-El capullo se hizo un script y a los 3 min petó, memory out of..no se qué, sólo le faltó un MUAHHAHAHA...
joer tio pero es que lo de los free es mítico, yo ya los pongo de forma automatica.
nintiendo1
23/06/2010, 21:06
Pues yo empecé este verano con Fenix y lo deje a los 3 días porque era muy complicado xD (Sí, soy un matao)
Eso sí, conseguí hacer un Hello World xD
Saludos.
FlipFlopX
23/06/2010, 21:10
Sí, es la diferencia entre hacer algo que funciona bien, y hacer algo bien que funciona, pero eso me pasa por ir de listo y saltarme los warning del compilador por el forro, toma warning!! 4.25 y vuelve chaval
jduranmaster
23/06/2010, 21:11
Pues yo empecé este verano con Fenix y lo deje a los 3 días porque era muy complicado xD (Sí, soy un matao)
Eso sí, conseguí hacer un Hello World xD
Saludos.
por algo se empieza.:D
Yo, para no ser menos, voy a hacer mi recomendación, por orden de "como deberías comenzar": Python, Java y/o C++
Warning: The Infumable Tocho begin!
Centrandos en Python:
Me parece un lenguaje excelente para comenzar, es casi como programar en pseudocódigo, reduce complejidades y es pragmático, es decir, vale para lo que vale y va a lo que va, a lo que se le une que al ser interpretado facilita el ver los resultados de lo que estás programando en el acto, eso hace que de gusto programar (porque, en resumidas cuentas, "a programar se aprende programando") y esto para la depuración, arreglo de errores y comprobación, hace que todo se haga muy rápido y sencillo.
Hay varios libros interesantes para iniciarse, gratuitos y algunos libres incluso, ejemplo los de Green Tea Press (http://www.greenteapress.com/), que además tiene otros de C++ y Java bajo licencia GNU FDL, en concreto:
"How to Think Like a Computer Scientist in Python (http://www.greenteapress.com/thinkpython/thinkpython.html)" cuya traducción al español se titula "Aprenda a Pensar Como un Programador con Python (http://www.openbookproject.net/thinkcs/python/spanish2e/)", esta también la tienes en versión PDF (http://manuales.gfc.edu.co/python/thinkCSpy.es.pdf).
Luego tienes otro libro en PDF de la asignatura de Metodología de la Programación de la Universitat Jaume I (http://marmota.act.uji.es/MTP/teoria.shtml) que es de los que primero recomiendo a quien quiere iniciarse en Python y en la programación en general, porque este libro está diseñado para tal fin, puedes encontrarlo en PDF, con prácticas de scripts en Python incluidas.
Por supuesto, no puedo dejar de recomendar "Python para todos (http://mundogeek.net/tutorial-python/)", de Raúl González Duque, disponible de forma gratuita y bajo una licencia CC, tanto en versión HTML online como PDF, merece cierta mención especial porque complementa muy bien temas de Python que no se tocan tanto en los otros dos por ser más bien orientados a la metodología de la programación y la algoritmia, cosa deseable por otra parte para entender los conceptos generales de la programación, tanto en paradigmas de programación estructural, modular, orientada a objetos o genérica y poder adaptarse sin muchos traumas a otros lenguajes de programación
De Java y C++:
Hay muchos tutoriales y libros por ahí, para empezar los que nombro de Green Tea Press y por supuesto el clásico "Thinking in Java (http://www.mindview.net/Books/TIJ/)" de Bruce Eckel. Java es un lenguaje que tiene muchas salidas profesionales, uno de los ejemplos es programar para Android con su SDK (aunque se puede programar en código nativo con su NDK en C y C++), si te interesa este tema.
De C++ me encanta un libro en papel "C++ Estandar (http://users.dsic.upv.es/~jorallo/libro_c++/)" que los autores, Enrique Hernández Orallo, José Hernández Orallo y Mª Carmen Juan Lizandra, profesores de la Universidad Politécnica de Valencia, a parte de redactar un libro muy bien explicado con prácticamente los conceptos más importantes, incluidos los paradigmas básicos que se pueden usar con C++ (estructurada, modular, OO, TAD/TDA y genérica), usando UML para el modelado y abarcando a la STL, además de introducirnos en el proceso de desarrollo profesional con C++, y todo ello con buenos ejemplos (descargables (http://www.paraninfo.es/MaterialComplementarioPorCategoria.aspx?idLibro=71&idCategoria=14&public=1) desde la web de la editorial además de la web indicada), han conseguido además, y de forma magistral, la casi imposible tarea de explicar C++ sin necesidad de saber nada de programación previamente, vamos, que es de esos libros de programación que da gusto leer, cosa que tratándose de una temática técnica y por ello algo árida además de compleja, es un logro digno de elogio, para muestra se puede ver el indice del libro en la web que indico y un capitulo de muestra. Lo dicho, es una maravilla.
Y los que decis que nadie usa C y sus punteros... como se nota que no programais sistemas a bajo nivel....+1
SplinterGU
23/06/2010, 23:40
¿Malos hábitos? Si hablaras de basic lo entendería, ¿pero de C?
Y los que decis que nadie usa C y sus punteros... como se nota que no programais sistemas a bajo nivel....
(no es respuesta solo a vos, sino en general)
Bueno, debo decir que los malos habitos no los dan los lenguajes sino los programadores, en C tenes goto y tenes otras cosas que para muchos es un mal habito, pero es un mal habito en manos de un mal programador, un buen programador sabe usar las cosas donde corresponden. Con esto voy a que las libertades de un lenguaje no le restan sino que le suman, lo que si es cierto, es que no es para cualquiera, por eso es que para un iniciado no es bueno sugerirle ciertas cosas por mas que sean los lenguajes mas cool o que todo el mundo usa para hacer todos los programas profesionales, primero hay que empezar gateando, luego caminando y finalmente corriendo. Un paso a la vez.
Con respecto a los punteros, es un grave error pensar que los punteros se usan solo en programacion de bajo nivel... grave error... los punteros en C son de uso basico, quien piensa lo contrario es alguien que vio C alguna vez pero que realmente no lo programa.
< - >
Supongo que los malos habitos dependeran de donde lo aprendas, si el autor es alguien con un buen libro no deberian haber muchos malos habitos, si aprendes con tutoriales de cualquier sitio es posible aprender el lado oscuro xD
como dije, no hay malos habitos sino malos programadores.
< - >
Pero usar mal la memoria no es "un mal hábito" es mala programación.
exacto!
Lo mismo con los punteros. Yo entiendo malos hábitos como no declarar tipos de variables hasta que se usan, usar variables sin inicializar, usar gotos en programacion estructurada, muchos breaks... etc.
Y no se que son esas "cosas extrañas" de programar en C a bajo nivel. Como no entiendas por cosas extrañas usar punteros para acceder a registros mapeados en memoria (algo totalmente normal), o cosas asi...
Y el ensamblador inline es también algo bien normal si es para funciones puntuales en donde requieres manejar con precisión los ciclos o el tamaño de una rutina.
De todas maneras la discursión no versa sobre esto, sino sobre aprender a programar, y C, hablando de programación estructurada, para mi es bien limpio y bien definido, con una sintaxis potente y que deja libertad para avanzar a hacer cosas más complejas o dar el salto a objetos con C++ (o Java que comparte la mayoria de la sintaxis) con lo que englobarias los lenguajes más usados para casi todo hoy en dia, desde sistemas operativos a aplicaciones de escritorio.
con respecto a lo de declarar variables cuando se usan, tienen su porque, el usar variables sin inicializar es mala programacion (esto no significa que haya que inicializarlas cuado las declaras), el uso del goto, no es un mal habito ni mala programacion, por algo existe, es malo usarlo inadecuadamente, eso de muchos breaks, depende del caso, no entiendo a que te referis.
En todos los puntos mencionados, muchas se usan para ganar rendimiento, no siempre es mal habito o mala programacion. Pero coincido que mal usados o usados donde no se necesita performance y si claridad en el codigo, es algo malo.
para mi, mal habito es no identar, no prefijar funciones y variables, no usar nombres descriptivos en variables y funciones, en resumen, no seguir un metodo prolijo y consistente durante todo el codigo.
despues, si, tenes malos programadores que no hay forma que hagan algo potable.
Hay un chiste que dice, que en el diploma de los Ingenieros informaticos pone lo siguiente;
"ahora ya puedes usar gotos"
Y por cierto.... me encantan los punteros! Los amo! Los veo super comodos y no entiendo como lenguajes como java, no los tienen... si son la bomba! Aunque tambien tengan peligros... pero eso da igual!
Por cierto: lo de arriba NO ERA COÑA, me gustan los punteros
Tiene cateado hasta septiembre programación en C por no usar los free para liberar memoria xDDD.
No sería el mismo código que pusiste por aquí y te dije te faltan los free(), ¿verdad que no? Porque entonces sería para matarte :D
Con respecto a los punteros, es un grave error pensar que los punteros se usan solo en programacion de bajo nivel... grave error... los punteros en C son de uso basico, quien piensa lo contrario es alguien que vio C alguna vez pero que realmente no lo programa.
Claro que no se usan sólo a bajo nivel, de hecho usarlos para cualquier cosa compleja de alto nivel como listas enlazadas, hash, etc, es básico y eficiente. Solo hay que ver el sistema de objetos que han creado en C puro para GLib/Gtk :-)
con respecto a lo de declarar variables cuando se usan, tienen su porque, el usar variables sin inicializar es mala programacion (esto no significa que haya que inicializarlas cuado las declaras), el uso del goto, no es un mal habito ni mala programacion, por algo existe, es malo usarlo inadecuadamente, eso de muchos breaks, depende del caso, no entiendo a que te referis.
Lo de las variables, me refiero a que siempre es una buena costumbre declarar las variables al inicio de cada bloque/función, etc, más que nada por documentar intrínsicamente el programa y dejarlo más claro. Lo de los breaks... pues eso, usar muchos breaks innecesarios para salir de bucles, etc, cuando puedes hacerlo definiendo una condición de ruptura en la propia definición del bucle.
Vuelve a ser un tema de claridad, pero creo que es importante.
En todos los puntos mencionados, muchas se usan para ganar rendimiento, no siempre es mal habito o mala programacion. Pero coincido que mal usados o usados donde no se necesita performance y si claridad en el codigo, es algo malo.
para mi, mal habito es no identar, no prefijar funciones y variables, no usar nombres descriptivos en variables y funciones, en resumen, no seguir un metodo prolijo y consistente durante todo el codigo.
despues, si, tenes malos programadores que no hay forma que hagan algo potable.
Exacto, en rutinas que requieran una optimización profunda, pues es normal incluir ensamblador en linea, llamar a funciones usando punteros, y cosas poco claras, pero esto no es lo normal cuando programas la mayoria de aplicaciones.
No entiendo la tirria a C. Si, C permite hacer cosas muy "oscuras" y complejas a bajo nivel, pero también permite hacer las cosas bien claras y simples, y esa flexibilidad para mi, es un punto muy fuerte para recomendarlo para aprender. Pero como digo siempre, está bien aprender con un par de lenguajes, asi te acostumbrarás a abstraerte más y pensar primero en el programa y luego en el lenguaje. Algo como un lenguaje de script como ruby o python, y C por otro lado, e ir haciendo los mismos ejemplos en los dos lenguajes, creo que es lo mejor.
PharaOnyx
24/06/2010, 13:33
No entiendo la tirria a C. Si, C permite hacer cosas muy "oscuras" y complejas a bajo nivel, pero también permite hacer las cosas bien claras y simples, y esa flexibilidad para mi, es un punto muy fuerte para recomendarlo para aprender. Pero como digo siempre, está bien aprender con un par de lenguajes, asi te acostumbrarás a abstraerte más y pensar primero en el programa y luego en el lenguaje. Algo como un lenguaje de script como ruby o python, y C por otro lado, e ir haciendo los mismos ejemplos en los dos lenguajes, creo que es lo mejor.
Yo no le tengo tirria a C, pero a mi modo de ver un lenguaje que te permite hacer lo que te de la gana con la memoria (para bien o para mal) fomenta los malos hábitos más que otro lenguaje que directamente, por ejemplo, tenga recolección automática de basura, puesto que no te da lugar a equivocarte y/o ser más despreocupado en ese aspecto
Que sí, que todo lenguaje por muchas guarrerías que te deje hacer si lo usas bien es una maravilla y te da más potencia. Pero como ninguno de los que programamos somos perfectos y a todo el mundo se le escapa un free() alguna vez en su vida, entiendo que para alguien que empieza es mejor no tener cierta potencia de inicio, sino aprovecharla cuando tenga más sentadas las bases de cómo se programa. Ni más ni menos
Saludos, Alex
Yo no le tengo tirria a C, pero a mi modo de ver un lenguaje que te permite hacer lo que te de la gana con la memoria (para bien o para mal) fomenta los malos hábitos más que otro lenguaje que directamente, por ejemplo, tenga recolección automática de basura, puesto que no te da lugar a equivocarte y/o ser más despreocupado en ese aspectoCierto, pero no hay que olvidar que se trata sobre todo más de un problema de componente humano que del lenguaje de programación, vamos, que la tendencia a la chapucería y a los parchacos, bien porque la persona en cuestión tiene una personalidad desorganizada, descuidada y perezosa o simplemente por la presión de los jefes tocapelotas con su típico "lo quiero para ayer" y si a todo eso se le une la "ley del mínimo esfuerzo" (que no significa necesariamente escribir menos código...) o el clásico "mientras parezca que funcione así se queda", sin molestarse en documentar o poner ni un triste comentario, que eso de "indentar" suene a algo que tiene que ver más con la odontología que con la programación y lo de poner nombres descriptivos a las variables se considere "trabajar de más", pues es normal que el lenguaje C tenga una inmerecida mala fama xDD
Que sí, que todo lenguaje por muchas guarrerías que te deje hacer si lo usas bien es una maravilla y te da más potencia. Pero como ninguno de los que programamos somos perfectos y a todo el mundo se le escapa un free() alguna vez en su vida, entiendo que para alguien que empieza es mejor no tener cierta potencia de inicio, sino aprovecharla cuando tenga más sentadas las bases de cómo se programa. Ni más ni menos
Saludos, AlexEn eso si estoy bastante de acuerdo contigo PharaOnyx, por eso recomiendo Python para comenzar e incluso C++ antes que C, esto es así porque C++ es muy versatil, puesto que se puede programar en OO o en genérico, y también de forma estructurada o modular (es un lenguaje multiparadigma), "a lo C", pero tiene detalles mejores como obligarte a declarar las funciones, al contrario de la permisividad del C con este aspecto entre otros). Para programar con C, en especial, más que coger buenos hábitos y formas de escribir el código, se necesita cierta autodisciplina, y eso, como antes he indicado, depende más de la personalidad del programador, que en realidad basta con ser algo racional, consciente y organizado, el código tiende a ser igual, más aun cuando se documenta y se evitan hacer, en la medida de lo posible, las típicas warreridas para que algo funcione rápidamente y salir del paso (y si se hacen, dejar una nota en un comentario por si en un futuro se puede encontrar una solución más optima, elegante y limpia), tan simple (y a veces tan dificil xD) como "no dejarse llevar por el lado oscuro del esfuerzo", o lo que es lo mismo, por esa fea manía en lugar de optar por una solución más eficiente pero requiere algo más de tiempo tirar por otra quizás igualmente eficaz pero digno del chapucero mayor del pueblo [wei]
Y si eso no sirve por si solo, hay que buscar motivación en otra parte para intentar programar lo mejor que se pueda, tal y como expresó un tal Martin Golding (http://bytes.com/topic/c/answers/545743-invalid-lvalue-assignment-when-trying-advance-void-pointer-struct-iovec#post2129679) en su firma personal: "Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live." :D
Y a todo esto y cinco páginas después... ¿qué ha pasado con Molondro?
Yo no le tengo tirria a C, pero a mi modo de ver un lenguaje que te permite hacer lo que te de la gana con la memoria (para bien o para mal) fomenta los malos hábitos más que otro lenguaje que directamente, por ejemplo, tenga recolección automática de basura, puesto que no te da lugar a equivocarte y/o ser más despreocupado en ese aspecto
Joer, pues yo precisamente lo veo al revés, es una buena costumbre el preocuparse de la memoria uno mismo, reservándola cuando se necesite y liberándola cuando no, y no dejar al recolector que haga todo el trabajo, que luego te vas a una plataforma sin él y entonces es cuando la cagas por falta de costumbre.
Asi uno aprende de verdad como funcionan las cosas y no deja que cosas "ocultas" se encarguen de todo.
SplinterGU
24/06/2010, 21:54
Hay un chiste que dice, que en el diploma de los Ingenieros informaticos pone lo siguiente;
"ahora ya puedes usar gotos"
Y por cierto.... me encantan los punteros! Los amo! Los veo super comodos y no entiendo como lenguajes como java, no los tienen... si son la bomba! Aunque tambien tengan peligros... pero eso da igual!
Por cierto: lo de arriba NO ERA COÑA, me gustan los punteros
no conocia ese chiste, jejeje, esta muy bueno...
java no tiene punteros, porque intenta evitar que el programador se mande cagadas, entonces limita al usuario (programador) ciertas cosas.
en java los parametros se pasan por copia/valor, nunca por referencia, esto tiene su consecuencia a nivel rendimiento (en basic, que lo han criticado, por ejemplo, podes tener los 2 modos)
No sería el mismo código que pusiste por aquí y te dije te faltan los free(), ¿verdad que no? Porque entonces sería para matarte :D
jeje...
Claro que no se usan sólo a bajo nivel, de hecho usarlos para cualquier cosa compleja de alto nivel como listas enlazadas, hash, etc, es básico y eficiente. Solo hay que ver el sistema de objetos que han creado en C puro para GLib/Gtk :-)
:)
Lo de las variables, me refiero a que siempre es una buena costumbre declarar las variables al inicio de cada bloque/función, etc, más que nada por documentar intrínsicamente el programa y dejarlo más claro. Lo de los breaks... pues eso, usar muchos breaks innecesarios para salir de bucles, etc, cuando puedes hacerlo definiendo una condición de ruptura en la propia definición del bucle.
Vuelve a ser un tema de claridad, pero creo que es importante.
los cortes de control consume mas cpu que un break, obviamente hablamos de una diferencia insignificante, pero consume.
lo mismo aplica a tener muchos loops anidados donde un break no seria la mejor solucion y lo ideal seria cortes de control en cada uno de los loops, pero en ese caso, un goto es la solucion mas optima, y aca nadie puede decir que un goto es una mala costumbre o mala programacion. (no discutimos aca si se pueden o no evitar los loops anidados, suponemos que en este caso no se pueden evitar o que es la solucion mas optima)
Exacto, en rutinas que requieran una optimización profunda, pues es normal incluir ensamblador en linea, llamar a funciones usando punteros, y cosas poco claras, pero esto no es lo normal cuando programas la mayoria de aplicaciones.
No me gusta incluir asm inline porque se pierde portabilidad, cuando programo trato de programar cosas portables, y es la tendencia actual de todo programador profesional.
Actualmente ASM solo uso para "patchear" algun programa o firmware o cuando tengo que hacer algun firmware especial, sino trato de evitarlo, no es que me desagrade, al contrario me encanta, pero no es algo reutilizable (salvo en el ambito del mismo procesador, y por lo general, operativo), los punteros son algo basico en C, tan basicos como que a un scanf o a un fopen o fread le pasas un puntero.
No entiendo la tirria a C. Si, C permite hacer cosas muy "oscuras" y complejas a bajo nivel, pero también permite hacer las cosas bien claras y simples, y esa flexibilidad para mi, es un punto muy fuerte para recomendarlo para aprender. Pero como digo siempre, está bien aprender con un par de lenguajes, asi te acostumbrarás a abstraerte más y pensar primero en el programa y luego en el lenguaje. Algo como un lenguaje de script como ruby o python, y C por otro lado, e ir haciendo los mismos ejemplos en los dos lenguajes, creo que es lo mejor.
Siendo una persona que se incio hace 25 o 26 años en ASM, yo no veo cosas oscuras en C, pero reconozco que C no es para cualquiera.
Es bueno conocer varios lenguajes, pero lo que realmente sirve es tener una buena base de logica y algoritmos, y programacion asi sea basic o shell script avanzado, luego los diferentes lenguajes son agarrar un manual y 1 o 2 semanas.
Yo no le tengo tirria a C, pero a mi modo de ver un lenguaje que te permite hacer lo que te de la gana con la memoria (para bien o para mal) fomenta los malos hábitos más que otro lenguaje que directamente, por ejemplo, tenga recolección automática de basura, puesto que no te da lugar a equivocarte y/o ser más despreocupado en ese aspecto
Que sí, que todo lenguaje por muchas guarrerías que te deje hacer si lo usas bien es una maravilla y te da más potencia. Pero como ninguno de los que programamos somos perfectos y a todo el mundo se le escapa un free() alguna vez en su vida, entiendo que para alguien que empieza es mejor no tener cierta potencia de inicio, sino aprovecharla cuando tenga más sentadas las bases de cómo se programa. Ni más ni menos
Saludos, Alex
Todo lo contrario, eso es el mal habito! que un lenguaje te permita crear objetos nuevos y no eliminarlos porque tiene su garbage collector que se encarga de eso, eso es horrible y un mal habito, eso crea malos programadores, programadores descuidados y que piensan que algo esta bien porque funciona cuando solo funciona porque el lenguaje se encarga de limpiar las chanchadas.
No muchacho, en ese sentido C no fomenta malos habitos, al contrario, fomenta ser cuidadosos. De ahi a que ese programador sea capaz de encontrar los bugs que genera por su mal desempeño programando es otra cosa.
< - >
como sea, yo no recomiendo C para alguien que empieza.
FlipFlopX
24/06/2010, 22:26
No sería el mismo código que pusiste por aquí y te dije te faltan los free(), ¿verdad que no? Porque entonces sería para matarte :D
Si te hice caso, y en esa función los puse , luego en las demás...:D .Y con alguna variable global de más pues lo dicho..Para septiembre
Los malos habitos los tienen los programadores no los lenguajes. Asi que te recomiendo que intentes ser ordenado y limpio a la hora de programar, nada de variables globales, ni breaks en mitad de un blucle for (cambialo por un while), ni gotos, las funciones que devuelven un valor solo deberian tener un return...
Opino como SplinterGU, el C no es para aprender a programar.
Yo empece por Basic del Spectrum, despues me pase al STOS Basic del Atari ST. Comparado con el GFA Basic era una mierda porque tenias que escribir con numeros de linea y alguna cosa mas, pero tenia funciones para manejar sprites, musica...
Como iba lento me pase al ensamblador del 68000, una pasada lo facil que es.
Después con el PC empece con el Turbo Pascal, esta bien para tontear pero como todas las liberias comerciales estaban en C... pues a programar en C, pero lo cambie rápido por el C++ ya que te permite tener las cosas mas estructuradas.
Molondro
29/06/2010, 21:56
Y a todo esto y cinco páginas después... ¿qué ha pasado con Molondro?
Molondro ha estado una semanita de vacaciones en el pueblo cargando las pilas :D
Ya me he leido todo el post, gracias a todos, aunque veo disparidad en cómo empezar. Creo que me decidiré de momento por una buena base teórica sobre lógica y algoritmos, y empezaré a trastear un poco en C, con ejemplos y ésas cosas tan chulas :D
Qué entornos de programación para C recomendáis? Ahora mismo para XML uso notepad++, porque me gusta bastante cómo funciona, pero imagino que no me sirve de mucho para ésto, ya que necesitaría compilar con otro programa.
Los hombres programan con editor de texto y terminal :D. A mi Geany me gusta mucho para empezar: es liviano, tiene resaltado de sintaxis, es sencillito... a mi me encanta. Y para cosas más "grandes", Code::Blocks.:brindis:
a mi me mola el DevCpp: no es muy grande y para mi esta genial
Ñuño Martínez
30/06/2010, 00:52
a mi me mola el DevCpp: no es muy grande y para mi esta genial
Y además está escrito en Pascal... Oh, wait! :lol:
No, en serio, lo he usado poco, pero funciona bastante bien y lo recomiendan bastante. Yo soy raro y utilizo Vi Improved (TCC. Vim) (http://www.vim.org/), que es como usar un hacha de sílex para tallar las alas de un F-117 (la primera versión del Vi es de los años 60, y poco ha cambiado desde entonces). Si eres novato no te lo recomiendo en absoluto.
Soltfern
30/06/2010, 01:03
Con DevCpp empecé yo, ahora cuando necesito hacer algo notepad++ y terminal xD
Existe un IDE llamado CodeLite IDE (http://www.codelite.org/) que es ligero, libre (GPLv2), gratuito y multiplataforma (Windows, Linux y MacOS), no está escrito en Java sino programado en C++ con el toolkit wxWidgets, por lo que va como la seda y no es un devorador de recursos.
Tengo la impresión de que no es de los más conocidos como otros que ya se ha nombrado en este hilo y sin embargo es bastante completo en características (http://codelite.org/Main/ReadMore), entre otras, si al final vas a tirar por C (no luego digas que no te lo advirtieron xD) y usas Windows (y si no, pues tampoco es problema) te puede venir bien porque ya viene con MinGW de serie (GCC para Windows) y GDB (el depurador GNU de C/C++ entre otros lenguajes) y preparado para compilar y ejecutar tus programas desde el mismo IDE. Además, aunque viene de serie preparado para programar con C/C++, también tiene soporte para otros lenguajes, Python, Java y PHP entre otros, por lo que si te acostumbras a usarlo te puede ser util para desarrollos en otros lenguajes.
Deberías probarlo, quizás te guste :)
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.