¿Crees que todo ingeniero informático y estudiante de ciencias de la computación debería saber cómo usar Linux? ¿Por qué?

Creo que todos los científicos informáticos deberían tener una sólida comprensión de los sistemas operativos basados ​​en Unix. Accionan el mundo. La mayoría de los servidores ejecutan Linux … Linux fue diseñado para ser “unix-like” y se ha desviado con la adopción de contenedores y otras cosas interesantes. macOS ahora es Unix. Hay muchas razones por las que la arquitectura de Unix es impresionante, y le recomiendo que consulte un curso de Sistemas Operativos para obtener más información.

Trabajar con una línea de comandos sigue siendo una gran parte de mi día, porque soy más rápido con eso que con una GUI. Siempre ejecuto comandos Git en un shell. Nada supera al shell de UNIX, y Microsoft lo sabe … por lo tanto, están tratando de integrar un shell de UNIX en Windows. Es realmente un gran movimiento desde todos los ángulos.

Entonces, amo Linux y macOS. Si un empleador no me da una Mac, lo primero que pregunto es si puedo instalar una distribución de Linux (mi favorita es Debian). Con un shell de Unix, Windows mejorará mucho para los desarrolladores. La mayoría es preferencia personal; Sin embargo, creo que todos deberían estar expuestos a ambos.

Cómo instalar y usar Linux Bash Shell en Windows 10

PD: si tienes un teléfono Android, ya estás usando Linux. Si tiene un iPhone, está utilizando UNIX 🙂

No lo creo.

En cambio, deberían conocer los grandes conceptos que rodean a Linux (* nix) en general.

Principalmente: pequeños programas que hacen una cosa y lo hacen bien. Esos pequeños programas combinados para hacer programas más grandes y fáciles de mantener.

Greg Young explica mucho mejor por qué esto es importante:

No Linux específicamente, sino sistemas Unix en general, claro. Son importantes en muchos campos. Si no puede orientarse en los sistemas Unix, se excluye de casi todo el trabajo del lado del servidor (aunque se ha hecho un poco con los sistemas operativos MS y una pequeña parte valiosa para comprar en los mainframe más antiguos). Así que los ingenieros informáticos deberían hacerlo.

Algunas personas piensan que CS debería apegarse a las partes más teóricas de “ciencia” de las computadoras. Si crees que CS debería enseñar notas prácticas, entonces puedes dejar de lado a Unix en general. Personalmente, creo que se deben enseñar algunas cosas prácticas, además de que Linux / FreeBSD / NetBSD son sistemas operativos de código abierto, podrían ser excelentes plataformas para estudiar todo tipo de cosas. Algoritmos de reemplazo de página de VM y sistemas de almacenamiento en disco y demás. Entonces hacen grandes plataformas de experimentación.

Como cuestión práctica si su universidad escatimó, vaya a recogerla. Haz un trabajo de línea de comando. Es esclarecedor Haga algo de trabajo en el servidor, también es una expansión mental. Ir a meterse con el subsistema VM es … um … frustrante y lleno de peligro. Aunque también es esclarecedor.

Comencé oficialmente a “consultar” en 1986. Conocía AmigaOS, GEM y el sistema operativo Atari, PC-DOS, unix, BASIC (casi todas las versiones) … en 1992 también tenía montones de OS / 2 con XENIX y PC-UNIX, obviamente todo lo que Microsoft arrojó sobre la mesa …

Personalmente, creo que todos los ingenieros y administradores de TI deberían conocer CADA SO muy bien. No solo “bueno”, sino muy bien. Y no estar “sesgado por el producto” como lo son tantos desde 1994 (um … sí, eso significa que ustedes son fanáticos de MS Windows). Todos los sistemas operativos.

¿Por qué?

Porque le permite a uno “pensar fuera de la caja”.

También amplía la “vista” (sin juego de palabras) de la persona: le da a uno la capacidad de resolver problemas con una comprensión más amplia de “el todo”. Herramientas. Son herramientas. El conocimiento es una herramienta. Cuanto más conocimiento, más herramientas.

Además, GNU / Linux impulsa una gran cantidad de cosas.

El conocimiento es poder. Úsalo.

Paz y bendiciones.

No es especialmente Linux, es decir, el sistema operativo, sino más bien un script de shell Unix como al usar el shell para llevar a cabo diversas tareas. Con la incorporación de Microsoft de bash-on-windows, tener una máquina Linux es solo un poco ventajoso sobre otros sistemas operativos. Algunos comandos de shell útiles que todo programador debe saber son

grep: se utiliza para buscar patrones en archivos. Yo uso grep PATTERN -ri menudo

find: otra herramienta de búsqueda más poderosa que grep. find . -regex PATTERN -delete find . -regex PATTERN -delete encuentra nombres de archivo que coinciden con un patrón y los elimina

du : averigüe cuánto espacio ocupa un archivo o carpeta. Me gusta du -sh FOLDER

curl o wget : descargue archivos desde la línea de comandos o realice solicitudes http como GET, POST, etc. Descargue un archivo con wget -O filename url

cortar : extraer columnas de archivos CSV simples. Extraiga la columna 5 de un archivo delimitado por espacios con cut -f5 -d' ' FILE

git : la mayoría de las personas se escapan sin esto porque la mayoría de los entornos de desarrollo vienen integrados con git, por lo que los comandos se exponen como botones en lugar de algo para escribir. Últimamente descubrí la capacidad de enviar un solo archivo con git commit -m “my very very useful message” -- myfile

Así que ahí lo tienes, no necesitas Linux, solo necesitas conocer algunos comandos de shell y estás bien.

Soy un usuario y desarrollador de Windows, he sido casi toda mi vida.

Diré que es importante que las personas aprendan qué es Linux y cómo usarlo, al menos en un nivel básico.

La razón de esto es bastante simple, es de código libre y abierto.

Eso significa que para fines de I + D es mucho más útil que la tecnología patentada porque no hay un costo inicial, no hay secretos de propiedad ocultos, no hay restricciones en su uso y se reduce el riesgo de que alguien lo demande por ‘tomar prestada’ su tecnología si su nuevo invento se vuelve salvaje exitoso.

Tomemos a Android, por ejemplo, es uno de los sistemas operativos más populares del mundo (está en más dispositivos que Windows o iOS). No habría sido posible que Google tuviera tanto éxito en un período de tiempo tan corto si no se hubiera creado sobre tecnologías de código abierto como el kernel de Linux.

Bitcoin es otro ejemplo. Debido a que se basa completamente en la tecnología de código abierto desarrollada originalmente con Linux, ninguna compañía puede demandar su existencia o cerrarla.

Linux está libre de interferencia y explotación corporativas y es por eso que las personas deberían al menos tener una comprensión básica de cómo usarlo.

More Interesting

¿Es importante tener un título en informática? ¿Qué sucede si soy realmente bueno programando pero no tengo uno (estudié en la programación de bootcamps)?

Cómo actuar cuando un programador colega oculta errores en lugar de corregirlos

¿Cómo se convierte uno en un codificador independiente?

¿Cómo es ser ingeniero para un equipo F-1? ¿Hay algún papel para los ingenieros informáticos: sistemas integrados, controles, diseñadores de circuitos y demás?

En un momento me encanta bloguear, codificar y diseñar, y en el otro terminé siendo profesor de economía. ¿Cuál seguiré durante los próximos 10 años?

¿Cómo encontraste tu primer trabajo de programador?

¿Qué es mejor, CSE en BVBCET (KLE Tech University) o CSE en NMAMIT?

¿Es una buena idea vincular a su GitHub si su código apesta?

¿Debe un recién graduado de CS comenzar en SPAWAR, o una pequeña empresa que tiene menos de 10 personas? Planeo asistir a la escuela de posgrado en dos años. ¿Cuál es bueno para el crecimiento profesional y la escuela de posgrado?

¿Es necesario hacer un B.Tech para convertirse en un programador de computadoras?

¿Cuál es la forma más rápida de convertirse en desarrollador de Salesforce? ¿Cuáles son las perspectivas de carrera en los próximos 10-15 años?

Cómo implementar un programa exitoso de defensa de los empleados

¿Puedo inmigrar a Australia como residente permanente trabajando como ingeniero de software independiente?

Cómo ganar dinero teniendo buenas habilidades de programación en C (ser estudiante)

¿Debo obtener un título de CS si no puedo encontrar un trabajo en desarrollo web?