Soy un programador PHP / Python que aprende Java y C # (.NET).
Mi sistema operativo principal de desarrollo es Windows 7, pero he usado Linux y actualmente inicio dual con Ubuntu. Sin embargo, mi conocimiento de Linux es bastante limitado. Puedo trabajar con la línea de comandos en tareas simples, pero eso es todo. No hago ningún script de shell y no conozco muchos comandos importantes.
Mis intereses son el desarrollo web, las aplicaciones móviles y tal vez algunas cosas integradas en el futuro. ¿Serán útiles las habilidades de scripting de shell para estos intereses y, de ser así, cómo?
web-development
linux
Maxtor
fuente
fuente
Respuestas:
Si estoy codificando una aplicación de Windows (o una aplicación de Mac), ¿por qué debería necesitar conocer Linux? ¿Debería un mecánico de Ford conocer tractores John Deer? Todo depende de lo que esté haciendo, profesionalmente o en su propio tiempo de "pasatiempo".
Ahora, no está de más saberlo. De hecho, creo firmemente en "cuanto más sepa, mejor estará"
fuente
Si eres un programador de PHP, definitivamente deberías conocer Linux. PHP fue creado en Linux, y PHP es una parte importante de la pila LAMP: Linux + Apache + MySQL + PHP. Incluso si tiene la oportunidad de desarrollar para servidores Windows ahora, su próximo trabajo probablemente lo hará desarrollar para servidores Linux, y necesitará estar familiarizado con el entorno Linux para que no esté en conflicto con los ismos específicos de Windows de PHP.
En el espacio de la aplicación móvil, saber que Linux (lamentablemente) tendrá poca relevancia para los entornos para los que se está desarrollando. iPhone OS no tiene nada que ver con Linux, y Android te tiene tan cerca de una máquina virtual que nunca sabrás que hay Linux debajo de ti. Podrías programar para Linux en Meego o Maemo, pero esos no tienen la popularidad del iPhone y Android.
En el espacio integrado, que tiene que saber de Linux. Windows integrado es raro, pero Linux integrado es bastante común. (Por supuesto, la programación integrada de metal desnudo también es bastante común, por lo que depende de dónde quiera ir).
Si aprende Linux en profundidad durante varios años, tendrá cierto nivel de comprensión de cada parte del sistema desde el núcleo, a través del proceso de arranque, hasta la línea de comandos y la GUI.
fuente
Hay un cierto grado de 80/20 pensando que puede aplicar aquí. En realidad, no lleva mucho tiempo aprender los conceptos básicos de cómo funciona Linux y los comandos básicos que necesita saber de Shell. Del mismo modo, la configuración básica de Apache es muy conveniente si la necesita. No necesita dedicar años de su vida a ello, pero vale la pena aprender lo básico que podría obtener al ejecutar su propio servidor si fuera necesario.
Sin embargo, es una línea muy fina. Si no tiene cuidado, puede encontrar rápidamente que Windows comienza a molestarlo a medida que se acostumbra a lo que ofrece Linux ...
fuente
No tiene que aprenderlo, pero lo convertirá en un mejor programador. Aprenderá a hacer las cosas de una manera diferente a la de Windows. El uso de cualquiera de los shells * sh eventualmente conducirá a secuencias de comandos y el uso de expresiones regulares, automatizar instalaciones, analizar archivos grandes, etc.
No me importa que me burlen por no saberlo, por mucho que me importe lo genial que es cada vez que aprendo cómo hacer algo más en Linux. Sigue mejorando cada vez más con cada bit nuevo.
Powershell tiene muchas cosas que provienen del mundo nix, finalmente se dieron cuenta de que para tener automatización necesitas una buena consola (felicitaciones a MS por eso). Tanto Perl como Python parecen ser una mezcla de C, bash, sed, awk, todo enredado en algo bueno a su manera.
Por lo menos, tendrá algo más que incluir en su currículum, pero eso no es lo mejor que obtendrá.
Estoy seguro de que encontrarás en tus propias cosas que te harán decir: "¡Guau, eso es genial!" La primera fue poder "matar" a Apache usando una señal USR1 para que vuelva a cargar un nuevo archivo de configuración y reinicie los registros, sin detener el servicio y continuar recibiendo conexiones. También ssh y rsync, Dios mío, ¿por qué MS no los porta?
fuente
No te hará daño. Incluso en una compañía de Microsoft, es cada vez más probable que se encuentre con al menos algunos servidores Linux. Stack Overflow, por ejemplo, usa Linux para sus equilibradores de carga. Esto es especialmente cierto cuando la virtualización entra en juego.
Como programador, podría mejorar si considera familiarizarse con POSIX, no solo con una única variante similar a UNIX. Si bien tiene algunas peculiaridades, representa un gran esfuerzo que se realizó en un increíble intento de establecer una interfaz estándar que sea (en su mayoría) portátil en todos los entornos similares a UNIX. Tenga en cuenta que muchos sistemas similares a UNIX no son 100% "posixly correctos", pero es un buen punto de partida.
Como solo un usuario casual, solo puedo sugerir que es divertido hurgar en algo nuevo y aprender cosas nuevas. Supongo que es posible ser un 'gurú' con todos los sistemas operativos que uno pueda pensar, pero no creo que sea el esfuerzo más útil para un programador. Aún así, un buen conocimiento de las cosas que puede encontrar es bueno ... y, según su pregunta, es probable que encuentre Linux en el futuro.
fuente
Sí, pero no parece que necesite estudiarlo activamente.
Para mí, mi familiaridad con Linux se desarrolló a través del uso de mi uso como sistema operativo de trabajo. Poco a poco aprendí las cosas que necesitaba saber a medida que surgían, y continúo haciéndolo. Internet está lleno de recursos sobre cómo hacer casi cualquier cosa que necesite para wrt linux, por lo que le sugeriría que sea bueno para leer las páginas del manual y la documentación y deje que su cerebro absorba (y olvide) los detalles de cómo lograr tareas específicas a medida que avanza .
Dicho esto, sin duda hay algunos comandos que te rechazarán del mundo de Linux por no tener una comprensión básica de.
fuente
En los últimos cuatro de los cinco trabajos en los que he estado, los desarrolladores y QA (al menos comenzaron) trabajaron en Windows, pero los servidores de prueba y producción eran Linux / UNIX. Todos ellos han necesitado conocer al menos una pequeña cantidad de UNIX para al menos poder acceder a los servidores de prueba y mirar los registros o depurar un programa en ejecución en el entorno 'real'. Muy poco desarrollo está destinado a Windows en las compañías que han estado en los últimos 20 años.
Haciéndose eco de otros aquí, muy poco puede ser "necesario" para su trabajo o carrera, pero le ayudará a comprender su propio trabajo, los beneficios y las limitaciones del idioma o sistema que está utilizando.
fuente
En mi humilde opinión, para un programador competente que conozca Linux / Unix sería un gran paso hacia la filosofía de Unix aún más importante
fuente
Cuando tomé el curso de Informática de Sistemas Operativos, estudiamos sistemas operativos basados en UNIX e hicimos nuestro trabajo en RedHat porque era de código abierto y porque podíamos ver el código y porque podíamos hacer cosas con él que simplemente no se podían hacer en Windows
Diría que si vas a aprender los fundamentos de cómo funcionan los sistemas operativos, probablemente deberías tener algo de experiencia con Linux, incluso si es solo en un entorno académico.
Acabo de volver a Windows 7 desde Ubuntu 10.04. Me siento un poco perdido sin grep y algunas de las otras herramientas de línea de comandos. Prefiero desarrollarme en un entorno Linux porque siento que el sistema es más propicio para usuarios avanzados y desarrolladores.
Conozco realmente buenos programadores .NET que salieron de la universidad y que no saben nada sobre Linux, por lo que no es un requisito, pero esperaría que cualquiera con más de 5 años de experiencia en programación haya estado expuesto a Linux de una forma u otra. tiempo en su carrera.
Tienes que ser el juez de lo que te enfocas; sin embargo. Si actualmente existe un camino para desarrollar aplicaciones móviles, y saber que Linux no es realmente un requisito, entonces quizás se centre en aprender más sobre los SDK móviles en lugar de Linux. Hay una compensación para todo, y parece que tienes una exposición básica a Linux donde puedes aprender más sobre él si es necesario.
fuente
¿Alguno de los siguientes te molesta?
Hay toneladas de oportunidades laborales y carreras que aún puede seguir. No estoy diciendo que ninguno de estos 'debería' molestarte. Solo sea honesto consigo mismo y vigile la industria en general y Linux en particular para ver si sus caminos pueden cruzarse. Sin duda, podrías resolverlo cuando llegue el momento. Quién sabe, un proyecto de Linux puede venir mañana.
fuente
Siempre he codificado en el entorno de Windows. Para mí, Linux solía ser otro sistema operativo que tendría como respaldo en caso de que mi Windows tuviera problemas. Solo conocía comandos básicos y todo lo que intenté hacer parecía difícil. Pero ahora, en mi trabajo actual como desarrollador web, todos usamos Linux, así que me veo obligado a aprenderlo y usarlo para todo. Cuanto más lo uso, más me gusta y creo que es mucho más productivo y flexible. Lamento no haber jugado más con Linux antes. Ahora solo me estoy poniendo al día.
Entonces sí, debes aprenderlo siempre que puedas.
fuente
Linux es una herramienta en su caja de herramientas de la misma manera que Windows es "solo" una herramienta. Tener fluidez en ambos le permite hacer algunas cosas mejor, pero es irrelevante para otras cosas.
Personalmente, he encontrado que Linux en forma de Ubuntu es muy útil porque me permite crear y mantener fácilmente cosas como un servidor de base de datos, un servidor de correo, un servidor web de prueba y mucho más en máquinas virtuales sin tener que considerar los costos de licencia (más las versiones del servidor requieren menos recursos que Windows). Si no haces ninguna de estas cosas, no creo que Linux te importe.
fuente
Sepa lo suficiente que si tiene la intención de implementar en un sistema operativo en particular, entonces puede asegurarse de que su aplicación funcione en él, pero de lo contrario ... no tiene que saber nada / todo.
fuente
A menos que esté haciendo .NET, prefiero usar Linux. La pila LAMP me parece más natural que WAMP.
Definitivamente recomendaría aprenderlo si tiene algún interés en aprender algo que no sea Microsoft.
fuente