Warum ist ein Informatik-Abschluss für einen professionellen Programmierer wichtig? [geschlossen]


63

Ich habe einen Abschluss in Informatik. Es war großartig, um Türen zu öffnen und einen Job zu bekommen. Soweit es mir im professionellen Bereich der C # .NET-Programmierung (der beliebtesten Plattform und Sprache in dem Bereich, in dem ich arbeite, wenn nicht die gesamten Vereinigten Staaten auf zweifellos das beliebteste Betriebssystem der Welt) hilft, ist es kaum nützlich. Warum hilft es Ihnen als Programmierer in Ihrer beruflichen Laufbahn (außerhalb des Ausstoßens des Prims-Algorithmus, um einen Interviewer zu beeindrucken)?

In der heutigen Welt der Anpassung ermöglichen ein schneller Verstand, starke Kommunikation, OO und grundlegende Designfähigkeiten einem Entwickler, Software zu schreiben, die ein Kunde akzeptieren wird. Diese Fähigkeiten werden nur im cs-Programm überflogen. Meiner Meinung nach bietet das Lesen eines 500-seitigen C # -Buchs von Wrox weitaus mehr nützliche Fähigkeiten als 4 Jahre der Comp-Science-Mathematik-Blaster-Kurse. Viele sind anderer Meinung. Warum ist ein Informatik-Abschluss wichtig?


59
"In der Informatik geht es nicht mehr um Computer als in der Astronomie um Teleskope." - Edsger Dijkstra
Eric Lippert

4
Auswendiglernen ist nicht genug. Es bedarf der Schulung, um zu wissen, wie man Reg Ex benutzt, und der Erfahrung, um zu wissen, wann man es benutzt. Ich würde das Lesen von Büchern als Teil der Ausbildung einschließen. Berufserfahrung regt Sie selten dazu an, die Dinge richtig zu machen.
Zachary Scott

10
Es ist wichtig, wenn Sie keine haben
Aditya P

2
Ich hatte auch 2,8, ziemlich durchschnittlich. Aber wir haben meistens C / Java und einige Web-Sachen gelernt, keine C # Sachen. Wie auch immer, ich denke, CS ist die "nächstbeste Sache", weil CS 4-Jahres-Programme nicht gerade einfach sind und es zeigt, dass man hart arbeiten kann, um den Abschluss zu bekommen. Warum ist das überhaupt wichtig? es bringt dir den Job!

1
@ luis.espinal Ich stelle diese Statistiken in Frage. Ich bezweifle, dass 70% des gesamten Codes in C enthalten sind (denken Sie daran, dass alle stillen Funktionen von Fortran, COBOL, PL1 und Rexx zufrieden sind). Eine Vielzahl, sicherlich, aber eine große Mehrheit, ich bin skeptisch. Es gibt viele eingebettete Geräte, aber die Anzahl der eingebetteten Geräte sagt nichts über die ursprüngliche Quelle aus. Sobald es für das erste spezifische Gerät geschrieben wurde, ist es im Allgemeinen für alle nachfolgenden Geräte desselben gültig. und vermutlich wird eine Menge für enge Derivate wiederverwendet, sei es in derselben Zeile einer späteren Überarbeitung oder in einer anderen Zeile derselben Produktfamilie.
JustinC

Antworten:


133

Warum Informatik ?:

  • Ich habe mit einem Entwickler zusammengearbeitet, der Tausende von Elementen in einer HashTable gespeichert und dann nur die Werte durchlaufen hat. Er hat nie durch einen Hash zugegriffen. Er wusste offensichtlich nicht, wie ein HashTable funktioniert oder warum Sie einen verwenden würden - ein CS-Abschluss könnte dabei helfen.
  • Wenn Sie mit regulären Ausdrücken arbeiten, ist es für Personen mit Grundkenntnissen in der Automatentheorie und in formalen Sprachen anscheinend einfacher, zu überlegen, was los ist, und Fehler in ihren Ausdrücken zu beheben - ein CS-Abschluss könnte dabei hilfreich sein.
  • Ein Entwickler, der gerade erst die Schule abgeschlossen hat, kann möglicherweise Probleme in verschiedenen Denkmustern (OO, funktional, logisch) sofort auflösen, während ein neuer Entwickler ohne Abschluss Erfahrung benötigt, bevor er dasselbe tun kann.
  • Die Schulen lehren die Komplexität von Rechnern. Entwickler ohne Abschluss fühlen sich vielleicht am besten, aber ein formelles Verständnis ist manchmal hilfreich, insbesondere, wenn sie einem Kollegen die Ergebnisse erläutern.
  • Ein Abschluss bietet eine Einführung in viele Modelle der Maschine - Hardware, Betriebssystem, gemeinsame Datenstrukturen, Netzwerke, VMs. Mit diesen Modellen im Hinterkopf ist es einfacher, eine Ahnung zu entwickeln, wo ein Problem auftritt, wenn etwas schief geht. Auch hier bauen Nicht-Diplom-Entwickler dieselben Modelle, aber das kostet Zeit.
  • Eine fachkundige Anleitung durch jede Disziplin kann dem Lernenden helfen, Sackgassen und verpasste Themen zu vermeiden. Lesen ist großartig, aber kein Ersatz für einen großartigen Lehrer.

Das soll nicht heißen, dass ein CS-Abschluss notwendig ist, um ein großartiger Entwickler zu sein. Kaum. Einige der besten Entwickler, mit denen ich zusammengearbeitet habe, haben keinen Abschluss. Ein Abschluss gibt Ihnen einen Anlauf. Bis zu Ihrem Abschluss haben Sie (hoffentlich) eine Menge Code in verschiedenen Sprachen und Umgebungen geschrieben, um viele Arten von Problemen zu lösen. Damit sind Sie auf dem besten Weg zu den 10.000 Stunden , die Sie als Experte benötigen .

Ein zweiter Vorteil ist, dass Sie als Arbeitgeber in der Lage sind, sich für ein langfristiges Ziel zu engagieren und erfolgreich zu sein. In vielen Unternehmen ist das meiner Meinung nach wichtiger als das, was Sie gelernt haben.


4
+1 - Das macht Sinn. Die fachmännische Anleitung hat mir wahrscheinlich in einer Weise geholfen, die ich nicht erkenne. Ich frage mich immer noch, ob 4 Jahre Allgemeinbildung 4 Jahre Branchenerfahrung ausmachen, vorausgesetzt, beide Entwickler sind gleichermaßen motiviert zu lernen. Es gibt ein gewisses Maß an Disziplin, das ich vor dem Abschluss nicht hatte, was sicherlich für etwas zählt.
P. Brian Mackey

4
Die richtige Terminologie zu lernen und viel Zeit mit anderen Menschen zu verbringen, die das gleiche Material lernen, sind auch Vorteile, die mit diesem teuren Stück Papier einhergehen.
Sal

65
Andererseits habe ich Leute mit Abschluss gesehen, die die meiste Zeit dieser Liste noch nicht bestanden haben :)
Joel Gauvreau

1
Vielleicht haben sie auch von der Graphentheorie gehört. Dies könnte das Partitionieren von Anwendungen in Clients und Server, Netzwerke, DAGs und Bäume ein wenig vereinfachen.
Tim Williscroft

3
@JustinC - Ihre Behauptung "Gradinhaber neigen dazu, sie aus irgendeinem Grund zu verteidigen, weil sie sie haben" ist einer der fundamentalen Gründe, warum ich die Frage gestellt habe. Ich habe diese blinde irrationale Verteidigung aus erster Hand gesehen. Das Gegenteil trifft auch zu.
P.Brian.Mackey

87

Ich gehe davon aus, dass .NET und C # in 40 Jahren nichts weiter als ein schwerwiegender Haufen von Legacy-Code auf veralteten Betriebssystemen sein werden.

Aber die grundlegenden Konzepte der Informatik werden genauso lebendig sein wie vor über 40 Jahren, als Shannon, von Neumann, Knuth, Dijkstra, Hoare und die anderen sie aus den Gründen der formalen Logik und Mathematik ausgegraben haben.


28
+1 - sehr wahr, aber in 40 Jahren ist es mir egal.
P. Brian Mackey

3
@ P.Brian.Mackey: Ich würde vermuten, dass C # in 10 Jahren unterwegs sein wird, und in 20 Jahren wird es eher eine Erinnerung sein, und in 30 Jahren werden grauhaarige alte Code-Archäologen benötigt . Menschen, die sich an bestimmte Werkzeuge binden, verachten sich selbst. Ich hatte das Glück, alte Artikel über Systemsoftware aus den späten 1970er und frühen 1980er Jahren zu lesen. Von diesen Softwaresystemen befinden sich nur sehr wenige im heutigen Radar. Vielleicht 1 oder 2 (Unix und Lisp). Obwohl die heutige Installationsbasis größer ist, erwarte ich, dass etwas Ähnliches passiert.
Paul Nathan

4
@ P.Brian.Mackey Sag, was du willst, aber ich habe vor, in 40 Jahren noch zu kicken, und in 80 Jahren auch, wenn ich mitreden kann.
Matthew Scharley

2
@Paul Nathan: Um Ihren Standpunkt zu verdeutlichen, stammen einige der fundamentalen Grundlagen der Programmierung aus den 1930er Jahren (z . B. en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis ). Ich frage mich, ob / wie wir in 80 Jahren Code schreiben werden :)
phooji

3
@phooji ("legacy-c-sharp-routines" laden ...): P
Mark C

37

Ich benutze fast alle CS, die ich in der Schule (*) gelernt habe, jeden Tag an meinem Arbeitsplatz. Wenn Sie in den Bereichen Programmiersprachendesign, Suchmaschinenoptimierung, Quantanalyse oder in einem ähnlichen Bereich arbeiten möchten, können Sie dies vermutlich auch ohne einen entsprechenden Abschluss tun, aber es scheint eine Menge Dinge zu sein, die Sie am Arbeitsplatz lernen müssen. Ich bin bei meiner Arbeit nicht besonders gut ausgebildet. Viele meiner Kollegen haben einen Doktortitel in Informatik und einige von ihnen waren Professoren für CS.

Es hat sich für mich enorm gelohnt, meinen Abschluss zu machen. Es hat sich vielfach bezahlt gemacht, sowohl in Dollar als auch in Zufriedenheit.

Das heißt, ich verstehe Ihren Punkt gründlich. Die meisten Menschen, die Computer programmieren, haben Jobs, die keinen CS-Abschluss erfordern. Sie benötigen zum Beispiel solide Kenntnisse in der Programmierung auf Community-College-Ebene und müssen mit den aktuellen Branchentrends Schritt halten. Und das ist gut so. Sie brauchen keinen Abschluss in Meeresbiologie, um ein erfolgreiches Aquariumgeschäft zu führen, und ich denke, dass Aquariumgeschäfte großartig sind. Aber es ist furchtbar schwer , einen Job in Woods Hole zu bekommen , wenn alle Sie wissen , wie ist Goldfisch erhöhen zu tun.


(*) Ich habe einen B.Math in Angewandter Mathematik und Informatik von Waterloo.


4
Ich erinnere mich, dass einer meiner CS-Professoren etwas gesagt hat, das besagt, dass nur 2% von Ihnen tatsächlich einen Job bekommen, bei dem Sie sich regelmäßig mit Prinzipien der Informatik befassen .
Red-Dirt

15
@el Fixiereinheit: In der Tat; Nun, eine interessante Frage, die für diese Diskussion vielleicht von Belang ist, ist der Zweck der Hochschulbildung lediglich die Ausbildung für einen bestimmten Beruf? Ich glaube nicht, dass es so ist. Universitäten sind keine Berufsschulen; Ihre Aufgabe ist es, Wissen durch Forschung zu schaffen und die Schüler diesem Universum des Wissens auszusetzen. Dass dies den Schülern berufliche Fähigkeiten verleiht, scheint mir eher ein Nebeneffekt als ein Ziel zu sein. Bei Waterloo wurde uns ausdrücklich gesagt, dass uns Theorie und nicht Praxis beigebracht wird.
Eric Lippert

1
Die Schaffung von Originalforschungsergebnissen in einem Kollegiumsumfeld geschieht jedoch im Allgemeinen und unabhängig vom Programm selten, bevor die Ausbildungsperiode, die als Bachelor-Programm bezeichnet wird, überschritten wird. Die Forschung findet davor statt, aber im Allgemeinen ist das Studium von wirklich neuem Material denjenigen vorbehalten, die an einem Master- oder Promotionsprogramm teilnehmen. Mit anderen Worten, Sie werden oft von der Entdeckung abgehalten, aber zu einer Verstärkung dessen, was bereits bekannt ist. Bei der Grundlagenforschung geht es mehr um den Forschungsprozess als um das Wachstum eines bestimmten Wissens. Private Forschung hat ein anderes Ziel.
JustinC

1
Der Tag, an dem für die besten Jobs kein Abschluss mehr erforderlich ist, ist der Tag, an dem die Universitäten keine Studenten mehr haben, um ihre Programme zu unterstützen.
P.Brian.Mackey

Wie oft benutzt Anders seine;)
Matthew Whited

22

Es ist wichtig, weil die Technologie nicht statisch bleibt. Informatik ist die Basis für alle digitalen Technologien. Die meisten Autodidakten haben genau einen Technologiezyklus hinter sich, weil ihnen die Grundlagen fehlen, um einen großen Paradigmenwechsel zu überstehen. Sicher, es gibt Ausnahmen von dieser Regel, aber ein starkes Fundament in der Informatik erhöht die Chancen, einen großen Paradigmenwechsel zu überleben, erheblich.


4
Ich wusste nicht, was ein bisschen Twiddler war, bis ich Coders At Work las . Ich vermute, Sie haben ein oder zwei Paradigmenwechsel überstanden und sprechen aus Erfahrung. :)
Dave Neeley

3
Ich stimme dir nicht zu. Es ist einfach, auf Ressourcen zuzugreifen, die die grundlegenden Konzepte online vermitteln (und es lohnt sich, sie selbst zu finden). Beispielsweise ist academicearth.org/subjects/computer-science ein guter Ausgangspunkt. Detaillierte Informationen zu neueren Architekturmustern können Sie kostenlos herunterladen (siehe chromium.org/developers/design-documents/…) . Häufig sind die frei verfügbaren Online-Materialien viel besser und aktueller als das, was Sie von einem örtlichen College erwarten würden.
Evan Plaice

13
Ich denke, Sie haben es genau umgekehrt. Ein Programmierer ist nie fertig mit Lernen. Autodidaktische Programmierer haben gezeigt, dass sie in der Lage sind, sich Wissen anzueignen, ohne dass das formale Umfeld, die von außen auferlegten Fristen usw. erforderlich sind. Dies ist genau das, was man braucht, um Veränderungen auf dem Markt zu überstehen.
Schlamm

2
(Forts.) Wenn Sie über einen Software-Paradigmenwechsel sprechen ... Welcher Paradigmenwechsel? OOP ist nicht gerade neu, ebenso wenig wie funktionale Programmierung. Datenbanken gibt es schon sehr lange. Gleitkommazahlen sind seit 1985 standardisiert (IEEE 754). Die einzige große Verschiebung, die ich sehe, ist die Verschiebung zu verteilten Verarbeitungssystemen (stark vernetzte Systeme, die im Vergleich zu anderen Systemen skaliert werden, und Programme, die die Vorteile vieler Kernhardwareplattformen nutzen) und der Übergang zu einem standardisierten internationalen Zeichensatz (UTF-8). beide werden in compsci nicht wirklich behandelt.
Evan Plaice

2
@Mud und Evan: Ich vermute, du hast den Teil "Sicher, es gibt Ausnahmen, die zu regieren sind" in meinem Posting verpasst. Ich gehe davon aus, dass Sie beide jung und unbeschwert sind. Diese Dynamik ändert sich mit zunehmendem Alter. Ich bin seit über dreißig Jahren auf dem Gebiet. Ich habe eine Menge Autodidakten gesehen, die aufflammten, nachdem der Stress, eine Familie zu erziehen, ins Spiel gekommen war, und die Zeit, die man zum Erlernen der Grundlagen auf eigene Faust benötigt, nähert sich Null. Ich würde gerne dasselbe Gespräch führen, wenn Sie beide 40 Jahre alt sind.
bit-twiddler

14

Es hängt davon ab, was Sie tun möchten. Wenn Ihr Ziel in erster Linie die Programmierung von Unternehmenssoftware im großen Stil ist, bei der das Geschäftsproblem und das praktische Komplexitätsmanagement das Problem sind, dann hilft ein CS-Abschluss nicht viel. Wenn es jedoch Ihr Ziel ist, Dinge zu programmieren, bei denen die Hauptschwierigkeit im technischen Bereich liegt, ist ein CS-Abschluss sinnvoller. (Obwohl ich keinen CS-Abschluss habe, fühle ich mich wie ein großer Heuchler, wenn ich das sage. Füge also "oder Autodidakt in CS-Fächern" hinzu.)

Ich bin mir sicher, dass es viele Programmierer gibt, die die Komplexität gut managen, große Programmieraufgaben erledigen und allgemeine Geschäftsprobleme lösen können. Sie wären jedoch absolut verloren, wenn Sie sie bitten würden, einen Speicherallokator, eine Parallelitätsbibliothek oder eine Datenbank zu schreiben Sammlungen Bibliothek oder ein Betriebssystem oder ein Compiler, etc. Ich bin sicher, das Gegenteil existiert in einem anständigen Ausmaß auch. Beide haben ihren Platz und verdienen Respekt, aber ein CS-Abschluss hilft viel mehr auf der technischen Seite.


Warum? Bei CS geht es darum, die komplexen Probleme zu lösen, ganz gleich, um welche Art von Problem es sich handelt. CS sollte nützlich sein, auch wenn Sie gar nichts programmieren - es ist ein Nachfahre einer vergessenen, aber immer noch essentiellen Kybernetik.
SK-logic

12

Ich denke nicht, dass ein CS-Abschluss ein absoluter Indikator dafür ist, dass eine Person ein guter Softwareentwickler ist. Tatsächlich habe ich meine Karriere als Programmierer mit einem Mathematik-Abschluss begonnen, aber mit einem starken CS-Bias (Mathematik und CS waren in mein Studienprogramm integriert). Ich denke, es gibt zwei Gründe, warum es insgesamt wichtig ist.

1 - Weil Ingenieure nicht das Front-End für die Rekrutierung sind

Human Resources Menschen sind. Und während ich mir viele Leute vorstelle, die mit den Augen rollen, sage ich "Gott sei Dank!" Was ist wichtiger - dass Sie die Ingenieure Sachen machen lassen (oder Sachen zerbrechen lassen) oder dass Sie sie dazu bringen, Tausende von Lebensläufen zu sortieren und Tausende von Interviews zu führen?

Also lassen wir HR-Mitarbeiter und HR-Mitarbeiter die Kandidaten überprüfen, bis wir zu einer Schlüsselgruppe gelangen, die von Ingenieuren überprüft werden kann. HR-Mitarbeiter haben im Laufe der Zeit gelernt, dass ein CS-Abschluss ein ziemlich starker Indikator dafür ist, dass der Kandidat etwas über die Entwicklung von Software weiß. Hoffentlich wissen sie auch, dass das 20-jährige Schreiben von Software ein guter Indikator dafür ist, dass der Kandidat Software schreiben kann.

2 - Weil es besser als gar kein System ist, etwas über CS zu lernen

CS ist ein riesiges Feld mit viel zu wissen. Und es ändert sich ständig. In diesen Tagen kann ich mit Sicherheit sagen, dass die 75% der Studienleistungen in meinem Grundstudium für meine Karriere irrelevant geworden sind. Und dass die Studienleistungen meines Meisters vor 5 Jahren rapide sinken. Aber als ich anfing, war ich froh, dass ich eine große Institution bezahlt habe, um mir etwas über Computerorganisation, Netzwerke, guten Software-Engineering-Prozess, objektorientiertes Design, Compiler und die Syntax / Semantik einer großen Programmiersprache beizubringen, die derzeit auf dem Markt ist.

Und ich war froh, dass es in einer Umgebung war, in der jemand dafür bezahlt wurde, mir Dinge zu erklären, wenn das Projekt Buch / Website / Runde nicht von Natur aus offensichtlich war.

Und ich war froh, dass ich Zugang zu einem Labor hatte, in dem Computergesundheit und SDE nicht mein Problem waren. Ich konnte mich mehr oder weniger auf einen kleinen Teil des Problems konzentrieren, anstatt auch alle zur Lösung erforderlichen Tools reparieren zu müssen das Problem.

Und obwohl in den Kursen nicht ausdrücklich gute Kommunikation gelehrt wurde, kann man das meines Erachtens nur durch Teamarbeit lernen. Dies ist ein wesentlicher Bestandteil vieler führender Institute, die CS-Abschlüsse anbieten.

Und einen Zeitplan mit häufigen Rückmeldungen (dh Noten und Prüfungen), die mich wissen lassen, ob ich wirklich verstanden habe, was mir beigebracht wurde.

Diese Dinge sind meiner Meinung nach mehr wert als jedes Buch zu diesem Thema, aber es ist sicherlich nicht das A und O. Es gibt sicherlich Dinge, die mir nichts ausmachen, wenn sich Hochschulen verbessern, und ich denke, dass etwa 10 Jahre nach Ihrem Abschluss der Grad, den Sie ursprünglich erhalten haben, weniger wichtig ist als die Arbeit, die Sie seitdem geleistet haben.


12

Für mich ist der Grund, dass ich weiß, dass sie einige schwierige Kurse durchlaufen haben und nicht aufgegeben haben. Einige der Kurse wie Compiler, Data Struct, Discrete Math (und andere) neigten dazu, viele Leute aus CS-Programmen herauszuspülen. Ein CS-Abschluss bedeutet, dass Sie hart gearbeitet und einen Preis bezahlt haben (lange Nächte, um Programme zum Laufen zu bringen), anstatt zum Spaß auszugehen.


+1 - lol, ich kann nicht viel damit streiten. Trotzdem liebte ich diskrete Mathematik. Hatte einen tollen Professor, der viele Yoda-Eindrücke machte.
P.Brian.Mackey

10

Für mich ist es eine Frage der Einstellung .

Ihre Denkweise definiert, wie Sie an ein bestimmtes Problem herangehen, und ermöglicht es Ihnen, ein breiteres Spektrum von Möglichkeiten in Betracht zu ziehen, als dies in den Konzepten nicht geschult ist.

Ein typisches Beispiel ist das "Travelling Salesman" -Problem, bei dem Sie wissen, dass es 1) für die allgemeine Version NP-vollständig ist. Sie müssen also alle Möglichkeiten ausprobieren, aber 2) wenn Sie mehr über das Problem wissen, können Sie entweder innerhalb von a approximieren bestimmte Grenze oder sagen, dass Sie wissen, dass AC immer länger als AB + BC ist (was für Entfernungen gilt, aber nicht für Preise), so dass Sie es in kürzerer Zeit lösen können.

Ein anderes Beispiel ist die numerische Analyse, bei der Sie wissen müssen, dass Sie Ihre Berechnungen anders als auf mathematisch einfache Weise ausführen müssen, um die numerische Ungenauigkeit zu minimieren. Dies erfordert theoretisches Wissen und wird wahrscheinlich nicht auf dem Weg aufgenommen, es sei denn, Sie wurden ausdrücklich davon gebissen.


9

"Ja wirklich?" Beeindruckend.

Sie sagen mir also, dass C # - und OOP-Kenntnisse ausreichen, und Sie können Ihren eigenen Algorithmus für die zufällige Sortierung entwickeln und die Feinheiten des Umgangs mit NP-vollständigen Problemen im wirklichen Leben entschlüsseln?

C # und OOP sind in Ordnung, aber wenn Sie versuchen, etwas zu tun, das nicht triviales Logikdesign ist, dann brauchen Sie die Grundlagen der Informatik.

Alter, Sie werden nicht einmal wissen, welchen C # -Container Sie verwenden sollen, wenn Ihre Fähigkeiten in Bezug auf Datenstrukturen oder Algorithmen nicht den Anforderungen entsprechen.

Lass uns jetzt erwachsen werden.


23
Einfach da, Tiger.
Whatsisname

23
"Entwickeln Sie Ihren eigenen Algorithmus für die zufällige Sortierung und entschlüsseln Sie die Feinheiten des Umgangs mit NP-vollständigen Problemen im wirklichen Leben." / Sarkasmus
Quentin-Starin

4
Ich sage, dass 95% der Menschen, mit denen ich zusammenarbeite und mit denen ich in der Vergangenheit gearbeitet habe, nahezu null Zeit damit verbringen, Algorithmen zu entwickeln. Ich verbringe den größten Teil meiner Zeit damit, Code übersichtlicher und leichter zu lesen. Für "feinere Nuancen" wird sehr wenig Zeit aufgewendet. Eigentlich finde ich es interessant, ein bisschen Zeit damit zu verbringen, einen Workflow auf einem Whiteboard zu sortieren ... etwas, das ich nur selbst gemacht habe. Besprechen Sie regelmäßig NP komplett mit Ihren Mitarbeitern? In welchem ​​Arbeitsbereich müssen Sie benutzerdefinierte Sortierungen schreiben, anstatt funktionierende Programmiersprachen zu implementieren?
P.Brian.Mackey

3
@ P.Brian.Mackey: Softwareentwicklung ist ein auf- oder abgehender Beruf. Wie viele Softwareentwickler arbeiten für Ihr Unternehmen, die älter als 50 Jahre sind? Mit zunehmendem Alter eines Softwareentwicklers kann ein CS-Abschluss den Unterschied zwischen einem Arbeitsplatz und einer Arbeitslosigkeit ausmachen. Während ich derzeit einen Bachelor- und einen Master-Abschluss in Informatik habe, habe ich bereits Ende der siebziger Jahre meine erste Ausbildung in diesem Bereich an den technischen Schulen von Naval und DoD erhalten. Alle Leute, mit denen ich zusammengearbeitet habe und die sich nach dem Ausscheiden aus dem Militär nicht die Mühe gemacht haben, einen CS-Abschluss zu machen, sind nicht mehr im Einsatz.
Bit-Twiddler

7
Warum scheint jeder blind die Annahme zu akzeptieren, dass ein formaler College-CS-Lehrplan erforderlich ist, um Kenntnisse über CS-Konzepte zu haben? Vielleicht ist es ein Misserfolg ihrer deduktiven Argumentation. Ich denke, sie brauchen mehr CS-Kurse.
Quentin-Starin

6

Ich nehme an, Sie haben sich damals wirklich nicht zu sehr auf das Studium eingelassen, haben nur das Nötigste mitgenommen und sind ausgestiegen oder sind zu einer Schule gegangen, die CS-Majors als "Programmierer" und nicht als "Programmierer" ansah. Außerdem gehören einige meiner besten / beliebtesten "CS" -Klassen - zumindest an meiner Universität - zum Fachbereich Elektrotechnik. Mein Umgang mit verschiedenen Architekturen und Stilen war sehr wichtig und mein Abschluss hat dies in einer "kontrollierten" Umgebung erleichtert.

Klassen, die nicht nur Algorithmen und Cutesy Fluff sind:

  • Compiler
  • Betriebssysteme
  • VHDL / Embedded-Systeme
  • Montage- und Mikrocontroller
  • Softwareentwicklung

Und schließlich eine Klasse, die mir den Garaus gemacht hat, die nur aus Algorithmen und Datenstrukturen bestand - Künstliche Intelligenz. Es gibt Dinge, die das Universitätssystem im Lernprozess erheblich beschleunigen, und ich würde das Gelernte als von unschätzbarem Wert erachten, wenn man später auf Arbeitssuche geht.


Was ist Ihre Definition von "Programmierer" und "Programmierer"? Diese können für mich gleich sein und stehen im Gegensatz zu "Informatiker".
Mark C

Coder schreibt nur den Code, denkt nicht unbedingt an verschiedene Designparadigmen oder Denkprozesse, die für die Erstellung von besserem Code geeignet sind. Programmierer denken tatsächlich über den Code nach, den sie schreiben, und nähern sich ihm von oben nach unten anstatt von unten nach oben.
Jeff Langemeier

Was ist Ihre Definition von "Code Monkey" und "Programmer"? Der Programmierer kann über Möglichkeiten nachdenken, um das Problem zu lösen, das das
Codegeld

Leidenschaft wird nicht graduiert vergeben. Es ist nur ein Teil von dir.
P. Brian Mackey

@ P.Brian Manchmal passiert es allerdings, dass deine Leidenschaft einen Abschluss verleiht und durch das Erreichen dieses Abschlusses weiter beflügelt wird.
Jeff Langemeier

4

Meiner Meinung nach ist jeder Abschluss, der einen Schwerpunkt auf Computerkenntnisse legt, ziemlich gleichwertig, es sei denn, Sie bewerben sich um eine Stelle im Bereich "Computer-Wissenschaften".

Tatsächlich haben viele der mir bekannten Programmierer einen Abschluss in einer ganz anderen Disziplin. Die besten Programmierer, die ich kenne, haben einen Abschluss in Bauingenieurwesen, Linguistik, Wirtschaft und Finanzen.

Wenn Sie einmal Erfahrung gesammelt haben, wird Ihr Abschluss letztendlich zum Pass-Fail-Test für einen Personalvermittler. Das heißt, es sei denn, Sie haben es von einer beeindruckenden Schule oder einem postgradualen Abschluss erhalten, spielt es keine Rolle, was Ihr Hauptfach war.


Einer der besten Programmierer ist ein Wirtschaftswissenschaftler, der ausschließlich in Excel / VBA und R arbeitet. Er hat einige erstaunliche Dinge in Excel gemacht.
Sal

@sal Das Schreiben von Dingen in Excel und R erfordert keinen CS-Abschluss. Schreiben von Excel oder R wäre am wahrscheinlichsten.
Alnitak

@alnitak - Für das Schreiben von Excel oder R ist ebenfalls kein CS-Abschluss erforderlich. Das ist der Punkt meiner Antwort und Sal's
JohnFx

@JohnFX: Ich habe eines der zwanzig besten CS-Programme in den USA mit lateinamerikanischer Auszeichnung abgeschlossen, und allein diese Qualifikation bringt mich durch die Tür (ich habe auch einen MSCS von einer anderen angesehenen Schule). Ich habe als rekrutierter Computeroperator und Programmierer direkt nach dem Abitur angefangen. Ich erhielt meine erste Ausbildung in Computersystemen und Softwareentwicklung von der US Navy und der National Security Agency. deshalb habe ich einige Jahre ohne BSCS auf dem Gebiet gearbeitet. Alles was ich sagen kann ist, dass es buchstäblich so war, als ob der Himmel sich trennte, als ich mein BSCS absolvierte.
Bit-Twiddler

@bit-twiddler - soll das meine antwort unterstützen oder widerlegen? Es scheint, als ob es meine letzte Behauptung stützt, dass es wichtig ist, wenn Sie einen postgradualen oder namhaften Schulabschluss haben.
JohnFx

4

für mich und viele meiner Kollegen hat es nicht (keiner von uns hatte einen CS-Abschluss)


3

OK dann was ist

Wenn Sie folgende Themen durchlaufen haben:

a.Computerarchitektur und Organisation

b.Software Engineering

c.DBMS

d.Basic Electronics

e. Grundlegende digitale elektronische Schaltung

f.Mikroprozessor

g.Compiler-Design

Denken Sie, dass alle obigen Angaben nur der Formalität dienen. Denken Sie daran, dass die obigen Punkte "gute Programmierer" zu "großartigen Programmierern" machen.

Lesen Sie hier etwas über die Wichtigkeit elektrischer und elektronischer Themen


3

Ich habe einen Abschluss in Informatik. Es war großartig, um Türen zu öffnen und einen Job zu bekommen. Soweit es mir im professionellen Bereich der C # .NET-Programmierung (der beliebtesten Plattform und Sprache in dem Bereich, in dem ich arbeite, wenn nicht die gesamten Vereinigten Staaten auf zweifellos das beliebteste Betriebssystem der Welt ) hilft, ist es kaum nützlich.

Über 70% des Codes sind in C geschrieben (da es mehr eingebettete Geräte als Anwendungen auf hoher Ebene gibt). Laut populären Jobsuchen wie Würfel oder dem TIOBE-Index ist Java die beliebteste Programmiersprache für Unternehmen (da es mehr Unix / Linux-Back-End-Server als Windows-Server gibt.) Es gibt mehr Smartphones und Tablets (die Computerplattform von die Zukunft) mit einer Variante von Linux oder Mac OS als Windows, die auf etwas anderem als C # oder .NET programmiert ist.

Schauen Sie sich Ihren Router zu Hause an, schauen Sie sich Ihr Handy an, schauen Sie sich den Computer in Ihrem Auto an, schauen Sie sich die verdammte Mikrowelle zu Hause an, sehen Sie sich die Steuerungen in Ihrer häuslichen Klimaanlage an, schauen Sie sich Ihr Telefon und Ihre Arbeit an, faxen Sie und drucken Sie / Scanner. Sehen Sie sich die Anzahl der Computergeräte an (die Windows-Systeme übersteigen).

Denken Sie, dass sie in C # programmiert sind?

Wenn Sie der festen Überzeugung sind, dass .NET oder C # die beliebtesten Plattformen der Welt sind, sollten Sie zu Ihrer CS-Schule zurückkehren und eine Rückerstattung beantragen.

Warum hilft es Ihnen als Programmierer in Ihrer beruflichen Laufbahn (außerhalb des Ausstoßens des Prims-Algorithmus, um einen Interviewer zu beeindrucken)?

Vielleicht, weil Programmierung viel mehr bedeutet als dynamische Webseiten und Unternehmensanwendungen zu entwickeln? Dafür brauchst du nicht einmal einen BS-Abschluss, ein AA reicht aus - ich weiß, weil ich meine Programmierkarriere mit einem AA-Abschluss begonnen habe und langsam aber sicher auf einen CS hingearbeitet habe und dann während der Vollzeitarbeit als Entwickler die Grad-Schule durchgearbeitet habe .

Es gibt eingebettete Entwicklung, es gibt Entwicklung von Gerätetreibern, es gibt Entwicklung von Betriebssystemen, es gibt Entwicklung von Algorithmen, Signalen, Kommunikationen, Netzwerkprotokollen, Entwicklung von Datenbank-Engines, Entwicklung von Dateisystemen, verteiltes Rechnen, Compiler. Keine Forschung, sondern tatsächliche Arbeit in gemeinnützigen Organisationen. Abgesehen von den natürlich Begabten kann man es in keinem dieser Industriebereiche ohne einen CS-Abschluss (manchmal auch nicht mit einem BS-Abschluss) hacken.

Eine Person, die einen CS-Abschluss erhält und darauf achtet, weiß dies. Wieso machst du das nicht?

In der heutigen Welt der Anpassung ermöglichen ein schneller Verstand, starke Kommunikation, OO und grundlegende Designfähigkeiten einem Entwickler, Software zu schreiben, die ein Kunde akzeptieren wird.

OO entstand aufgrund von CS. Und die meisten Leute, die denken, sie machen OO, können nicht einmal einen guten Job machen. Schauen Sie einfach nach draußen und schauen Sie sich den beschissenen Zustand der Software an (insbesondere in Java und .NET, ganz zu schweigen von PHP). Ein solider CS-Hintergrund (oder ein Hochschulabschluss in einer Art Ingenieurwesen) garantiert kein 100% gutes Verständnis von OO und analytische Fähigkeiten, aber es hilft in der Regel. OTH, ohne einen grundlegenden CS-Hintergrund, ist in der Regel eine rote Fahne, wenn es um OO und analytische Fähigkeiten geht. Wir haben genug empirische Beweise in der Branche, um diese Behauptung zu stützen.

Diese Fähigkeiten werden nur im cs-Programm überflogen.

Abhängig vom CS-Programm und vom Schüler. Zumindest für mich habe ich viele gute Kurse zu Design, OO-Analyse, kommerziellen Tools und Praktiken gesehen. Wir hatten Kurse mit lokalen Unternehmen und Praktika, von Unternehmen finanzierte Projekte und Forschungsarbeiten, technisches Schreiben, wie Sie es nennen. Entschuldigung, ich kann diese Aussage nicht beschreiben oder verstehen.

Meiner Meinung nach bietet das Lesen eines 500-seitigen C # -Buchs von Wrox weitaus mehr nützliche Fähigkeiten als 4 Jahre der Comp-Science-Mathematik-Blaster-Kurse.

Auch dies hängt von Ihrer Arbeit ab. Sogar im Unternehmen habe ich meinen CS verwendet, um Dinge zu reparieren oder zu verbessern. Dies alles beinhaltet Modellierung, Architektur, verteiltes Rechnen, Sicherheit und hohe Leistung, hohe Verfügbarkeit und Fehlertoleranz. Ich habe all das in CS gelernt.

Es ist nichts Falsches daran, ein Wrox-Buch zu verwenden, um eine kontextspezifische , technologiespezifische Qualifikation zu erhalten. Das mache ich selber. Aber mein CS-Hintergrund gibt mir den Kontext, an dem ich arbeiten kann. Ohne meinen CS-Hintergrund wäre alles, was ich tun könnte, Programmieren, Programmieren (das ist alles, was ich tun könnte, wenn ich zu Beginn meiner Karriere nur einen AA-Abschluss hatte).

Viele sind anderer Meinung.

Überraschend, nicht wahr?

Warum ist ein Informatik-Abschluss wichtig?

Wem fällt Ihrer Meinung nach Google, Hadoop, Cassandra oder Hochleistungs-Datenbank-Engines ein? Wer glaubst du, schreibt den Windows-Kernel? Wer programmiert Ihrer Meinung nach die beliebten Tools, die Sie für Ihre C # -Entwicklung verwenden?

Ich bin mir sicher, dass bei den Tools, die Sie für die C # -Entwicklung verwenden, ein CS-Typ dahintersteckt.

Ob Sie einen CS-Abschluss benötigen oder nicht, hängt von der Art Ihrer Arbeit, der Art der Arbeit, die Sie ausführen möchten, und der Art der Arbeit ab, die Sie ausführen können.

Es gibt eine Menge Arbeit in der Unternehmens- und Webentwicklung, für die kein CS-Abschluss erforderlich ist. Das gebe ich zu. Ich weiß auch, dass die Welt des Programmierens viel breiter ist als nur diese beiden Bereiche, wobei viele Bereiche (die meisten davon tatsächlich) einen CS-Abschluss oder mehr erfordern.

Sie haben einen CS-Abschluss, wie Sie nicht wissen, dass das ein Rätsel ist.


TIOBE ist ein Mist, um zu bestimmen, wie oft eine Programmiersprache verwendet wird. Es ist ein Maß dafür, wie beliebt eine bestimmte Sprache im Internet ist (in Bezug auf die Anzahl der Verweise), nicht in Bezug auf die geschriebenen Codezeilen.
Billy ONeal

Aufgrund seiner sprachspezifischen Variabilitäten ist LOC für alle Programmiersprachen irrelevant und kann daher nicht zur Messung der branchenübergreifenden Verwendung von Programmiersprachen verwendet werden. Und die Popularität der Sprachsuche im Internet ist nur ein Teil der Grundlage für die Tiefe und das Interesse der Nutzung (oder deren Fehlen) ... wenn Sie sich der unvermeidlichen Tendenz bewusst sind. An sich bedeutet der TIOBE-Index nichts - nur ein Dummkopf würde anders denken; und nur ein Narr würde denken, dass das , was ich sage.
Luis.espinal

Zusätzlich zu anderen Indikatoren (wie der Stellensuche und der Produkttypentwicklung) hilft es bei der Einschätzung der Trends bei der Technologienutzung. Mit anderen Worten, es ist nützlich oder nutzlos, je nachdem, wofür Sie es verwenden, wie Sie es verwenden und mit welchen anderen Indikatoren es kombiniert wird.
Luis.espinal

Mein Punkt ist, Sie scheinen diesen Index zu verwenden, um eine Aussage über die Verwendung einer Programmiersprache zu machen , was nicht das ist, was dieser Index misst. Ich habe einen Tippfehler gemacht, als ich sagte, dass LoC geschrieben ist - aber es gibt keine gute Möglichkeit, "Menge an geschriebenem Code" zu sagen, was ich meinte. TIOBE ist ein Beliebtheitswettbewerb, und in diesem Rennen wird Java alle anderen umhauen, solange es die Königin der Einführung in Programmierkurse ist. (Nicht, weil das bedeutet, dass diese Studenten nichts anderes wissen, sondern weil die Studenten normalerweise lauter sind als die Profis. (Das heißt, deine wirklich)
Billy ONeal

1

Es gibt einige Grundlagen, die ich in meinen CS-Kursen gesehen habe und die manchmal sehr nützlich waren. Der Wasserfall-Prozess und seine Schritte sind etwas, das ich in meiner Karriere wiederholt verwendet habe, mit einigen Variationen für Agile, wo es nicht ganz so starr in Schritten ist, aber die gleichen Schritte gibt es.

Manchmal können auch Fähigkeiten zur Problemlösung und verschiedene algorithmische Heuristiken hilfreich sein. Es gibt etwas zu sagen für die indirekten Vorteile eines CS-Abschlusses. Zu lernen, wie man eine Antwort rechtfertigt, um zu zeigen, warum etwas richtig ist, ist nur eine von wenigen Fähigkeiten, die ich an der Universität verfeinert habe, aber ich bin mir nicht sicher, wie offensichtlich es ist, dass dies am Ende des Programms von Vorteil ist.


1

Ich stimme Thorbjørn Ravn Andersen in Bezug auf die Denkweise zu. Das ist die Hauptsache, die Sie mit einem guten CS-Lehrplan entwickeln.

Grundsätzlich geht es darum, Dinge wie Datenstrukturen und Algorithmen zu verstehen. Nicht, dass Sie dies nicht alleine lernen können, aber ein guter CS-Lehrplan bietet eine bessere Sichtbarkeit.


Es gibt andere Fächer, die nur die Hauptfächer CS und Computertechnik lernen, wie Computerorganisation und Computerarchitektur. Das Erlernen des Baus von Computern aus sequentieller und kombinatorischer Logik macht einen zu einem besseren Softwareentwickler, da es einen Einblick in die tatsächlichen Vorgänge im Inneren eines Computers gibt. Darüber hinaus müssen die ersten Programmierer, die mit einem neuen Prozessor arbeiten, Konzepte wie hierarchischen Speicher und E / A, Pipelines, Blocksatz-Assoziativ-Caches, Steuereinheiten (mikrocodiert und fest verdrahtet) und den Unterschied zwischen Skalar- und Vektorverarbeitung verstehen.
Bit Twiddler

Wie kann ein CS-Kollegium einen besseren Einblick bieten als in einem Labor, in dem es wirklich auf einen qualifizierten Mentor ankommt, der nicht nur weiß, wie es funktionieren soll und wie es tatsächlich funktioniert?
JustinC

@bit Einverstanden. Ja, meine Antwort ist eher unbeschreiblich. Es sollte aus einem bestimmten Grund so sein.
George Marian

@ Justin Ich bin nicht ganz sicher, was Sie sagen wollen. Wie viele Programmierer arbeiten in einem Labor, geschweige denn mit qualifizierten Mentoren?
George Marian

@JustinC: Man lernt, wie Dinge in einem Labor funktionieren (Techniker-Level). Man lernt, warum die Dinge in Kursen für Computerorganisation und Architektur auf höherer Ebene (Ingenieurstufe) funktionieren. Wenn Sie ein paar Hochschullehrbücher über Computerarchitektur und Computerorganisation kaufen, werden Sie sehen, was ich meine.
Bit-Twiddler

1

Schreiben

Bei der Entwicklung von Unternehmenssoftware ist es wichtig, Code schreiben und schreiben zu können . Damit meine ich: das Schreiben von E-Mails, Fehlerberichten, technischen Dokumenten usw. Sowohl das Schreiben als auch das Codieren erfordern klare Gedanken und angemessene Ausdrucksmöglichkeiten.

Ich wette, dass zwischen zwei Softwareentwicklern derjenige mit einem CS-Abschluss von einer soliden Universität (starkes CS-Programm und erforderliche Wahlfächer in den Geisteswissenschaften) beide Fähigkeiten hat. (Richtig, das ist keine Garantie: Menschen aus den Geisteswissenschaften können großartige Programmierer und erstklassige Schriftsteller sein. Viele CS-Absolventen sind Programmierer, die nicht schreiben können und so weiter.)

lesen

Ein Mentor von mir behauptete, er könne Entwickler nach dem beurteilen, was sie lasen. Der ursprüngliche Post erwähnt WROX-Bücher. Meiner Meinung nach ist es wahrscheinlicher, dass jemand mit einem CS-Abschluss nach solchen professionellen IT-Büchern sucht und sie effektiv einsetzen kann. Wenn man mit CLR umgehen kann , kann man mit "Professional C #" umgehen.

Mathematik

Mathematik entwickelt Logik, Beweise, Strenge usw. und der Nebeneffekt ist, dass sie das Schreiben unterstützt. Obwohl für die meisten IT-Abteilungen in Unternehmen keine intensiven Mathematikkenntnisse erforderlich sind, verfügt die Person mit einem CS-Abschluss bei Bedarf über diese Kenntnisse. Dies ist ein viel besserer Weg, um durchs Leben zu gehen, als ohne ihn zu leben und sich zu fragen, was Sie in der Schule verpasst haben.


1

Ich denke, es hängt wirklich von der Qualität des CS-Programms ab, das Sie durchlaufen haben. Ich weiß, was Sie meinen. Der meiste Code, den ich täglich schreibe, ist nur Standard-VB.Net. Rufen Sie die Daten vom SQL Server ab, fügen Sie sie in das Formular ein, speichern Sie sie zurück in die Datenbank und erstellen Sie einige Berichte. Waschen, ausspülen, wiederholen. (Manchmal sehr langweilig) Das CS-Programm, das ich durchlief, brachte neben Theorie und Grundkenntnissen eine Menge praktischer Dinge bei. Wir haben Bereiche wie Softwaredesign, Datenbankdesign und Projektmanagement abgedeckt. Das Erlernen von Programmiersprachen war der einfache Teil, das Design und die Methodik der Erstellung von Softwaresystemen waren das, was ich aus meiner College-Erfahrung mitgenommen habe. Wir erhielten Projekte, die auf realen Problemen basierten und manchmal sogar Softwaresysteme für andere Abteilungen auf dem Campus entwarfen.

Als Programmierer haben wir natürlich die Fähigkeit, selbstständig zu lernen, was in unserem Bereich eine Notwendigkeit ist. Ich muss sagen, dass ich sehr froh bin, das CS-Programm durchlaufen zu haben. Meine Professoren waren großartig und haben mir viel beigebracht. Meine Klassenkameraden waren tolle Leute und wir hatten viele lustige Nächte im Computerraum. Um die Wahrheit zu sagen, ich vermisse diese Tage irgendwie ......


1

Es ist alles in der Fähigkeit, stellvertretend zu leben.

Wenn Sie den Abschluss überspringen, müssen Sie die Lektionen wahrscheinlich auf sehr persönliche Weise lernen (auch bekannt als der harte Weg). Das Fehlen eines Abschlusses bedeutet nicht, dass Sie den schwierigeren Weg des Lernens durch Ausprobieren beschreiten werden. Der Abschluss garantiert Ihnen jedoch, dass Sie einer Schatztruhe mit zuvor erlangten Kenntnissen begegnen, die andere bis spät in die Nacht verdienen mussten, frustrierten Programmiersitzungen und im Allgemeinen "auf die harte Tour".

Der wirklich ausgezeichnete Mensch wird nicht verwerfen, was andere für wahr befunden haben, sondern es herausfordern, bis sie die Grenzen des Wissens kennen und dann mit dem "System" neu gewonnener Ideen spielen, bis sie es sich zu Eigen machen. Es steht auf den Schultern derer, die zuvor gekommen sind, und lebt die Lösungen vergangener Jahre aus, ohne sie neu entdecken zu müssen.

Natürlich ist eine Person mit einem Abschluss in Informatik nicht immer der bessere Kandidat. Es gibt diese einzigartigen Individuen, die zum Strom geführt wurden, sich aber (aus irgendeinem seltsamen Grund) weigern, daraus zu trinken.


0

Ich bin 21 Jahre alt und habe gerade einen CS-Bachelor abgeschlossen. Ich bin der Meinung, dass Sie, egal wie gut Sie programmieren, als CS-Absolvent bereits mit verschiedenen Bereichen vertraut sind. Wenn Sie also neue Dinge lernen möchten, haben Sie keine Angst zu erkunden, auch wenn dies irrelevant ist . Wenn Sie ein Experte in einer Technologie oder Programmiersprache sind, gut. Aber ich glaube nicht, dass Sie abenteuerlustig sind und bereit sind, sich mit anderen Technologien zu befassen. So machst du dich schmutzig (und das auch schnell). Sie werden nicht grübeln, dass das, was Sie erforschen, irrelevant sein wird, da es Ihnen nicht dabei hilft, Geld zu verdienen. (Sie haben in Ihrer CS UG bereits viele irrelevante Dinge studiert;)).
Es ist die Leidenschaft für CS, die Sie nach Ihrem Abschluss haben, die Sie zum Software-Profi macht.
Jemand zustimmen?


1
Sie können nicht davon ausgehen, dass sich jemand nicht für andere Technologien interessiert, nur weil er keinen CS-Abschluss hat. Das ist ein Irrtum.
Steven Striga

0

Nun, als ich in CS eintrat, dachte ich, dass wow, ich wirklich gut bin, und ich werde hier nichts lernen ... Nach 5 Jahren habe ich nur gelernt, als Team zu arbeiten, und einige Dinge Von der Technik, die mich von jemandem trennt, der nur Code schreiben kann, und von jemandem, der darüber nachdenken kann, was er tut, bevor er codiert. Kurz gesagt, es hat mich gelehrt, darüber nachzudenken, bevor ich überhaupt einen einzelnen Buchstaben in meinen Texteditor oder ide eingebe.


0

Um einen Job in einer Open-Source-Sprache zu bekommen, muss man nicht in die Hocke gehen. Die meisten Unternehmen rekrutieren eher aufgrund ihrer Fähigkeiten als aufgrund ihrer Qualifikationen und Sprachen wie PHP haben einen Hobby-Ruf, der besagt, dass Menschen Talent haben können, ohne jemals CS studiert zu haben. Das einzige Mal, wenn Sie einen Job in .Net-Sprachen bekommen, ist dies hilfreich, da die meisten Hobby-Experten nicht Tausende für eine Lizenz ausgeben möchten, um nur an den Wochenenden damit herumzuspielen. Daher wird jemand, der einen ersten Job in C # sucht, wahrscheinlich nur eine haben 2-3 Jahre Erfahrung.

Natürlich ist die kommerzielle Erfahrung die wirklich wertvolle, da sie Ihre Fähigkeit unter Beweis stellt, Qualitätscode fristgerecht zu liefern.

Abschließend erhalten Sie Interviews für die Arbeit mit nicht Open-Source-Sprachen.


0

Ein Abschluss an einem College oder einer Universität bedeutet, dass Sie CS studiert haben und über einige Grundkenntnisse verfügen, die für einen Beruf in der Praxis erforderlich sind, auch wenn Sie andere Dinge selbst lernen müssen.

Außerdem, wenn ein IT-Recruiter einen Soft finden muss. Dev. Und 500 Bewerber senden ihren Lebenslauf und müssen mindestens 50 von ihnen interviewen. Ein Abschluss in Ihrem Lebenslauf hilft sowohl dem Personalvermittler als auch Ihren Chancen, eingestellt zu werden.

(von einem Softwareentwickler, der HHRR studiert hat)


0

Wahrscheinlich hilft das nicht viel, aber jetzt, wo ich Assembler gelernt habe und alles damit verbundene Wissen, fühle ich mich wie ein vollständigerer Programmierer und ich bin mir sicher, dass dies wieder passieren wird, wenn ich zur Uni gehe. Ich meine, ich benutze meistens C oder VB, ich muss nicht wissen, was ein Wartezustand ist, um meine Programme auszuführen, aber einfach zu wissen, was hinter meinem Code vor sich geht, ist großartig! Und Wissen hilft Ihnen dabei, besseren, schnelleren und besser wartbaren Code zu schreiben. Ein Informatik-Abschluss vermittelt meiner Meinung nach genau das Wissen, das man braucht, um großartigen Code zu schreiben .


0

Software Engineering ist heute eine experimentelle Wissenschaft, keine angewandte Mathematik.

In den Informatikabschlüssen liegt der Schwerpunkt auf Algorithmen. Wie viel von Ihrer täglichen Arbeit beinhaltet die Implementierung oder sogar Verwendung neuartiger Algorithmen und Datenstrukturen?

Wie viel kostet der Umgang mit Gerüstschichten und den undichten Abstraktionen? Inwieweit wird versucht zu bestimmen, was eine API tatsächlich tut - und nicht, was die Dokumente implizieren? Wie viel kostet das Testen und Entscheiden, wie es getestet werden soll?

Trotzdem ist ein Abschluss in Physik oder Chemie eine viel bessere Ausbildung als Knuth auswendig zu lernen


0

Dies ist wichtig, da Personalvermittler einen Indikator haben, der angibt, dass Sie nicht völlig ahnungslos sind, was Sie tun sollen. Dies bedeutet jedoch nicht unbedingt, dass Sie wirklich wissen, was Sie tun, oder dass Sie es auf technisch bequeme Weise tun.

Es gibt brillante Leute mit Abschlüssen, die ihre Arbeit lieben und wirklich gute Programmierer sind, und es gibt auch Idioten mit Abschlüssen, die wirklich schlechte Programmierer sind und nicht einmal einige Grundlagen kennen. Es gibt brillante Leute ohne Abschluss, die alles entwickeln können (Business-Software / Compiler / ein Betriebssystem), und es gibt Idioten ohne Abschluss, die nicht wissen, wie man eine Hash-Tabelle richtig benutzt.


0

Absolut richtig, der Abschluss in Informatik spielt keine Rolle. Deshalb sollte Ihre einzige Wahl sein, stattdessen ein Ingenieurstudium zu absolvieren.

Bei der Befragung von Kandidaten mit unterschiedlichem Hintergrund sticht folgendes Merkmal für Kandidaten ohne Abschluss heraus: mangelnde technische Kommunikationsfähigkeiten und mangelnde Disziplin. Dies sind grundlegende Eigenschaften, die man bei jedem naturwissenschaftlichen Abschluss erlernt hat (ich würde das mit einem Ingenieurabschluss noch mehr sagen).

Da die meisten Dinge gleich sind (und eine einzige Runde von Interviews oft mit "ungefähr gleichen" Kandidaten endet), stellte ich die Person mit dem Ingenieur-Abschluss zuerst, den Informatik-Abschluss an zweiter Stelle und den Nicht-Abschluss an dritter Stelle ein. Es gibt jedoch Möglichkeiten, die Dinge im Vergleich sehr ungleich zu machen, so dass jeder auch die mit einem Stammbaum-Abschluss schlagen kann - aber das ist eine separate Frage, nicht wahr?


-1

Für einen Programmierer ... ist es nicht viel (außer vielleicht, wie Sie sagten, die Türen für Interviews zu öffnen).

Für einen CS-Job (Recherche, Algorithmusanalyse, formale Sprachkenntnisse und Design). Es ist unwahrscheinlich, dass Sie diese Dinge in einem anderen, nicht auf Mathematik basierenden Programm lernen.

// Haftungsausschluss: Ich habe einen Abschluss in Informatik, daher musste ich all diese anderen Kurse wiederholen, um in meinem Arbeitsbereich erfolgreich zu sein.


-1

Ich habe einen Computer-Abschluss. Was mir geholfen hat, meine erste Computerrolle zu bekommen, war die Tatsache, dass das dritte Jahr ein Praktikum als IT-Administrator war. Ich empfehle Praktika im Bildungsbereich.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.