Vielleicht bin ich es nur, aber als aktueller CS-Student bin ich auf dieser Website und anderswo bereits auf viele Fragen gestoßen, nicht nur zu dem Thema "Welche Sprache soll ich für x verwenden?" aber auch "Verwendet noch jemand die Sprache Y?" Meine erste CS-Klasse wurde in Scheme unterrichtet, was, wenn ich mich nicht irre, nicht weit verbreitet ist (zumindest im Vergleich zu Sprachen wie Java, PHP, Python usw.). Viele meiner Klassenkameraden sträubten sich gegen die Vorstellung, eine Sprache lernen zu müssen, die sie nie wieder brauchen würden, aber ich verstehe nicht ganz, woher so viel von dieser Angst, weniger beliebte Sprachen zu lernen, kommt. Nein, ich kann Scheme in keinem Job anwenden, aber ich bedaure es nicht, dass ich es gelernt habe (auch wenn es in diesem einen Semester noch ein Anfänger war und nicht sehr gründlich). Ich nehme in diesem Semester an einem Suchmaschinen-Kurs teil. was in Perl gemacht wird und ich sehe wieder Klassenkameraden, die sich über die Wahl der Sprache beschweren. Ich kann verstehen, eine Lieblingssprache zu haben und andere nicht zu mögen, aber warum machen sich manche Gedanken darüber, sie überhaupt zu lernen? Kannst du wirklich die "falsche" Sprache lernen? Ist das Lernen von etwas wie Schema oder Haskell nicht eine gute mentale Übung, wenn nichts anderes, und nützlich, wenn man sich zumindest mit verschiedenen Arten der Problemlösung auseinandersetzt?
28
Antworten:
Der Sinn eines CS-Abschlusses ist es nicht, Ihnen C # und Java beizubringen, sondern Sie können diese auf eigene Faust erlernen. Es soll Ihnen etwas über Programmierung und Berechnung beibringen. Die Sprache ist nur ein Detail. Im Laufe Ihrer Programmierkarriere werden Sie viele Sprachen verwenden. Heute ist es vielleicht Java oder C #, aber in 10 oder 15 Jahren könnte es Erlang sein oder etwas, das noch nicht einmal erfunden wurde. Es ist viel wichtiger, verschiedene Programmierstile und verschiedene Methoden zu erlernen, um ein Problem anzugehen, als eine Sprache zu lernen.
quelle
Denn Ihre Muttersprache wird Ihr Denken beeinflussen, bis Sie etwas anderes lernen.
Wenn Sie Analphabet sind (Erstprogrammierer) und die erste Sprache, die Sie lernen, zu "grundlegend" ist, kennen Sie möglicherweise Konzepte höherer Ordnung wie Objektorientierung, Mehrfachversand, Vererbung, erstklassige Funktionen, Metaprogrammierung usw. nicht.
Die erste Sprache, die Sie lernen, ist normalerweise an Ihren ersten Streifzug durch das rechnerische Denken gebunden. Wenn Ihnen jemand sagt, Jimmy, dass die Welt vor Ihnen aus A-, B- und C-Symbolen besteht, werden Sie nur an A-, B- und C-Symbole denken. Bis eines Tages ein ausgefallener Nerd Sie verspottet, weil Sie X nicht kennen , Y und Z Konzepte. Das hätten Sie auf keinen Fall gewusst, wenn Sie nur ABC gekannt hätten.
Die Menschen, die sich am meisten um die Muttersprache eines Menschen sorgen, sind wahrscheinlich aufgeklärte Programmierer, die sich durch die Dunkelheit gekämpft haben. Oh, jetzt weiß ich, was eine erstklassige Funktion ist. Mann, ich wünschte, ich wüsste vor zwei Jahren etwas über Vererbung und Abhängigkeitsinjektion!
Ihre Muttersprache ist nicht so wichtig wie Ihre Einstellung zu nachfolgenden Sprachen. Wenn Sie weit vor sich sehen können, um zu wissen, dass es eine Welt jenseits von BASIC / C / Perl / PHP / etc gibt, sind Sie dem Spiel weit voraus. Aus diesem Grund sind viele Menschen Fanatiker funktionaler Sprachen, da viele aktiv entwickelte Sprachen auf sie zukommen.
quelle
Als ich auf dem College war, kannte ich viele Leute, die sich für ein wirtschaftswissenschaftliches Studium entschieden, nicht weil sie sich besonders dafür interessierten oder sich dafür begeisterten, sondern weil sie dachten, es würde ihnen einen guten Job bringen.
Ich habe ein Hauptfach in Ostasienwissenschaften studiert, weil mich der Unterricht, den ich als Nebeneffekt meines anfänglichen Interesses an Literatur nahm, faszinierte. Ich bin nach Deutschland gegangen, weil ich ein Austauschprogramm machen wollte, in dem ich die meiste Zeit in Japanologie und Sinologie verbracht habe. Ich habe das studiert, woran ich mich am meisten interessierte. Ich habe mich entschieden, das College nicht zum Studium von Computer-bezogenen Dingen zu nutzen, da ich bereits in meiner Kindheit ziemlich viel herumgehackt hatte, aber ich habe Zeit damit verbracht, das Internet zu programmieren und zu verstehen, und schließlich vielleicht auch unwahrscheinlich Ich habe einen guten Job bekommen, der es geschafft hat, all diese Interessen zu vereinen.
Der Unterschied besteht zwischen dem Karrieristen und jemandem, der für das Lernen lernt. Der Karrierist ist besorgt, dass sie das Falsche studiert haben und es bereuen werden, weil es nicht das Richtige ist, um mir einen Job zu verschaffen. Die Person, die zum Zweck des Lernens lernt, stellt fest, dass sie 4 Jahre Zeit hat, um alle möglichen Bereiche mit relativ überschaubarem Druck zu erkunden. der karrierist glaubt, dass es die aufgabe der schule ist, ihnen etwas beizubringen. Der Lernende findet heraus, wenn er auf unbekanntes Gebiet stößt, und hat eine bessere Chance, genau den richtigen Job für ihn zu finden. Der Karrierist landet als zweiter Buchhalter in einer drittklassigen Firma, zahlt die Rechnungen und ärgert sich über ihren Chef.
Ja, das sind Archetypen, und jeder muss Pragmatismus mit seinen Leidenschaften in Einklang bringen, aber das ist der wesentliche Unterschied. Zugegeben, jemand mit der Programmiererästhetik kann die Frage auch stellen, aber mehr im Zusammenhang mit "Welcher wird der am wenigsten verschwenderische Gebrauch meiner Zeit sein?". Aber ich vermute, dass es der karriereorientierte Impuls ist, der diese Frage stellt, da der karriereorientierte Mitarbeiter weit mehr Angst vor Fehlern hat als der Lernende, und der Lernende im Allgemeinen einen besseren Programmierer macht, weil der Lernende keine Fehler fürchtet. Der Lernende begrüßt, wie der Programmierer, das Versagen, wenn es darum geht, Fähigkeiten zu erlernen.
quelle
Ja, funktionale Sprachen wie Scheme und Haskell zu lernen ist eine gute Einführung in die funktionale Programmierung. Was Ihre Klassenkameraden angeht, die sich über Perl beschweren, ist Perl zwar nicht mehr so populär wie früher, im Geschäftsleben jedoch mit Sicherheit immer noch eine weit verbreitete Sprache.
Ich kann Ihre Klassenkameraden verstehen, die praktische Sprachen lernen möchten, die in der realen Welt verwendet werden, aber ich denke, sie übersehen den Punkt, dass das Erlernen neuer Sprachen meist nur eine Frage des Lernens ist, wenn Sie ein erfahrener Programmierer sind und mit mehreren Programmierparadigmen vertraut sind die neue Syntax. So können Sie sich, solange Sie mit den Konzepten vertraut sind, problemlos auf die von Ihrem späteren Arbeitgeber bevorzugte Sprache "spezialisieren".
quelle
Vielleicht, weil die Leute von Aussagen wie Edsger Dijkstras klassischem Trolling beeinflusst wurden: "Es ist praktisch unmöglich, Schülern, die zuvor mit BASIC in Berührung gekommen sind, gutes Programmieren beizubringen. Als potenzielle Programmierer sind sie über die Hoffnung auf Regeneration hinaus mental verstümmelt." ( Link )
Wenn Sie die "falsche" Sprache lernen, besteht die Gefahr einer dauerhaften Schädigung des Gehirns. Ihr Perl-Beispiel ist nicht überraschend, da Perl eine dieser Sprachen ist, die von Kritikern häufig Kritik wie diese hervorruft.
quelle
Ihre Muttersprache sollte sich auf Konzepte konzentrieren, nicht auf Syntax oder Redewendungen.Verwenden Sie das als Richtlinie:
quelle
Fragen Sie Ihre Klassenkameraden, woher sie wissen, dass eine Sprache "falsch" ist, wenn sie sie nicht verwendet haben. Sie können nur mit einer Vielzahl von Sprachen herausfinden, was Ihnen gefällt.
Ohne sie zu kennen, kann ich nicht mit Sicherheit sagen, warum sie sich so fühlen würden. Vielleicht sind sie faul. Vielleicht haben sie die Sprache vorher benutzt und sie nicht gemocht. Vielleicht haben sie Angst, eine andere Sprache zu probieren. Wer weiß. Was ich weiß, ist, dass ein CS-Student, ein Forscher, der in der Industrie gearbeitet hat und eine Vielzahl von Sprachen beherrscht, ein großer Vorteil ist und man nie weiß, was man verwenden wird oder nicht. Beispiel: Als ich C zum ersten Mal lernte, machte uns mein Lehrer mit Shell-Skripten und Befehlszeilendienstprogrammen wie
grep
und vertrautawk
. Meine Freunde haben sich nicht die Mühe gemacht, diese zu einer Kompetenzstufe zu lernen. Ich benutze sie jetzt jeden Tag bei der Arbeit.Perl ist sehr mächtig und wenn Sie wissen, wie man es benutzt, kann es Ihnen das Leben erheblich erleichtern. Es ähnelt auch Python, und Python wird häufig bei einem der besten Personalvermittler von CS-Schülern eingesetzt: Google. Deine Klassenkameraden sollten das auffressen. FWIW, ich kenne Perl und Python bis zur Mittelstufe (kein Anfänger, aber kein Experte).
Jung und eitel? Ich war auch so. Aber mein "Ärger" war mehr im Bereich der Mathematik. Aus dieser Erfahrung heraus würde ich wetten, dass sie darüber aufgeregt sind, weil sie nicht gerne neue Dinge lernen oder dass es schwierig ist, neue Sprachen für sie zu lernen. (Aber irgendetwas Wissenswertes wird dir nicht einfach in den Schoß fallen, sage ich.)
Zum ersten Satz: Nein, aber du kannst definitiv Sprachen lernen, die du lieber nicht + hust + Lisp + hust + haben möchtest =)
An den Rest: Ja! Sie sollten so viele Sprachen wie möglich lernen, um herauszufinden, was Ihnen gefällt, und um Ihren Horizont zu erweitern. Es ist nicht erforderlich, sie alle zu meistern, aber ein funktionierendes Wissen ist immer hilfreich. Sie wissen nie , wann eine Sprache, von der Sie dachten, dass sie Zeitverschwendung ist, nützlich ist.
quelle
Weil die Einstellung von Programmierern ein willkürlicher, launischer Prozess ist, ist die einfache Tatsache, dass Sie bei der Wahl der falschen Technologie möglicherweise den Weg des Dodos finden
Auf der Titelseite sehen Sie zu jeder Zeit fast religiösen Eifer in Bezug auf solche Überzeugungen wie:
Die einzige Konstante dabei ist, dass 99% der Unternehmen möchten, dass Sie über eine X- jährige Erfahrung mit Y- Technologie verfügen .
quelle
Ich denke, die Angst bei der Wahl der „falschen“ Sprache zum Lernen ist hauptsächlich auf mangelnde Information und mangelnde Anleitung zurückzuführen , wie zum Beispiel:
quelle
Wir sind mehr Meinungen ausgesetzt.
Im Vergleich zu früheren Entwicklungen gibt es immer mehr Überlegungen darüber, wie wir unsere Zeit verbringen, weil wir mehr Meinungen ausgesetzt sind - jeder hat seine Gedanken darüber, wie die erste Programmiersprache aussehen sollte und seitdem So ein heikles Thema kann jeder alles rechtfertigen .
Aufgrund unseres schnelllebigen Lebensstils hat jeder die angeborene Angst, seine Zeit zu verschwenden. Die akzentuierte Angst, die falsche Sprache zu lernen, ist einfach darauf zurückzuführen, dass Menschen leicht einer Vielzahl von Meinungen ausgesetzt sind.
quelle
Es ist die allgemeine Abneigung gegen das Lernen von etwas, das fragwürdigen Nutzen hat. Ich kann sehen, dass der Stich hier noch schlimmer ist, da dies die Klasse ist, an der die Leute teilnehmen möchten und sie immer noch etwas lernen, das sie für nutzlos halten. Ich weiß, wenn ich eine Collage machen würde, würde ich etwas lernen wollen, das ich in der realen Welt verwenden kann.
Der einzige Teil, in dem ich diesen anderen Leuten widersprechen könnte, ist, wenn eine Sprache stark gebraucht wird und sie einfach nicht aus ihrer Sprechblase herausgehen wollen, um sie zu lernen. Nur dann macht die Beschwerde keinen Sinn.
quelle
Warum ist es "Angst". Ich würde es Animosität nennen, wenn man etwas zwangsernährt hat, was man nicht will oder nicht für wichtig hält. Keine Sprache ist falsch, aber wir haben wenig Zeit, um uns auf die Dinge zu konzentrieren. Ich musste meinen CS-Unterricht mit Java absolvieren und war nicht glücklich darüber. Nicht, weil ich befürchtete, dass Java die falsche Sprache ist, aber das war nicht mein beruflicher Schwerpunkt.
Jetzt ist Java nützlich, oder? LOL Jeder lernt Java. Daran möchten Sie nicht teilnehmen. Ihr Lebenslauf befindet sich in einem Stapel von Tausenden mit der Überschrift "Recent CS Graduate, Knows Java". Ihr eigentlich wahrscheinlich besser gestelltes beschäftigungsfähiges Lernschema ist das geheime Zeichen dafür, dass Sie an eine Eliteuniversität gegangen sind und nicht an irgendein versautes Community College.
Ich würde auch sagen, dass diese Art von Feindseligkeit viel breiter ist als CS im Allgemeinen, aber ein Hinweis auf die Hochschulbildung im Allgemeinen. Ich bin mir sicher, dass der Lehrer Perl ausgewählt hat, weil er Perl kennt und es leicht beurteilen kann und befürchtet, neuere Sprachen zu lernen, die die Schüler lieber lernen würden. Ich denke, es ist Ihre eigene Ausbildung und Sie sollten in der Lage sein, die Technologien herauszufinden, die Sie für Ihren eigenen Erfolg für notwendig halten.
(PS MIT gab Schema auf und wechselte zu Python)
quelle
Zeit ist das seltenste Gut von allen, wenn Sie erst einmal in der realen Welt sind - und niemand möchte Zeit mit Fähigkeiten verschwenden, die ihm keinen wirklichen Nutzen bringen.
Abgesehen davon glaube ich nicht, dass es eine "falsche" Sprache zum Lernen gibt - aber ich wünschte, ich hätte Ruby schon vor Jahren entdeckt, anstatt mit fortgeschrittenen PHP-Dingen zu kämpfen ...
quelle