Quiero seguir mi carrera como programador; ¿Debo estar usando Linux sobre Windows?

A2A Esto depende de la plataforma que desee desarrollar. Mi experiencia es Oracle Database en Solaris, por lo que prefiero los sistemas operativos tipo UNIX como Linux: actualmente utilizo OS X en una Mac.

Dado que puede poner Ubuntu en Windows, tendrá acceso a ambos entornos desde su PC, por lo que lo importante es por qué tipo de carrera de programación desea seguir y qué recursos necesita para hacer el trabajo. Si observa sus diversas opciones de capacitación, generalmente encontrará que se pueden hacer tanto en Windows como en Mac.

Es demasiado temprano en su carrera para elegir el sistema operativo en lugar de otro. Le sugiero que mire los diversos cursos y vea si hay algo que le parezca interesante. Por ejemplo, si estaba considerando aprender sobre estructuras de datos, creo que encontraría útil mi blog Cómo prepararse para la investigación, un ejemplo de estructuras de datos. Consulte también Cómo elegir cursos de informática para otras opciones de capacitación.

Entonces, en respuesta a sus preguntas, lo que determina la elección de la plataforma es la implementación. Si está hablando de backend en un entorno Windows, su elección sería Windows Server. Si se trata de un entorno Oracle, sería Solaris y / o Linux. La interfaz sería teléfonos móviles como iOS 7.

Buena suerte. JLee

En general, la programación es OS neutral. Aprender a programar se trata principalmente de aprender el lenguaje de programación, que se puede aplicar a casi cualquier situación. Incluso los lenguajes tradicionalmente específicos del sistema operativo ya no son realmente comunes. Por ejemplo, puede escribir C # (un lenguaje desarrollado por Microsoft) en Linux usando el marco Mono.

Sin embargo, conocer Linux te dará más dinero (en teoría) porque hay menos personas que conocen Linux. También hay una variedad más amplia de idiomas utilizados en Linux en comparación con Windows. Si bien la mayoría de los idiomas son multiplataforma, la mayoría de las personas conocen los lenguajes .NET de Windows, por lo que los programadores de Windows son casi un cliché.

Puede usar lenguajes de código de bytes, como Java o Python, que son inherentemente multiplataforma ya que está escribiendo en una máquina virtual, en lugar del sistema operativo real; la máquina virtual maneja las funciones específicas de la plataforma por usted.

La única otra cosa a tener en cuenta son las llamadas al sistema específicas del sistema operativo. A menos que esté creando un programa bastante genérico, tendrá que saber cómo trabajar con el sistema operativo subyacente, por ejemplo, cómo manipular archivos. Lo bueno es que el lenguaje de programación se encarga de la mayor parte de esto, por lo que siempre y cuando escribas llamadas comunes al sistema, no debería tomar mucho, si es que hay alguno, disputas para que tus programas sean multiplataforma. Lo que pierde al optar por un programa genérico es un código optimizado, es decir, es posible que su código no se ejecute de manera tan eficiente como el código específico del sistema operativo.

Entonces, si bien enfocarse en Linux puede generarle más dinero, puede ser más difícil encontrar un trabajo. La buena noticia es que hay varios idiomas que funcionan tanto en Linux como en Windows; si los aprende, debería poder trabajar en cualquier entorno (solo aprenda los conceptos básicos de Linux para saber cómo funciona el sistema).

Depende de lo importante que sea el dinero para ti. Según una encuesta de Dice.com:

Los profesionales de Linux están recibiendo aumentos salariales a casi el doble de la tasa de otros profesionales de la tecnología.

Más: la demanda de experiencia en Linux impulsa las prioridades de contratación

Esto es más o menos lo que esperarías de la economía de los bienes complementarios, porque el tiempo del programador es un complemento de las licencias de plataforma. Una plataforma cara y de marca tiende a hacer que los programadores tengan un valor inferior y se conviertan en productos básicos. Una plataforma gratuita y comercializada tiende a aumentar el valor de mercado de los programadores que pueden usarla.

Los tipos de aplicaciones de escritorio que históricamente han empleado a un gran número de desarrolladores de Microsoft Windows se están moviendo a Software-as-a-Service, que se encuentra principalmente en Linux. Sin embargo, si te identificas con el fandom de Windows, probablemente no valga la pena renunciar a algo que amas solo por el dinero.

Creo que el software de código abierto es el camino a seguir y que Windows no va a durar demasiadas décadas, por lo que idealmente debería investigarlo.

¿Por qué pienso eso? Hace diez años, muy pocas personas ejecutaban software de código abierto. Claro, en el mundo del servidor, Linux domina bastante, pero no tanto en el escritorio. Ahora, la situación está cambiando:

  • Microsoft es Open Sourcing .NET framework
  • Microsoft está invirtiendo dinero en la biblioteca OpenSSL, que alimenta la mayoría de las cosas criptográficas en el mercado (piense en el 90% de todos los servidores, cosas críticas)
  • ~ 80% de los teléfonos ejecutan Android, que utiliza un kernel de Linux personalizado y código abierto
  • ~ 20% de los teléfonos ejecutan iOS, que es prácticamente UNIX (como Mac OS X)
  • a partir de 2014, la mitad de las personas que acceden a Wikipedia usan el código abierto Google Chrome para hacerlo, Internet Explorer solo lo usa el 25% de las personas
  • opinión personal: las herramientas de línea de comandos ( gcc , make , vim , git ) son mucho más potentes para la programación que algo como Visual Studio
  • En la actualidad, se desarrolla mucho en GitHub, que se centra principalmente en sistemas operativos tipo UNIX (git es una herramienta de línea de comandos, aunque ahora hay GUI para usuarios de Windows)
  • C es uno de los lenguajes de programación más fundamentales y, sin embargo, Microsoft aún no admite el estándar C99, que, como su nombre indica, se lanzó en 1999

Creo que realmente se beneficiaría de seguir las tendencias actuales, lo que significa que debería considerar algunas de las cosas que están ganando popularidad (piense en las aplicaciones de iPhone / Android) en lugar de enfocarse en algo que no es popular porque es bueno, sino porque la compañía tiene contratos con proveedores para tenerlo preinstalado (Windows) o porque las personas son demasiado flojas para instalar cualquier otra cosa (Internet Explorer).

Otras cosas que vale la pena considerar son JavaScript, porque:

  • ahora hay marcos como Apache Cordova que puedes usar para escribir aplicaciones móviles (iOS / Android) con JavaScript
  • Hay implementaciones rápidas y confiables de JavaScript en buenos navegadores modernos (V8 en Chrome, SpiderMonkey en FireFox)
  • puede desarrollar aplicaciones de servidor en Node.js, que utiliza la base de código V8 para proporcionarle JavaScript asíncrono increíblemente rápido para servidores.

[fuente de participación en el mercado telefónico: businessinsider, fuente de estadísticas del navegador: wikipedia]

Tampoco, pruebe el motor de aplicaciones de Google, Windows Azure y Amazon EC2. Los sistemas operativos son una gran responsabilidad, versiones, parches, hardware, etc. Intente codificar sin uno … solo aplicaciones + datos + servicios. Céntrate aquí:
Al menos, este es el entorno de implementación, aunque el entorno de desarrollo puede ejecutarse en un sistema operativo. Windows es más fácil de instalar. Linux, aunque es una mierda en la experiencia de instalación, no se ralentiza con el tiempo (a excepción de Ubuntu). Si realmente está en el espíritu de la nube, su IDE debe estar basado en el navegador. Aunque lo intenté y realmente apesta.

Depende del lenguaje de programación que elija, por ejemplo,

  1. Si quieres crear aplicaciones ios, es mejor usar Mac,
  2. Si desea crear aplicaciones .net de las que necesita para usar Windows,
  3. Hay algunos lenguajes de programación que son más compatibles con Linux.
  4. Ubuntu y Debian son los sistemas operativos favoritos para la implementación de aplicaciones web hoy en día.
  5. El terminal de Linux es mucho más poderoso y más divertido que el de Windows.

Inclínese hacia Linux, algunos de los pocos sabores principales, pero quédese con ambos. Puede tener fácilmente ambos mundos en la misma máquina, gracias a las máquinas virtuales. Concéntrese en CLI, no confíe en ninguna GUI.

Por experiencia, las personas a menudo hacen esta pregunta porque quieren una excusa para probar algo diferente. Probablemente haya leído comentarios y publicaciones sobre cuán genial es Linux para desarrolladores y programadores por igual y no puede evitar sentir que se está perdiendo. Eso es lo suficientemente justo.

Mi sugerencia es intentarlo y ver a dónde te lleva. Si no te gusta, regresa. Instale Virtualbox o VMware player si es necesario.

Solo recuerda que el sistema operativo es una herramienta, no una religión. Buena suerte.

Es una cuestión de preferencia. Pero debe estar familiarizado con el entorno Linux y con cómo operarlo y programarlo. Esto es esencial, especialmente si vas al desarrollo web.

Depende de la plataforma a la que busque apuntar.

Si está interesado en desarrollar programas de Windows y utiliza lenguajes como C # /. NET y realmente le gusta Visual Studio (una de las mejores cosas del desarrollo de Windows), hágalo.

Cualquier otra cosa, ve por Linux. ¿Por qué? Porque aprenderás mucho. A diferencia de Windows u OS X, donde las cosas principales están ocultas bajo mucha abstracción, Linux está totalmente abierto. Aprenderá mucho sobre los conceptos del sistema operativo y también sobre las utilidades y programas de GNU que se incluyen. Incluso puede contribuir con sus habilidades de programación en beneficio de su sistema operativo.

No diría que Windows es una muy mala elección, pero Linux es mejor para ti.

Las distribuciones de Linux son más divertidas y hay más para probar que las de Windows, así que úselo 🙂

Ciertamente depende del tipo de programación que esté viendo. A menos que tenga una razón específica para estar en Windows, Linux es el camino a seguir para la programación.

Completamente de usted.
Pruebe ambas plataformas y quédese con la que le guste / con la que se sienta cómodo.

Esa no es la primera pregunta que hacer.

La primera pregunta es qué quiere programar, o dicho de otro modo, ¿qué quiere como profesión? ¿Administrador de Linux? Administrador de Windows? Programador de juegos? Programador de sistemas? ¿Desarrollador web? Programador de código abierto?

Cada uno de esos afectará sus elecciones. Cuando sabes lo que quieres hacer y lo que quieres como profesión, la respuesta es simplemente: usa lo que todos los demás estén usando.

Si está aprendiendo a programar en este idioma o en otro, ¡solo porque sí! – entonces yo diría que use Linux o Unix porque ahí es donde están todos los idiomas libres, y también los de primera clase.

No hay tal cosa como ser un “programador” como uno no es un “médico”. Debe decidir el tipo específico de programador que desea ser, el tipo de programas que desea escribir.

Primero debe tomar esa decisión, luego elegir un sistema operativo y un idioma.

Por ejemplo, si desea escribir aplicaciones de escritorio, Windows sería su opción número 1, Mac en segundo lugar, y Linux apenas aparecería en la imagen.

Si desea escribir aplicaciones móviles, obtenga una Mac y escriba para iOS, con Android como segundo, y Windows apenas aparecería en la imagen.

Si desea hacer un desarrollo del lado del servidor para aplicaciones web, entonces LAMP es una buena opción, pero también lo es IIS. El servidor Mac apenas aparece en la imagen, pero el desarrollo sería el mismo que el de LAMP.

Si desea hacer un desarrollo web del lado del cliente, entonces no importa en qué sistema operativo se encuentre, es todo lo mismo.

Use las herramientas adecuadas para el trabajo correcto.

Tanto Linux como Windows son plataformas esenciales. Debe aprender ambos (al menos lo básico) para saber exactamente dónde usar qué o si uno es mejor que el otro. La experiencia es el mejor maestro.

Aunque Linux es un tipo / marca de Unix, todavía es más amplio que Windows. Aprender Unix te dará una gama más amplia de comprensión y de poder aprender otros idiomas más fácilmente.
Dicho esto, dado que es probable que más personas elijan ese camino, puede haber una mayor demanda en aproximadamente 10 años para los programadores de Windows.
Realmente necesitas decidir cuál es tu objetivo real.

Elige lo que quieras.

En algún momento llega un momento en el que te das cuenta de que te has vuelto laico de cualquier plataforma / tecnología y piensas que lo que importa es la lógica detrás de ellas. Pero usar Linux te lleva allí más rápido.