Quels langages de programmation dois-je apprendre pour devenir développeur Ubuntu? [fermé]

22

Bien que j'aie déjà utilisé NetBeans pour un projet, quelles langues dois-je apprendre pour devenir un développeur Ubuntu à part entière?

Mon projet dans NetBeans (Java uniquement) était de concevoir une calculatrice (relativement simple). De plus, comment apprend-on à créer des visionneuses d'images, des navigateurs, etc.?

De plus, quelle serait la meilleure langue pour certaines applications?

fffdf
la source
3
C'est plutôt subjectif ... Exemple: perl peut se substituer à python et inversement mais vous trouverez des utilisateurs perl / python qui méprisent python / perl sans autre raison que le manque ou le forçage de l'indentation;)
Rinzwind
Si vous pouvez être plus précis sur ce que vous voulez écrire, nous pourrons peut-être mieux répondre, mais bash alors ..., vous obtiendrez probablement beaucoup d'opinions différentes et vous feriez mieux de le demander dans les forums Ubuntu: Développement et programmation
Warren Hill

Réponses:

31

La réponse est simple et pas vraiment utile. Quelle que soit la langue requise. Ubuntu est une tonne de logiciels, certains écrits en C, certains C ++, certains en Python, Perl, bash ... et d'autres. Vous devriez certainement apprendre le script avec bash, et vous devriez choisir un langage comme Perl ou Python, peut-être ce dernier. De plus, apprendre un bon C à l'ancienne n'a jamais fait de mal à personne - vous en apprendrez plus sur le fonctionnement des programmes, les bibliothèques, beaucoup d'autres choses sur d'autres outils.

Sinon - trouvez d'abord une tâche, une niche, quelque chose qui doit être travaillé ou quelque chose qui manque ou quelque chose qui est tout simplement fascinant et vous aimeriez y travailler. Et puis découvrez quelle langue sera bonne à cet effet.

janvier
la source
5
Simple mais précis;) Quelle que soit la langue nécessaire pour effectuer le travail le plus efficacement possible.
Rinzwind
3
Puisque OP mentionne qu'il a de l'expérience en Java, il convient de mentionner que Java fonctionne également bien sur Ubuntu. Vous n'avez même pas besoin de recompiler (lors du portage à partir d'un autre système d'exploitation)
BlueRaja - Danny Pflughoeft
@ BlueRaja-DannyPflughoeft Sauf si vous développez une application qui nécessite des appels système de bas niveau. Souvent, vous verrez des applications fournissant des bibliothèques spécifiques à la plate-forme pour ces fonctionnalités. Mais généralement oui, vous avez raison.
Dennis Eichhorn
ofc que tout ce qui peut être compilé pour une certaine architecture cpu peut faire le travail. Il y a des aspects plus importants à considérer lorsque quelqu'un veut développer pour une plate-forme spécifique. Comme combien de temps cette personne a-t-elle pour commencer, veut-elle s'occuper de la gestion de la mémoire, veut-elle faire des programmes multiplateformes, quel type de programmes veut-elle faire, sait-elle travailler en équipe , Veut-il faire des ordinateurs qui servent des sandwichs au bacon tout en massant les utilisateurs ou un système de climatisation mobile, le ciel est la limite certains disent, etc ...
userDepth
7

Si vous avez l'intention d'écrire des applications pour Ubuntu qui peuvent s'exécuter sur plusieurs appareils et facteurs de forme (ordinateur de bureau, téléphone, tablette, TV ...), je recommanderais d'apprendre QML et JavaScript . Essentiellement:

  • Utilisez QML pour écrire des applications Ubuntu convergentes qui s'exécutent sur des facteurs de forme et des appareils
  • Utilisez JavaScript pour compléter QML lors de l'écriture d'applications Ubuntu et pour écrire des applications Web Ubuntu
David Planella
la source
Pouvez-vous donner un peu plus de détails sur la raison pour laquelle ces deux sont adaptés?
don.joey
Fait, j'espère que cela fournit des indications claires :)
David Planella
5

Tu devrais apprendre:

  • JavaScript: comme la plupart des frameworks UI / env. sont / seront basés sur JavaScript; vous en aurez besoin de toute façon un jour ou l'autre.

Ensuite, pour tout le reste, vous aurez besoin d'autre chose:

  • C ++ / C
    • avantages: incroyablement rapide, accès à des fonctionnalités de bas niveau
    • inconvénients: beaucoup de temps pour apprendre à écrire quelque chose de stable, d'horrible communauté
  • Rubis:
    • Avantages: facile à apprendre, très agréable à écrire, grande communauté
    • inconvénients: peut être lent pour certaines tâches (vraiment)
  • Python:
    • avantages: beaucoup de packages sont en python, grande communauté, rapide, etc.
    • inconvénients: python 3 (juste kindin ')

Mais il existe encore de nombreux autres langages tels que Java, etc., cependant, ceux mentionnés ci-dessus peuvent être les plus faciles pour commencer, sauf C / C ++ mais qui méritent d'être appris car vous pourrez l'utiliser avec de nombreux autres langages (par exemple, étendre python, rubis, etc.)

avetis.kazarian
la source
1

Le travail de programmation se compose à la fois du code réel et du modèle mental en dessous.

S'enseigner un langage de programmation est facile tant que vous avez les concepts de base du fonctionnement des ordinateurs, mais pour apporter des contributions utiles à un projet, vous devez également comprendre la conception qui le sous-tend.

Ma suggestion est donc de rejoindre un projet qui vous intéresse personnellement et que vous utilisez souvent, puis de commencer par un travail d'assurance qualité:

  • s'il y a un rapport de bogue quelque peu vague, essayez de reproduire le problème et améliorez la description. Points bonus pour un test automatisé.
  • s'il y a un ancien bogue qui n'a pas retenu l'attention depuis un certain temps, essayez de voir s'il existe toujours et mettez à jour le rapport de bogue
  • en cas d'échecs de la suite de tests, essayez de savoir ce qui se passe pour que ce test échoue

Cela vous permettra d'en apprendre davantage sur la partie conceptuelle difficile du projet sur une courbe d'apprentissage gérable, tout en gardant votre intérêt (car c'est un projet qui vous intéresse) et en vous donnant accès à la communauté autour du projet. Le langage de programmation réel (celui qui est utilisé dans le projet) est quelque chose que vous pouvez prendre à la volée.

Pour un exemple d'une entrée quelque peu progressive, regardez mes contributions au projet Beignet . La connaissance du langage de programmation (C / C ++ dans ce cas) n'est certainement pas le facteur limitant ici.

Simon Richter
la source
0

Vous devriez apprendre ... tous! Ou plutôt méta- apprenez toutes les langues. Lorsque vous connaissez deux ou trois langues, vous pouvez rapidement apprendre toute nouvelle langue similaire à celles-ci. Si vous connaissez suffisamment de langues, vous les connaissez "virtuellement" toutes et, plus important encore, vous comprenez ce qui fait partie de la langue , et ce qui se rapporte à la programmation indépendamment de la langue. En fin de compte, des langues spécifiques ne sont pas pertinentes.

Donc, vous voudrez peut-être apprendre Java, C, Scheme, OCaml, Assembly (deux architectures au moins), Forth et un peu de Prolog, pas nécessairement dans cet ordre. La deuxième langue sera la plus difficile, car vous devrez à la fois apprendre de nouveaux concepts et oublier les concepts que vous avez appris avec la première langue mais qui se sont révélés erronés. Ensuite, c'est facile et ne devient que plus facile.

Ensuite, lorsque vous traitez une tâche de développement spécifique, utilisez le langage le plus adapté en fonction de la disponibilité et du support des compilateurs et des bibliothèques, de la connaissance des collègues, des contraintes de politique de la direction, etc. La flexibilité de l'esprit est la clé. La connaissance de plusieurs langues offre cette flexibilité.

Thomas Pornin
la source
Tous? Vraiment? Jetez un œil ici pour le programme classique "HelloWorld" en quelques uns. La plupart des programmeurs ne connaissent que quelques langues. Son seulement important de savoir ceux dont vous avez besoin.
Warren Hill