Wir haben es alle gehört; Wann immer es eine Diskussion über CS-Absolventen mit schlechten Entwicklungsfähigkeiten gibt, sagt irgendwann jemand:
Informatik ist keine Softwareentwicklung.
Das Problem , das ich sehe , ist , dass die Programmierung und Software - Entwicklung sind in CS Kursen gelehrt. Sie werden nur allgemein schlecht unterrichtet. Wenn es unterrichtet wird, warum dann nicht gleich beim ersten Mal richtig unterrichten? *
Ich würde also gerne sehen, was die Meinungen zu 2 Fragen sind:
Ist das CS! = SE-Argument eine Ausrede oder eine Entschuldigung dafür, dass Programmierkenntnisse nicht richtig vermittelt wurden?
Unabhängig von Ihrer Antwort auf Frage 1; Wenn Sie in der allmächtigen Position wären, eine solche Entscheidung zu treffen: Würden Sie in CS-Kursen einen Schwerpunkt auf den richtigen Programmierunterricht legen?
*. Ich habe den Verdacht, dass die meisten Akademiker auf diesem Gebiet, basierend auf Anekdoten, die ich während meiner Ausbildung erhalten habe, keinen Code schreiben mussten, um gewartet zu werden, und keinen Code gewartet haben und daher nicht über die Kenntnisse / Fähigkeiten verfügen um es effektiv zu lehren.
quelle
Antworten:
Ich denke nicht, dass es sich um einen Copout handelt, sondern vielmehr um die Behauptung, dass Informatik keine Softwareentwicklung ist, sondern keine Programmierung - es ist die Wissenschaft des formalisierten Rechnens. Im Wesentlichen handelt es sich um Mathematik (in der Tat begannen viele CS-Programme als Programme für angewandte Mathematik).
Ich denke, das Problem liegt eher in der Industrie als in der Wissenschaft. Die Industrie sieht einen CS-Abschluss in einem Lebenslauf und meint: "Großartig, dieser Typ kann gut mit Computern umgehen" und beauftragt ihn, alles zu tun, was mit Computern zu tun hat : IT, Programmierung, Softwareentwicklung, was auch immer. Diese Dinge gehören nicht unbedingt zum Fachwissen eines CS-Absolventen. Viele Leute, die gerne Computer bauen oder Videospiele spielen, nehmen an einem CS-Programm teil und erwarten, dass sie solche Dinge tun und eine unhöfliche Überraschung erleben. Das heißt, viele Studierende, die in die CS gehen, gehören nicht wirklich dorthin und sind in einem gezielteren Studiengang besser aufgehoben.
Zweitens gibt es eine sehr begrenzte Zeit, um CS - ein sehr breites Fach - in einem typischen Grundstudienplan zu unterrichten. Mein Grundstudium bestand aus 8 CS-Kursen (für einen BA) oder 12 CS-Kursen (für einen BS) sowie allen erforderlichen Mathematikkursen. Es ist nicht viel Zeit, um CS und Mathematik sowie Programmieren und Software-Engineering zu unterrichten. Irgendwann müssen Sie also entscheiden, was wichtig ist und was ein Schüler selbst lernen kann.
Dieser letzte Punkt ist von entscheidender Bedeutung: Ich denke, ein guter Schüler - in jedem Fachbereich - wird sich selbst mit Ideen befassen. Ich habe einen CS-Abschluss, aber ich glaube, ich habe das College als anständiger Entwickler abgeschlossen, weil ich selbst Software studiert und geschrieben habe . Das College dreht sich nicht nur um den Unterricht. Es geht auch darum, den Schülern Zeit zu geben, ihre Fähigkeiten halbautonom weiterzuentwickeln, und dabei wertvolle Hinweise zu geben.
Ich behaupte , dass die Lehre der Theorie - CS, Mathematik usw. - ist genauso wichtig, wenn nicht mehr wichtig, als Lehre bestimmte berufsbezogene Fähigkeiten. Wenn Sie einem Schüler das Warum hinter Methoden und Techniken beibringen , und nicht nur das Was , werden Sie jemanden finden, der viel anpassungsfähiger ist, wenn er sein Wissen anwendet. Ich ging zum Beispiel auf eine schlecht gemachte "Java-Schule" und wurde daher in Java unterrichtet, aber ich hatte auch Kurse in Programmiersprachtheorie, die das Warum hinter vielen Sprachen erklärten . Infolgedessen habe ich gelernt, viel bessere Software zu schreiben, als wenn ich diesen Hintergrund nicht hätte. Klar, ich schreibe in meiner täglichen Arbeit keine Software in Haskell, aber die Kenntnis vieler theoretischer Programmiersprachen hat es mir ermöglicht, einen Einblick zu gewinnenhat gewesen zu meinem Job als Programmierer anwendbar.
Ich denke auch, dass die Industrie von den Studenten zu viel erwartet. Die Industrie will ihre eigenen Kosten senken, und anstatt neue Mitarbeiter für ihre Arbeit auszubilden, erwarten sie, dass die Hochschulen Handels- und Fachschulen werden. Tatsächlich möchten sie, dass die Hochschulen ihre Ausbildung für sie machen. Von Hochschulabsolventen kann nicht erwartet werden, dass sie alles frisch vom College wissen . Ein guter Entwickler zu sein, bedeutet sowohl Erfahrung als auch Wissen (insbesondere in einem relativ jungen Bereich wie der Softwareentwicklung).
quelle
Ein Teil des Problems ist die Tatsache, dass 4 Jahre nicht genug Zeit sind, um ein polierter Software-Ingenieur zu werden. Angesichts der Tatsache, dass wir möchten, dass der Undergrad mehr als nur Mathe- und CS-Kurse kennt und dass es eine Menge reiner Mechanik zu lernen gibt (Algorithmen, Datenstrukturen, Sprachsyntax), können wir nicht erwarten, dass ein grüner CS-Major vorhanden ist ein Software-Ingenieur.
Ich würde zustimmen, dass CS! = SE und ich bin nicht sicher, ob Sie einfach zur Schule gehen und SE werden können (auch mit einem Master)
quelle
CS ist in der Tat nicht SE. Und die Leute scheinen die zwei ständig zu verschmelzen, auch wenn sie es zugeben. Informatik sollte eigentlich in Computologie oder Informatik umbenannt werden. In der Tat hat die Informatik sehr wenig mit Computern zu tun. Es geht um Graphentheorie, Algorithmusanalyse, Datenstrukturen usw.
Die Leute wollen davon ausgehen, dass ein neuer CS-Abschluss tatsächlich ein ITT-Abschluss ist. Sie wollen jemanden, der in einer Berufung ausgebildet wurde. Informatik ist Wissenschaft, Programmieren ist Kunst. Das ist nicht dasselbe.
Das ist so, als würde man fragen, warum ein frisch gebackener Physiker kein guter Autoingenieur ist. Es ist dumm.
quelle
quelle
Nein, CS ist nicht SE. Das ist eine Tatsache, keine Entschuldigung.
Nein. Es wäre, als müssten Astronomen die Details des Teleskopbaus lernen. Oder Programmierer dazu zwingen, die Details des Computerbaus zu lernen. Verwandte Sachen, aber ein Mann muss nicht alles wissen.
quelle
Ja, das klingt für mich wie ein Cop-out und ein Zeichen für CS Unreife als akademische Disziplin.
Für ein von der American Chemical Society akkreditiertes BS-Programm müssen Sie bestimmte Kurse absolviert haben, um bestimmte Kenntnisse in Theorie (Vorlesungsunterricht) und Praxis (Laborklassen) nachzuweisen. Soweit ich weiß, hat CS derzeit nichts Vergleichbares.
Einer meiner Absolventen war ein sehr elfenbeintürmiger Theoretiker, dessen Büro nie mit etwas physikalisch chemischerem als einem Goldfischglas mit Magic Rocks beschmutzt war, aber als ich sein TA für Freshman Chem war, erwies er sich auch als ziemlich kompetenter Bankchemiker .
Als ich als Chemiker für Industrielacke arbeitete, hätten sie sich über die Vorstellung lustig gemacht, ich hätte einen Bachelor und wäre im Labor inkompetent. Natürlich waren die Details, die ich im Labor machte, anders als in den Schulklassen, aber die Prinzipien waren dieselben - wir verwendeten nur einen Farbmischer und eine Dose anstelle eines Bechers und eines Magnetrührers .
Wenn man denselben Ansatz auf CS anwenden würde, könnten die Details dessen, was man als praktische Softwareentwicklungsfähigkeiten für einen CS / SE-Lehrplan lehrt, von Schule zu Schule und im Laufe der Zeit variieren. Aber es klingt einfach verrückt zu mir , dass es akzeptabel ist , dass jemand einen Abschluss im Bereich bekommen konnte und nicht kompetent zu schreiben, debuggen und Aufrechterhaltung etwas Art von Code. (Natürlich sind die Dinge in vielen CS-Programmen so, aber es ist immer noch verrückt.)
quelle
Ich bin damit einverstanden, dass 4 Jahre nur genug Zeit sind, um ihnen eine gute Grundlage zu geben, auf der sie wachsen können. Ich denke jedoch, dass eine Sache, die wirklich hilft, darin besteht, dass Leute aus der Industrie in die Entwicklung des Lehrplans und sogar in das Unterrichten im Klassenzimmer involviert werden. Letztes Jahr war ich Industrie-Fellow in einer Software-Entwicklungsklasse an einer örtlichen Universität. Es war eine sehr aufschlussreiche Erfahrung für mich. Der Professor und ich haben gemeinsam an den Kursinhalten gearbeitet, und wir haben viel mehr Informationen über den Entwicklungsprozess, die Best Practices der Branche und die "realen" Situationen zusammengestellt als zuvor. Was wir entdeckten, war, dass, da die meisten Ausbilder keinen weit verbreiteten und gewarteten Code entwickeln, die Einbeziehung von Mitarbeitern aus der Industrie dazu beitrug, die dafür erforderlichen Fähigkeiten zu identifizieren und zu vermitteln.
quelle
Ja, es handelt sich zu 100% um eine Koproduktion. Sie sollten langfristige Fähigkeiten vermitteln, die während unserer gesamten Karriere von Nutzen sein werden. Unabhängig davon, ob Sie in die Wissenschaft oder in die Industrie einsteigen möchten oder nicht, müssen Sie in der Lage sein, Programme auf eine Art und Weise zu programmieren, die beibehalten werden kann, auch wenn dies nur für Sie selbst gilt.
Ja, obwohl es nur in den richtigen Kursen betont werden würde. Wenn ich persönlich mit Ihnen sprechen muss, um besser zu verstehen, wie Sie versucht haben, einen Algorithmus zu implementieren, würde ich Ihre Note herabsetzen.
Selbst wenn Sie reine CS-Forschung betreiben, müssen Sie wahrscheinlich Code erstellen, um Ihre Ideen zu demonstrieren. Die richtigen Programmierkenntnisse werden Ihnen irgendwann von Nutzen sein. Warum also nicht am College anfangen?
quelle
Ich denke, unser Problem ist, dass wir viel mehr wie Ärzte sind, als wir zugeben möchten ... Wir sind der Meinung, dass ein vierjähriger Abschluss die Studenten auf das Schreiben von Software vorbereiten sollte. Es ist nicht einmal in der Nähe.
Unser Beruf steckt im Vergleich zu anderen Disziplinen weitgehend in den Kinderschuhen. Vielleicht sollte die Frage lauten: Wie können wir CS verbessern, damit die Studenten, die mit diesem Abschluss abschließen, besser dazu geeignet sind, in viel kürzerer Zeit produktive Mitglieder eines echten Softwareentwicklungsteams zu werden?
Vielleicht sollten wir mehr wie Medizin sein. Vier Jahre Basisarbeit (CS-Abschluss) und dann Aufenthalt - Praktizieren des Handwerks unter Aufsicht eines erfahrenen Software-Ingenieurs. Vielleicht ist es das, was wir bereits haben, aber es ist weniger formal ... Ich meine, wie ein Bewohner lernen wir unsere wertvollsten Fähigkeiten am Arbeitsplatz in unseren ersten Jobs.
Vielleicht müssen wir dies als Disziplin nur besser formalisieren.
quelle
Ich habe einen CS-Abschluss und für ein ganzes Jahr meines Programms gab es keine Programmierung, nur Theorie. Uns wurde gesagt, dass wir keinen Abschluss in Programmieren haben, sondern in Informatik. Wenn Sie Programmierer werden möchten, besuchen Sie das Community College.
Wir haben etwas über Algorithmen, Entwurfsmuster und eine Menge Theorie zum Lösen von Problemen ohne eine Raumsprache gelernt. Programmiersprachen kommen und gehen, aber die Unterstreichungstheorie bleibt gleich.
Also, zu Ihrer ersten Frage, nein, ich glaube nicht, dass CS! = SE ein Copout ist. Es ist eine Tatsache.
Zu Ihrer zweiten Frage, nein, ich glaube nicht, dass ich es tun würde. Wie unterrichten Sie die Programmierung richtig? Was wäre, abgesehen von Schleifen, ifs, Methoden, Klassen und OOP, die richtige Programmierung und wie würden Sie sie für eine Programmiersprache relevant machen? Sie benötigen Erfahrung im Schreiben von Code, auf die Sie ein vierjähriger Abschluss nicht vorbereiten kann.
Eine Sache, die ich tun würde, ist eine Klasse über Entwicklung in der realen Welt. Quellcodeverwaltung, Ticket- / Bug-Tracking, Code-Tracing und all dieser Jazz wären ein guter Anfang, um die Absolventen auf das vorzubereiten, was sie in ihrem neuen Job erwartet.
Ich denke, es liegt an uns, wenn wir einen neuen Absolventen einstellen, um zu verstehen, dass sie wahrscheinlich keinen preisgekrönten Code schreiben werden. Sie brauchen Führung und Anleitung.
quelle
Für die Universität ist es wichtig, ein ausgewogenes Verhältnis zwischen theoretischem Wissen und praktischen Fähigkeiten zu finden. In verschiedenen Kursen habe ich beides gelernt. In den ersten Jahren gab es viele mathematische und Algorithmen / Datenstrukturen. Was folgte, war eine Wahl: Entweder konnten Sie weiter Informatik lernen (eine Art künstlerischer Weg, auf dem Sie zum Beispiel Kurse mit ausgefeilten Algorithmen für den Stringabgleich belegen konnten) oder sich auf das Software-Engineering konzentrieren. Während dieser Zeit musste man noch einige solide Programmierkenntnisse haben.
Ich habe mich für Software Engineering entschieden, weil ich mich nie besonders für abstrakte Probleme interessiert habe. Aber auch diejenigen, die reine Informatik mochten, mussten:
linux
Kernelmodul und ändern Sie den Kernel selbst. Schreiben Sie ein reines objektorientiertes Spiel inSmallTalk
.Java
in einem Team von vier erstellen ,C
für die parallele Programmierung (die Ideen waren abstrakt, aber die Bewertungen waren ziemlich hart, wie der Verlust von Punkten für die nicht ordnungsgemäße Ausgabe, wenn das Programm fehlschlug, wie es ein guter Unixprogram
tun sollte).django
, weshalb ich dieses Framework liebe),LAMP
(ich habe immer noch Albträumephp
, werde aberpostgresql
stattdessen verwendetMySQL
und ich bin sehr froh, dass ich dasDBMS
jetzt weiß ),python
Desktop-Programm mitPyQt
.Vielleicht gab es andere Projekte, aber ich habe sie jetzt einfach vergessen.
Mein Punkt ist: es hängt alles von der Schule ab. Ich habe große Abneigung gegen reine Softwareentwicklung, wo
Java
die Hauptsprache ist. Ich musste einmal einem Freund helfen, der eine solche Schule besucht und ein Programm für paralleles Programmieren schreiben musste. Ich musste es im Grunde für ihn schreiben, weil er dassizeof(some_string)
inC
der Länge der Zeichenfolge gibt.Ich werde ehrlich sein: Ich hasste Mathe, ich hatte Schmerzen, als ich mich auf abstrakte Aufgaben vorbereiten musste, die bei Algorithmen / Datenstrukturen-Prüfungen durchgeführt würden. Aber es gibt mir einen gewissen Vorteil: Ich kann sehr abstrakt denken. Es ist wie wenn du Kampfkunst lernst und nicht auf der Hut bist (zumindest dort, wo du es solltest). Coach kommt immer wieder und schlägt dir in den Kopf, wenn du die Hände senken musst, weil du es vergessen hast oder weil du zu müde bist, sie aufrecht zu erhalten. Aber nach einiger Zeit machst du einfach weiter so. Und es wird sehr schwer, dir ins Gesicht zu schlagen. Das gleiche gilt für abstrakte algorithmische Probleme. Verstehen Sie den Inhalt der Einführung in Algorithmen und wirklich wenige Dinge werden Sie in der Arbeit überraschen.
quelle
Ich denke die Antwort ist ja (in gewisser Weise).
Die Sache ist, dass es nicht möglich ist, Kindern in kurzer Zeit das Programmieren beizubringen. Sie sollten dem Programmierer das logische Denken beibringen, wie er die Probleme des Programmierers (in kleinerem Maßstab) lösen kann.
Ich bin mir sicher, dass die Schulprogramme überarbeitet werden sollten, in meinem sehr kleinen Land der "Dritten Welt" wird zum Glück versucht, dies zu erreichen. Wir sind das erste Land, das das OLPC-Programm umsetzt. http://laptop.org/en/
quelle
Aus eigener Erfahrung (ich bin im Moment Student) muss ich ja sagen, es ist eine Ausrede. Alle bezeichnen CS als eine Wissenschaft, die uns alle Grundlagen von Computern beibringt, und SE als einen speziellen Zweig in CS, der ausdrücklich Programmierung lehrt. Imo, jeder, der BS in CS hat, muss wissen, wie man guten und optimierten Code schreibt (auch wenn Programmierung nicht sein Spezialgebiet ist). Also ja, wenn ich eine allmächtige Position hätte, eine solche Entscheidung zu treffen, würde ich die Schüler zwingen, gute Programmierkenntnisse zu erwerben.
quelle
Unter der Annahme , das Ziel gute Software - Ingenieure (Programmierer) zu erziehen ist , weil die Welt sie braucht, wird sie auf Antwort OK sagen , was ich denke , soll gelehrt werden?
Erstens ist dies wichtig, da der Wissenstransfer derzeit sehr ineffizient ist. Wenn angehende Programmierer in Klassen sind, sind ihre Gedanken offen und sie nehmen auf, was sie unterrichtet werden. Gleichzeitig sind Professoren (ich war einer) allzu oft mehr daran interessiert, die Graduierten-Pipeline mit Studenten zu füllen, die an esoterischen Fächern arbeiten können. Als der Einwand erhoben wird, dass die Studenten nicht auf reale Probleme vorbereitet sind, habe ich gesehen, dass Professoren behaupten , das sei nicht ihre Aufgabe . Das ist der Job der realen Welt.
Wenn Schüler dann zu Programmierern in der realen Welt werden, möchten sie dann unbedingt von ihren neuen Kollegen lernen? Nach meiner Erfahrung nicht. Vielmehr sind sie bestrebt, das Evangelium zu verbreiten, das sie in der Schule erworben haben. Ich erinnere mich, dass ich als Student und junger Praktizierender darüber nachdachte, wie schwer es sein würde, neue Ideen unter den alten Fuddy-Duddies da draußen zu fördern. Jetzt, wo ich ein alter Fuddy-Duddy bin, sehe ich, wie schwer es ist, neuen Programmierern die Augen für den Unterschied zwischen Theorie und Praxis zu öffnen.
Ich war Ingenieurstudent in Maschinenbau und später in Elektrotechnik. Ein grundlegender Teil davon war a) mathematische Grundlagen und b) praktische Problemlösung. So sollte Software-Engineering sein, nicht nur Programmierung.
Ich denke, Software Engineering (Programmierung) sollte mit genügend Informatik unterrichtet werden, um ein funktionierendes Wissen zu haben - grundlegende Automatentheorie und Informationstheorie. Diese müssen nicht in großer Tiefe durchgeführt werden. Nach dem Erlernen grundlegender Programmierkenntnisse sollte es Kooperationsprojekte von nicht-trivialer Größe geben. Ein wesentlicher Teil davon sollte darin bestehen, Vorschläge und Überlegungen zu alternativen Lösungen spezifischer Probleme zu unterbreiten, wobei Vor- und Nachteile zu analysieren sind, nicht nur die neueste Religion oder "das nächste große Ding" oder eine Einheitsgröße. Schließlich sollte es eine Zusammenarbeit und Partnerschaft zwischen Industrie und Wissenschaft geben, damit Ideen und Verbesserungen in beide Richtungen kommuniziert werden können, was die Qualitätskontrolle erheblich verbessert.
quelle
Diejenigen, die es können, tun es; diejenigen, die es nicht können, lehren.
An meiner Universität ist die Wissensbasis der Lehrer sehr mangelhaft. Ich habe gesehen, wie Lehrer Schwierigkeiten hatten, zu verstehen, wie halbstrukturierte Tabellen in XML dargestellt werden, während sie einen Doktortitel in Datenbankdesign hatten. Ich habe gesehen, wie mein Versammlungslehrer mich gefragt hat, was mein Code tut, wenn es sein Codeausschnitt ist, den ich kopiert und eingefügt habe. Ich habe gesehen, wie mein Lehrer für Software-Design uns sagte, dass die Agile-Methode dieselbe ist wie die Waterfall-Methode, nur schneller, und dass das Modell des iterativen Entwicklungsprozesses nur drei Iterationen haben kann, weil das in dem Buch als Beispiel gezeigte Bild dies ist. Einer meiner Lehrer wusste nicht einmal, was eine elseif-Aussage war.
Ich glaube nicht, dass sie sich "zurechtfinden" oder sich entschuldigen, ich glaube wirklich, dass sie mit ihren Erfahrungen das Beste geben, was sie können, und die haben sie nur wenige.
Ich stimme den anderen Leuten zu, die hier posten, dass 4 Jahre nicht ausreichen, um ein erfahrener Programmierer zu werden, aber die Erfahrung, die meine Lehrer gemacht haben, reicht auch nicht aus, um sie erfahren zu machen. Es ist ähnlich wie in Ender's Shadow, wo Bean feststellt, dass die von den Lehrern in der Kampfschule verwendeten Metriken zu kurz sind, weil der letzte Krieg, der die Regel ist, zu kurz war, um wirklich zu zeigen, was tatsächlich benötigt wird. Mit anderen Worten, die Lehrer gaben ihr Bestes, aber es fehlte ihnen die Erfahrung, um zu wissen, was wirklich nötig ist, um einen guten Kommandeur (oder in diesem Fall einen guten Programmierer) zu machen.
quelle
Those that can, do; those that cannot, teach.
Dem stimme ich auch überhaupt nicht zu: Akademische und industrielle Karrieren führen zu völlig unterschiedlichen Lebensstilen. Ein Großteil der weltweiten Forschung kommt von Wissenschaftlern. Und ich sehe keine Möglichkeit, wie Sie die ursprüngliche Frage beantwortet haben.Informatiker und Softwareingenieure sind unterschiedlich. Die Wissenschaftler sind die Jungs, die die verrückten Experimente durchführen und die Algorithmen entwickeln, die wir Software-Ingenieure nutzen, um besser zu werden.
Denken Sie an Chemiker, die Experimente für ein Pharmaunternehmen durchführen. Sie kümmern sich nicht darum, wie die Chemikalie in Massen hergestellt wird. Sie kümmern sich auch nicht um Marketing, Verpackung, Vertrieb oder irgendetwas, was mit dem Medikament passiert, nachdem sie es entdeckt haben. Zur Hölle, sie kümmern sich nicht einmal um den Zertifizierungsprozess. Alles, was sie interessiert, ist das Auffinden einer Chemikalie, die sich bei der Verabreichung an Testpersonen auswirkt. Das Unternehmen ist dafür verantwortlich, es darüber hinaus zu bewegen.
Informatiker sind wie diese Chemiker. Alles, was sie tun, ist, Theorien mit Code zu testen. Sie kümmern sich nicht darum, wie wartbar der Code ist. Sie beweisen eine Theorie und fahren mit der nächsten fort. Jemand anderes packt diesen Algorithmus zusammen und macht ihn für die Massen nützlich, und wir haben MP3 oder Computer Vision mit dem Kinect oder Streaming Video auf Ihrem iPhone. CS! = SE ist also ein gültiges Argument.
WRT den zweiten Teil Ihrer Frage. Wenn ich einen Abschluss in Musiktheorie machen würde, gäbe es vielleicht einen erforderlichen Kurs in Songwriting oder so, aber ich würde nicht verlangen, dass jemand ein Instrument lernt. Es liegt an den Schülern, das gewünschte Wissen zu finden. Informatik ist nicht Software-Engineering ... wenn Sie SE lernen möchten, belegen Sie ein Doppel-Hauptfach.
quelle
Edsger Wybe Dijkstra war ein niederländischer Informatiker.
Er erhielt den 1972 Turing Award für grundlegende Beiträge zur Programmiersprachen zu entwickeln , sagte einmal:
"In der Informatik geht es nicht mehr um Computer als um Teleskope."
CS ist wirklich anders als eine SE. (CS! = SE).
Ein CS ist ein Wissenschaftler, der sich Kenntnisse in COMPUTER SCIENCE angeeignet hat.
COMPUTER SCIENCE oder Informatik (manchmal abgekürzt CS) ist das Studium der theoretischen Grundlagen von Information und Berechnung sowie praktischer Techniken für deren Implementierung und Anwendung in Computersystemen. Es wird häufig als systematische Untersuchung algorithmischer Prozesse beschrieben, die und Informationen umwandeln.
Die Informatik hat viele Teilgebiete, zum Beispiel:
Viele von uns brauchen diese Fähigkeiten nicht in der täglichen Arbeit oder zumindest ein wenig davon.
SOFTWARE ENGINEER (SE) ist ein Beruf, der sich dem Entwerfen, Implementieren und Ändern von Software widmet, damit diese von höherer Qualität, kostengünstiger, wartbarer und schneller zu erstellen ist. Es handelt sich um einen "systematischen Ansatz für die Analyse, den Entwurf, die Bewertung, die Implementierung, den Test, die Wartung und das Re-Engineering einer Software durch Anwenden des Engineerings auf die Software".
Als CS-Kenntnisse sollte er das Wissen haben, um wirklich komplexe Probleme zu bewältigen, ohne wirklich gute Programmiersprachen zu kennen. IMHO hier können wir einen anderen Thread eröffnen, in dem ein DEGREE für mich NUR ein STARTPUNKT und kein END-ZIEL ist.
Als SE-Kenntnisse sollte er über das Wissen verfügen, um die Produktion dieses wirklich komplexen Problems und die Entwicklung eines Teams oder eines Projekts in diesem Bereich zu verwalten.
Gemeinsam machen Sie die Forschung in der Wissenschaft von einem CS in Applied Science mit Hilfe einer SE.
Ich meine nicht, dass CS besser ist als SE, ich meine CS! = SE.
Diese Art von Frage ist die gleiche Frage, die sich Nicht-Computer-Benutzer stellen, wenn sie Sie fragen, warum Sie als Programmierer das Problem des Programms X, Y, Z auf dem Betriebssystem J, M, nicht telefonisch beheben können. N. ;)
Eigentlich bin ich nach 10 Jahren Unix-Systementwicklung im Sicherheitsbereich total gelangweilt und nachdem ich diese Frage gelesen habe, verstehe ich, dass ich mehr Informatik und weniger Computersprache und Computersystem oder -protokoll studieren muss!
Niemand bei meiner Arbeit kann mit dem Unterschied zwischen SE und CS umgehen! Es ist wirklich eine schlechte Sache.
Wenn Sie der Meinung sind, dass eine CS eine Entschuldigung für schlechte Programmierkenntnisse sein kann, verpassen Sie den Punkt, was eine CS ist und was SE ist.
Ich nehme an, Sie sind eine SE, wissen Sie zum Beispiel, dass alle Sprachen, alle Paradigmen und alle mit der Computersprache zusammenhängenden Dinge in einer Reihe partieller rekursiver Funktionen mathematisch ausgedrückt werden können und was auch immer Sie eine neue Sprache lernen, JEDE NEUE SPRACHE, Sie sind es nur eine neue Abstraktion über die gleiche rekursive Teilfunktion lernen?
habe Spaß :)
quelle