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?
Oui, pour plusieurs raisons.
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 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.
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, 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 auprès de 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.
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 ces 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.
Je ne pense pas que vous besoin pour 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. 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 à écarter ce que les enseignants tentent de faire passer, ce qui fait que certaines informations vitales telles que la réalisation de la façon dont vous avez réellement appris quelque chose ne sont 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.
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 découvrez le typage statique. Apprenez les expressions régulières pour l'analyse de chaînes. Et apprenez un peu SQL car chaque programmeur doit toucher une base de données à un moment donné. Apprenez ensuite PHP afin que vous puissiez identifier le code spaghetti.
Cette liste peut varier, mais choisissez essentiellement quelques langues amusantes et utilisez-les pour apprendre 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.
Je vais dire que je ne pense pas que la langue que vous connaissez 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 de 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.
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.
Certaines choses que vous pourriez être intéressé à apprendre avant d'aller à l'université (choisissez parmi elles):
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.
Honnêtement, si vous avez le temps, allez-y. IL aura plus de sens pendant que l'enseignant enseigne. Vous en tirerez le meilleur parti que les étudiants qui n'ont jamais programmé.
Absolument! Si vous n'avez pas programmé auparavant, apprendre C++ ou C ou Java ou C # vous aidera à bien démarrer. Tous ces langages sont basés sur ALGOL (à peu près) - une fois que vous avez appris l'un des eux, apprenez LISP ou Haskell. Le formidable changement de paradigme entre les deux familles vous aidera, peu importe ce que vos cours impliquent.
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 les mécanismes 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 jusqu'à ce que vous vraiment comprenez les concepts derrière cela. 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'était une erreur que j'ai faite 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, 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 "roulez avec les coups durs" (cela peut ou non comprendre l'apprentissage de l'assemblage à un moment donné - cela dépend vraiment de ce que vous allez faire). En d'autres termes, plus vous en apprendrez sur les systèmes d'exploitation et l'architecture de niveau inférieur par vous-même, plus vous serez précieux en tant que programmeur. Cela comprend des concepts d'apprentissage tels que les listes liées ou les arbres de recherche binaires et divers autres algorithmes.
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 pour être motivé à 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. En général, 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.
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.
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.
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; obtenir des subventions est la priorité de la plupart des professeurs d'université, pas d'enseigner aux étudiants de 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 vous-même Python et d'acquérir des compétences. Une fois que vous l'apprenez, l'apprentissage d'autres langues n'est pas trop difficile. La grammaire simple de Python rend l'apprentissage relativement simple facile.
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 du LISP ou du schéma, mais choisissez ce qui est le plus simple et le plus cool).