edición general
372 meneos
6495 clics
Videocurso de Programación en C impartido por Richard Couture (en castellano)

Videocurso de Programación en C impartido por Richard Couture (en castellano)  

Primera sesión del Curso de Programación en Lenguaje C. Impartido por Richard Couture en las instalaciones de LinuxCabal A.C., el día 22 de Octubre del 2011. En el canal de Youtube se encuentra el resto de lecciones (18 más por ahora) con una duración media de 1 hora cada una. Curso completo para descargar en formato webm: ftp://ftp.linuxcabal.org/pub/Videos/CursoDelLenguaje_C_enLinuxCabal_AC/

| etiquetas: video , curso , c , programación , youtube , richard , couture
177 195 0 K 618 mnm
177 195 0 K 618 mnm
  1. Muy bueno el Richard este: Guarda tus datos,porque no sólo es posible,sino que es probable que,durante el curso de programación en C ,cambies el sistema de archivos de tu disco duro por un "Hola Mundo" xD
  2. #0 Una pequeña sugerencia...
    Es posible que añadas al título que el curso es "en castellano"??

    Me ha sorprendido gratamente¡! No es habitual.

    Cierto que ahora ya queda en este comentario :-) pero creo que mucha más gente se interesaría y entraría a ver los vídeos si el título dijese que es en español.
  3. #2 Añadido, gracias.
  4. #2 Desde luego que no es habitual,y por lo que llevo visto hasta ahora parece muy ameno ;)
  5. curioso personaje!!

    y las charlas por ahora interesantes!!
  6. printf("Me gusta\n");
  7. Increíble, llevo años programando y por gracia (o desgracia) de los modernos lenguajes de alto nivel había olvidado por completo lo potente que es C, ahora tan de moda.

    Por otro lado el hombre este es una máquina.

    C es solo para machos!!! jejejeje. Suerte amigos.
  8. Lo que hubiese deseado tener un profesor así de guay an mis años mozos.
  9. Directo a la hemeroteca. Documento histórico con aire oldschool mas curioso que útil.
  10. Pero qué... ¿Soy el único al que le parece algo "extraño" ese tipo? Desde luego C es un gran lenguaje de programación, si a alguien que le pueda interesar le sirve de ayuda un formato como este adelante, aunque sigue pareciéndome más práctico un manual de calidad, los hay para todos los niveles :-) .
  11. #7 ¿Que habías olvidado C? ¿Cómo se puede olvidar C? ¿Qué lenguaje moderno hay que no esté basado en cierta medida en C? Blasfemo... xD Yo lo añoro cada día ahora que por obligación manejo casi siempre otros lenguajes.
  12. Bien... ya he escrito mi primer programa en C xD

    Este tipo me cae de PM

    Voy a ver si encuentro los otros vídeos, a ordenarlos y a hacer un backup en otro lugar de la nube.

    Supongo que estos contenidos "están bajo GPL"... lo comprobaré.

    #0 Gracias a ti por menear esto :-)
  13. #12 Parece que en cualquier momento pueda dejar el portátil coger una guitarra de tres cuerdas y empezar a cantar los grandes éxitos de Sex Pistols. ¿Verdad? xD

    No es que a C tengas que dárselo todo hecho, sino que la evolución de los lenguajes diría que es al contrario, que es a los lenguajes más modernos a quienes no se lo tienes que dar. Los últimos te lo "camuflan", el problema es que como dices en tu última frase esa no es siempre una buena cualidad cuando por lo que sea necesitas hacer algo donde necesitas saber con más precisión qué o cómo va a hacerse por debajo realmente.
  14. Es como juntar a Eric S. Raymond con Sid Vicious Joe Strummer, pero mola :-)
  15. Qué tío más raro. Además, dice cosas incorrectas, como que "todo en C es una función"... wtf? No sé, no me convence.
  16. Que grande el Richard este!

    Un tanto offtopic, pero sus fotos no tienen desperdicio xD www.imat.com/richard/index.es.html
  17. Esto no es un curso de programación en C. Esto es un curso de lenguaje de programación C.
    Si quieres aprender a programar, no es buena idea hacerlo desde el punto de vista de uso de un lenguaje en concreto. Para nada.

    #17
    Y no sólo eso, es posible que no estés aprovechando la localidad espacial y estés machacando continuamente las líneas de caché del procesador. Para suerte de muchos el padding y blocking lo hacen los compiladores sin despeinarse.
  18. Valoro su esfuerzo, pero su español es insufrible.

    Mejor que mi alemán en todo caso.
  19. Lo mejor es el tio que esta en el curso bebiendose una cerveza!

    #18 en C no todo son funciones? dime un ejemplo, porque lo que yo se de C todo son funciones, quiza sea que estamos hablando de lenguajes distintos.
  20. #22 int a = 0; ¿eso es una función? No.

    #include <stdio.h> ¿eso es una función? Tampoco.

    Etc.
  21. #23 Bueno, vale, me has pillado, pero no hay que ser tan quisquilloso.
  22. #include <stdio.h> Eso creo que no es C, lo procesa el preprocesador antes de compilar.
  23. Realmente C solamente son 3 o 4 palabras reservadas y de lo mismo de operadores.
    Sin STDIO.H haríamos poco o simplemente tardaríamos mucho tiempo en hacerlo.
    El potencial reside en las bibliotecas de cabera.
  24. ¿ Este tio no dejo el C, se hizo cocinero, gano una estrella michelin y se dedica a hacer un programa de tv donde machaca sin piedad a la gente que trabaja en restaurantes ?

    ;)
  25. #14 en la mayoría de lenguajes de alto nivel cuando necesitas controlar al milímetro lo que se va a hacer puedes llamar a código C.
    De todas formas está bastante claro que cada lenguaje es más apropiado para una tarea
  26. #10 Raro no, muy "rrarro"! Desde luego las fotografías de su página web no tienen desperdicio xD
    #21 Totalmente deacuerdo, parece que esté gritando constantemente, me pone de los nervios.

    Aparte de esto, es interesante que por fin haya un buen videotutorial en español :-)
  27. #7 ¿Qué tiene de potente el C?
  28. #11 Puffff... para empezar, todos los lenguajes orientados a objetos, funcionales y lógicos en cuanto a semántica y muchos otros lenguajes en cuanto a sintaxis.
  29. #26 Siendo puntillosos, stdio.h trata solo de entrada/salida. A lo que te refieres es a la libreria de C en general. A parte, C no tiene muchas palabras reservadas, pero son más que 3 o 4.
  30. #18 El código activo, son todo funciones: Él está en lo cierto. El inicio de programa es la FUNCIÓN main. El resto es preparación de datos. Lo dice un dinosaurio del C
  31. entonces, si ya he visto el video ¿ya se C? ¿ya puedo hacer mi propio sistema operativo?....
  32. #15 Dios, casi lo has clavado. Solo te faltado poner al tipo este de la teletienda. www.youtube.com/watch?v=b86SOHZ0nIA
  33. Como javero tengo el problema de que me cuesta, tras 5 años dedicado a la POO, pensar sin objetos, pero llevo unas semanas intentando desoxidarme, con C y con Go (el nuevo lenguaje de Google). Tendré que apuntarme este curso...

    #23 Siempre puedes interpretar la asignación como una función:
    int a=0 --> =(int a, 0)

    incluso puedes hacer cosas rebuscadas como:
    int zero() { return 0;)
    int* a=zero;
    Con lo que la variable a realmente es una función que devuelve siempre cero :-P
  34. #23 "int a = 0; ¿eso es una función? No." . No, eso es la inicializacion de la variable int a a cero, comun en muchos lenguajes.
    "#include <stdio.h> ¿eso es una función? Tampoco." Es una cabecera (header) .h con multiples funciones.
    Dando por hecho que necesitamos el uso de las variables, el resto de C se puede considerar funciones. Asi se considera que la herramienta fundamental de C, son las funciones. Al menos para que un programa de C funcione debe tener una funcion.
    Saludos
  35. #16 :'(

    #17 Sí claro, es uno de los casos que tenía en mente cuando he dicho "cuando por lo que sea necesitas hacer algo donde necesitas saber con más precisión qué o cómo va a hacerse por debajo realmente", optimizar también es una necesidad.

    #21 #30 Sí, pero en cualquier caso es divertido oírle pronunciar palabras como grrratis (0:00:36).

    #31 No sé explicar las emociones como me siento con tu pregunta xD ¿Bromeas verdad?
  36. #29 Cierto, lo que corrobora mi teoría de que es óptimo para controlar lo que haces, pero... ¿No es eso programar en C? Tienes que saber manejarte en C para hacerlo en cualquier caso.

    Además, los hombres de verdad programan en C para controlarlo todo, y es cuando quieren controlar más aún cuando llaman a otro lenguaje: ensamblador xD
  37. Controlar lo que haces no creo que dependa del lenguaje sino de si usas código enteramente escrito por tí o estas usando librerias escritas por otros.
  38. #39 No, en absoluto.
  39. #42 No por usar código enteramente tuyo controlas todos los detalles del comportamiento de tu código necesariamente más, ni por usar bibliotecas (¿quién os enseña a decir librería?) controlas menos todos esos detalles: Si usas sólo código tuyo pero de muy alto nivel, entonces en muchas ocasiones por cada comando que escribas por debajo se harán veinte cosas sin que seas consciente necesariamente (a no ser que lo hayas estudiado con mucha profundidad ese lenguaje) y por otro lado si sólo usas bibliotecas muy bien especificadas (aunque no te digan cómo lo hacen, que si te digan qué es exactamente todo lo que hacen) eso no hace que pierdas el control de absolutamente ningún detalle.

    #41 Jajaja captado el mensaje, supongo que se sobreentiende que todas esas afirmaciones son en broma :-)
  40. #44 a lo que me refería es....si queremos calcular la inversa de una matriz 1 millón x 1 millón de la forma más eficiente posible, donde tengo más control, en ensamblador llamando a una rutina de una bibilioteca escrita por otro o en c++ en un método escrito por mí utilizando el algoritmo que yo quiero.
  41. #45 ¿Eso es una pregunta?
  42. Interesante personaje... ha sido carpintero, detective privado, barman, y consultor de seguridad informática.. Ha trabajado incluso en la Casa Blanca..

    Para el que le interese mas una entrevista..

    www.nautilus.iteso.mx/?p=4146

    Ahora vive en Mexico, en Guadalajara.. donde fue tomado el video.

    Me ha llamado la atención como ve a la sociedad mexicana...

    "El tiempo Mexicano fue un gran problema. La gente me decía, nos vemos a las diez y pueden pasar horas sin que llamen, tal vez lleguen, tal vez no. Y la falta de formalidad y la inpuntualidad no es la excepción, es la normalidad, es increíble."

    "A mi, en el centro de Guadalajara, me han robado tres veces…¡Los policías! Es increíble. Por eso aprendí a salir a la calle con poco efectivo y plástico. Ellos no te roban el plástico"
  43. #45 No veo la relacion entre el conocimiento de un lenguaje y la potencia del lenguaje en si mismo. Si sabes PHP y no sabes C, no quiere decir que PHP sea mas eficiente, solo quiere decir que sabes PHP y no sabes C. Si sabes C y PHP entonces esto quiere decir que conoces dos lenguajes, pero C siempre sera mas eficiente que PHP. Lo mismo para C y Ensamblador. Tu conocimiento del lenguaje no hace mas eficiente al lenguaje, te hace mas eficiente a ti. Es el creador o creadores del lenguaje,plataforma, su objetivo y estructura lo que hace que el lenguaje sea eficiente. Espero haber podido mostrar algo mejor el matiz.
    #43 Te dejo un link que te puede ser util:
    www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&
    Saludos
  44. #48 Gracias por el enlace, aunque ya lo conocía.

    Saludos.
  45. #48 De paso, aquí te dejo un artículo con una visión diferente de qué significa potencia en un lenguaje: www.google.com/url?sa=t&rct=j&q=why functional programming mat (sobre todo el capítulo 4, pero a lo mejor necesitas leer los anteriores para entenderlo).
  46. #48 De nada.
    Debo confesar que me gusta C. Me gusta mucho. Pero no todo es blanco o negro. Cada lenguaje tiene su objetivo y por mucho que me guste C, uso otros lenguajes ,sobre todo interpretados, para realizar scripts de parseo de datos y scripts de sistema (UNIX como norma general). A veces se debe tener en cuenta el tiempo de desarrollo, el objetivo del software, la plataforma, el hardware etc ... para hacer un buen uso. Con esto quiero decir que no todo es correcto dependiendo del ambito en el que nos encontramos. Lo mas inteligente es saber elegir bien. Esa es la clave para que al final nuestro codigo y nuestro tiempo merezcan la pena.
    Saludos
  47. #50 Gracias. Le echare un vistazo, pues no conocia este paper.
  48. El lenguaje C NO ES UN LENGUAJE DE BAJO NIVEL. Evidentemente es menos abstraido que por ejemplo c# pero repito NO ES DE BAJO NIVEL.
  49. Hala, bajados con Clive en webm. En Linux: clive -f best "www.youtube.com/watch?=blablabla"; "www.youtube.com/watch?=blebleble"; y así con todos.

    Aunque se caiga Youtube ya tengo suficiente.


    Edit: mierda, están en la entradilla. Entonces:

    wget --mirror ftp://ftp.linuxcabal.org/pub/Videos/CursoDelLenguaje_C_enLinuxCabal_AC/ o también podéis hacerlos vuestro propio programa con libcurl :-P
  50. C es para nenazas. Yo estoy aprendiendo ensamblador del Z80. :-D
  51. #37 Perdona, pero el intento de puntero a función que has intentado hacer es sintácticamente incorrecto.

    #38 Discrepo, hay MUCHAS cosas en C aparte de declaración de variables y funciones: macros, declaración de tipos, estructuras de control (que no son funciones), etcétera etcétera.

    Que no, que lo de que en C todos son funciones está mal y punto. Hay lenguajes como Python y Ruby en lo que todo es un objeto y se puede considerar como tal, pero C no es así.
  52. #53 El alto o bajo nivel no es tanto una cualidad que, o se tiene o no se tiene. Más bien se puede hablar de grados, de que un lenguaje es de más alto nivel en comparación con otros. Desde ese punto de vista, se puede establecer una jerarquía de niveles en los lenguajes donde el nivel más bajo correspondería al ensamblador. A continuación estaría el C, luego otros lenguajes de 3ª generación tipo Pascal, Basic, Cobol..., y por encima de ellos lenguajes con más abstracción, orientados a objetos, etc.
  53. #56 Lo entiendo de forma diferente que tu. El alma, y la limpieza del codigo en C, depende mucho de funciones. Normalmente programar en C requiere muchas mas lineas que otros lenguajes a cambio de otras bondades, con lo que la necesidad del concepto de funcion toma mucho peso cuando programamos en C. Entiendo que es a lo que se refiere, y algo que desde ese punto de vista comparto. Hay cosas que se pueden hacer en perl (por ejemplo) sin el uso de metodos que en C seria una locura sin funciones.
    Asi lo entiendo yo cuando este hombre dice eso. En cualquier caso cada uno es muy libre.
  54. quack...quack...quack me encanta.
    youtu.be/kVoU0yFVbPY#t=1423s
  55. Hay GOTO en los comentarios! Con tantas citas ya no se si voy pro el 50 o por el 15 xD
  56. Estrictamente se habla de "lenguaje de bajo nivel" cuando necesitas conocer en profundidad las características del hardware a usar dado que no hay "capas transarentes" entre tu y el hardware. Es una definición un tanto personal pero lenguajes de bajo nivel solo son código máquina y ensamblador. Apartir de ahi no se considera "lenguaje de bajo nivel" ni aqui ni en pekin.
  57. Sigo viendo sesiones posteriores del curso. Hay momentos grandiosos. youtu.be/1qCXPQwFnKA#t=1338s
  58. #61 Alto nivel o bajo nivel se refiere al nivel semantico del lenguaje, el lenguaje maquina es el mas bajo porque es inmediato en al semantica, es decir una instruccion atomica tiene un significado inmediato para la maquina, que la unidad de control actua conforme al codigo de operacion. El ensamblador tiene el mismo nivel semantico, pues no es mas que un codigo mnemotecnico para llamara a 0 y 1 de una manera mas facil de recordar. Los lenguajes han ido subiendo de nivel semantico y su evolucion ha ido para la aplicacion sistematica de los conceptos de abstraccion, modularidad y encapsulacion, por eso c es un lenguaje de sistemas, hoy en dia el diseño y desarrollo de software se hace orientado a objetos, y por eso hoy en dia se utiliza la poo o lenguajes funcionales (por que los lenguajes son como talleres que te dan herramientas para hacer cosas) para hacer software, porque sirven para tener un mejor software
  59. A los que quieran seguir el curso algo situados, aconsejo tener algunas nociones previas en sistemas informáticos para darle sentido al esfuerzo de aprender C si sois profanos en informática. Para el que quiera seguir, intentaré agrupar algunos conceptos que creo son necesarios y básicos para sacarle jugo a C. Al final de todo tenéis algunos links muy útiles ;)

    (Animo al que quiera ayudar a que me corrija o añada lo que considere que se debe saber. Intentaré poner conceptos en negrita que figuren en wikipedia o fáciles de buscar. La wikipedia y sus enlaces internos son vuestros amigos!!)

    A groso modo:

    Nociones básicas de máquinas de estado, buscad máquinas de Turing*.
    Nociones de estructuras de datos muy elementales, que son los bits, sus "hermanos mayores" y el primo baudio así como que significan en relación al elemento que nos refiramos. Eso nos lleva a lo siguiente.
    Nociones de estructura de computadores: Que es o que se entiende por computador/ordenador. Que es la entrada/salida y el concepto de BIOS y como interacciona con el sistema operativo. Que son y como funcionan las memorias en general, memoria principal y memoria secundaria, la CPU y sus registros -para mas adelante entender sistemas operativos y sus singularidades, como paso previo a ello- que tipos hay y como funcionan, lo que es un BUS en general y si queréis y recomiendo, su genealogía. También como entienden los distintos elementos el significado de bit y sus resultados y la relación con los registros de la CPU.
    Es decir la lógica de bit.
    Nociones sobre sistemas operativos, a lo básico, como ve un sistema operativo la maquina que gestiona, en ese sentido, buscad kernel o nucleo, sus tipos, que es espacio de usuario, espacio de kernel. Que es una shell, prompt o consola, pasos que sigue un ordenador desde el encendido hasta que se puede interactuar con el mediante E/S. Que es la multitarea y el multiusuario, que son y de que manera se comunican los procesos (síncronos o asíncronos) así como gestión de procesos y capas de abstracción, gestión de memoria principal, accesos a memoria, modos protegidos, violaciones de segmento o segmentation fault -la RAM en general- así como métodos de paginación y gestión de memoria secundaria sobre todo nociones sobre organizaciones internas o mas a…   » ver todo el comentario
  60. #64 Tienes una paja mental bastante gorda, me extraña muchisimo que de verdad hayas hecho la ingenieria como das a enteder, ya que parece que has puesto aqui una retahila de cosas de las que has ido absorviendo en internet, retahila de que cualquier profesor te daria un capon por decir tantas sandeces sin tener ni idea, dicho desde el respeto hacia tu persona. Un saludo
  61. #65 ayúdame a contarlo mejor si quieres ;). He intentado hacerlo lo mejor posible. Gracias por el comentario, pero te agradecería fueses mas específico.
comentarios cerrados

menéame