L'université enseigne le C ++ de style DOS, comment y faire face [fermé]

19

Je programmais depuis de nombreuses années mais je voulais un diplôme pour me rendre plus employable. Ayant déjà étudié une fois à l'université, je n'ai pas choisi une majeure en informatique de 5 ans mais un programme d' ingénierie logicielle plus court et plus orienté vers la pratique .

Je m'attendais à ce qu'il se concentre davantage sur les compétences concrètes que sur la théorie, mais j'avais toujours cette idée que les universités et les professeurs aiment que les choses soient correctes, formelles, académiques. C'est toujours de la science, non? Faux - J'ai été surpris de voir combien de cours d'informatique étaient bâclés.

Dans un cours d'introduction au C ++, nous avons été testés sur des clichés comme "pourquoi les globaux sont-ils mauvais" et "pourquoi les constantes sont-ils bons", après avoir simplement écrit 1-2 programmes. Anecdotes aléatoires sans contexte approprié. Polycopiés contenaient system(pause/cls), getchet en- têtes aiment conio.het iodos.h. L'une des tâches consistait à imprimer des "caractères ASCII" de 32 à 255 , avec une capture d'écran montrant un tel tableau imprimé à l'aide de la page de codes Windows-1252, mais sans mentionner du tout l'encodage.

Question : quand une université / professeur semble utiliser des outils et des méthodes de qualité inférieure et / ou obsolètes, et le contenu enseigné est incorrect à la limite, comment gérez-vous de façon constructive et respectueuse, le cas échéant?

Certaines réponses soulignent que vous devez regarder au-delà de la programmation car il s'agit simplement d'un outil pour apprendre des sujets tels que les structures de données et les algorithmes. Je suis d'accord avec cette idée, mais dans ce cas, il n'y avait pas vraiment de tel plan derrière le style pauvre. La plupart des cours enseigneraient simplement un autre "outil" sans beaucoup de théorie de base ni aucune "vue d'ensemble". On a souvent l'impression qu'ils ont été rapidement mis en place juste pour offrir un tel cours.


Je suis resté avec et j'ai finalement obtenu mon diplôme. La qualité est restée assez faible tout au long (à quelques grandes exceptions près), et plusieurs autres étudiants s'en sont plaints. Comme prévu, j'ai appris beaucoup plus de projets personnels et d'emplois à temps partiel que de l'école, mais le processus de fin d'études et le label "étudiant en logiciel" semblent mystérieusement utiles en eux-mêmes!

Toerndev
la source
2
Sur la base de ma propre expérience, vous apprendrez mieux, plus rapidement et moins cher à étudier la programmation par vous-même et à obtenir de l'aide sur les forums. Il n'est pas rare que le programme universitaire soit obsolète. En Russie, Pascal est encore enseigné dans certaines universités (bien que j'aime la langue, et je ne vois pas cela comme une mauvaise chose).
WKS
@WKS: Je pense que Pascal est un très bon langage d'enseignement pour apprendre des principes (de programmation procédurale) qui ne sont pas du tout dépassés. Les cours universitaires ne devraient pas perdre de temps à enseigner un langage de programmation particulier, mais plutôt à enseigner des paradigmes (procéduraux, orientés objet, fonctionnels, logiques, etc.).
Giorgio
Oui, bien sûr @Giorgio, le langage de programmation choisi comme outil d'enseignement n'a pas d'importance, cependant, il faut s'attendre à ce que les pratiques de programmation présentées soient saines et à jour.
glampert
La plupart des universités enseignent aux étudiants de premier cycle dans le but de leur permettre de réussir à obtenir une maîtrise. La plupart des programmes de maîtrise enseignent aux étudiants en maîtrise dans le but de leur permettre de réussir à obtenir un doctorat. La plupart des programmes de doctorat visent à vous aider à devenir un chercheur prospère.
Rob P.
@glampert: La programmation procédurale n'a pas changé après l'introduction de Pascal. Encore mieux, Pascal a été conçu comme un langage pédagogique, donc il n'a pas beaucoup de hacks qui peuvent être utiles dans la pratique mais sont une grande distraction lors de l'apprentissage de nouvelles choses. Pascal est donc à jour en ce qui concerne l'enseignement de la programmation impérative. Bien sûr, on pourrait vouloir enseigner d'autres paradigmes comme la logique orientée objet, fonctionnelle: alors il faut chercher d'autres langages, par exemple Python, Java, Haskell, Scheme, Prolog, ...
Giorgio

Réponses:

34

Les mathématiques et la programmation sont des choses totalement différentes. Les mathématiques sont des sciences, la programmation est une technique. Dans le monde académique, la programmation est quelque chose que vous devez savoir pour pouvoir gérer les vraies choses, celles qui sont réellement intéressantes et importantes - les algorithmes.

Peu importe si le compilateur est ancien et que vous utilisez des systemappels? Peu importe si vous avez Linux et non Windows? Eh bien, les professeurs ne le font pas, c'est sûr. Et ils ne devraient pas vraiment. Ne vous attendez pas à devenir un programmeur professionnel à partir de cours dans l'établissement universitaire. Ce n'est pas pour ça que vous allez.

C'est vrai que le compilateur qu'il attend de vous que vous utilisiez est ancien, et l'hypothèse concernant le système d'exploitation est anachronique et problématique. Vous pouvez le soulever, et peut-être que ce sera réglé. Mais pas parce que le cours est incompatible avec l'industrie, mais plutôt parce qu'il cause une difficulté immédiate aux étudiants. Allez retrouver cet ancien compilateur maintenant et faites-le tourner sur votre MacBook ...

En général, les études universitaires ne devraient pas être gaspillées à apprendre le C ++ et Android, vous devriez y apprendre les trucs de l'informatique. Vous n'aurez pas d'autre chance pour ça. Android? Téléchargez Eclipse avec l'ADT et commencez à y travailler à la maison, comme je le fais. Pas besoin d'école pour ça.

Je pense que ce n'est pas correct d'attendre le développement de techniques des universités. Surtout pas les universités de recherche. Vous pouvez dire qu'un endroit qui n'offre que des bacheliers devrait être plus ciblé sur l'industrie, mais les universités de recherche - veulent des chercheurs. Les professeurs recherchent des étudiants diplômés et des doctorants potentiels, pas d'excellents programmeurs. Je pense donc que vous devez définir votre niveau d'attentes en conséquence.

littleadv
la source
3
J'ai un problème avec votre réponse: "En général, les études universitaires ne devraient pas être gaspillées à apprendre le C ++ et Android, vous devriez y apprendre les trucs de l'informatique." - Sans connaître au moins les bases d'un langage de programmation, le contenu CS n'a pas de sens et est beaucoup trop facile à appliquer dans le mauvais sens.
Izkata
4
@Martin et izkata - programmer sous DOS en C ++ en utilisant un compilateur du siècle précédent ne signifie pas que vous ne connaissez pas la programmation. Cela signifie simplement que vous utilisez des outils obsolètes - mais si vous avez besoin d'implémenter des arbres RB - qui s'en soucie? C'est dépassé pour l'industrie, mais les programmes fonctionnent et font ce qu'ils sont censés faire - c'est assez bien.
littleadv
3
@littleadv - l'OP a écrit "cela semble ancien d'après ce que j'ai lu". ce qui me suggère qu'il a dû chercher ailleurs que les documents pertinents pour découvrir que cela est obsolète et non portable. Bien sûr, de nombreux compilateurs, sinon tous, ont des bibliothèques non standard supplémentaires, mais si on vous apprend celles-ci sans qu'on vous dise qu'elles sont non standard, je pense que c'est mauvais - et cela compte pour les nouveautés aussi bien que pour les anciennes, et même pour C ++ 11 trucs car pour le moment C ++ 03 est la norme la plus récente largement prise en charge.
Steve314
3
@littleadv - Eh bien, nous devrons peut-être accepter d'être en désaccord alors. Bien que j'aurais pensé qu'un informaticien doit être un pédant sur les détails, et les quelques secondes qu'il faut pour souligner que quelque chose n'est pas standard sont à la fois compatibles avec cela et en aucun cas une grande difficulté. Comment vous sentiriez-vous si un professeur de CS utilisait ses propres notations ad hoc mélangées aux mathématiques et ne le signalait pas? C'est après tout un autre aspect du même problème - si d'autres informaticiens sont capables de vous comprendre. Le code est lu par des personnes ainsi que par des compilateurs.
Steve314
4
@littleadv - Je n'ai jamais prétendu que l'OP avait été informé de conio.h est standard - J'ai suggéré qu'il ne lui avait peut-être pas été dit que ce n'était pas standard, et il a même dit: "S'ils précisent quelles sont les astuces non portables, c'est probablement D'ACCORD.". La façon dont on m'a enseigné même les sciences fondamentales est que vous utilisez des termes standard, ou si vous devez utiliser des termes non standard, vous définissez ce qu'ils signifient. Dans mes cours de sciences à l'école, même utiliser des centimètres était contraire aux règles - ce ne sont pas des unités SI. L'utilisation de bibliothèques non standard ne me semble pas différente. La signification du code en informatique ne doit pas être ambiguë.
Steve314
19

L'informatique consiste à programmer ce qu'est la physique à la menuiserie.

Si vous voulez devenir charpentier, étudier la physique ne va pas y arriver. Cela vous apprendra beaucoup de choses intéressantes, que vous pourriez appliquer à votre travail, mais cela ne vous apprendra pas à être un bon charpentier. Pour cela, vous devrez apprendre le métier de menuisier.

De même, si vous voulez devenir un bon programmeur, vous devrez apprendre l' art de la programmation . Malheureusement, il n'y a aucune institution pour délivrer une certification d'aucune sorte. Donc, fondamentalement, c'est quelque chose que vous devrez faire par vous-même, avec toute l'aide que vous pourriez trouver. Pour vous, cela signifie répétition et réflexion. Écrivez beaucoup de code, puis revenez le voir. Prenez également le temps de lire le code des autres. Envisagez de participer à des projets open source.

Les universités ne se soucient pas beaucoup de la programmation et encore moins des détails qui changeront au cours des prochaines années. Ce que vous voyez à votre école, c'est qu'ils ont choisi un environnement de programmation (mauvais, mais ce n'est pas si important) et vous le montrent maintenant, afin qu'ils aient un cadre de référence dans lequel ils peuvent vous enseigner diverses techniques de programmation. On peut dire que le cadre de référence est pauvre et que même la langue est un choix étrange. De leur point de vue, cela n'a probablement pas d'importance, car il est choisi arbitrairement.

back2dos
la source
2
Qu'en est-il de la physique pour l'ingénierie? Les programmeurs doivent comprendre les principes CS pour les appliquer lors de la conception de programmes de la manière dont un ingénieur doit comprendre la physique pour concevoir des bâtiments, des avions et des processus chimiques.
Jay Elston
3
@JayElston: La physique est à l'ingénierie, ce que l'informatique est à l'ingénierie logicielle, qui comprend l'analyse, la conception, la planification, la mise en œuvre, l'AQ, etc. tandis que l'ingénierie commence par déterminer ce que vous voulez réellement faire.
back2dos
J'aime toujours l'une des citations de mes professeurs "L'ingénierie est l'art d'appliquer la science pour résoudre des problèmes".
Chris O
1
@Chris: Alors, la science est peut-être l'art de créer de nouveaux problèmes.
JasonTrue
@JasonTrue: Eh bien, on pourrait dire que la science est l'art de créer de meilleurs problèmes;)
back2dos
9

Il n'y a rien de mal à apprendre le «style DOS». Je suis sûr que la plupart des anciens ici ont commencé sous DOS, ou même avec des systèmes d'exploitation antérieurs, écrivant des programmes basés sur des lignes, et se sont ajustés très bien. Le monde informatique change si rapidement que je ne m'attarderais pas sur des détails tels que la bibliothèque utilisée pour quoi.

En fait, je soupçonne la raison pour laquelle nous avons un monde plein de programmeurs qui peuvent vous dire ce qu'est l' injection de dépendance , mais qui ont du mal à répondre à FizzBuzz , parce que beaucoup de programmeurs ne passent pas beaucoup de temps à ce niveau très basique.

Il semble que ce soit une introduction à la programmation, donc ne vous inquiétez pas. Apprenez les bases et vous ferez bien. Si vous êtes intéressé par d'autres plateformes, explorez-les par vous-même. C'est la grande chose au sujet de la programmation.

GrandmasterB
la source
5

Comment pouvez-vous y faire face? Téléchargez des livres électroniques de programmation ou des vidéos en streaming, essayez les exemples par vous-même. Ne comptez pas sur vos professeurs. La programmation est très apprise par vous-même.

LEMUEL ADANE
la source
1
La programmation, c'est comme jouer du piano. Vous avez besoin d'un maître pour vous apprendre à faire les choses et beaucoup de pratique pour bien les faire. Je pense qu'il y a très peu de pianistes autodidactes de renommée mondiale.
7
Quelle étrange analogie, il existe certainement de nombreux programmeurs autodidactes hautement qualifiés.
ocodo
@Slomojo True, et j'en ai rencontré quelques-uns. Ils sont une race étrange, excellente dans ce qu'ils savent. La difficulté réside dans l'étendue des problèmes qu'ils rencontrent. Parfois, un problème a un chemin beaucoup plus court vers une solution lorsque vous connaissez un coin de l'informatique, et pourtant, ces gens talentueux ont tendance à continuer de le marteler de la seule manière qu'ils connaissent, qui ressemble finalement à la force brute. Un exemple, un problème "difficile à résoudre" pour un autodidacte a été résolu par un DFA en deux jours, avec des tests (en TCL / TK pour démarrer!). Deux semaines plus tard, ils ne comprenaient toujours pas, avec explication.
Edwin Buck du
4

Bon nombre d'universités ont des professeurs de programmation pourris. Je suis allé dans l'une des meilleures écoles supérieures de mon pays et j'ai pratiquement appris le squat en programmation. Je suppose que la plupart des unis sont comme ça parce que les très bons programmeurs optent pour des emplois mieux rémunérés (pas d'enseignant). Vous devriez entreprendre un petit projet et essayer de le coder vous-même. Vous pouvez obtenir des conseils sur de nombreux forums comme celui-ci. Cela pourrait être une meilleure façon d'apprendre à long terme.

Jan S
la source
Bon conseil, bien sûr, je suis totalement d'accord. C'est juste le diplôme ... :)
Toerndev
@gaidal: Ouaip! c'est ce que je suis sorti de l'école d'études supérieures - le nom de la marque: P (bien que j'espérais beaucoup plus quand je suis entré)
Jan S
2
L'université ne consiste pas à apprendre à programmer, mais à apprendre les concepts des langages de programmation et, plus généralement, de l'informatique. Quand j'ai dû faire mon projet de systèmes d'exploitation à l'université, on m'a dit: ça va être en C, le livre est à la bibliothèque, aller chercher le livre et l'apprendre. La programmation concerne la pratique et ce n'est pas la tâche de l'université de vous l'apprendre.
Giorgio
1
C'est vrai pour les emplois mieux rémunérés. Un de mes amis qui enseigne à l'université s'est plaint une fois: "Nous leur apprenons à programmer et ensuite ils gagnent plus que nous, ce devrait être l'inverse!"
Giorgio
3

Je pense que l'Université devrait enseigner les concepts abstraits des langages de programmation, des algorithmes, etc. et ne devrait pas être le lieu où vous apprenez la programmation: la programmation est une activité très pratique et vous ne pouvez l'apprendre qu'en faisant.

Pendant mon étude, j'ai appris les bases de la programmation en Pascal, puis j'ai eu un projet en C (nous avons dû apprendre le langage par nous-mêmes) puis j'ai suivi un cours sur les concepts du langage de programmation (procédural, orienté objet, fonctionnel, logique) . C'est du folklore que sur MSDOS vous avez des pointeurs conio.h ou far, que vous n'avez pas sur un système UNIX. C'était ce dont nous, les étudiants, discuterions autour d'une bière, ce n'était pas quelque chose dont vous discutiez pendant les cours parce que ce n'était pas si important. L'enseignement universitaire se concentre sur l'abstrait, les connaissances générales et évite d'entrer dans les détails: des exemples et des détails sont présentés juste pour illustrer les choses générales.

L'exemple que vous avez donné sur ASCII par rapport à Unicode et à la bibliothèque MSDOS conio.h signifie simplement que chaque environnement de programmation a sa façon particulière de faire et d'organiser des choses. Si vous programmez en C ++ sur Visual Studio, vous devrez utiliser d'autres bibliothèques, dont certaines sont introuvables, par exemple sous Linux. Donc, si le cours était sous Windows 7 / Visual Studio, certaines personnes pourraient se plaindre qu'il serait préférable de le faire sur Linux / GCC. Mais, l'OMI, ce n'est pas le point.

Donc, je pense que vous devriez essayer de ne pas vous laisser distraire par les détails et vous concentrer sur les concepts généraux qui sont couverts par le cours. Par exemple, dans la plupart des langages de programmation, vous aurez besoin d'une bibliothèque pour implémenter les E / S de la console et que, étant donné un environnement de programmation, vous devrez résoudre votre problème avec les outils dont vous disposez. Cela vous semble peut-être assez évident et vous avez l'impression de ne pas vraiment apprendre quelque chose parce que vous avez déjà des connaissances préalables (cela peut arriver) mais je n'ai pas l'impression que vous suivez un mauvais cours.

Giorgio
la source
Merci, je garderai à l'esprit que vous ne pensez pas qu'il suffit de dire que c'est un mauvais cours. En passant, je ne voulais pas dire que cela devrait être sous Linux, juste qu'il pourrait faire un effort pour informer les étudiants sur les différences et qu'il existe une norme.
Toerndev
Je suis d'accord avec vous que ce serait une bonne idée d'informer sur d'autres systèmes. Cela dépend aussi de l'expérience de l'enseignant: il peut se sentir mal à l'aise de parler d'un environnement qu'il ne connaît pas. Par exemple, je suis à la maison avec Windows et Linux, mais j'éviterais MacOS car, même si c'est peut-être un système d'exploitation très cool, je ne l'ai jamais utilisé. Peut-être pourriez-vous essayer de demander s'ils peuvent donner une courte comparaison entre différents environnements C ++: juste quelques exemples pour avoir une idée de ce qui peut être différent et de ce qui reste le même. Par exemple, vous pouvez jouer avec sizeof sur MSDOS et Linux.
Giorgio
2

Les universités donnent les bases. Une fois qu'il est solide, vous pouvez construire des gratte-ciel dessus.J'ai appris le BASIC, le C et le C ++ pendant mes jours de collège. Plus tard, quand j'ai fait un projet en Visual C ++, j'ai cru que c'était un monde complètement différent. Plus tard, j'ai réalisé la différence entre Framework et Languages.

Choisissez une bonne université où ils donnent le développement ciblé de votre domaine informatique souhaité. Ce qui peut vous aider plus tard dans votre carrière.

Sarat
la source
2

Les impressions pleines system("");sont en fait une sacrément bonne chose! Je suis choqué que les gens ne connaissent rien de ces fonctions de nos jours.

system("pause")et vous vous débarrassez de tous les pièges des fonctions getX. system("cls")et vous venez d'enregistrer une page de code. system("mkdir foo")et vous venez d'enregistrer 2 pages d'allocations de mémoire tampon, les divisions de chemin, _makepath_ss, 256 limites de chemin, une tonne de sorties d'erreur et ainsi de suite.

De plus, le code est si simple qu'un singe le comprendra.

 if(!system("mkdir foo"))
     //booo and exit`

L'école des perversions polymorphes est ce qui devrait être interdit par la loi.

PS: De plus, avec tout le respect que je vous dois, j'ai du mal à accepter que les gens apprennent le C ++ avec des exceptions et tout virtuel comme une BONNE CHOSE, car il a plus de pièges et de mines terrestres que vous ne pouvez l'imaginer, et même Bjarne Stroustrup évangélise les exceptions comme quelque chose de super facile et sûr, alors qu'en réalité, il s'agit d'une mine nucléaire.

Voir l'analyse sur Misra-C ++ et JSF-C ++. Et http://blogs.msdn.com/b/oldnewthing/archive/2005/01/14/352949.aspx . Je suis trop paresseux pour trouver tous les articles restants aujourd'hui.

Cela étant dit, je suis développeur c ++ et j'aime beaucoup de fonctionnalités et le langage dans son ensemble.

Codeur
la source
1
Je ne suis pas sûr que je convienne qu'encourager implicitement les développeurs inexpérimentés à passer directement au système sans aucune idée réelle des pièges est une bonne idée ...
deworde
@deworde: C'est la même chose que vous écrivez dans une console, je ne pense pas que vous puissiez rendre les choses moins sujettes aux erreurs et sûres.
Codeur
Oui, mais lorsque vous l'écrivez dans une console, vous savez (par exemple) où vous êtes, qui vous utilisez, quel type de machine vous utilisez et, surtout, POURQUOI VOUS LE FAITES. Le programme n'est pas nécessairement au courant de l'une de ces choses, et quelqu'un qui exécute l'exécutable ne saura pas qu'il doit les vérifier avant de l'exécuter.
deworde
@deworde: Pas exactement, la commande EraseFile héritera toujours des autorisations du processus, il est donc tout aussi facile de jouer avec l'une ou l'autre commande.
Coder
1

Ma suggestion peut sembler là-bas, mais écoutez-moi ... Switch majors.

D'après mon expérience dans le milieu universitaire, la majeure en informatique était un examen de très bas niveau de ce qui fait tourner les ordinateurs. Vous avez commencé avec une introduction de base en C ++ pour vous assurer que vous savez ce qu'était un programme et les bases de la mémoire et du calcul derrière le programme, puis vous avez appris l'assemblage, les concepts de système d'exploitation, l'ingénierie électrique, la conception numérique, etc. ce degré et chercher du travail avec NVidia ou AMD, ou Lockheed; quelque part où ils fabriquent du nouveau matériel, qui a besoin de quelqu'un qui peut comprendre ce matériel à un niveau suffisamment bas pour écrire les pilotes et contrôler le logiciel.

Cela ressemble à ce que vous voulez, c'est un programme d'études qui, dans mon université, s'appelait Gestion des systèmes d'information. C'est le cours que j'ai suivi; il a enseigné la programmation en Java, VB.NET, C # et certains scripts PHP et autres scripts Web en cours de route. Cela exigeait également du calcul (mais pas au même degré que CS), de la comptabilité, des finances, des statistiques, de la communication commerciale, de l'OO A&D, de la conception de bases de données et de l'analyse de systèmes. J'ai obtenu un BBA au lieu d'un BS, et j'avais les outils de base pour commencer à travailler en tant que développeur de logiciels Windows ou Web.

Ce que la majeure "Informatique" vous prépare à faire dépend fortement de l'université qui l'offre. Il semble que vous soyez sur la bonne voie pour avoir un aperçu très anachronique et de bas niveau des ordinateurs qui ne ressemble pas à ce que vous recherchez après votre éducation. Je vous invite à regarder autour de vous à l'université et à trouver un programme d'études plus axé sur le type de travail informatique que vous voudrez entreprendre après l'école.

Quoi qu'il en soit, votre programme d'études commencera par une écriture de programme très basique au niveau de la console. La langue n'a pas d'importance; ce qu'ils vous enseignent est une programmation procédurale de base; comment penser en étapes suffisamment petites pour que l'ordinateur puisse vous suivre d'étape en étape (parce que l'ordinateur ne tient rien pour acquis et ne peut pas suivre la plupart des sauts d'un humain dans la logique). De là, vous passerez à la programmation orientée objet (au lieu d'avoir une longue fonction qui fait tout, il est beaucoup plus facile de maintenir plusieurs "objets" de code plus petits, qui représentent l'état et la logique des objets du monde réel), puis à programmation événementielle ("Ne nous appelez pas, nous vous appellerons"; votre programme démarre essentiellement, indique au système d'exploitation de configurer votre interface graphique initiale,

KeithS
la source
Merci, oui je vais considérer cela. Si je sens que ça va dans la mauvaise direction, je peux changer plus tard, les cours de base devraient être compatibles entre les univers.
Toerndev
Attention à cette hypothèse; J'ai changé de majeure de CS à MIS, et aucune des mathématiques que j'avais déjà prises n'a été transférée parce que l'école de commerce avait une piste de mathématiques complètement distincte. L'anglais, les sciences, les sciences humaines, ouais ça a été transféré.
KeithS
1

Les cours d'informatique ne vous apprendront pas la programmation. C'est une promenade dans le parc par rapport à une partie de la programmation que j'ai faite sur mon cours CS.

Le problème fondamental, à mon expérience, est qu'il n'y a à peu près nulle part qui va vous enseigner la programmation à un niveau équivalent, vous avez donc pas que ce soit de choix.

DeadMG
la source
0

Je pense qu'il peut y avoir une certaine confusion sur quoi et pourquoi vous étudiez.

Il semble que vous étudiez un programme d'introduction à l'informatique. Ceci est destiné aux personnes ayant une expérience minimale qui apprennent les bases du fonctionnement des ordinateurs à un faible niveau.

Il semble également que vous soyez un programmeur semi-sérieux ou professionnel. Vous programmez depuis 10 ans et êtes à l'aise en 3 langues. Il semble que vous sachiez ce que vous faites au moins suffisamment pour travailler en équipe. Vous sentez-vous hors de propos dans ce cours? Les autres élèves ont-ils un niveau d'expérience ou de compétence similaire à vous?

Que comptez-vous retirer de ce cours?

Êtes-vous juste après ce «morceau de papier»? Si tel est le cas, n'arrêtez pas d'essayer d'obtenir un emploi pendant vos études. Postulez pour des emplois, dites-leur que vous êtes un programmeur compétent et que vous étudiez parce que vous avez besoin du papier pour obtenir un emploi. S'ils vous embauchent, envisagez d'abandonner - une fois que vous avez un emploi professionnel, vous n'avez plus vraiment besoin de ce morceau de papier. Acceptez un salaire inférieur à la normale, car il vaut mieux être payé pour apprendre (sur le tas) que pour apprendre à l'école - et vous apprendrez aussi plus vite. Après un an ou deux, vous serez généralement à la hauteur, puis vous pourrez demander une augmentation de salaire décente ou vous pouvez vous trouver un autre emploi parce que vous aurez de l'expérience.

Ou essayez-vous d'apprendre quelque chose? Alors arrêtez de juger votre professeur. Comme un professeur de lycée mémorable avait l'habitude de dire «ASSIS ET TENUE». Il est presque garanti que le professeur a infiniment plus d'expérience et de connaissances que vous et que vous pourriez en apprendre énormément de lui. S'il va trop lentement pour vous, essayez d'obtenir des crédits pour ces cours d'introduction en fonction de vos acquis et de votre expérience.

Mais êtes-vous sur la bonne voie? Vous pourriez également apprendre beaucoup du professeur de littérature ou d'un professeur d'histoire ... pas particulièrement pertinent. Peut-être que vous ne voulez pas de «science informatique», mais plutôt des compétences plus pratiques et «réelles». Essayez «génie logiciel». Regardez d'autres institutions pour un cours plus ciblé.

Tout comme lorsque vous commencez un nouvel emploi, une classe ou un programme d'études peut être très difficile à réviser de l'extérieur. Vous semblez suivre un cours qui ne vous donne pas ce que vous attendez. Reconsidérez vos options.

Kirk Broadhurst
la source
Merci, j'y ai réfléchi et je pense que vous avez tout à fait raison sur ces deux options. Le premier est plus vrai pour moi, et je chercherai des emplois en attendant de voir si les cours deviennent plus intéressants. Il est en fait une formation en génie logiciel, que j'ai choisi sur la science informatique depuis que je veux me lever à la vitesse plus tôt et apprendre par le travail. Cela explique peut-être pourquoi je m'attendais à un peu plus de «compétences réelles». :)
Toerndev
Juste quelques remarques de mon passé universitaire: j'ai étudié un cours où nous avions la "programmation 101" sur le calendrier, cette partie était ennuyeusement ennuyeuse pour moi. Mais d'autres cours étaient intéressants (physique, mécanique, ...) donc même si une conférence est ennuyeuse qui pourrait ne pas s'appliquer à l'ensemble du programme et pour les autres parties, cela pourrait valoir la peine de passer par la douleur. Mais j'ai abandonné. Pendant ce temps, j'ai appris que parfois ce papier aurait été bénéfique même si le papier ne signifie pas que je serais meilleur dans mon travail (j'ai un bon travail, un bon salaire, ... donc ce n'est pas mauvais ;-))
johannes
0

J'ai pensé que beaucoup de réponses à cette question étaient décevantes. Ils sont revenus à la vieille argumentation fatiguée à propos de CS vs Programmation, etc. Cela peut être le cas, mais il me semble que le cours sur lequel l'OP n'est pas enseigné non plus.

J'étais dans la situation d'avoir déjà travaillé en tant que programmeur et étudié un peu par moi-même, avant d'étudier CS à temps partiel au collège. J'ai fait le tour avec soin, mais j'ai généralement trouvé que le programme était une perte de temps. De plus, ils ne me laissaient pas sauter de cours malgré une expérience professionnelle dans le domaine.

D'après mon expérience, une proportion importante de professeurs sont assez paresseux et utilisent un programme obsolète. Honnêtement, on dirait que vous perdez votre temps. Je me demande même si l'obtention du diplôme vous aidera à trouver un emploi.

Je doute que vous puissiez faire beaucoup pour changer les choses dans votre cours. Vous pouvez soit le compléter par l'étude par vous-même. Ou oubliez le tout, étudiez le CS de manière indépendante et faites également des certifications industrielles.

Je dois ajouter que je n'ai aucune idée de la valeur du diplôme sur le marché du travail de votre pays. Si le diplôme lui-même est valable malgré le contenu, vous devrez peut-être simplement accepter un programme qui fait quelque peu défaut.

Antonio2011a
la source
Je n'ai pas vu ça avant. Je suis content de voir quelqu'un dire exactement ce que je ressentais à propos de certaines réponses (votre premier paragraphe)! Oui l'enseignement est plutôt inutile, je n'assiste plus aux cours mais je rentre juste les programmes que j'ai besoin d'écrire. Je le fais à ma façon (ce qui est généralement assez mauvais, venant de CL en C ++), je rencontre beaucoup de choses qui ne sont pas dans le programme et je demande conseil à des amis programmeurs plutôt qu'au professeur. De cette façon, c'est vraiment amusant. J'espère toujours pouvoir trouver un emploi avant d'obtenir mon diplôme.
Toerndev
0

Ils doivent répondre aux étudiants. La plupart des étudiants ne peuvent pas programmer. Ils ne sont donc pas poussés à aller technique là-bas.

Ils ont aussi leurs propres domaines de recherche spécialisés, mais ils n'enseignent pas cela. Et de toute façon, de nombreux chercheurs ne sont pas de bons enseignants de toute façon, alors vous pourriez vous considérer chanceux s'ils enseignent des choses que vous connaissez déjà!

De toute façon, vous ne semblez pas savoir ce qu'est l'informatique. Il ne s'agit pas de ce qui est pratique pour l'industrie.

barlop
la source
-6

Je demanderais (et insisterais ensuite) de retourner vos affectations en c ++ standard. Ceci est tout à fait raisonnable car vous ne pouvez pas terminer les affectations autrement.

Quant au mauvais style; il y aura inévitablement une partie de cela pour commencer. Apprendre à utiliser correctement la bibliothèque io standard nécessite quelques fonctionnalités avancées de c ++, en particulier des modèles et des itérateurs. Je peux voir pourquoi un conférencier vous amènerait à utiliser des fonctions io très simples pour commencer. Je n'aurais pas peur de poser des questions à ce sujet, cela montre de l'enthousiasme et un peu de lumière dans vos yeux. Votre conférencier devrait être en mesure de tisser votre question dans une future conférence où vous (espérons-le) corrigez vos premiers exercices.

Je n'en resterais pas là cependant. Même si c ++ peut être un langage indépendant de la plate-forme, ce n'est souvent pas le cas. Apprendre certaines fonctions du système Windows n'est pas une mauvaise chose, surtout si vous vous entraînez à le faire selon la norme. Vous rencontrerez à un moment donné en conio.hregardant le code d'autres peuples - et il est bon de savoir ce qu'il fait.

À M
la source
10
non, on vous donne des outils pour faire le travail, et c'est votre travail d'utiliser ces outils. Si vous avez un travail où tout ce que vous avez est un XT de 15 ans exécutant CP / M, exigeant qu'ils acceptent votre code Windows 7 64 bits ne fonctionnera pas non plus, mieux vous y habituer le plus tôt possible.
jwenting
2
@Ramhound Une université devrait permettre de terminer le cours sans avoir à acheter du matériel coûteux (comme le système d'exploitation Windows). C'est préjudiciable.
Tom
3
@ Tom, si j'enseignais Photoshop, je m'attendrais à ce que vous achetiez Photoshop (qui est très cher) et je m'attendrais à ce que vous achetiez des manuels qui sont chers, je ne vois pas où cela est différent. Et je parie qu'il y a beaucoup d'ordinateurs sur le campus qu'il pourrait utiliser pour la tâche sans acheter Windows (ce qui, franchement, toute personne étudiant CS devrait probablement avoir les deux de toute façon, vous ne savez jamais où vous vous retrouverez, les gens programmant le dans la pile Microsoft des produits n'ont pas tendance à utiliser Linux.)
HLGEM
3
@Ramhound Même si le professeur n'a pas explicitement expliqué pourquoi il utilise des routines d'E / S simplifiées, nous pouvons probablement faire une supposition correcte. Comme Tom l'a mentionné, les routines io de C ++ sont relativement complexes, donc cacher les détails n'est pas déraisonnable dans un cours d'introduction. La décision d'utiliser une bibliothèque spécifique à la plate-forme Windows au lieu d'une bibliothèque basée sur * nix revient presque certainement à l'hypothèse que la plupart des étudiants utilisent Windows non * nix, et que plus d'utilisateurs de Windows auraient du mal à démarrer avec * nix que vice versa.
Dan Neely
5
@gaidal - les règles sont là pour une raison. Si vous commencez à travailler quelque part et décidez qu'au lieu de la bibliothèque propriétaire, vous allez utiliser le standard parce que "les normes sont là pour une raison" - vous vous retrouverez au chômage très rapidement. Suivez ce cours comme un exercice de conformité aux normes de codage. Tu ne vas pas toujours aimer ça.
littleadv