Buenas, vengo aquí a escribir mi post anual sobre el mismo tema
Escribo aquí pues es donde mayor concentración de programadores de calidad hay, aunque corro el riesgo a que ferdy me vuelva a dar de palos. (/me hides)
Bueno al grano, llevo 4 años en el mundo de la programación y realmente podría decir que no se hace ni la O con un canuto. Siento que este post sea un tocho, pero quiero resumiros un poco mi experiencia

Me recomendaron C# (con Vs.NET) ya que me dijeron que era la polla y tal. Como con el manual que tenia no me enteraba de nada, cogí un un libro de C, aprendí lo que son funciones, bucles, etc. Luego ya vi que entendía el libro de C# (aunque me deje muchas cosas en el tintero porque no las entendía, tipo atributos o delegates) y me puse a leerlo. Yo era un ignorante del mundo de la programación, asi que abría el Vs.NET, y escribía tonteriillas usando winforms, nada serio ni nada grande, la tipica interfaz de un solo form que te ayudaba con cualquier cosilla. No tenia realmente miedo a nada, tiraba codigo ahi por tirar.
Luego me pasé a linux (hace 3 años), pues por inercia pasé a Mono, aunque en ese momento mono no estaba muy allá y la documentación era casi nula, y yo como buen novato, pues estaba un poco estancadete sin documentación. Así que aunque hice cosillas, no duré mucho.
Aquí fue ya cuando conocí python (que en un principio me chocó esto de los lenguajes dinámicos) y lo toqué poco, toqué un poco más de C para hacer algoritmos básiquillos. Aqui fue cuando ya empece a no saber qué quería, tocaba un poco de algun lenguaje pero no me quedaba contento.
Elegí python finalmente, pero empecé a leer y a leer y a leer y a leer, y a leer tanto que ahora me encuentro que se de patrones de diseño y muchas más cosas, pero no practico nada. Entonces pues se muchas cosas pero no se como aplicarlas.
La verdad es que programo bastante poquito, creo medio conocer la causa, pero quiero creer lo contrario. Vereis, creo que prefiero un lenguaje algo más estricto que python, tipado estatico... vamos algo como C#, que a mi forma de ver, es un lenguaje bastante bonito. C++ tambien está bien, pero queda descartado ya que a mi me dificultaría más el aprendizaje. No es que me disguste python, pero como lenguaje prefiero otros.
En este momento pensareis, por qué sigues usandolo? Tiene una comunidad enoooorme, casi todo lo que sale para linux (sobre todo gnome) está hecho en python, y eso es algo que me encanta, también tiene librerías para todo. En resumen, es un lenguaje idóneo para lo que quiero programar.
C# (con mono) sin embargo, no tiene tanta comunidad (o no he visto nada realmente), apenas tiene librerías y no veo tampoco mucho software que use mono, y eso ya me gusta menos, ya que pienso que la ayuda siempre viene bien para ir aprendiendo.
Por qué no simplemente programo más y ya? Mi verdadero problema ahora mismo es que no veo la forma de "atacar" algo más grande de lo que acostumbro, yo me lio a tirar código por aquí y por allá, luego me doy cuenta que no vendría mal una variable por aquí, un metodo por acá y me encuentro con codigo que no lo entiende ni dios y es absolutamente malo. O sea, no sabría estructurar algo más grande que un Hello World. Con algoritmos no tengo problema, pero si no se "conectar" varios algoritmos entre si y varias clases entre si, pues no hago nada.
Bueno, eso es todo, no sé como continuar o si deberia hacer algunos cambios.
Gracias por leerme, y ferdy, guaarda el palo, que te veo con las intenciones asesinas

EDITO: Se me olvidaba algo importante, estoy haciendo el modulo DAI (Desarrollo de aplicaciones informáticas), aqui damos Java, pero la verdad es que preferiria mucho antes C# o Python, y por otro lado por ahora no he aprendido nada, es escribir programas estúpidos que no hacen nada, y de eso ya se.
EDITO2: Bah, escribo un tochaco y no lo que queria preguntar en un principio, y es que creo que quiero ir demasiado rapido y aprender de forma muy rapida, y eso tambien me está frenando, que pensais?