Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/06/2013, 20:41
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Orientación (Conocimientos)

Si, estas parando muy pero muy al principio.

1. Lo primero que hace uno es conocer el lenguaje (o varios lenguajes). Estructuras de datos, estructuras de control de flujo, ciclos, macros, structs, unions, enums, punteros, macros, clases, templates, etc... nada del otro mundo. (Aquí estas tu).

2. Después de conocer el lenguaje exploras un poco sobre POO (Programación Orientada a Objetos) esto es una vez que ya tienes entendidos los conceptos de Clase, Objeto o Instancia, Herencia, Polimorfismo, Herencia, Delegación, Encapsulamiento etc... Los pones en practica y ves como puedes simplificar tus programas haciendo uso de estas.

3. Te das cuenta que muchos de las cosas que quieres implementar ya están hechas en otras librerías así que empiezas a aprender a usarlas. Después de todo no hay que reinventar la rueda. Frameworks completos para trabajar con: Interfaces gráficas, fechas, expresiones regulares, sockets, threads, base de datos, game engines, generación de reportes y otro montón de librerías que resuelven problemas que ni siquiera te habías planteado.

4. Una ves que hayas explorado POO y que hayas aprendido usar un par de librerías te vas a dar cuenta que existen patrones de diseños para la mayoría de los problemas que enfrentas y ademas que muchas de las librerías hacen uso de estos patrones de diseño. Haces uso de estos patrones para implementar tus propias librerías o proyectos enteros.

Muy simplificado, pero en cada paso te puedes tardar años en perfeccionarlo, el orden no esta garantizado y te aseguro que vas a tener que regresar a algún punto anterior. Y probablemente haya mas puntos que se me hayan olvidado o incluso que aun no he visto.

Otra cosa hay libros enteros dedicados solamente patrones de diseño y hay libros completos solamente para aprender a utilizar un framework sin mencionar los otros libros que ya usaste para aprender el lenguaje. Y a todo eso no le estoy sumando herramientas de uso común (git, mercurial, diff, editores de texto, IDEs, test automatizados, etc...) de los desarrolladores ni la parte de diseño gráfico que a veces nos toca hacer y ni hablar de parte de mantenimiento.

Basado en mi experiencia.

Última edición por razpeitia; 03/06/2013 a las 20:49