Iniciando en C++: Introducción

Iniciando en C++

Repito: Iniciando en C++

Ya paso el shock? Muy bien, permiteme decirte que estamos a punto de tomar un giro inesperado con mi blog y es que he decidido crear una serie de posts tutoriales en los que hablare sobre como programar en este lenguaje que tanta mala fama genera en los estudiantes de informática y el cual muchos consideran como algo del pasado, ya que el 90% de las personas que alguna vez han visto C++ en un salón de clase no han visto ni el 10% de sus capacidades. Con esto lo que quiero ilustrar es que normalmente cuando escuchamos hablar de C++, lo que se dice es que no deberíamos perder mucho tiempo con este lenguaje de bajo nivel y que en su lugar deberíamos esforzarnos por dar el salto a lenguajes de mas alto nivel donde encontraremos mas oportunidades de desarrollo profesional; y quizás esto no este del todo errado, es posible que hasta sea lo “correcto” en algunos casos para personas con  intereses específicos, pero hay un punto que siempre me gusta hacer a favor de C++, y es que un programador que logra maestría de cierto nivel sobre este lenguaje puede abordar la mayoría de los lenguajes modernos y dominarles con mas facilidad que alguien que haya decidido ignorar C++.

Si alguien te pregunta que tienen en común el Kernel de Linux y Call Of Duty: Advanced Warfare? la respuesta clara es que ambos fueron desarrollados utilizando C++, y es que aunque en todos los videojuegos se involucran mas elementos que solo el lenguaje base, , y es que al ser un lenguaje tan puro y prácticamente carente de un paradigma propio (no es 100% así pero lo veremos a futuro), es posible explorar  conceptos de mayor o menor envergadura en un mismo lenguaje sin alterar mucho nuestra percepción de como funciona el mismo. Es decir, podemos crear programas bajo el paradigma procedural o ir de lleno hacia una desarrollo orientado a objetos o explorar el desarrollo de software funcional, todo esto utilizando la misma sintaxis de lenguaje y las mismas herramientas de desarrollo.  Ahora bien, si tu, querido lector, solo estas empezando en el mundo de la programación, esta capacidad no te dirá nada, ya que los diferentes paradigmas de desarrollo son un tópico un poco mas profundo, pero lo que quiero darte a entender es que C++ es extremadamente flexible y considerablemente mas veloz que la mayoría de los otros lenguajes de desarrollo, y este es un punto muy importante, aquí te pido que me tengas un poco de fe y confíes en que en un futuro no muy lejano entenderás porque esto es tan importante.

Igualmente es importante decir que el nivel de soporte y la comunidad que existe alrededor del desarrollo en C++ no es para tomarse a la ligera; si tomamos en cuenta que en cada versión de Microsoft Visual Studio existe una implementación importante de C++ o que dentro de las comunidades OpenSource existe un interés palpable sobre el desarrollo de los estándares del lenguaje y las herramientas no comerciales de desarrollo con el mismo. Podemos entonces decir que el viaje de aprendizaje en C++ no es algo que harás solo, y que C++ es un lenguaje con un alto nivel de soporte por diferentes entidades, por lo cual la idea de que es obsoleto es solo un mito que principalmente he visto impulsado por estudiantes frustrados.

Ahora bien, explico porque decidí entrar en el mundo de los tutoriales; hace poco comencé a tratar de transmitir un poco de mi conocimiento de programación a un familiar que esta empezando sus estudios en informática y luego de comenzar a instruirlo un poco en el mundo de algoritmos básicos y estructuras de control, pensé que era un buen momento para introducirlo en el mundo de la programación básica utilizando C++,  entonces me di cuenta de algo, el material que conseguí en mi idioma no era nada que pudiese presentarle a alguien sin nada de conocimiento del lenguaje o programación en general y esperar que se entusiasmara por la idea de utilizarlo; fue allí que recordé un muy buen libro que tuve la oportunidad de leer en el 2014 llamado Beginning C++ Through Game Programming de Michael Dawson, recuerdo haber pensado que era un gran libro para principiantes, desde la manera en la que se estructura el contenido del libro, hasta los ejemplos técnicos que allí se presentan.

Luego de pensar y buscar algo similar me di cuenta de que no había mucho que le pudiera ofrecer a mi pupilo que se equivaliera al contenido de este libro, fue entonces cuando decidí empezar un proyecto de “traducción no oficial” del libro, en el cual aunque voy a prestar mucho del contenido del libro, también complementare con ideas propias y mi manera de explicar ideas y ejemplos (aunque aun no estoy 100% claro de algunas cosas). Igualmente, pienso hablar un poco sobre mis propias practicas de Clean Code (Código Limpio), algo que pienso  es muy importante que todo programador aprenda desde el momento cero, mas aun en este lenguaje donde vemos como algo tan normal la ruptura de la legibilidad del código (de esto hablaremos con mas detalle mas adelante).

Creo que es el momento ideal para mostrar un poco del esquema (que no es un conteo exacto de posts) que tengo planeado para estos tutoriales:

  1. Bases Técnicas del Desarrollo en C++
  2. Entornos de Desarrollo Integrados
  3. Manejo de Tipos y Variables con Entrada y Salida Estandar
  4. Estructuras de Decisión
  5. Estructuras de Iteración
  6. Manejo de Strings y Arrays
  7. STL: Standard Template Library
  8. Manejo de Funciones y Archivos de Cabeceras
  9. Referencias
  10. Punteros
  11. Programación Orientada a Objetos
  12. Clases Avanzadas y Memoria Dinámica
  13. Herencia y Poliformismo

Espero disfrutes el contenido del curso y cualquier comentario (positivo o negativo) es bienvenido.

Anuncios
Esta entrada fue publicada en C++ y etiquetada , , , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s