J'ai commencé ma carrière en programmation avec BASIC, en 9e année. J'ai appris un peu le BASIC en écrivant des programmes simples pour ajouter, soustraire et imprimer. Ensuite, je suis allé à l’université et j’ai pris l’informatique et l’informatique. La première année, on m'a enseigné le C et je le maîtrise bien.
Ensuite, j'ai appris le C ++ en deuxième année. Cela m'a juste appris une certaine connaissance de la POO. Maintenant, je fais du PHP (avec HTML). Je n'ai pas maîtrisé C ++, BASIC ou PHP. Je prévois maintenant de passer au développement mobile. Mais je sens que je n'ai pas tout couvert dans les langues que j'ai apprises.
Est-ce que c'est vraiment important?
Si vous êtes encore à l'université, cela ne devrait pas vous inquiéter pour le moment de ne pas avoir l'impression de tout couvrir dans l'une des langues que vous connaissez. Comprendre les théories fondamentales communes derrière ces langages est beaucoup plus important. Une fois que vous avez compris les bases, vous pouvez apprendre les détails des autres langues quand vous en avez besoin.
la source
Je crois que le plus important dans la programmation est de comprendre les différents paradigmes .
Dans votre question, vous avez mentionné la programmation orientée objet (OOP) . Si vous maîtrisez ce sujet, vous devriez pouvoir l'expliquer en utilisant uniquement du pseudo-code et essentiellement une représentation graphique de modélisation (telle que des diagrammes de classes UML).
Que vous décidiez d'utiliser Java, C ++ ou C # (...), cela dépend de vous ou de l'entreprise pour laquelle vous travaillez, mais ce qui est vraiment important, c'est de comprendre / reconnaître les différents problèmes et de choisir le meilleur modèle pour les résoudre . Un moyen très important de résoudre les problèmes de programmation consiste à utiliser les modèles de conception que vous pouvez découvrir dans cet ouvrage de référence .
En ce qui concerne les langages incorporés, je pense que l’important est de comprendre les différents problèmes associés à ces technologies.
Métaphoriquement, je comparerais cela à l'écriture d'un bon livre scientifique; ce qui compte, c’est la théorie que vous exposez, les problèmes que vous parvenez à résoudre, etc. Que vous écriviez le livre en anglais, en français ou en japonais n’est finalement pas si important.
Cela dit, il est également important de connaître les spécificités d'une langue particulière si vous souhaitez vous spécialiser dans cette technologie afin de l'exploiter de manière très efficace.
la source
À mon avis, il est inutile de changer de langue très fréquemment. Vous ne serez jamais vraiment saisir l' un d'eux. Surtout certains comme le C ++, où certaines personnes passent une décennie à écrire le langage et dont le code ressemble toujours à du C.
Si vous ne pouvez pas écrire les meilleures pratiques dans une langue, ne continuez pas, IMO. Cela signifie que couvrir plus d'un couple prendra plusieurs années, voire des décennies.
la source
Je pense que ça ne fera pas de mal d'apprendre un peu de plusieurs langues, mais en même temps, vous devriez en apprendre au moins une ou deux en profondeur.
la source
J'ai utilisé plusieurs langues au cours de ma carrière, comme AMOS Basic, Java, C ++, PHP, VB6, Delphi, etc. Aujourd'hui, j'utilise C #, JavaScript, Ruby et un peu de Clojure au travail, et j'ai également joué avec Pyhton, Erlang, Common Lisp et Scheme.
Mais cet automne, je voulais créer un calendrier de Noël spécial pour mon blog et j'ai décidé de me familiariser avec un problème particulier et de le résoudre en 24 langues supplémentaires. Ce fut une expérience formidable, j'ai beaucoup appris et je vous le recommande vivement si vous avez de l'expérience en programmation.
Ma réponse à vous est la suivante: Apprenez très bien quelques langues (elles devraient être très différentes), mais assurez-vous d’échantillonner et de vous familiariser avec de nombreuses langues.
Aujourd'hui, il est important de bien connaître à la fois la programmation fonctionnelle et la programmation orientée objet. Vous devez également être à l'aise dans un langage très statique et très dynamique.
PS: Mon blog est en norvégien, mais si vous souhaitez voir la liste des langues que j'ai couvertes, vous pouvez regarder ici .
la source
J'apprends ce que j'ai besoin d'apprendre dans une langue particulière lorsque j'ai besoin d'apprendre quelque chose de nouveau. Le "déclencheur" qui me dit que je dois approfondir une langue est qu'un morceau de code particulier a l'air laid ou maladroit, semble inaccessible ou est difficile à tester ou à commenter. Souvent, ces déclencheurs témoignent de mon manque de connaissance d'un idiome de programmation, d'un style, d'une structure de données, etc.
la source
Apprendre plusieurs langages de programmation est une bonne pratique et est nécessaire de nos jours; Autant de fois que vous ne pouvez pas toujours utiliser la langue de votre choix pour tout.
Les avantages de voir comment les autres langues fonctionnent vous aideront en tant que programmeur; même si, occasionnellement, lorsque vous sautez autour de vous, faites des erreurs syntaxiques (par exemple, vérifiez l'inégalité
!=
,~=
ou<>
). Vous devez toutefois veiller à apprendre davantage que la syntaxe d'une langue, mais également les meilleures pratiques dans une langue, ainsi que de bonnes compétences générales en ingénierie logicielle. Si vous avez appris le C puis le C ++, assurez-vous que lorsque vous écrivez du code C ++, il est dans le style du code C ++ (plutôt que simplement du C avec quelques nouveaux mots-clés. C’est-à-dire que vous avez plusieurs classes / objets, préférez les références / pointeurs intelligents sur les pointeurs bruts, etc.la source
il est bon d’étudier au moins les langues sous différents paradigmes de programmation! Langage procédural, déclaratif, fonctionnel, orienté objet, prototypique et dynamique - chaque classe de programmation offre son propre aperçu de la manière d’organiser et de résoudre un problème. Finalement, vous découvrez un ou plusieurs paradigmes avec lesquels vous êtes le plus productif et le plus heureux, et vous les utilisez.
la source
Définitivement pas. Bien sûr, vous voulez aussi vous assurer que vous apprenez différents styles de langues. Apprendre à la fois avec C # et Java ne vous ouvrira pas l'esprit, mais apprendre à Java et Haskell le fera.
Découvrez le livre Seven Languages in Seven Weeks , qui vous guidera dans une introduction à Ruby, IO, Scala, Erlang, Prolog, Clojure et Haskell. Si vous aimez les langues, vous allez adorer ce livre.
la source
Eh bien, C et C ++ ne vous feront aucun mal en programmation mobile. Vous pouvez utiliser les deux avec Cocoa Touch ou le NDK Android, et parfois vous avez besoin de performances. En outre, vous souhaitez parfois écrire parce que vous souhaitez écrire du code qui s'exécute sur plusieurs plates-formes. Dans ce cas, si vous n'utilisez pas un framework tiers, vous pouvez écrire votre application en C / C ++ et la compiler dans des wrappers spécifiques à la plateforme pour les éléments natifs requis (par exemple, le seul moyen d'obtenir un contexte OpenGL. sur iPhone est en utilisant la classe native CAEAGLLayer).
Donc, c'est comme si plus vous aviez d'outils dans le tiroir, plus vous disposiez d'options pour faire le travail. Vous constaterez que vous avez une préférence pour certains, car vous êtes spécialisé dans différents types de tâches. Si vous ne faites que du matériel d'interface utilisateur, C ne sera peut-être pas votre favori de tous les temps. Je m'inquiéterais davantage du genre de choses que je voulais faire, et j'apprendrais ensuite quel outil je devais les faire.
la source
En fait, c’est aussi utile que d’apprendre un peu de français, d’espagnol, d’anglais, d’arabe, d’hindi et de chinois sans jamais connaître l’un d’eux.
la source
Au contraire, je pense que ça fait mal quand je ne suis pas / ne suis pas capable d'apprendre un nouveau langage de programmation. Cela peut être dû au manque de temps ou à d’autres raisons. Autant que je sache, les programmeurs / développeurs de logiciels adorent défier les langages, proposer de meilleurs produits / produits, et lorsque vous voyez que vous faites toujours la même chose, vous ne vous sentez pas bien. Donc, vous voulez un nouveau défi, une nouvelle langue, quelque chose de nouveau à apprendre et à mettre plus de produits par elle.
Donc, je pense que cela me passionne de suivre de nouveaux langages, de nouvelles bibliothèques, de nouvelles approches, de nouvelles technologies. Mais je n'ai pas le temps de tous les avoir et il se peut que les gens ne puissent pas toujours aller assez loin. Alors ça fait mal de ne pas en apprendre plus; mais ne fait pas mal pour en savoir plus.
la source
Je suis d’accord avec brian, FrustratedWithFormsDesign et SRKX, mais j’aimerais ajouter qu’à l’université, élargir vos connaissances avec de multiples langages et paradigmes de programmation est le moyen souhaitable de devenir un bon professionnel.
Il est vraiment improbable que vous sortiez de l'université en tant que programmeur formé. La programmation est un métier difficile et vous aurez besoin des années dans l'industrie pour travailler aux côtés de bons programmeurs, assister à de bons programmes de formation et à des réunions communautaires, et surtout, vous devrez faire face aux problèmes de métier et échouer beaucoup jusqu'à ce que vous appreniez à maîtriser il.
Apprendre de multiples paradigmes, plusieurs langues, résoudre les multiples problèmes de notre région, vous donnera une bonne base pour apprendre le métier par vous-même, au quotidien, tout en agissant en tant que professionnel du secteur.
Vous pouvez assister à un cours sur les compilateurs, mais vous n’allez pas devenir un concepteur de langage, un créateur ou même un développeur de compilateur. Vous obtiendrez les étapes, les processus, les problèmes et les solutions de base, ce qui vous donnera l'avantage de pouvoir adapter ces connaissances à un large éventail de problèmes.
la source
Réponse courte: non
Réponse longue: Une grande partie du travail d'un programmeur, d'un ingénieur en logiciel ou d'un concepteur est indépendante d'un langage spécifique mais très dépendante d'une certaine méthodologie. Par exemple, la programmation orientée objet concerne essentiellement l'emplacement des éléments en mémoire et au moment de l'exécution, leur accessibilité et leur disponibilité pour une utilisation ultérieure (héritage et encapsulation). Les implémentations diffèrent, telles que Java ayant un objet de classe hérité de niveau supérieur, que cela vous plaise ou non, et C ++ n'ayant aucun élément non spécifié.
Beaucoup de langues partagent des fonctionnalités (et beaucoup divergent). La syntaxe diffère, bien sûr, et il est plus délicat de comparer des paradigmes totalement différents, comme impératif et fonctionnel. Mais le traitement des chaînes est en grande partie identique, où que vous alliez, une fois que vous avez résolu le problème de la syntaxe, de l'index et de la mutabilité. Toute langue avec typage statique a généralement une méthode de casting et de coercition, mais comment et quand vous pouvez le faire dépend du concepteur de langage.
La langue est l'outil. Vous mettez juste plus d'outils à votre ceinture. Mais l'outil est aussi bon que l'artisan qui le manie.
Maintenant, combien vous en apprenez est un choix personnel. Je n'apprendrais jamais une langue pour apprendre une nouvelle. Tout choix d’apprendre une nouvelle langue est dicté par une exigence de cours (il faut apprendre js, php et R pour une seule classe l’année dernière), une exigence de projet existante (si 90% du travail est effectué en perl 6 vous êtes embauché (il en va de même pour les 10% restants après) ou un avantage spécifique à l'application (R sur disons, Java combiné à une bibliothèque de données sucrée pour l'analyse statistique).
Cela dit, vous voulez savoir ce qui est disponible et disponible. Mon collège a donné un cours sur ce sujet, les concepts du langage de programmation . Il s’agissait d’un vaste cours d’aperçu, et non d’un calcul rigoureux en mathématiques ou lié au codage, couvrant les bases de ce qui pourrait être considéré comme pratique plutôt que de l’informatique théorique. C'était un bon cours et j'aurais aimé que ce soit offert quelque chose en 1ère ou 2ème année plutôt qu'en 3ème et 4ème. Le texte était Concepts of Programming Languages . Ne dites pas que vous devez sortir et lire ce livre, mais cela élargirait certainement vos horizons.
la source
Eh bien, je pense que vous n’avez pas à apprendre chaque langue. Mais essayez d’apprendre des fonctionnalités de base qui seront également nécessaires dans d’autres langues.
Par exemple, les concepts OOPS sont obligatoires dans tous les langages, qu'il s'agisse de Java , de PHP ou de tout autre langage.
Les concepts d' allocation de mémoire sont assez similaires dans de nombreux langages de programmation. Ce genre de sujets à ne jamais manquer.
Chaque langue a sa grammaire et ses règles, il en va de même pour les langages de programmation; Dennis Ritchie lui-même a accepté ce fait. Il faut donc apprendre la grammaire de cette langue.
Mais à mon avis, vous devez apprendre les facteurs non communs entre deux langages de programmation. Ils vous permettront d'identifier quelle langue signifie quoi. C ++ est une base de programmation orientée objet (OOP). Ainsi, une fois que vous avez compris les concepts de la programmation orientée objet , vous apprenez la grammaire que vous verrez également en PHP et Java.
Mon flux d’apprentissage était le suivant:
Visual Basic 5 (partiel) -> HTML 2.0 (partiel) -> C (partiel) -> CPP (partiel) -> Java (partiel)
, puis j’ai réappris le langage C , suivi de C ++, suivi de JAVA ( complète cette fois) puis je suis passé à Android car je connaissais Java et XML(partiel) et l'a appris dans le temps moyen. La première tentative m'a appris moins, mais à la deuxième tentative, assurez-vous de tout apprendre ce qui vous aidera la prochaine fois.
la source