Wie kann ich den Besuch einer JavaSchool kompensieren? [geschlossen]

18

In einer früheren Frage habe ich neue Software-Ingenieure um Rat gefragt, die sich vor und während des Studiums gut geschlagen haben. Aber was ist mit Leuten, die aus irgendeinem Grund nicht das Glück hatten, zum MIT oder nach Yale zu gehen? Was wäre, wenn Sie zu einer JavaSchool gehen würden , wie Joel Spolsky sie nennt ?

Was können / sollten JavaSchool-Alumni tun, um ihre Fähigkeiten zu entwickeln und die Dinge auszugleichen, die sie im College verpasst haben? (Oder hat Joel sich geirrt, dass diese Schulen nachteilig sind?)

Pops
quelle
Lesen .
Shog9
4
"Lassen Sie sich nicht von der Schule in die Quere kommen" - Mark Twain
BlackJack

Antworten:

12

Trotz der Behauptungen von Joel in diesem Artikel - und er räumt den Punkt selbst ein - sind viele der Themenbereiche, die von einer "JavaSchool" übersehen werden, für viele Jobs nicht erforderlich.

Ich habe etwas besucht, das vermutlich einer JavaSchool ähnelt , da wir uns die meiste Zeit auf Hochsprachen wie C # und Java konzentrieren, aber das ändert nichts an der Tatsache, dass "Algorithmen und Datenstrukturen" immer noch Teil der erforderlichen Klassenliste ist - Ganz zu schweigen von allen anderen theoretisch orientierten Klassen. Zugegeben, nicht alle "JavaSchools" sind gleich, aber darum geht es nicht.

Meiner Meinung nach ist es wichtiger als ein Verständnis für einige der schwierigeren Entwicklungsthemen, Probleme effektiv zu lösen, wenn sich einzigartige Herausforderungen ergeben. Als Softwareingenieure machen wir den größten Teil unseres Lernens am Arbeitsplatz. Zwei der wichtigsten Aspekte unserer Stellenbeschreibung sind die Fähigkeit, Probleme zu lösen und ungewohnte Konzepte aufzugreifen. Wenn man während eines Interviews nicht in der Lage ist, einen erkennbaren und logischen Versuch zur Lösung eines für sie neuen Problems zu unternehmen, wird sich wahrscheinlich ihre Unvereinbarkeit mit einer bestimmten Position herausstellen.

Wenn Sie jemanden für eine Position einstellen, bei der Sie sich ständig mit einem komplizierten Thema auseinandersetzen und es anwenden müssen, das von einer JavaSchool möglicherweise übersehen wird, ist es oft die logische Entscheidung, sich an jemanden zu wenden, der über Vorkenntnisse verfügt, der jedoch über keine ausreichende Erfahrung verfügt schließen Sie immer Job-Eignung aus .

Höchstwahrscheinlich hatte der 50-jährige Java-Typ in Ihrem Unternehmen, der so lange wie möglich dort war, keine Ahnung von Java, bis ihn sein (aktueller oder vorheriger) Job dazu aufforderte, es zu lernen - und er tat es auch. Streng genommen ist es eine schlechte Praxis, "den Alten" zu entlassen, damit ein jüngerer und "aktuellerer" Kandidat seinen Platz einnehmen kann. Wenn sich jedoch die Stellenbeschreibung für einen jungen oder alten Mitarbeiter ändert, liegt es in der Verantwortung dieses Mitarbeiters, sich ein Bild zu machen oder eine neue Stelle zu finden. Nur weil eine Person (insbesondere ein Programmierer mit früherer Erfahrung) ein Konzept nicht versteht, heißt das nicht, dass sie nicht bereit oder unfähig ist, es zu lernen. In der Tat, wenn sie nicht lernen wollen, dann gehören sie wahrscheinlich keiner Arbeit an - geschweige denn Ihrer.

Es ist fair zu sagen, dass einige "JavaSchools" besser sind als andere, und diese Tatsache sollte bei der Auswahl eines Kandidaten für eine Position berücksichtigt werden, aber es gibt viel wichtigere persönliche Merkmale als nur, wo jemand zur Schule gegangen ist.

Es ist unsere Fähigkeit, ein Problem anzugehen und eine Lösung zu finden, die uns als Ingenieure auszeichnet, fast alles andere ist zweitrangig.

Nathan Taylor
quelle
+1 "Es ist unsere Neigung, ein Problem anzugehen und eine Lösung zu finden, die uns als Ingenieure auszeichnet, fast alles andere ist zweitrangig."
Bill
Ich besuchte eine Schule, an der Programmiersprachen nur selten angesprochen wurden (wir hatten eine Basis von C / C ++ / Java, leider keine funktionale Sprache), und wir lernen nur die CS-Theorie kennen. Auf der anderen Seite sprachen wir über Datenbanken, Data-Mining, Telefon- / Mobil- / Internet-Netzwerke, Mensch-Maschine-Schnittstelle usw. Wir lernten in der Breite und nicht in der Tiefe. Ich glaube nicht, dass es ein schlechtes Geschäft war :)
Matthieu M.
1

Warum nicht ein Lehrbuch durcharbeiten, das die Programmierung anders einführt als Sie es gelernt haben? Zum Beispiel gibt es mehrere gute, kostenlose Bücher, die das Funktionsparadigma verwenden. Das Entwerfen von Programmen ist sehr zugänglich. Die klassische Struktur und Interpretation von Computerprogrammen (http://mitpress.mit.edu/sicp/) ist weniger gut, vermittelt jedoch ein tiefgreifendes Gefühl der Erleuchtung.

Ich empfehle dringend, die ersten paar SICP-Vorlesungen von Abelson zu besuchen, um eine andere Perspektive zu erhalten, was Informatik ist. Sie sind älter, aber sehr alt (http://video.google.com/videoplay?docid=5546836985338782440#).

Hélène Martin
quelle
1

Ich fühle deinen Schmerz, als ich auch zu einer JavaSchool ging. Meins wird in Großbritannien als ziemlich hoch eingestuft, obwohl die Schüler in meinem Jahr keine einzige Data Structures-Klasse erhalten haben. Ich hatte das Glück, dass ich aufgrund von Verwaltungsfehlern in meinem Kurs DSA als optionalen Kurs aufnehmen konnte, aber das ist eine andere erschütternde Geschichte ...

Nach meiner Erfahrung werden Sie in einer JavaSchool etwas erleben, das Sie an Top-Universitäten nicht erleben werden, und das ist der Student, der seinen Wert beweisen möchte . Wie an jeder alten oder roten Backstein-Universität in meinem Land hatten wir die typischen Faulpelze und die anständigen Künstler, aber es gab eine kleine Gruppe von Studenten, die sich ihrer Umgebung bewusst waren und wussten, was ihnen in ihrer Ausbildung fehlte. Zwangsläufig haben diese Leute in ihrem Kurs nicht unbedingt hervorragende Leistungen erbracht, aber sie haben die Universität verlassen und wissen mehr als alle anderen. Wir machten Praktika bei Softwarefirmen, die uns in den Pausen beschäftigten. Wir lernten die Sprachen, die wir nie lernen durften, und wir lernten die Fächer, die andere vermieden, weil sie hart waren.

Von meinen Freunden berichten zwei von uns, dass sie ihr Studium bis zum Masterstudium fortsetzen und alle Kurse für Fortgeschrittene absolvieren, bei denen wir das Gefühl hatten, dass wir die Grundlage völlig verpasst haben. Zeitjob. Ich bin kurz davor, mein Masterstudium zu beginnen, um vor allem die Lücken in meiner Ausbildung zu schließen und ein weiteres Jahr damit zu verbringen, die Fähigkeiten aufzubauen, die ich brauche, um mein Potenzial in dieser Branche zu maximieren.

In der realen Welt werden die Menschen immer diese Vorurteile haben und meistens sind sie vollständig auf Wahrheit gegründet. Wenn Sie der Meinung sind, dass Ihre Schule unzureichend ist, informieren Sie sie und nutzen Sie Websites wie diese, um Ihr Bildungsniveau zu verbessern.

Mike B
quelle
0

Nun, Sie können eine Jobschreibsoftware in Java bekommen. Solange Sie in dem, was Sie tun, gut sind, ist die Schule, die Sie besucht haben, und / oder Ihr Hauptfach nach dem ersten Job nicht sonderlich relevant, wenn auch dann .

GroßmeisterB
quelle
0

Das Beste, was ich mir vorstellen kann, ist, das Programmieren in einem völlig anderen Paradigma (neu) zu lernen, um mich von der objektorientierten Denkweise zu lösen.

Ich würde mindestens vorschlagen:

  • Assembler-Sprache , um eine echte Wertschätzung für die Funktionsweise der Maschine zu erhalten
  • Haskell , für eine sehr reine Sicht auf die funktionale Programmierung
  • Lisp , für unreine funktionale Programmierung und Metaprogrammierung (Clojure wäre meine erste Wahl, aber Scheme oder Common Lisp sind auch großartig)
mikera
quelle