Categories: NoticiasTecnología

Python vs. C / C ++: ¿Por qué los ingenieros eléctricos deberían molestarse en aprender Python?

Si aprendes un lenguaje de programación, debería ser C / C ++. Pero si aprendes dos, aquí hay un argumento de que el otro debería ser Python.

Como ingeniero, lo último que probablemente necesites ahora mismo es aprender otro lenguaje de programación. Hay muchos por ahí: Ruby, PHP, Java, C #, Javascript, Dart, Go, Rust, etc. No para ti, no. Ya es fluido en C / C ++, que lo lleva desde el firmware incorporado hasta las aplicaciones GUI.

¿Por qué querría pasar el tiempo para aprender otro lenguaje de programación que estará obsoleto antes de que llegue el próximo presidente?

Bueno, amigo mío, te contaré un pequeño secreto. Si está dispuesto a aprender un idioma más, puede abrir un mundo completamente nuevo para usted.

Como ingenieros eléctricos, si aprendes un lenguaje de programación, debería ser C / C ++. Lo necesita para programar los microcontroladores, configurar los registros y estará diseñando y escribiendo el firmware de prueba para ejercitar varias partes del circuito. Le permite profundizar en las tuercas y tornillos del hardware, escribir valores en diferentes registros, acceder a buses de memoria y controlar periféricos de hardware.

Pero si aprendes dos idiomas, argumentaría que el otro debería ser Python.

Imagen utilizada cortesía de christina morillo.

Poder y control frente a simplicidad y flexibilidad

La razón por la que C ++ es tan útil para los diseñadores de hardware es la razón exacta por la que no es tan bueno para escribir aplicaciones. Tienes todo tipo de control sobre el metal, pero como lo controlas, es toda tu responsabilidad. Debe asegurarse de desasignar cualquier memoria que asigne, que sus punteros en realidad apunten a ubicaciones válidas en la memoria y que sus tipos de datos estén asignados correctamente y no se desborden.

Lo que obtienes de todo ese conocimiento es poder y velocidad brutos, pero el cielo te prohíbe cometer un error, ya que podría enviar toda la aplicación o incluso el sistema completo a la caída.

Aquí es donde es un placer trabajar con Python. A veces no necesitas toda esa velocidad o controlar las cosas en la memoria con tanta fuerza. En su lugar, solo necesitas algo para trabajar.

Python es uno de los lenguajes de programación de más rápido crecimiento. Imagen utilizada cortesía de David Robinson a través de StackOverflow.

Python extrae muchos de los detalles que necesitamos para tratar en C ++, como la gestión de memoria y los tipos de datos variables. Ya no hay que preocuparse si una variable se desbordará o si se asignó o se desasignó la cantidad correcta de memoria. Todo eso sucede mágicamente en el fondo. Solo tiene que concentrarse en poner el código en papel (virtual).

Lo que realmente hace que Python se destaque como un buen segundo idioma es su comunidad grande y en crecimiento, el gran apoyo de las bibliotecas de código abierto, y que admite un conjunto diverso de aplicaciones como la programación de aplicaciones web, la ciencia de datos, la visualización de datos y la automatización de propósitos generales. Esos son todos dominios enormemente poderosos que son terriblemente complicados si intentas usar C ++.

Incluso algo tan simple como abrir un archivo y analizar su contenido, algo que EE tiene que hacer regularmente para todo tipo de cosas, es dolorosamente fácil en Python. Aquí hay un ejemplo donde abrimos un archivo e imprimimos su contenido en la pantalla:

C ++

Pitón

El caso de Python

Ahora no estoy aquí para predicar qué idioma es mejor. Utilizo los dos idiomas con regularidad, así como otros como Java, C # y Javascript, según sea necesario. Pero en mi opinión, si tuviera que dar consejos sobre qué idiomas debería aprender una EE próxima, mi consejo sería primero C ++, luego Python. (Hmmm … y tal vez Verilog, dependiendo de si hace o no lógica programable, pero esa es una serie de artículos diferente).

Este artículo es un punto de partida para una serie más grande en Python en lo que se refiere a ingenieros eléctricos. A medida que nos adentramos en esta serie, espero que se haga más y más evidente por qué un entendimiento de Python abrirá nuevos mundos a un ingeniero eléctrico.

A pesar de que acabo de usar un ejemplo muy trivial de análisis de archivos arriba, esa es la base de toneladas de automatización de diseño así como también de ciencia de datos. Más allá de eso, exploraremos varias bibliotecas para aprender cómo configurar bases de datos, servidores web, crear una API REST, extraer grandes conjuntos de datos, crear visualizaciones de datos pulidas, detectar objetos con una cámara web y le brindaremos un poco de información. aprendizaje automático. Tiré ese último porque es toda la rabia en los círculos técnicos (y no técnicos). Puedes impresionar a los hipsters tecnológicos con los que hablas en Starbucks con eso.

Visualización de datos en Python utilizando Seaborn. Imagen utilizada cortesía de Insight Data.

Así que ponte los sombreros de programación y estad atentos a medida que nos embarcamos en un viaje para explorar nuevas fronteras de la tecnología desde los ojos de un ingeniero eléctrico. Espero que esta serie no solo le permita automatizar las cosas de manera más eficiente, sino que amplíe su mundo más allá del diseño de hardware y circuitos y el diseño de sistemas complejos, sistemas que no solo involucran la electrónica sino que aprovechan las montañas de tecnología que permite la comprensión de Python. usted para acceder.


¿Qué opinas de Python? ¿Qué te gustaría aprender al respecto? Comparte tus opiniones en los comentarios a continuación.

ga('create', 'UA-1454132-1', 'auto'); ga('require', 'GTM-MMWSMVL'); ga('require', 'displayfeatures'); ga('set',{'dimension1':'computing,embedded-software,memory,embedded-software,engineering-consulting'}); ga('set',{'contentGroup1':'computing,embedded-software,memory,embedded-software,engineering-consulting'}); ga('send', 'pageview');

!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1808435332737507'); // Insert your pixel ID here. fbq('track', 'PageView'); fbq('track', 'ViewContent', { content_ids: ['computing','embedded-software','memory','embedded-software','engineering-consulting'], content_type: 'category'});

_linkedin_data_partner_id = "353081"; (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); } if(jstz.determine().name().indexOf("Europe") === -1) { showSocialCode(); // NOT EU } else { showSocialCode(); window.addEventListener("load", function () { window.cookieconsent.initialise({ "palette": { "popup": { "background": "#252e39" }, "button": { "background": "#14a7d0" } }, "type": "opt-out", "content": { "message": "This website uses tracking cookies to ensure you get the best experience on our website.", "href": "https://www.allaboutcircuits.com/privacy-policy/", "dismiss": "OK, GOT IT" }, onInitialise: function (status) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },

onStatusChange: function (status, chosenBefore) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },

onRevokeChoice: function () { var type = this.options.type; if (type == 'opt-out') { console.log("eu"); //showSocialCode(); } },

}) }); }

Maria Montero

Me apasiona la fotografía y la tecnología que nos permite hacer todo lo que siempre soñamos. Soñadora y luchadora. Actualmente residiendo en Madrid.

Recent Posts

Máquina de mano Lean, Green, Raspberry Pi

Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…

2 years ago

Cómo pronosticar series de tiempo usando autorregresión

Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…

2 years ago

Aquí están todas las formas en que puede cargar su AirPods Pro

Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…

2 years ago

Las principales noticias tecnológicas del lunes: la prohibición de clientes de terceros de Twitter parece no ser un accidente

Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…

2 years ago

AirPods Max 2: aquí están las características más solicitadas

Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…

2 years ago

El remake de Dead Space continúa luciendo terriblemente genial en el nuevo tráiler de la historia

El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…

2 years ago