Dois-je apprendre un langage de programmation avant de fréquenter le collège d'ingénierie informatique? [fermé]

14

J'ai plongé mes orteils dans la programmation C ++ mais je n'y ai pas vraiment plongé. Je veux savoir si j'ai vraiment besoin de l'apprendre ou d'autres langues avant d'aller à l'université pour le génie informatique ou est-ce que je vais juste l'apprendre à l'école de toute façon?

mat
la source
Je dirais que vous n'en avez certainement pas besoin, mais cela ne ferait pas de mal du tout. Avant de commencer mes classes CS, je n'ai jamais fait de codage et je ne savais même pas ce qu'était C ++ et la classe était en C ++.
suppliez
3
... Même si vous l'apprenez de toute façon, cela signifie simplement un cours facile. Il n'y a donc aucune raison de ne pas l'apprendre maintenant ...
Izkata
Cela pourrait vous aider à savoir si vous avez de l’altitude et / ou de l’intérêt pour la programmation.
JeffO
Vous avez posé cette question sur programmers.stackexchange.com. Vous attendiez-vous vraiment à une autre réponse que «oui, apprenez le C ++ avant d'aller à l'université»?
Martin Thoma
@moose, puis fermez en double.

Réponses:

48

Oui, pour plusieurs raisons.

  1. Plus tôt vous commencerez à acquérir de l'expérience dans le domaine, plus tôt vous serez en mesure de déterminer s'il s'agit du domaine dans lequel vous devriez vous spécialiser. Si vous n'aimez pas la programmation, alors le génie informatique n'est probablement pas un bon domaine pour se spécialiser. Même si vous êtes surtout intéressé par la conception de CPU, vous allez faire BEAUCOUP de programmation.
  2. La plupart des gens trouvent que le niveau et la quantité de travail que l'on attend d'eux au collège dépassent largement ce à quoi ils sont habitués au secondaire. Sauf si vous êtes exceptionnellement talentueux, vous allez vous retrouver martelé avec du travail. Faites-vous plaisir: découvrez quelle langue est utilisée pour l'enseignement du cours de première année et commencez à l'apprendre maintenant. Dans le pire des cas, vous vous ennuierez un peu dans la classe, mais vous pourrez faire le travail plus rapidement et utiliser le temps gagné pour vos autres classes.
  3. De nombreuses classes sont notées sur une courbe. L'inconvénient est que vous serez en compétition avec vos camarades de classe pour les notes. Beaucoup de vos collègues étudiants en génie informatique auront déjà fait beaucoup de programmation, donc vous êtes peut-être déjà en retard. C'est le bon moment pour commencer à rattraper son retard.
  4. La seule façon de devenir bon en programmation est d'en faire beaucoup. Plus vous passerez de temps à programmer au cours des prochaines années, mieux vous y serez. Plus vous avez d'expérience, plus vous avez de chances d'obtenir des stages et des emplois.
Charles E. Grant
la source
7
+1 Pour commencer dès maintenant pour vous faciliter la tâche à l'avenir
Andy Hunt
On peut également sauter deux classes (généralement introduction à la programmation et introduction aux structures de données) au collège, si celles-ci ont été suivies en HS. Avoir moins de cours à suivre signifie peut-être moins d'argent à dépenser ou au moins plus de temps tampon. Les programmes CSE peuvent être très rigides - par exemple, vous sautez une classe signifie que vous restez en arrière d'un an. Avoir un tampon aiderait. On peut toujours prendre des cours supplémentaires ou prendre un mineur.
Job
Si vous finissez par être exceptionnellement à l'aise dans le langage de programmation enseigné au moment où vous prenez un cours de programmation d'introduction, demandez-vous si votre établissement a une politique de «crédit par examen» que vous pouvez utiliser pour en faire l'essai. Cela peut vous faire gagner un peu de temps (mais seulement si vous maîtrisez exceptionnellement la langue).
In silico
7

En tant que diplômé CS moi-même (BS, MS, PhD), je vous recommande de vous mouiller les pieds dès que possible. Vous aurez suffisamment d'autres choses en cours pendant votre première année de collège. En particulier pour la programmation:

  • Consultez le site Web de votre université cible et consultez le catalogue des classes de la division inférieure ou la page Web du programme des instructeurs pour les cours de programmation d'introduction. Recherchez le langage de programmation enseigné et voyez quel genre de choses sont couvertes dans la première classe. Essayez de lire ce matériel avant de commencer.

  • Encore une fois, en regardant la page du programme de classe, regardez les affectations de programmation précédentes et voyez quel type d'outils de programmation logicielle et d'environnement sont utilisés. Est-ce vi et gcc (c'est ce que les vrais hommes utilisent)? Microsoft Visual Studio? Éclipse? Essayez d'utiliser ces outils avant de commencer.

  • La programmation de logiciels n'est qu'une des choses enseignées dans un programme CS. D'autres sont des algorithmes (par exemple QuickSort), des structures de données (arbres, listes chaînées, tables de hachage) et de la théorie pure (exhaustivité NP et logique d'ensemble). Je dirais que ceux-ci sont au moins aussi importants que le langage de programmation que vous apprenez.

stackoverflowuser2010
la source
+1 pour ne pas seulement lire sur les langages de programmation
Andy Hunt
4

Cela dépend du collège. Quand j'ai étudié ce qu'ils appellent "l'informatique" à la California State University, ils (à juste titre, à mon avis) se sont concentrés sur l'aspect scientifique de cela, et ils s'attendaient à ce que tout le monde (même les étudiants de première année) sache déjà comment utiliser les systèmes d'exploitation et comment écrire du code dans un langage populaire. Ils n'ont pas accepté de transférer certains crédits que j'avais acquis en suivant des cours de langue dans une université d'État de l'Ohio. (C'était une déception pour moi, mais encore une fois, je le comprends.) Cela avait aussi un avantage: j'ai terminé une tâche une fois, en écrivant mon code en C; le professeur ne pouvait pas lire le C, il m'a donc demandé de le réécrire en Pascal. J'ai interrogé le chef du département sur le bien-fondé de cette demande et il a répondu que, comme ils n'enseignent pas les langues, ils ne peuvent pas non plus s'attendre à ce que quiconque termine une mission dans une langue spécifique. Mon professeur a donc dû vivre avec mon devoir écrit en C. Donc, l'essentiel est de vérifier avec l'université où vous allez aller. Mais si vous voulez mon avis, ça ne fait jamais de mal d'apprendre autant que possible au préalable.

Mike Nakis
la source
2
Et C ++ est un bon choix pour un langage pour commencer, si vous optez pour l'une des disciplines d'ingénierie, car avec C ++, vous pouvez apprendre à programmer près de la machine, et en même temps, vous pouvez commencer à apprendre la POO.
Mike Nakis
Merci j'ai appelé l'école (Université de l'Illinois) et ils m'ont dit que généralement les étudiants ont juste une légère compréhension de la langue et que je devrais simplement apprendre autant que je peux avant d'aller à l'école. Merci pour votre conseil.
Matt
Génial. Essayez également de vous familiariser avec la ligne de commande Linux si vous le pouvez; ces connaissances sont généralement utiles dans les environnements universitaires. Il vaut mieux être celui qui montre aux autres personnes dans le laboratoire informatique comment les choses se font, que d'être le gars qui demande toujours aux autres.
Mike Nakis
4

Si vous devez vous demander si vous devez apprendre un langage de programmation en premier lieu, demandez-vous si c'est vraiment ce que vous voulez faire. La plupart des premières années en informatique sont déjà sacrément bonnes en programmation avant même de commencer, vous serez donc en concurrence avec les types qui tendent naturellement vers le geek. Sautez dedans la tête la première ou faites autre chose que vous aimez. Ne soyez pas sur la clôture. Aime ce que tu fais. Je n'ai pas besoin ni envie de voter pour celui-ci, je veux juste vous parler directement.

zipstory.com
la source
1
Je modifierais cela pour dire «la plupart des étudiants en informatique qui ont RÉUSSI, au cours de leur première année». Quand j'étais au collège (et plus tard à l'école doctorale), il y avait un nombre alarmant d'étudiants CS qui ne connaissaient pas la première chose à propos de l'utilisation des ordinateurs, mais ils ont juste entendu dire que CS était là où tout l'argent était. La plupart d'entre eux ont changé de majeure, après s'être énervés lorsque les instructeurs ne leur ont pas dit quoi taper.
moelleux
J'étais l'un de ces noobs et j'ai eu beaucoup de succès. Cependant, j'ai dû vraiment essayer si fort de réussir avec ces jocks geek à partir de rien. Si je n'étais pas dans une situation où je devais gagner de l'argent pour mon enfant, je ne me serais pas poussé si fort. J'ai fini par l'aimer tel que je le comprenais davantage.
Jason Sebring
3

Je ne pense pas que vous ayez besoin de l'apprendre avant d'aller à l'université. Cependant, je crois que comme la plupart des choses dans la vie, si vous êtes préparé avant d'assister à un événement, etc., vous êtes plus susceptible de prendre des décisions éclairées sur les informations à absorber et les informations à jeter.

Plus précisément, en plongeant au moins vos orteils, vous pourrez peut-être écouter ce que vos conférenciers disent plutôt que de simplement copier ce qu'ils disent textuellement mais pas réellement absorber les concepts qu'ils essaient de faire passer, ce qui, à mon avis, est le plus important une partie de l'université (pas la partie de la syntaxe d'apprentissage d'une langue, etc.).

Quant au langage de programmation à apprendre. Peu importe probablement, mais pourrait être utile pour commencer à lire ceux que vous êtes susceptible de couvrir au cours de votre première année.

Cependant, le revers de la pré-formation est que lorsque vous arrivez à vos premiers mois, vous pouvez trouver les conférences ennuyeuses et élémentaires. Cela pourrait alors vous conduire à ne pas assister aux cours ou à ignorer ce que les enseignants tentent de faire passer, ce qui fait que manquer des informations essentielles telles que réaliser que vous avez réellement appris quelque chose n'est pas la bonne façon, c'est-à-dire que vous avez appris une mauvaise habitude avant d'aller à l'université.

En fouillant déjà sur ces types de sites, vous êtes probablement déjà sur la bonne voie pour avoir une longueur d'avance et ainsi aider votre apprentissage au collège. Quoi qu'il en soit, ce que vous pré-apprenez ne sera probablement que la pointe de l'iceberg. Vous aurez besoin de poursuivre cette courbe d'apprentissage dans et hors du matériel collégial si vous voulez continuer à bénéficier des avantages qu'il peut apporter.

dreza
la source
2

Oui, mais ne commencez pas avec la langue la plus compliquée, il y aura beaucoup de temps pour cela plus tard.

Commencez par quelque chose de simple pour vous mouiller les pieds. Il est beaucoup plus facile de comprendre les concepts de programmation lorsque vous n'êtes pas gêné par le langage lui-même. De même, certaines langues font mieux que d'autres.

Apprenez Python pour la programmation dynamique, les techniques de programmation orientées objet simples et l'indentation appropriée. Apprenez javascript + JQuery ou Lua pour en savoir plus sur les fermetures. Apprenez Java ou C # pour en savoir plus sur la frappe statique. Apprenez les expressions régulières pour l'analyse de chaînes. Et apprenez un peu SQL puisque chaque programmeur doit toucher une base de données à un moment donné. Apprenez ensuite PHP pour identifier le code spaghetti.

Cette liste peut varier, mais choisissez essentiellement quelques langues amusantes et utilisez-les pour apprendre des concepts . Par la suite, vous apprendrez à être adaptatif, plutôt que de stagner sur une seule langue pour le reste de votre vie et d'essayer avec colère de la défendre sur Internet tout le temps.

Soviut
la source
1

Je vais dire que je ne pense pas que la langue que vous connaissez vous importera trop, mais cela vous donnera probablement un avantage en ce sens que lorsque vous obtenez votre première affectation de programmation, vous n'avez pas pour lutter contre le problème de la pensée en termes de code - vous y aurez déjà une certaine expérience. Une courbe d'apprentissage en moins à surmonter est une bonne chose. Bonus si vous apprenez la langue qu'ils enseignent dans votre première année, mais pas nécessaire.

FrustratedWithFormsDesigner
la source
1

Vous ne saurez pas si le génie informatique est vraiment le programme d'études approprié pour vous tant que vous n'aurez pas au moins découvert à quel point il est difficile ou facile de trouver la programmation, ainsi que votre niveau de compétence. La seule façon de vraiment savoir est d'essayer d'apprendre au moins un langage de programmation et de faire beaucoup de codage dès que possible.

hotpaw2
la source
1

Certaines choses que vous pourriez être intéressé à apprendre avant d'aller à l'université (choisissez parmi elles):

  1. Un peu plus de mathématiques (je ne peux pas être plus précis, car je suis français et je n'ai aucune idée des compétences en mathématiques que vous êtes censé avoir).
  2. Quelques autres langages de programmation, comme Ocaml, Scheme, Haskell, Lua ... Ils vous ouvriront l'esprit à de nouvelles façons de penser.
  3. Quelques livres d'algorithmique
  4. Meilleures compétences en anglais et en écriture (et une langue étrangère n'est jamais mauvaise)
  5. Utilisation et codage sous GNU / Linux et logiciels libres en général. La possibilité d'étudier des logiciels libres (et d'y contribuer) vous en apprendra beaucoup.
  6. Autonomie de travail, pouvoir se définir un plan de travail et s'y tenir
  7. Le SICP

Je ne recommanderai pas de me concentrer de manière étroite sur C ++; d'autres langues, livres, compétences vous apporteront beaucoup plus. Ne dépensez pas tous vos efforts en C ++.

Profitez de votre apprentissage.

Basile Starynkevitch
la source
1

Honnêtement, si vous en avez le temps. IL aura plus de sens pendant que l'enseignant enseigne. Vous en tirerez le meilleur parti que les étudiants qui n'ont jamais programmé.

java_mouse
la source
1

Absolument! Si vous n'avez pas programmé auparavant, l'apprentissage de C ++ ou C ou Java ou C # vous permettra de démarrer du bon pied. Toutes ces langues sont basées sur Algol (à peu près) - une fois que vous en avez appris une, apprenez le lisp ou le haskell. Le formidable changement de paradigme entre les deux familles vous aidera, peu importe ce que vos cours impliquent.

Temple des gènes
la source
0

Personnellement, je le recommanderais. Cela ne s'appliquera pas à toutes les écoles, mais je suis allé dans ce qui est considéré comme une très bonne école d'ingénieurs et les cours de programmation d'introduction étaient horribles. Connaître les bases vous aidera à éviter de nombreuses mauvaises pratiques / connaissances incorrectes qui pourraient vous être enseignées. Et comme une autre réponse l'a mentionné, vous parcourrez ces classes d'introduction à la programmation faciles pendant que d'autres ont du mal. Et si vous êtes comme moi, cela vous donne plus d'occasions d'aider vos amis qui se débattent eux-mêmes.

Asaf
la source
0

Je pense que tu devrais. Outre les raisons avancées par d'autres ici, j'ajouterais que beaucoup de professeurs d'université ne sont pas très bons à enseigner et que vous ne pouvez donc pas compter sur eux pour enseigner très bien ce que vous apprenez. Vous comprendrez beaucoup mieux ce qu'ils disent si vous avez déjà une compréhension des bases.

De plus, le rapport entre le matériel de cours et le temps de classe est souvent trop élevé dans les universités, donc même lorsque le professeur est un enseignant décent, il ne peut pas vous enseigner efficacement pendant le temps de classe disponible. Ainsi, toute connaissance acquise à l'avance vous aidera à suivre le rythme rapide de la classe.

IMO C ++ est l'un des pires langages pour les débutants. Allez-y et étudiez le C ++ si vous ne le trouvez pas trop difficile, mais d'autres langages tels que C #, VB, Ruby ou Python sont un peu plus faciles.

Qwertie
la source
0

Ce serait une décision très intelligente de connaître une langue avant d'entrer à l'université. L'enseignement collégial en informatique est souvent d'une piètre qualité, dispensé par des assistants non formés ou qui ne parlent pas anglais. Les cours d'introduction ne sont pas une priorité et une mauvaise instruction est la règle. Les universités font de l'argent sur les frais généraux des subventions; l'obtention de subventions est la priorité de la plupart des professeurs d'université, pas d'enseigner au premier cycle. C'est une triste règle à quelques exceptions près.

Cependant, la qualité des programmes dans les écoles secondaires peut aussi être médiocre. De nombreuses administrations scolaires pensent que la formation à l'utilisation de Micosoft Word est une science informatique. Ah, le non-sens qui émane des écoles ed!

J'aimerais pouvoir être plus optimiste. Si vous avez un bon programme compsci dans votre lycée, accrochez-vous. Allez au-delà des limites et soyez agressif à propos de l'apprentissage. Si vous êtes assez entreprenant, il n'est pas difficile de vous enseigner le Python et d'acquérir des compétences. Une fois que vous l'avez appris, apprendre d'autres langues n'est pas si difficile. La grammaire simple de Python facilite son apprentissage.

ncmathsadist
la source
0

Oui.

Lequel vous devez apprendre dépend de ce que signifie «génie informatique». C'est un terme assez non standard. Là où j'ai étudié, c'était une combinaison d'électronique et d'informatique.

Si vous vous attendez à travailler principalement avec du matériel informatique, je vous suggère d'apprendre C et Forth. Si vous allez principalement faire ce que je considérerais comme "l'informatique", je suggérerais d'apprendre quelque chose comme Python ou Smalltalk afin d'essayer le "vrai travail" et un langage de programmation fonctionnel de votre choix (je suggérerais une variante de lisp ou schéma, mais choisissez ce qui est le plus facile et le plus cool).

Marcin
la source
0

Je partagerai ma propre expérience.

J'ai commencé à programmer il y a environ 10-11 mois. Ma première vraie exposition a été avec PHP, mais après, je me suis retrouvé à apprendre le C # dans un cours d'introduction (CS 140) à mon collège communautaire local. Après avoir appris les bases, j'ai pratiquement volé avec et je n'ai pas arrêté depuis. Après C #, j'ai décidé de commencer à apprendre la mécanique de niveau inférieur du fonctionnement des ordinateurs. Je travaille sur une application qui est censée être multi-plateforme, et qui est censée aider les moteurs de jeux vidéo à interagir les uns avec les autres (similaire à SDL, mais peut-être un niveau plus bas que cela, avec un accent strict sur l'interface graphique, les mathématiques et d'autres fonctions d'assistance).

En gros, sans ce cours, je n'aurais trouvé ce que j'aimais que bien plus tard. Vous ne savez pas vraiment que vous aimez la programmation tant que vous ne comprenez pas vraiment les concepts qui la sous-tendent. Si vous voulez le savoir, je vous recommande de choisir une introduction au livre de programmation et de commencer par C / C ++ car vous devez comprendre ce que vous faites, plutôt que d'utiliser un langage qui vous tiendra la main comme Java ou C # ou juste un langage de script - attention, ceux-ci ont leur place et sont de bons outils à utiliser, mais il est également très impératif que vous compreniez les concepts de niveau inférieur au début. C'est une erreur que j'ai commise au début.

Après cela, continuez la programmation si vous l'appréciez. Sinon, apprenez autre chose. Quoi que vous décidiez de faire, vous devriez y consacrer autant de temps que possible avant de fréquenter une université de 2 à 4 ans pour l'apprendre, car cela vous gardera VRAIMENT en avance sur le jeu. Cela montrera également la motivation de tout employeur qui pourrait potentiellement vous embaucher.

Je peux vous dire que les disciplines de l'informatique / génie électrique sont de loin les plus rapides en termes de taux d'évolution (qui continuent d'augmenter d'année en année), et vous allez devoir continuer à apprendre de nouvelles technologies pour suivre ce qui est le plus récent et le plus grand (que vous devriez trouver au moins quelque peu intéressant, même si cela dépend vraiment du domaine d'expertise dans lequel vous vous spécialisez. Par exemple, je déteste la programmation Web et je ne suis pas du tout intéressé par les technologies qui existent pour cela, mais certaines personnes l'apprécient vraiment et s'y intéressent). Malgré cela, le C / C ++ sont d'excellents langages à apprendre car, tandis que de nombreux autres langages (par exemple C #, Java), ont leurs propres API prédéfinies pour "rendre la vie plus facile", vous n'allez rien apprendre de ce qui se passe réellement sous le capot jusqu'à ce que vous "

En gros, je programme depuis 10-11 mois et je n'ai pas du tout fréquenté l'université. J'ai pris un cours de C # dans un collège communautaire (mon premier cours de programmation, qui m'a appris les principes fondamentaux), et au moins 95% du reste, j'ai appris par moi-même. En effet, après avoir suivi ce cours, je savais que je voulais être programmeur. Vous le saurez une fois que vous l'aurez compris. Quel que soit le chemin que vous choisissez, vous devriez l'étudier de manière indépendante si vous voulez vraiment réussir, car cela augmente votre aptitude à la motivation et à l'engagement. Un programmeur aêtre motivé pour réussir. Ils traitent beaucoup, plus que simplement "écrire du code". Une application doit constamment être testée, déboguée et comprise à partir de zéro. Généralement, petits ou grands, vous allez presque apprendre quelque chose de nouveau pour chaque projet que vous entreprenez. C'est une bonne chose, car vous devez garder ce cerveau actif.

à propos de blanc
la source