Aprender... ¿Programación?, ¿Ciencia de la computación?

Iniciado por Cergath, 4 Julio 2015, 08:35 AM

0 Miembros y 1 Visitante están viendo este tema.

Cergath

Hola,

Tengo este conflicto, ando en el limbo...

Conozco varios lenguajes de programación, me desenvuelvo bien con Linux, uso la terminal constantemente, sé algo de scripting y puedo ir haciendo a medida que lo necesito... Sé montar servidores web, servidores de correo, :-[ no sé, muchas cosas... Constantemente tengo contacto con PHP por lo que me desenvuelvo bien con el, conozco bien la sintaxis y entiendo lo que leo y los pasos a seguir entre las iteraciones de los códigos, lo suficiente como para tener confianza al momento de modificar cualquier código, o añadir líneas de código; no lo sé todo, sino no tendría estas dudas tan de novato, pero la verdad es que se me da muy bien y podría resolver problemas con scripts ya hechos...

Soy autodidacta, y he aprendido esto gracias a cursos en línea como los de W3, y Codeacademy, ambos muy recomendados. Sin embargo, me siento atascado...

¿Cómo creo un programa?, la cuestión es más trascendental de lo que parece... Programar no es conocer un lenguaje de programación, la verdad creo que eso es lo de menos... Eso se aprende en un día, fuera de broma... Pero programar, entender la lógica, la estructura de una idea, y de cada pequeño detalle, luego llevarlo al código... Eso lo desconozco por completo.

Hace unos días tuve mi primer acercamiento a Laravel, y gracias a él, entiendo mucho mejor el modelo MVC; sí, ni eso sé bien de qué va  :-(... Siguiendo tutoriales en internet ya puedo desenvolverme con más confianza, y hasta hice mi primer pequeño blog ;-). Y me parece espectacular lo de las migraciones ya que ahorra tiempo y es más eficiente en la gestión de la base de datos... ¡Eso es genial!... Puede sonar tan común para algunos pero para mi esa fue la revelación de la semana, jajaja, mindblowing... No más sql queries...

En fin... ¿Dónde puedo aprender esta "lógica" que trasciende la sintaxis de cualquier lenguaje de programación?... ¿Cómo puedo aprenderlo en línea?... No sé donde empezar... ¿MVC estaría bien?...

Cualquier ayuda sería muy útil.
Edit:
P.D. Cabe decir que busqué en el foro... Pero: 1. No sé cómo buscar lo que necesito, ciertamente ni sé qué estoy buscando... 2. Veo muchos temas pegados, documentación y tutoriales pero para aprender sintaxis, no programación de cosas complejas, como tal...

peib0l

No quiero destrozarte tu corazoncito, pero ya te bajo yo al mundo real.

Cita de: Cergath en  4 Julio 2015, 08:35 AM
Hola,

Tengo este conflicto, ando en el limbo...

Conozco varios lenguajes de programación, me desenvuelvo bien con Linux, uso la terminal constantemente, sé algo de scripting y puedo ir haciendo a medida que lo necesito... Sé montar servidores web, servidores de correo, :-[ no sé, muchas cosas... Constantemente tengo contacto con PHP por lo que me desenvuelvo bien con el, conozco bien la sintaxis y entiendo lo que leo y los pasos a seguir entre las iteraciones de los códigos, lo suficiente como para tener confianza al momento de modificar cualquier código, o añadir líneas de código; no lo sé todo, sino no tendría estas dudas tan de novato, pero la verdad es que se me da muy bien y podría resolver problemas con scripts ya hechos...

Como todos... tienes unos mínimos (muy escasos)  como el resto del mundo, nada que destaque o que no tenga cualquier otro informático. 

Cita de: Cergath en  4 Julio 2015, 08:35 AM
Soy autodidacta, y he aprendido esto gracias a cursos en línea como los de W3, y Codeacademy, ambos muy recomendados. Sin embargo, me siento atascado...

TODOS los que nos dedicamos a esta profesión somos autodidactas y la verdad es que esos cursos y web siempre enseñan lo mismo, nada destacable.

Cita de: Cergath en  4 Julio 2015, 08:35 AM
¿Cómo creo un programa?, la cuestión es más trascendental de lo que parece... Programar no es conocer un lenguaje de programación, la verdad creo que eso es lo de menos... Eso se aprende en un día, fuera de broma... Pero programar, entender la lógica, la estructura de una idea, y de cada pequeño detalle, luego llevarlo al código... Eso lo desconozco por completo.

Esto se conoce como Análisis, estudias la idea, lo que quieres que haga el programa, divides los problemas, organizas el proceso de construcción y sobre todo haces muchos esquemas UML (de toda clase)   

Cita de: Cergath en  4 Julio 2015, 08:35 AM
Hace unos días tuve mi primer acercamiento a Laravel, y gracias a él, entiendo mucho mejor el modelo MVC; sí, ni eso sé bien de qué va  :-(... Siguiendo tutoriales en internet ya puedo desenvolverme con más confianza, y hasta hice mi primer pequeño blog ;-). Y me parece espectacular lo de las migraciones ya que ahorra tiempo y es más eficiente en la gestión de la base de datos... ¡Eso es genial!... Puede sonar tan común para algunos pero para mi esa fue la revelación de la semana, jajaja, mindblowing... No más sql queries...

MVC ahora mismo es imprescindible, has tardado mucho en aprenderlo, pero va mucho más allá y te aseguro que lo que tu llamas aprender a programar ni de lejos lo es, lo único que haces es "leerte el resumen" se necesitan miles de lineas de código para aprender realmente.

Cita de: Cergath en  4 Julio 2015, 08:35 AM
En fin... ¿Dónde puedo aprender esta "lógica" que trasciende la sintaxis de cualquier lenguaje de programación?... ¿Cómo puedo aprenderlo en línea?... No sé donde empezar... ¿MVC estaría bien?...

La "lógica" no la vas a aprender, existen modelos que los puedes estudiar, empieza con cascada (es el más típico) pero esto solo lo da la experiencia.

Oblivi0n

#2
Lo que tu buscas se llama "ingeniería de software"

EDIT: Para extender un poco mi austera respuesta.

(Te pongo los nombres de los libros, el resto lo haces tu )

Si quieres aprender sobre patrones arquitectónicos de software te recomiendo este libro:Software Architecture in Practice

Para aprender sobre diseño de software: Design Patterns: Elements of Reusable Object-Oriented Software (la biblia del diseño de software) y también este mas orientado a gente con poco conocimientos teóricos de programación : Head First Design Patterns, tiene ejemplos mas asequibles y  menos teoría aburrida.

Como veo que sabes de todo y de nada, te recomiendo que te hagas un "experto" en 2 lenguajes de programación ( uno orientado a objetos y otro funcional , por ejemplo java y clojure)

DarK_FirefoX

Creo que lo primero que debes plantearte es: ¿Que es lo que quiero? A partir de ahí sabrás todo lo que necesites saber.

Si lo que quieres es "programar", ten en cuenta que "programar" no es lo mismo que "programar bien".

Por otro lado, todos tenemos "una idea" de lo que es las Ciencias de la Computación, hayamos o no ido a la escuela para esto. Cuando algunos escuchan las palabras "Ciencias de la computación", instantáneamente piensan en la programación de aplicaciones. Otros piensan en Matemáticas Discretas, Álgebra Booleana y Teoría de Grafos. Mientras tanto, todo puede ser unido en una definición bastante débil acerca de lo que es la realidad de las Ciencias de la computación.

La Ciencia de la Computación NO es sobre programación de aplicaciones, de hecho, las Ciencia de la Computación no tiene que ver con las computadoras en nada. El término fue definido en los finales de los 50 y permaneció en la mente de todos desde entonces.

La Ciencia de la Computación es un campo joven, y cuando digo joven, realmente joven. La era de las computadoras es realmente un "renacimiento" en la manera en que los humanos interpretamos el mundo alrededor de nosotros, un verdadero cambio de paradigma para las ciencias. La Ciencia de la Computación está en la infancia y en 5, 10, 20 años a partir de ahora, el campo va a cambiar drásticamente. Cambiará la forma en que percibimos las computadoras, como trabajamos con ellas y nuestras vidas.

La Ciencia de la computación no es un campo como la Biología o la Física Clásica, donde los estudiantes estudian las teorías y demostraciones de personas de hace muchos años y que ya no existen. Incluso puede parecer que la cura de la mayoria de los problemas de la humanidad tienen respuestas en este campo de estudio: dígase cáncer, sustentabilidad, exploración espacial o realmente encontrando que diablos es la gravedad y que la causa.

Entonces, si eres un programador que no tienes educación formal, deberías ser extático también. Lo más probable es que hayas desarrollados las habilidades para pensar como un Científico de la Computación y solo te falta el entrenamiento formal y los profundos conocimientos detrás de él. Lo grandioso de esto es que la mayoría de los materiales educacionales están disponibles gratuitamente en las formas de "Matemáticas Discretas", "Teoría de conjuntos" y "Algoritmos" en Internet. Los futuros cambios relevantes en la ciencia y la tecnología no seran una nueva "red social" o "web-app", sino, será la visión que obtendremos durante el estudio de las teorías que discuten la Ciencia de la Computación. El próximo descubrimiento no será formado por dos mil lineas de código, pero lo más probable sea una simple demostración matemática.

Salu2s

Orubatosu

Te lo han puesto muy claro, pero vamos a ver

Un script es un programa. Interpretado, pequeño, pero un programa.

Habría que ver que entiendes por "programa", ya que esto puede ir desde una aplicación con un propósito determinado, con interface de usuario, uso de bases de datos, etc hasta una simple aplicación que, por ejemplo busque letras en un fichero de texto y quite los acentos.

Todo eso son programas. Listas de instrucciones con bifurcaciones tomando decisiones en los puntos adecuados (o incluso sin eso). Tan simple como eso.

Si lo que quieres es hacer "programas" con interfaces, entonces es otro tema, es una parte "añadida" a diferentes lenguajes (los .NET por ejemplo).

Lo de aprenderte un lenguaje orientado a objetos es una excelente idea. Prueba con Java, aunque yo creo que C++ es igual de "complicado" pero mucho mas potente al final, pero eso ya son gustos

Si la idea es de programas en un entorno, como Windows entonces te interesa C#, que viene a ser C++ pero con añadidos, usando Visual Studio (que por cierto es gratis)
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998