Go Down

Topic: Sugerencias para aprender a programar? (sobre lenguajes) (Read 1 time) previous topic - next topic

e-Duardo

Seguramente una pregunta que nos hacemos mucha gente es: "si quiero aprender programación, ¿por qué lenguaje empiezo?". Y la respuesta con la que nos encontramos es "depende de para qué".

Yo estoy en ese punto, y os pongo en situación (os suelto un rollo) para ver si alguien me aconseja.

Por una parte estoy aprendiendo Arduino, cuyo lenguaje se supone que está basado en C++.
Poco a poco voy aprendiendo a hacer mis propios códigos simples, y voy entendiendo los códigos de terceros, aunque todavía se me escapan muchas (demasiadas) cosas.

Por otra parte, en paralelo con  lo anterior, quiero hacer aplicaciones HMI para PC para controlar y leer variables del controlador (arduino en este caso, pero también de otros dispositivos que presentan interfaz de comunicación).

He encontrado algunos tutoriales para hacer cosas básicas como encender y apagar un led de arduino con diferentes herramientas y lenguajes (Visual Studio, Node-Red, Processing, HTML, etc.). Pero una cosa es hacer copia-pega del código del tutorial y otra cosa es conocer y entender el lenguaje mínimamente para hacer cosas por uno mismo.

Hoy mismo me he instalado Visual Studio (Community) para seguir un tutorial, y tiene pinta que esa herramienta puede servir mucho para lo que quiero hacer y me gustaría profundizar. Desde Visual Studio, por lo que veo, se puede trabajar con los principales lenguajes (C++, C#, Java, JavaScript, F#,  Phyton...).

El ejemplo que he seguido hoy era en C#, y me he propuesto dedicar tiempo a aprender para poder hacerlo por mi mismo, incluso planteándome pagar por algún pequeño curso online medianamente estructurado, y ahí surge el dilema. ¿Merece la pena zambullirme en C# mientras en paralelo sigo con Arduino (que se supone que es más similar a C++) de manera semi-autodidacta, o es mejor enfocarme en C++?

¿O debería fijarme en JavaScript o Phyton? Puntos de partida

- No pretendo ser programador profesional, aunque me gustaría desarrollar aplicaciones que me ayuden en mi trabajo.
- Curva de aprendizaje rápida (supongo que eso lo queremos todos)
- Lo que más me intesa: interactuar con periféricos (enviar comandos o leer variables), realizar representaciones gráficas de variables. Hacer interfaces gráficas simples, y quizás hacer algún cálculo numérico con variables.

En algunos algunos laboratorios usan Labview para estas cosas, y si es algo que no descarto a largo plazo, el coste es muy elevado y en mi caso actual creo que sería matar moscas a cañonazos (hablamos de más de 5000€ para poder crear aplicaciones ejecutables).

Se agradecen ideas o consejos, y perdón por el ladrillo

surbyte

Es dificil responder.
La programación va a toda velocidad y yo siento que siempre estaré muy atras, claro que mi formación no es en programación sino en Electrónica entonces es comprensible que sienta eso.

Yo uso NodeRed, uso Python, y dejé de usar VBasic.NET y C# y C++
Creo que Python en PC/MAC/Linux es la respuesta pero también lo son otros lenguajes. Si miras cual es el lenguaje que mas ha crecido ultimamente, surge Python como el que lleva varios cuerpos de ventaja, y no es solo moda.
Ahora viene la pregunta de siempre.. la que tu has hecho: Para que lo necesitas?
Si vas a hacer interfaces gráficas con Python, entonces hay que pensar en librerías o versiones de Python como PyQT5 (que es mi preferido) que resuelve todo. Me ha resultado muy fácil trabajar con el usando Raspberry Pi, Linux Ubuntu o Windows 10. No tengo MAC.

En un trabajo que estaba haciendo hace poco una mala comunicación de mi parte me hizo trabajar mucho tiempo con Blynk para Android/IOS pensando que tenia todo resuelto pero resulta que el cliente me sale con que necesitaba algo que se viera en cualquier plataforma y ahi surgió por consejo de un forero español que estaba en la universidad y me dijo, usa NodeRed que es lo que todos estan utilizando en la cátedra de automatismos.

He trabajado con Labview pero aunque lo consideré muy bueno hace años, de ese tiempo a este, prefiero como te he dicho Python y en particular todo lo que usa QT5 y lo que siga. He probado otras librerías graficas de python pero me quedo con QT y si QTDesigner que facilita todo. Buscalo y entenderas.

Esta es mi visión mas práctica que técnica.

Aclaro que todo lo que hago pasa por Raspberry Pi 3 o mejor, ESP8266/32, SMT32, y arduinos usando nRF24L01
No uso pantallas porque generalmente es RPi quien presenta todo y con NodeRed o pyQT5 hago cosas fabulosas.

e-Duardo

Gracias,

Supongo que lo de pensar en primer lugar en C++ o C# es porque me resulta algo más familiar y no empiezo de cero sino de 1 gracias a lo que voy aprendiendo con Arduino (y hace 20 años tuve una toma de contacto en la carrera).


En la toma de contacto que he tenido con Node-Red, sí que me pareció relativamente fácil hacer algunas cosas muy básicas sin saber programar con una presentación aceptable (el Dashboard)

Con Phyton sí que sería empezar totalmente desde cero. Hoy en día googleando se encuentran tantos tutoriales que resulta difícil encontrar uno que realmente sea útil. Quizás sea mejor tomárselo con calma y utilizar un libro serio o algún curso estructurado.

Go Up