¿Qué lenguajes de programación debo aprender para convertirme en desarrollador de Ubuntu? [cerrado]

22

Aunque he usado NetBeans una vez para un proyecto, ¿qué idiomas necesito aprender para convertirme en un desarrollador de Ubuntu completo?

Mi proyecto en NetBeans (solo Java) fue diseñar una calculadora (relativamente fácil). Además, ¿cómo aprendemos a crear visores de imágenes, navegadores, etc.?

Además, ¿cuál sería el mejor idioma para ciertas aplicaciones?

fffdf
fuente
3
Es bastante subjetivo ... Ejemplo: perl puede ser un sustituto de python y viceversa, pero encontrará usuarios de perl / python que desprecian a python / perl por la única razón que no sea la falta o el forzamiento de la sangría;)
Rinzwind
Si puede ser más específico sobre lo que desea escribir, podemos responderle mejor, pero bash entonces ..., es probable que obtenga muchas opiniones diferentes y puede que se lo pregunte mejor en los foros de Ubuntu: Desarrollo y programación
Warren Hill

Respuestas:

31

La respuesta es simple y no es realmente útil. Cualquier idioma que se necesite. Ubuntu es una tonelada de software, algunos escritos en C, algunos C ++, algunos en Python, Perl, bash ... y otros. Definitivamente deberías aprender scripts con bash, y deberías elegir un lenguaje como Perl o Python, posiblemente el último. Además, aprender una buena C antigua nunca hace daño a nadie: aprende más sobre cómo funcionan los programas, qué son las bibliotecas, muchas cosas sobre otras herramientas.

De lo contrario, primero encuentre una tarea, un nicho, algo en lo que deba trabajarse o algo que falta o algo que sea fascinante y le gustaría trabajar en ello. Y luego descubra qué idioma será bueno para ese propósito.

enero
fuente
55
Simple pero preciso;) Cualquiera sea el idioma que se necesite para hacer el trabajo de la manera más eficiente.
Rinzwind
3
Como OP menciona que tiene experiencia en Java, vale la pena mencionar que Java también funciona bien en Ubuntu. Ni siquiera necesita volver a compilar (al portar desde otro sistema operativo)
BlueRaja - Danny Pflughoeft
@ BlueRaja-DannyPflughoeft A menos que esté desarrollando una aplicación que requiera llamadas de sistema de bajo nivel. A menudo verá aplicaciones que proporcionan bibliotecas específicas de la plataforma para estas funciones. Pero en general sí, tienes razón.
Dennis Eichhorn
Ofc que cualquier cosa que pueda compilarse para una determinada arquitectura de CPU puede hacer el trabajo. Hay aspectos más importantes a considerar cuando alguien quiere desarrollarse para una plataforma específica. Como cuánto tiempo tiene esa persona para comenzar, si quiere ocuparse de la gestión de la memoria, si quiere hacer programas multiplataforma, qué tipo de programas quiere hacer, sabe trabajar en un equipo , ¿Quiere hacer computadoras que sirvan sándwiches de tocino mientras masajean a los usuarios o un sistema de aire acondicionado móvil, el cielo es el límite que algunos dicen, etc ...
userDepth
7

Si tiene la intención de escribir aplicaciones para Ubuntu que puedan ejecutarse en múltiples dispositivos y factores de forma (escritorio, teléfono, tableta, TV ...), recomendaría aprender QML y JavaScript . Esencialmente:

  • Use QML para escribir aplicaciones convergentes de Ubuntu que se ejecuten en factores de forma y dispositivos
  • Use JavaScript para complementar QML al escribir aplicaciones de Ubuntu y escribir aplicaciones web de Ubuntu
David Planella
fuente
¿Puedes dar un poco más de detalle sobre por qué estos dos son adecuados?
don.joey
Hecho, espero que proporcione una orientación clara :)
David Planella
5

Deberias aprender:

  • JavaScript: como la mayoría de los frameworks UI / env. están / estarán basados ​​en JavaScript; lo necesitará de todos modos algún día u otro.

Luego, para todo lo demás, necesitará algo más:

  • C ++ / C
    • Pros: increíblemente rápido, acceso a funciones de bajo nivel
    • contras: mucho tiempo para aprender a escribir algo estable, comunidad horrible
  • Rubí:
    • Pros: fácil de aprender, muy agradable de escribir, excelente comunidad
    • Contras: puede ser lento para alguna tarea (realmente)
  • Pitón:
    • Pros: muchos paquetes están en Python, gran comunidad, rápido, etc.
    • contras: python 3 (solo kindin ')

Pero todavía hay muchos otros lenguajes como Java, etc., sin embargo, lo mencionado anteriormente puede ser más fácil para comenzar, excepto C / C ++ pero que vale la pena aprender, ya que podrá usarlo con muchos otros lenguajes (por ejemplo, ampliar pitón, rubí, etc.)

avetis.kazarian
fuente
1

El trabajo de programación consiste tanto en el código real como en el modelo mental que se encuentra debajo.

Enseñarse un lenguaje de programación es fácil siempre que tenga los conceptos básicos de cómo funcionan las computadoras, sin embargo, para hacer contribuciones útiles a un proyecto, también necesita comprender el diseño detrás de él.

Por lo tanto, mi sugerencia es unirse a un proyecto en el que tenga un interés personal y lo use con frecuencia, y luego comenzar con un trabajo de garantía de calidad:

  • Si hay un informe de error que es algo vago, intente replicar el problema y mejore la descripción. Puntos de bonificación para una prueba automatizada.
  • Si hay un error antiguo que no ha recibido atención durante un tiempo, intente ver si todavía existe y actualice el informe de error
  • Si hay fallas en el testuite, intente averiguar qué sucede para que esta prueba falle

Esto le permitirá aprender sobre la parte difícil y conceptual del proyecto en una curva de aprendizaje manejable, mientras mantiene su interés (porque es un proyecto que le interesa) y le da acceso a la comunidad en torno al proyecto. El lenguaje de programación real (el que se use en el proyecto) es algo que puede aprender sobre la marcha.

Para ver un ejemplo de una entrada algo gradual, mire mis contribuciones al proyecto Beignet . El conocimiento del lenguaje de programación (C / C ++ en ese caso) ciertamente no es el factor limitante aquí.

Simon Richter
fuente
0

Deberías aprender ... ¡todos ellos! O más bien Metà -Aprender todos los idiomas. Cuando conoces dos o tres idiomas, puedes aprender rápidamente cualquier idioma nuevo que sea similar a estos. Si conoce suficientes idiomas, los conoce "virtualmente" a todos y, lo que es más importante, comprende lo que es parte del lenguaje y lo que pertenece a la programación independientemente del lenguaje. En definitiva, los lenguajes específicos son irrelevantes.

Por lo tanto, es posible que desee aprender Java, C, Scheme, OCaml, Assembly (al menos dos arquitecturas), Forth y un poco de Prolog, no necesariamente en ese orden. El segundo idioma será el más difícil, ya que tendrás que aprender nuevos conceptos y olvidar conceptos que aprendiste con el primer idioma pero que resultaron estar equivocados. Después es fácil y solo se vuelve más fácil.

Luego, cuando se trata de una tarea de desarrollo específica, utilice el lenguaje más adaptado basado en la disponibilidad y el soporte de compiladores y bibliotecas, el conocimiento de los compañeros de trabajo, las restricciones políticas de la administración, etc. La flexibilidad de la mente es la clave. Saber muchos idiomas otorga esta flexibilidad.

Thomas Pornin
fuente
¿Todos ellos? De Verdad? Eche un vistazo aquí para ver el clásico programa "HelloWorld" en unos pocos. La mayoría de los programadores solo conocen algunos idiomas. Solo es importante saber los que necesita.
Warren Hill