Mi corta experiencia en la programación, esto es normal?

Buenas, os cuento un poco:
Tengo 19 años, desde hace 4 o 5, me han gustado los ordenadores y siempre me llamó la atención lo de "programar", cuando llegué a la universidad, tras un gran debate interno, decidí entrar en física sobre informática, que también me parecía interesante, ya que, aunque no se centrase en ello, también había ciertas asignaturas de programación y podría estar interesante.
Una vez entré en la carrera y comenzamos con la programación me encontré un panorama bastante desolador: mientras que mis compañeros eran bastante fluidos en la materia, yo no me enteraba de nada, solo tenía problemas en los códigos (hablo de códigos de 5 líneas, es decir, los problemas los tengo en la base), pasaron los meses y yo seguía sin avanzar nada, no entendía las explicaciones y me venía abajo mientras veía a mis compañeros crear programas increíbles. Admito que esto es la universidad complutense y mis compañeros son muy inteligentes (incluso están los de física y matemáticas que entran con un 13.5 de nota), así que es normal que entiendan rápido las cosas, pero, intentando ser objetivo, considero que yo tampoco me quedo completamente atrás (al fin y al cabo también he llegado aquí).
Tras el examen final, en el cual saqué un buen 0, me dije a mí mismo que en vacaciones estudiaría duro para aprobar y, sobre todo, porque quería aprender a programar de una vez, y eso he estado haciendo desde principios de julio y me he encontrado con que sigo sin avanzar y cometer errores en cosas básicas, miro vídeos, reviso apuntes, consulto foros pero nada, no consigo sentirme a gusto ni alcanzar una fluidez pese a que le eche horas, así que me pongo a pensar en gente que ni siquiera va a clase, que programa desde casa, desde mucho más pequeños incluso, en gente como Geohot, y digo: "Tan mal se me da esto? No sirvo?", sigo practicando porque muchas veces en matemáticas me ha pasado que de un día para otro doy el salto y empiezo a pillar las cosas, pero ese día no llega, así que quiero saber si a otros de vosotros os pasó esto al empezar y me recomendáis que siga intentándolo, la verdad es que estoy demasiado desanimado, sobre todo porque se acerca el día del examen lentamente y no veo que tenga nivel.
Agradezco vuestras opiniones respecto a esto^^
Por cierto, el idioma en el que programa es matlab :)
Te diré que la programación no es empollartela de memorieta, es algo que es como las matemáticas, hay que entenderlas. Si no entiendes el concepto, por mucho que sepas de memoria te va a costar horrores programar.

Animo y paciencia¡

Igual te digo,sin conocer mucho matlab, creo que no es un lenguaje de programación como pudiera ser Java o C++, si no un software de creación de funciones matemáticas no?
En mis apuntes lo definen como un "lenguaje de programación de alto nivel similar a java o c++" y mis profesores y los tutoriales que veía siempre han hablado de él como un lenguaje de programación así que me imaginaba que lo era, pero tal vez llevo meses sin saber qué mierdas estoy haciendo, que es otra posiblidad [tomaaa] [tomaaa]
La programación es muy abstracta. Y parece que no, pero a veces es complicado entenderlo bien.

Mi primer año de carrera (ingeniería informática, asi que te viene al pelo) saqué en programación (que era con C y anual) un 3 o así. El profesor era malo malo.

En el segundo año, recuerdo perfectamente que el profesor que nos tocó dijo el primer dia "no tengo ni idea de C, pero os voy a enseñar a programar". Vaya si lo hizo, saqué un 10.

Y es porque mientras el profesor del primer año nos enseñó la sintaxis del lenguaje, el del segundo año nos enseñó a plantearnos los problemas y resolverlos.

PD: Conozco matlab bastante. Sí, el lenguaje de programación de matlab es estructurado, similar a C, aunque débilmente tipado
El que vale, vale y el que no para ade [carcajad]

Aunque también conozco gente que sacó la carrera sin haber aprendido nada.

La carrera es para consolidar conocimientos con fundamente teórico, más que nada.

pd: para no desanimarte: tu dale horas y verás que lo sacas al final [beer]
Tu sigue echandole horas,nadie nace aprendido y es normal que unas personas aprendan mas rapido que otras.

Desde mi punto de vista no debes compararte con los demas sino contigo mismo.

Como te dicen la programacion no es sencilla y a lo largo de tu vida te encontraras con muchos problemas con los que te volveras loco pero cuando los solucionas es una sensacion muu agradable.

Animo.
verdi07 escribió:En mis apuntes lo definen como un "lenguaje de programación de alto nivel similar a java o c++" y mis profesores y los tutoriales que veía siempre han hablado de él como un lenguaje de programación así que me imaginaba que lo era, pero tal vez llevo meses sin saber qué mierdas estoy haciendo, que es otra posiblidad [tomaaa] [tomaaa]


C++ no es de alto nivel ni mucho menos, a menos que lo único que consideres que es de bajo nivel es el ensamblador o el microcódigo :o

Por cierto, a los que sepan C++:

delete this;
No desesperes.

Es importante entender que el hecho de que se te den bien y te gusten los ordenadores no implica que vayas a aprender a programar rápido en absoluto. Yo entré en la carrera (ingeniería de teleco) siendo un friki del PC, y me pegué un hostión bastante importante en la primera asignatura de programación que tuvimos (Java). No entendía absolutamente nada ni creía que pudiese llegar a entenderlo; y el hecho de que hubiese gente en clase que no sólo se defendía, si no que sabía programar realmente me hacía replantearme mi capacidad. Lo que te viene pasando a ti, vamos.

Al final lo acabé entendiendo gracias a un buen amigo. Pero lo curioso es que, en mi opinión, no es un arte que puedas aprender estudiando y/o echándole horas: más bien llegará un momento en el que algo hará "clic" y de repente lo verás todo... no sé cómo explicarlo (el mencionado amigo que me echó un cable lo llamó en su día la maJia, por Java XD ) y a partir de ese momento ya sí podrás echarle horas y practicar para aprender de verdad. Pero no antes.

Te recomiendo CodeAcademy. Ahí tienes cursillos rápidos gratuitos independientes de varios lenguajes, en los que puedes intentar adquirir esa "maJia". Échale un ojo sobre todo a los de Java, Python y tal vez PHP, que es de lo más estándar que hay en esa web.

Saludos y suerte!
jorcoval escribió:La programación es muy abstracta. Y parece que no, pero a veces es complicado entenderlo bien.

Mi primer año de carrera (ingeniería informática, asi que te viene al pelo) saqué en programación (que era con C y anual) un 3 o así. El profesor era malo malo.

En el segundo año, recuerdo perfectamente que el profesor que nos tocó dijo el primer dia "no tengo ni idea de C, pero os voy a enseñar a programar". Vaya si lo hizo, saqué un 10.

Y es porque mientras el profesor del primer año nos enseñó la sintaxis del lenguaje, el del segundo año nos enseñó a plantearnos los problemas y resolverlos.

PD: Conozco matlab bastante. Sí, el lenguaje de programación de matlab es estructurado, similar a C, aunque débilmente tipado


Es que lo normal es primero dar Algoritmos en pseudocodigo, y no lanzarse de cabeza a un lenguaje. Primero se entiende, luego se aprende jaja
Pero qué problemas tienes? No sabes plantear los problemas? Sabes traducir la solución de tu cabeza a código?

El primer paso siempre es resolver el problema de forma general en la mollera, ¿esto llegas a hacerlo? Es lo primero, sino ni intentes escribir código porque vas a perder el tiempo.

Yo empezaría por resolver problemas fáciles en C (o el lenguaje que mejor domines, pero C es ideal para sentar bases), tipo decidir si un número es par o no, si es primo o no, casos típicos que puedas encontrar por la red.
Hola,

Desde mi concepto, el tema de la programacion es mas conceptual al principio que justo donde estas. Debes tener habilidades de razonamiento, ser bueno en matematicas y habitos como ordenar las cosas de una forma logica. (Ves muchas veces a un ingeniero ordenando lapices por tamaño, colores.. haciendo recuadros en hojas... y ese tipo de cosas).

Si no posees esas bases, pues debes empezar por ello.
Si ya las posees, lo que se viene es comenzar a prender un lenguaje sencillo... el pseudocodigo, que representa problemas de la vida real en un lenguaje que entiende la maquina... ya despues... los demas lenguajes es mas de lo mismo y se va haciendo cada ves mas abstracto hasta llegar a los lenguajes de alto nivel... esto se consigue con muchos años de experiencia, entonces tranquilo... la constancia siempre le ganara al talento.
Programar puede programar cualquiera así que por eso no te desanimes. Lo difícil es programar bien, de forma eficiente con la mejor solución posible... Lo lógico sería que con pseudocódigo aprendieses a resolver problemas además no está demás que te apoyes en diagramas de flujo para ver como puedes resolver los problemas y así seguir un orden.
Y vosotros como os apañais con un codigo horrible, espaguetti total,antiintuitivo, sin uml ni ostias, fabricado a base de ahi picando teclas a palo seco?
Nullpointerexception escribió:Y vosotros como os apañais con un codigo horrible, espaguetti total,antiintuitivo, sin uml ni ostias, fabricado a base de ahi picando teclas a palo seco?

Algunas cosas que me he encontrado. He de decir que programo en entornos industriales:

- un programa sin funciones ni métodos. Repitiendo código 200 veces o más.

- sin bucles. Si hay que repetir algo 5 veces, pues copypasteo 5 veces.

- sin nombres de variable. Directamente trabajando con direcciones de memoria.

- obviamente, sin comentarios.

- sin control de versiones. El que llegaba, chupaba el código, cambiaba lo que le rotaba, inyectaba y a mover.

- máquinas de estados donde se programaban TODOS LOS POSIBLES CAMINOS a pelo. Sin condiciones, sin bucles, sin funciones... Pues programaban todas las combinaciones de estados.

Sí, muy muerte. Ya no te digo usar estructuras u objetos.

Y encima caro. Que la memoria aqui vale un pastón (dependiendo de las marcas, una tarjeta de 1MB te supera fácil los 300 euros)
A ver, a ver... estás haciendo Física, y tu mayor problema es programar en Matlab?

Date con un canto en los dientes.
Hay quien lo pilla a la primera, hay quien nunca lo acaba de pilla, en telecos fue de lo que mejor se me dió, lo poco que aprobé el primer año, XD. Sin embargo la mayoría de los de la clase eran bastante nulos y se comieron los mocos. En años posteriores, aunque todos habían pasado la asignatura de una manera u otra seguían teniendo problemas, en la asignatura de orientación a objetos hice toda la programación de un trabajo común de cuatro, porque no me aclararía con todos los demás, y creo que fue la única matrícula que saque en la carrera. En otra tuve que programar un microcontrolador para un airbag, aunque no acabé de salirme con la mía, otro hizo el diseño de la placa, un par hicieron algo de apoyo y un noruego erasmus no hizo una mierda, se ponía a leer revistas, lo bueno de esto es que nos tocaba a nosotros repartirnos la puntuación media de el grupo, y como era de los que más curré en un tema que nadie quería tocar, me llevé una buena nota, como el de la placa y suspendimos al erasmus de los cojones XD.

En fin, me dejo mis historias de abuelo cebolleta. Es normal clavarse en programación a veces, y joder, Matlab es bastante chungo para entender que coño haces, falla por cualquier tontería o corre sin problemas pero hay algún error en el código que cuesta de ver. Puede que salgas adelante, puede que te la pegues varias veces. A mi se me dan fatal las matrices en general y nunca lo he acabado de entender del todo, pero en fin.
jorcoval escribió:
Nullpointerexception escribió:Y vosotros como os apañais con un codigo horrible, espaguetti total,antiintuitivo, sin uml ni ostias, fabricado a base de ahi picando teclas a palo seco?

Algunas cosas que me he encontrado. He de decir que programo en entornos industriales:

- un programa sin funciones ni métodos. Repitiendo código 200 veces o más.

- sin bucles. Si hay que repetir algo 5 veces, pues copypasteo 5 veces.

- sin nombres de variable. Directamente trabajando con direcciones de memoria.

- obviamente, sin comentarios.

- sin control de versiones. El que llegaba, chupaba el código, cambiaba lo que le rotaba, inyectaba y a mover.

- máquinas de estados donde se programaban TODOS LOS POSIBLES CAMINOS a pelo. Sin condiciones, sin bucles, sin funciones... Pues programaban todas las combinaciones de estados.

Sí, muy muerte. Ya no te digo usar estructuras u objetos.

Y encima caro. Que la memoria aqui vale un pastón (dependiendo de las marcas, una tarjeta de 1MB te supera fácil los 300 euros)


Joder, pero es que hay un monton de programadores mediocres por ahí que hacen un codigo pa tirarse de los pelos xD. No sería mejor tirar eso a la basura y hacerlo de nuevo pero bien hecho? xD

Y al final hiciste algo al respecto (refactorizar y eso), o bien tiraste para adelante como pudiste?
Nullpointerexception escribió:Joder, pero es que hay un monton de programadores mediocres por ahí que hacen un codigo pa tirarse de los pelos xD. No sería mejor tirar eso a la basura y hacerlo de nuevo pero bien hecho? xD

Y al final hiciste algo al respecto (refactorizar y eso), o bien tiraste para adelante como pudiste?


Yo lo que me encuentro mucho, pero mucho mucho son aplicaciones que llevan tecnologias pero que el que las programa no conoce y usa otras, por ejemplo, aplicaciones con Hibernate + JPA y luego todas las Querys nativas y sin usar las entidades, total para que [360º]
Nullpointerexception escribió:
jorcoval escribió:
Nullpointerexception escribió:Y vosotros como os apañais con un codigo horrible, espaguetti total,antiintuitivo, sin uml ni ostias, fabricado a base de ahi picando teclas a palo seco?

Algunas cosas que me he encontrado. He de decir que programo en entornos industriales:

- un programa sin funciones ni métodos. Repitiendo código 200 veces o más.

- sin bucles. Si hay que repetir algo 5 veces, pues copypasteo 5 veces.

- sin nombres de variable. Directamente trabajando con direcciones de memoria.

- obviamente, sin comentarios.

- sin control de versiones. El que llegaba, chupaba el código, cambiaba lo que le rotaba, inyectaba y a mover.

- máquinas de estados donde se programaban TODOS LOS POSIBLES CAMINOS a pelo. Sin condiciones, sin bucles, sin funciones... Pues programaban todas las combinaciones de estados.

Sí, muy muerte. Ya no te digo usar estructuras u objetos.

Y encima caro. Que la memoria aqui vale un pastón (dependiendo de las marcas, una tarjeta de 1MB te supera fácil los 300 euros)


Joder, pero es que hay un monton de programadores mediocres por ahí que hacen un codigo pa tirarse de los pelos xD. No sería mejor tirar eso a la basura y hacerlo de nuevo pero bien hecho? xD

Y al final hiciste algo al respecto (refactorizar y eso), o bien tiraste para adelante como pudiste?

Pues para adelante como pude, hasta que no pude más y programamos una parada de sección de 15 dias para meterle el nuevo código desde 0, porque coincide que el peor programa de todos controlaba la sección de fábrica más peligrosa (con presiones que superan los 3 bares con producto liquido-gaseoso a 200 grados. Si revienta... Imagina si estás cerca).

Aún tengo alguna herencia así, pero en partes menos críticas, con lo que voy refactorizando cuando puedo.

Y piensa además que lo que encuentras asi en el programa es muy posible que te lo encuentres a nivel físico en el cuadro (cables que no van a ninguna parte, bobinas sin cablear, 0 documentación, 0 etiquetado...)
¿Soy el unico al que le pasa que a veces en lugar de analizar un codigo spaguetti termia rescribiendolo de cero? XD
Diría que por un lado es experiencia que vas adquiriendo al plantear una aproximación posible al problema que se te pide. Al final acaba siendo un análisis de los requerimientos (difusos la mayoría de veces) para picar la cantidad necesaria de código (si es que hace falta).

Por otro lado, te recomiendo este librejo: https://www.amazon.com/gp/product/B004P ... tle#navbar

Como consulta para ir adquiriendo soltura con estructuras de datos, y algoritmia, que creo que es la principal necesidad que debería saber suplir alguien que programa: saber qué coño se debe usar en cada momento, y cómo expresarlo de una manera equilibre un poco la eficiencia contra el rendimiento (aunque es algo a debatir en según qué casos).

Otro que también va bien tener a mano: https://www.amazon.com/Patterns-Enterpr ... 0321127420

Para el código espaguetti, si es posible, documentar lo que hace, y no me refiero a dentro del código, sino conceptualmente lo que hace. Desmenuza cada una de sus partes críticas y pregunta por qué leches se hace como se hace. Y así ad eternum, en una perpetua lucha por evitar que ese bicho cobre vida y empiece a generar código aún más abrasivo en términos de mantenimiento.

Delian escribió:¿Soy el unico al que le pasa que a veces en lugar de analizar un codigo spaguetti termia rescribiendolo de cero? XD


Tienes suerte que lo puedas refactorizar, saldando la deuda técnica. Hay veces que no es posible, y tienes que vivir a base de parches.

@Jorcoval Eso que haces tiene pinta de ser un pifostio de C+ASM (corrígeme si me equivoco) que me gustaría ver eso.
Mithrandir0x escribió:Tienes suerte que lo puedas refactorizar, saldando la deuda técnica. Hay veces que no es posible, y tienes que vivir a base de parches.


Si, como dices no siempre se puede. El otro dia se quejo el cliente que cuando ponia a caducar una lista de 2.000 pedidos iba lento, y voy y me encuentro esto:

//Pasa los pedidos a Caducados
for(String pedido : listaPedidos){
String estado = pedidosDAO.getEstadoCaducado(); -> Esto por debajo tira una query a BBDD.
pedido.setEstado(estado);
pedidosDAO.save(pedido);
pedidosDAO.flush();
}


Claro, 2.000 pedidos, 2.000 flush + 2.000 consultas a la tabla de estados de pedidos, muy logico. [uzi]
Así conserva la transaccionalidad y la atomicidad [rtfm]

I feel you, bro
Mithrandir0x escribió:
@Jorcoval Eso que haces tiene pinta de ser un pifostio de C+ASM (corrígeme si me equivoco) que me gustaría ver eso.

No exactamente, pero es muy parecido.
Es programación de autómatas y dentro de los lenguajes hay lenguajes gráficos como Graph o Kop (encima lenguajes gráficos... Inflexibles, feos, extensos... Y que obviamente son los que usa la gente no habituada a programar haciendo chapus de miedo) y no gráficos y muy similares a ASM como es AWL o SCL que es muy similar a C (estructurado, fuertemente tipado, con acceso a bajo nivel, etc)

Afortunadamente, cuando me ha tocado hacer algo en empotrado lo he hecho desde 0, no he heredado chapus
Joder macho, es que cada vez que veo un codigo tan....horrible, pienso que me gustaría más tener la posibilidad de hacer yo solo el codigo desde cero. Lo jodio es una empresa que aguante tanto con tal código cacahuete, algun momento deberían plantearse en cambiar tal cutrez, porque sino al final lo que acaban haciendo es perder dinero arreglando fallos y chapuzas de eso xD.

Pero en fin, supongo que esto pasara en todas partes.
Yo te recomiendo que no te dediques a ello. La programación es una actividad muy competitiva, aunque te saques la carrera no te va a ayudar a colocarte de eso.

Findeton escribió:Por cierto, a los que sepan C++:

delete this;

Legal y tiene algunos usos.

Otra cosa es si es limpio o no XD
¿Cómo estudias?

¿Estudias primero, digamos, la abstracción, el concepto, de lo que es un proceso iterativo por ejemplo?

O te pones a leer pseudocódigos a tope? Porque si es esto último vas de culo [+risas]
Azulmeth escribió:¿Cómo estudias?

¿Estudias primero, digamos, la abstracción, el concepto, de lo que es un proceso iterativo por ejemplo?

O te pones a leer pseudocódigos a tope? Porque si es esto último vas de culo [+risas]


Pues voy tratando de hacer las prácticas que mandaban en clase.
Actualizo, tras dos meses acabo de descubrir que las funciones, al contrario que los scripts, no crean variables [facepalm] [facepalm]
verdi07 escribió:Actualizo, tras dos meses acabo de descubrir que las funciones, al contrario que los scripts no crean variables [facepalm] [facepalm]


A riesgo de desconocer completamente matlab.........what??
verdi07 escribió:
Azulmeth escribió:¿Cómo estudias?

¿Estudias primero, digamos, la abstracción, el concepto, de lo que es un proceso iterativo por ejemplo?

O te pones a leer pseudocódigos a tope? Porque si es esto último vas de culo [+risas]


Pues voy tratando de hacer las prácticas que mandaban en clase.
Actualizo, tras dos meses acabo de descubrir que las funciones, al contrario que los scripts, no crean variables [facepalm] [facepalm]


No te agobies, que Matlab es algo muy especifico. No estas aprendiendo a programar, estas aprendiendo MatLab jaja.
Si usárais alguno libre estilo octave, podrías practicar y experimentar por tu cuenta. No digo que sea la solución definitiva, pero yo tengo aprendido mucho más experimentando que con lo que me enseñaron en su momento.

A algunos os cuesta más, a otros les cuesta menos... ten paciencia y no te castigues. Sigue haciendo los ejercicios que os puedan mandar y razónalos, sobretodo razónalos.
Y ánimo :D
Thalandor escribió:
verdi07 escribió:Actualizo, tras dos meses acabo de descubrir que las funciones, al contrario que los scripts no crean variables [facepalm] [facepalm]


A riesgo de desconocer completamente matlab.........what??


Cuando ejecutas una función (una macro) en matlab, las variables que hayas definido en dicha función no son accesibles desde el explorador de variables.

Para depurar el código sin usar el debugger, se suele ejecutar la función como si fuera un script. Y cuando ya te funciona como quieres, encapsulas dicho script en un función.
Si quieres practicar un poco con problemas poco convencionales, te recomiendo https://projecteuler.net

Hacen problemas mezclando matematicas bastante curiosos.
Cuando yo comencé a aprender a programar lo que hacía era aprenderme el concepto de las estructuras básicas del lenguaje en cuestión (Java en este caso) y hacerme programas chorra. Cuantas más estructuras aprendía, más grandes y complejos eras mis programitas para practicar.

Yo por suerte lo cogí todo fácil y es algo que me encanta, sin embargo hay gente que nunca le llega a coger el punto.

PD: Para los que habláis de código espagueti, leed el Clean Code, coño!!
supongo que un videojuego como el gtaV tiene codigo para parar un tren.

os felicito yo jamas podría meterme eso en la cabeza.
A mí lo que más me costó fué aprender a traducir un problema real en código, el paradigma de la programación. Una vez das ese paso en pocas semanas dominarás cualquier lenguaje, lo único que restará será conocer las particularidades y diferencias de sitaxis entre ellos.

En mi caso vengo también de la rama de teleco, concretamente de una híbrida entre teleco e informática (tele-mática) y allí se estudiaba código a porrillo (sí, también Matlab y esas adorables y entrañables transformadas de Fourier). El caso es que nosotros empezamos con ensamblador (para MIPS), luego pasamos a C (fuerte manejo de memoria y no orientación a objetos), luego Java (polimorfismo, tipado y estructurado, orientación a objetos, casi te despreocupas del manejo de memoria...), etc. Vamos que el aprendizaje lo ibas haciendo de manera escalada, y es lo que te digo, una vez dominas "la traducción", el resto va solo. Pero era un negado!! xD

Con ensamblador recuerdo que lo pasé realmente mal, igual que tú. Teniamos que crear un programa que resolviese sistemas de ecuaciones diferenciales de hasta 20 incógnitas por el método de Gauss... yo me preguntaba "pero cómo coño voy a hacer automático ese proceso? cómo narices lo hago??!!", me costó un huevo. Pero como siempre digo, cuando consigues hacerlo... la satisfacción que sientes... es casi equiparable al sexo!! jajajajaa, solo los más freaks me entenderán (no obstante recalcar lo de "casi"). Cuando tuve ese "click" en mi cabeza todo fué rodado, hasta tal punto que me saqué la asignatura anual de segundo (Java) sin ir a clase. Y te aseguro que cuando empecé era un negado :p

Asi que no desesperes, que todo llega y vas por el buen camino. Conoces tus limitaciones e intentas superarlas, sigue así [oki]
@verdi07 Pues aprovecha que estás en eol y pon tus dudas. Seguro que la explicación de algún usuario es la que te hace comprender algo que se te escapa, simplemente por la forma en que te lo estén explicando sin tener un feedback directo con el interlocutor.
jorcoval escribió:
Mithrandir0x escribió:
@Jorcoval Eso que haces tiene pinta de ser un pifostio de C+ASM (corrígeme si me equivoco) que me gustaría ver eso.

No exactamente, pero es muy parecido.
Es programación de autómatas y dentro de los lenguajes hay lenguajes gráficos como Graph o Kop (encima lenguajes gráficos... Inflexibles, feos, extensos... Y que obviamente son los que usa la gente no habituada a programar haciendo chapus de miedo) y no gráficos y muy similares a ASM como es AWL o SCL que es muy similar a C (estructurado, fuertemente tipado, con acceso a bajo nivel, etc)

Afortunadamente, cuando me ha tocado hacer algo en empotrado lo he hecho desde 0, no he heredado chapus

Grafcet FTW!
k0br4 escribió:
jorcoval escribió:
Mithrandir0x escribió:
@Jorcoval Eso que haces tiene pinta de ser un pifostio de C+ASM (corrígeme si me equivoco) que me gustaría ver eso.

No exactamente, pero es muy parecido.
Es programación de autómatas y dentro de los lenguajes hay lenguajes gráficos como Graph o Kop (encima lenguajes gráficos... Inflexibles, feos, extensos... Y que obviamente son los que usa la gente no habituada a programar haciendo chapus de miedo) y no gráficos y muy similares a ASM como es AWL o SCL que es muy similar a C (estructurado, fuertemente tipado, con acceso a bajo nivel, etc)

Afortunadamente, cuando me ha tocado hacer algo en empotrado lo he hecho desde 0, no he heredado chapus

Grafcet FTW!

Yo ya solo lo utilizo como herramienta de especificación y no como lenguaje de programación :p

Me parece muuuuucho más flexible hacer un estructurado y guardar el estado en variables enteras.
amchacon escribió:
Findeton escribió:Por cierto, a los que sepan C++:

delete this;

Legal y tiene algunos usos.

Otra cosa es si es limpio o no XD


Yep :)
No me he leido tdo el post, pero bueno, a cada uno se le dan mejor unas cosas que otras, una pregunta, a ti programar te gusta? Porque si no es así es normal, al hacer algo a mala gana... La ventaja que tienes ahora es que al haber escogido física y no informática digamos que no está tan relacionada con la programación como lo está informática.
Yo me metí en Daw y no tenía ni papa de programar el Hello World me parecía brujería. Pero me puse a estudiar a tope.

Aún recuerdo cuando di el salto, haciendo un punto rombo vacío. A, principio los bucles no los entendia, pero poco a poco fui mejorando y mejorando y un 10.

Hice un juego y todo y ahora me he puesto con Android a ver.
alsoja está baneado por "saltarse el ban con un clon"
Te voy a decir algo que veo que aun no te han dicho, no todo el mundo vale para programar.
@verdi07 No te desesperes... Acabe físicas hace 5 años y mientras a mi se me daba genial la física experimental y teórica (cuando los cálculos eran a mano ojo!...), lo que es programar (usábamos fortran... y luego python) no se me daba muy bien. Ahi aprendes que a unos se le da mejor una cosa y a otros otra cosa bien diferente... por lo tanto no te desanimes!!!
jorcoval escribió:
k0br4 escribió:
jorcoval escribió:No exactamente, pero es muy parecido.
Es programación de autómatas y dentro de los lenguajes hay lenguajes gráficos como Graph o Kop (encima lenguajes gráficos... Inflexibles, feos, extensos... Y que obviamente son los que usa la gente no habituada a programar haciendo chapus de miedo) y no gráficos y muy similares a ASM como es AWL o SCL que es muy similar a C (estructurado, fuertemente tipado, con acceso a bajo nivel, etc)

Afortunadamente, cuando me ha tocado hacer algo en empotrado lo he hecho desde 0, no he heredado chapus

Grafcet FTW!

Yo ya solo lo utilizo como herramienta de especificación y no como lenguaje de programación :p

Me parece muuuuucho más flexible hacer un estructurado y guardar el estado en variables enteras.

Es cierto que puede ser más cómodo de programar, pero al menos para el control general del programa (GEMMA) queda más claro, pero viendo que se hacen las cosas de forma correcta (descripción del programa) no hay duda
No he tocado Matlab en mi vida pero si he tocado C en el módulo superior que hice de Administración de sistemas. Cuando aprendes C (o al menos eso intentas) como era mi caso, se te quitan todas las ganas de aprender a programar o ser programador. Que hice yo? Deje el módulo porque no me estaba yendo muy bien a parte de que no me gustaba y me dedique a aprender por mi cuenta de forma totalmente autodidacta. Leyendo libros en inglés, tutoriales por internet... Gracias a eso aprendí Python/Django, mucho Javascript y Node.js. Entonces es cuando te empiezas a divertir programando, cuando ver que puedes hacer cosas utiles para ti y para otras personas. Después me puse con Ionic que es un framework que te permite crear apps móviles con Angular.js. Gracias a todo ello encontre trabajo. También te recomiendo unos cursos que aunque son pagando me han ido muy bien, creo que vale la pena el desembolso, son los cursos de Platzi. Busca Platzi en Google y verás todo su material.

Un saludo.
lividmufo escribió:No he tocado Matlab en mi vida pero si he tocado C en el módulo superior que hice de Administración de sistemas. Cuando aprendes C (o al menos eso intentas) como era mi caso, se te quitan todas las ganas de aprender a programar o ser programador. Que hice yo? Deje el módulo porque no me estaba yendo muy bien a parte de que no me gustaba y me dedique a aprender por mi cuenta de forma totalmente autodidacta. Leyendo libros en inglés, tutoriales por internet... Gracias a eso aprendí Python/Django, mucho Javascript y Node.js. Entonces es cuando te empiezas a divertir programando, cuando ver que puedes hacer cosas utiles para ti y para otras personas. Después me puse con Ionic que es un framework que te permite crear apps móviles con Angular.js. Gracias a todo ello encontre trabajo. También te recomiendo unos cursos que aunque son pagando me han ido muy bien, creo que vale la pena el desembolso, son los cursos de Platzi. Busca Platzi en Google y verás todo su material.

Un saludo.

Es que depende de cual sea tu objetivo.

Aprender con C es aprender desde la base: Gestión de memoria, tipos de datos, estructuras de datos... Todo te lo tienes que comer tú como programador, lo que luego te da cintura para meterte en otros lenguajes.

A mí desde luego C me encanta. Trabajo en un entorno industrial y me ha sido utilísimo aprender en C, porque no solo aprendes a programar, también a pelearte con el bajo nivel.
Para añadir un poco de variedad a lo que han dicho comento mi caso:

Acabo de hacer un solo cuatrimestre de programación en la uni, y el lenguaje que usabamos era C++. Al principio lo cogí con miedo. Es por eso que me apunté a unas clases de la propia universidad para lo novatos que nunca habíamos programado. El resultado fue que me gustó bastante, y cogí bastante carrerrilla, lo que me permitió acabar el curso con buena nota y un buen sabor de boca para seguir aprendiendo a programar por mi cuenta (aunque, este verano no he adelantado mucho xD). En mi opinión se quedaron bastante rezagados con la materia, y a mi me hubiese gustado que se profundizara un poco más.

Ahora mi consejo:

Yo empezaría con un nuevo lenguaje -para no liarte más de lo que ya estás con el MatLab-. El que más te llame la atención. Después cogería todos los libros de la biblioteca (en la de la universidad suele haber más variedad que en las municipales...) que traten del lenguaje que has escogido, y junto a algunas páginas webs aprender lo básico. Para C++ te recomiendo minidosis, que junto a teoria, hay un tio que se graba resolviendo problemas, y se hacen muy amenas las lecciones (de 8 a 12 minutos dura de media cada vídeo) y se entiende bastante. Un plus es que el que se graba es (o era, no lo he visto) profesor de mi propia universidad (no es propaganda xD).
Y una vez que tengas un poco de visión de programación, empezar de nuevo con MatLab.
47 respuestas