¿Quizás una barrera de entrada más baja? ¿Es muy fácil cavar y comenzar a jugar con él?
Es mucho más rápido y fácil escribir su primer programa “Hello World” (en el lenguaje de programación que elija) que construir un circuito físico con una batería, un interruptor, un portalámparas, una bombilla y los cables para conectarlo todo junto (Luego está todo el envoltorio de alambre, rizado o soldadura que necesita hacer).
Ahora tome el ejemplo anterior a un nivel de complejidad mucho más alto: es mucho más fácil escribir un programa de computadora para realizar operaciones matemáticas complejas, encriptar y / o desencriptar algunos datos y renderizar algunos gráficos en 3D de lo que es diseñar / construir una placa de circuito multicapa con circuitos dedicados (quizás basados en FPGA, con memoria y puertos de E / S) para hacer esencialmente lo mismo (o algo de complejidad similar).
- Cómo comenzar a prepararse para convertirse en un científico de datos
- Cómo trabajar de forma remota como ingeniero de software incrustado junior
- Cómo pasar del ingeniero de software incorporado al ingeniero de software
- ¿Qué hacen exactamente los ingenieros de software en sus oficinas?
- Consejo profesional: ¿Mis expectativas sobre cómo realizo mi trabajo como ingeniero de software en la prueba son completamente erróneas?
El software también es mucho más fácil de solucionar, depurar y modificar que el hardware, y no requiere equipos costosos como generadores de pulso, analizadores lógicos y osciloscopios. Es mucho más fácil aprovechar el hardware básico ya existente (o en muchos casos hoy en día, el hardware “virtualizado” ofrecido por los proveedores de computación en la nube) para implementar soluciones a problemas en el software. La mayor parte del trabajo pesado (en términos de complejidad algorítmica y / o computacional) es mucho más fácil de implementar en software, y en la mayoría de los casos, el rendimiento en hardware básico o hardware virtualizado es suficiente.
Un ejemplo de cuándo nos gustaría implementar algo en el hardware es interactuar con el “mundo real”: el hardware se convierte en un puente entre el mundo real y la computación pesada que ocurre en el hardware básico. Otro ejemplo es si se necesita un rendimiento extremadamente alto, y solo un hardware especializado altamente optimizado puede proporcionar este nivel de rendimiento. (Tal vez un gran grupo de GPU y / o dispositivos FPGA altamente especializados y dedicados para hacer minería de Bitcoin). Otra razón es para proteger la propiedad intelectual: los dispositivos de hardware sofisticados (como XBox, Sony Playstation, Apple iPhones y iPads) son extremadamente difíciles de usar. irrumpir, realizar ingeniería inversa o cambiar el propósito de alguna manera que el fabricante no aprobaría.