Ich bin ein unabhängiger Auftragnehmer und als solcher interviewe ich 3-4 Mal im Jahr für neue Auftritte. Ich bin jetzt mitten in diesem Zyklus und wurde für eine Gelegenheit abgelehnt, obwohl ich das Gefühl hatte, dass das Interview gut verlaufen ist. Dasselbe ist mir in diesem Jahr ein paar Mal passiert.
Jetzt bin ich kein perfekter Typ und erwarte nicht, dass er zu jeder Organisation passt. Trotzdem ist mein Schlagdurchschnitt niedriger als sonst, also habe ich meinen letzten Interviewer höflich um konstruktives Feedback gebeten und er hat es geliefert!
Die Hauptsache laut dem Interviewer war, dass ich mich zu sehr auf die Verwendung von Abstraktionen (wie LINQ) zu stützen schien, anstatt auf niedrigere, organisch gewachsene Algorithmen.
Oberflächlich gesehen macht dies Sinn - tatsächlich machten die anderen Ablehnungen auch Sinn, weil ich in diesen Interviews auch über LINQ geschwatzt habe und es schien, als wüssten die Interviewer nicht viel über LINQ (obwohl sie .NET waren) Jungs).
Jetzt bleibt mir die Frage: Wenn wir "auf den Schultern von Riesen stehen" und uns zur Verfügung stehende Abstraktionen (wie LINQ) verwenden sollen, warum halten manche Leute das für so tabu? Ist es nicht sinnvoll, Code "von der Stange" zu ziehen, wenn dieselben Ziele ohne zusätzliche Kosten erreicht werden?
Es scheint mir , dass LINQ, auch wenn es ist eine Abstraktion, ist einfach eine Abstraktion von allen gleichen Algorithmen würde man genau das gleiche Ziel zu erreichen , schreiben. Nur ein Leistungstest kann Ihnen sagen, ob Ihr kundenspezifischer Ansatz besser ist, aber wenn etwas wie LINQ die Anforderungen erfüllt, warum sollten Sie sich überhaupt die Mühe machen, Ihre eigenen Klassen zu schreiben?
Ich möchte mich hier nicht auf LINQ konzentrieren. Ich bin mir sicher, dass die JAVA-Welt etwas Vergleichbares hat. Ich möchte nur wissen, warum es einigen Leuten so unangenehm ist, eine Abstraktion zu verwenden, die sie selbst nicht geschrieben haben.
AKTUALISIEREN
Wie Euphoric betonte, gibt es in der Java-Welt nichts Vergleichbares zu LINQ. Wenn Sie also auf dem .NET-Stack entwickeln, warum nicht immer versuchen, davon Gebrauch zu machen? Ist es möglich, dass die Leute nicht ganz verstehen, was es tut?
quelle
objectCollection.Where(oc=>oc.price > 100)
zum Beispiel ein zusätzlicher Code dahinter steckt . Wäre das nicht eine Verwendung einer Abstraktion? Vielleicht kannst du mir sagen, was ich hier vermisse. . .Antworten:
Ich denke nicht, dass die Verwendung von Abstraktionen per se zu beanstanden ist. Es gibt zwei weitere mögliche Erklärungen. Eine davon ist, dass alle Abstraktionen zu der einen oder anderen Zeit undicht sind . Wenn Sie den Eindruck erwecken, richtig oder falsch, dass Sie die zugrunde liegenden Grundlagen nicht verstehen, könnte dies in einem Interview schlecht reflektiert werden.
Die andere mögliche Erklärung ist der Fanboy-Effekt. Wenn Sie aufgeregt über LINQ sprechen und es in einem Interview mit einem Unternehmen, das es nicht nutzt und derzeit keine Pläne dazu hat, wiederholt ansprechen, entsteht der Eindruck, dass Sie mit älteren Technologien unzufrieden oder sogar verärgert wären. Es kann auch den Eindruck erwecken, dass Ihre Begeisterung für ein Produkt Sie für Alternativen blind gemacht hat.
Wenn Sie wirklich denken , Sie würden in einem nicht-LINQ - Shop glücklich sein, versuchen Sie zu fragen , was sie tun , verwenden und Ihre Antworten entsprechend zuzuschneiden. Zeigen Sie ihnen, dass Sie zwar LINQ bevorzugen, aber mit allen verfügbaren Tools kompetent sind.
quelle
Einige .NET-Programmierer, insbesondere solche mit klassischem VB / ASP- oder C ++ - Hintergrund, mögen keine neuen Inhalte wie LINQ, MVC und Entity Framework.
Basierend auf den Beobachtungen, die ich gemacht habe, werden die Ex-VB'er in dieser Gruppe wahrscheinlich immer noch Datenzugriffsschichten und anderen Code verwenden, der ursprünglich vor über 10 Jahren geschrieben wurde. Sie verwenden auch alte Schlagworte wie "n-tier" und dergleichen und verstehen überhaupt nichts über .NET Framework 2.0 und möchten auch nichts darüber lernen.
Die C ++ - Entwickler sind in der Regel akademisch orientierte Programmierer, die es lieben, coole Algorithmen zu programmieren, auch wenn dies bedeutet, das Rad neu zu erfinden. Sie hassen es, abhängig von irgendetwas, das sie nicht selbst ausgehändigt haben. Einige dieser Personen freuen sich darüber, dass sich die Befragten minderwertig fühlen, insbesondere diejenigen mit weniger traditionellem Hintergrund.
Wenn Sie ein Interview führen, werden Sie wahrscheinlich auf solche Organisationen stoßen. Sie werden jedoch auch einige kennenlernen, die neuere Methoden verwenden. Lassen Sie sich nicht von ein paar schlechten Interviews abschrecken.
quelle
datareaders
!dynamic
/ExpandoObject
/ etc. Oder der Pflege von Azure und all den anderen Cloud-Inhalten beschäftigt habe. Ich kann sogar verstehen, dass ich weiterhin die WebForms-Ansicht der alten Schule verwende Engine in MVC oder Web Forms selbst oder Schreiben von WPF / WinRT-Code ohne MVVM ... aber Linq? Wenn Sie das noch nicht herausgefunden haben, ist es Zeit, Ihren Job als .NET-Entwickler zu beenden.Microsoft hat eine lange Tradition darin, heiße neue Technologien herauszubringen und diese in den nächsten 5, 10 oder 20 Jahren zu vergessen. LINQ könnte für manche Leute wie ein anderes aussehen. Sie werden feststellen, dass Microsoft SQL nicht ablehnen kann, LINQ jedoch möglicherweise Silverlight folgt . Es könnte also sein, dass Sie Paranoia sehen, die aus harten Erfahrungen resultiert, oder nur Leute, die von der modernen Technologie zurückgelassen wurden und diese ablehnen.
quelle
Es gibt immer einen Aufpreis.
Die Lernkurve für Standardprodukte ist immer da. Der Schmerz, Updates (und Abhängigkeiten) zu bekommen, ist immer da. Die Unfähigkeit, mit den Eingeweiden herumzudrehen, ist immer da.
Für LINQ gilt eigentlich nur das erste. Viele Leute halten den "seltsam" aussehenden Code für schwer zu lesen und schwerer zu debuggen. Die SQL-artige Syntax ist so ziemlich eine Persona-Non-Grata für jeden professionellen Auftritt, an dem ich gearbeitet habe, seit er herauskam. LINQ to SQL (und andere Datenquellen) bieten eine Reihe von Fallstricken und eingeschränkten Optimierungsmöglichkeiten.
Dies sind die allgemeinen Argumente gegen Tools von Drittanbietern und speziell gegen LINQ. Trotzdem ist LINQ ein verdammt nützliches Tool und sollte in den meisten Situationen bevorzugt werden. Weinen hier nicht erfunden, und Abstraktionen sollten nicht stark von kognitiver Dissonanz bevorzugt werden .
Sie kennen LINQ nicht / können es nicht lernen, aber sie sind "offensichtlich" gute Entwickler, also muss sich LINQ nicht lohnen. Es ist eine häufige Falle.
quelle
Darüber hinaus sollten Sie berücksichtigen, dass Ihre Begeisterung für eine coole neue Technologie dazu führen kann, dass sich die Menschen unwohl fühlen und Sie nicht in der Nähe haben möchten. Sie "befähigen" sie nicht, weil Sie diese Technologie kennen, nicht sie. Selbst wenn sie es selbst nicht bemerken, suchen sie möglicherweise Kandidaten, die das verstärken, in das sie bereits so viel Zeit investiert haben.
Sie möchten eine Haltung präsentieren, die besagt: "Was auch immer Sie tun, ich möchte Ihnen dabei helfen, es zu erreichen", anstatt einen Untertext zu geben, der besagt: "Möglicherweise tun Sie Dinge auf eine schlechte Art und Weise, und wenn Sie mich dabei haben, wird dies beweisen es."
quelle
Mein Standpunkt (und ich vermute, TBH, weil keiner von uns sagen kann, was diese Interviewer gedacht haben) ist, dass Sie oft zu einem Interview gehen, um zu erklären, warum sie Sie einstellen sollten, um sich in ihr Team und ihre Arbeitsweise einzufügen .
Sie können der perfekte Entwickler sein, ein Rock-Start-Codegott, aber das bedeutet absolut nichts, wenn das, was Sie tun möchten (betont durch übermäßiges und zu enthusiastisches Reden über einige coole Technologie-Gubbins), ihnen nur von Ihnen erzählt, und das würden Sie nicht passen in was sie wollen. Wenn sie über ein altes Datenzugriffssystem verfügen, das aus irgendeinem Grund nicht aktualisiert werden kann, brauchen sie niemanden, der vergessen hat, wie es zu warten ist. Wenn sie neue Produkte entwickeln und Sie diese coole neue Technologie wirklich überall einsetzen möchten, dann haben sie offensichtlich ein großes Problem mit der zukünftigen Pflege des Codes und / oder der Schulung des Personals.
Als Freiberufler ist dies ein weitaus größeres Problem, als wenn sie ein Permie einstellen würden. Mit der Erlaubnis, neue Arbeitsweisen zu trainieren und zu entwickeln, sind keine schlechten Dinge im Rahmen des bestehenden Codes und der bestehenden Praktiken - Sie werden lange Zeit da sein, um die Dinge zu verbessern. Mit einem Freiberufler geben sie wirklich nicht das, was Sie wollen, Sie sind nur da, um ihre Arbeit so zu machen, wie sie es wollen, und es ist nicht Ihre Aufgabe, etwas anderes zu tun. (Stimme nicht zu - werde ein fester Angestellter)
Es hat wahrscheinlich nichts mit LINQ selbst zu tun. Ich habe einen Kandidaten abgelehnt, der aufgetaucht ist und erklärt hat, wie viel besser alles in Haskell geschrieben werden würde. Wir machen kein Haskell. Gleiches gilt für alle Technologien, die nicht von der Firma verwendet werden. Normalerweise ist dies kein Problem, wenn Sie es als etwas Gutes bezeichnen. Das Problem entsteht, wenn Sie zu enthusiastisch und begeistert sind.
quelle
Es gibt eine berechtigte Sorge, die ich von denen gehört habe, die Linq nicht verwenden, und die ich mir zu Herzen nehme: "Nur weil Sie die Implementierung nicht sehen können, heißt das nicht, dass sie nicht teuer ist."
Nehmen Sie den folgenden Ausschnitt:
Die hier von LINQ initiierten kriechen. Warum? Denn nur weil dieser Code schön und elegant aussieht, heißt das nicht, dass er nicht fürchterlich ineffizient ist. Count () wertet mit einem Prädikat jedes Element der übergeordneten Aufzählung aus und fasst zusammen, wie oft das Prädikat true zurückgegeben hat. Dies ist also nicht nur N ^ 2 (wenn inputList und otherInputList ungefähr die gleiche Kardinalität haben wie N), sondern auch der absolut schlechteste Fall N ^ 2. JEDES Element von otherInputList wird für JEDES Eingabeelement durchlaufen. Der erste Schritt besteht stattdessen darin, Any () anstelle von Count zu verwenden, da dies genau das ist, was Sie wissen möchten, und es wird beendet, sobald bekannt ist, dass die Antwort "yes" lautet. Das Einrichten eines HashSets, in dem unterschiedliche Werte von gespeichert sind,
otherInputListObject.OtherProperty
kann ebenfalls hilfreich sein. Zugriff wird O (1) anstelle von O (N),Worst-Case- Komplexität statt quadratischer Best-Case- Komplexität.Wir sehen also, dass diese netten, eleganten Methoden erhebliche Kosten verursachen, und wenn Sie diese Kosten nicht kennen, können Sie sehr einfach einen O- Komplexitätsalgorithmus (my GD) in den leistungsstarken zentralen Dateiserver Ihres potenziellen Arbeitgebers einprogrammieren oder Hauptlandeportalseite, wenn sie das nächste Mal eine Optimierung benötigen. Sie zu entlassen, nachdem Sie das getan haben, macht nicht rückgängig, was Sie getan haben, aber Sie nicht einzustellen, wenn sie glauben, dass Sie es tun würden, würde es verhindern. Um dies zu vermeiden, müssen Sie beweisen, dass sie falsch sind. Besprechen Sie, was diese Methoden tun (was bedeutet, dass Sie sich selbst kennen müssen) und ihre Komplexität, und wie Sie in einer effizienten Zeit (NlogN oder besser) zur Antwort gelangen.
Ein weiteres Problem ist das gute alte Argument "Wenn Ihr einziges Werkzeug ein Hammer ist". Versetzen Sie sich in die Lage des Interviewers, der diesen Linq-Fanboy interviewt. Der Kandidat mag Linq, will es benutzen, findet es das Beste, was es je gab. Es könnte sogar den Anschein haben, als könne der Kandidat ohne sie nicht codieren, da jedes gegebene Programmierproblem mit Linq gelöst wurde. Was passiert, wenn es nicht verwendet werden kann? Es gibt noch viel .NET 2.0-Code, der bei einem Upgrade schmerzhafte Upgrades auf Server, Benutzerarbeitsstationen usw. erfordert, sodass Sie Ihre ausgefallenen Erweiterungsmethoden verwenden können. Als Interviewer würde ich versuchen, Sie dazu zu bringen, zu zeigen, dass Sie eine effiziente Sortierung codieren oder die 2.0-Sortierungsmethoden verwenden könnten, wenn Sie müssten, egal wie sehr ich Ihnen zustimmen könnte, dass die Linq-Bibliotheken und ähnliche Erweiterungsmethoden hübsch sind Süss. Ein Interviewer, der den Punkt nicht versteht, könnte sich nicht einmal die Mühe machen, Sie dazu zu bringen, sich für etwas anderes zu eignen. Sie werden annehmen, dass Sie es nicht haben und weiterziehen.
quelle
var resultList = inputList.Select(i=>i.Property).Intersect(otherInputList.Select(o=>o.Property));
? Ich hätte das vielleicht verpfuscht, aber mein Punkt ist, dass LINQ bessere Möglichkeiten hat, die oben erwähnte Abfrage auszuführen (.Join () ist eine andere Möglichkeit). Mir ist klar, dass es Möglichkeiten zur Verwendung von LINQ gibt, die möglicherweise nicht so effizient sind wie andere, aber das bedeutet nicht, dass Sie sich auf diese schlechten Implementierungen verlassen müssen.Dieser hat ein bisschen zu lange gedauert, aber es könnte für jemanden hilfreich sein, also werde ich es zulassen.
Ich bin tatsächlich auf etwas Ähnliches gestoßen, als ich letzten Monat etwas mehr als 20 Interviews durchlaufen habe (eine Mischung aus Telefon und persönlichem Gespräch). Es passierte definitiv etwas Unerwartetes, worauf ich nicht ganz eingehen konnte.
Eines der Dinge, die mir aufgefallen sind, war, dass die Dinge, die normalerweise im Mittelpunkt der Interviewzyklen der letzten fünf oder sechs Jahre standen, entschieden nicht besprochen oder kurz zusammengefasst wurden. Dinge wie die Grundlagen der OOP-Analyse / des Designs, Muster (sowohl Design als auch Architektur), einige der fortgeschritteneren / abstraktionsorientierten .net-Funktionen (einschließlich Lambdas oder LINQ, Generics, Serialisierung / Datenbindung und ähnliches) und sogar die In der Regel ein aktuelles Thema der bevorzugten Methodik (niemand schien sich für Agilität im Vergleich zu Wasserfällen oder den Geschmack von Agilität zu interessieren) und Tools oder die Wahl von ORM oder bevorzugten Mitteln für die Zusammenarbeit oder die Verwaltung der Quellcodeverwaltung. In einigen Fällen gar nicht erwähnt, in fast allen Fällen offenbar ohne Belang.
In mehreren Interviews und verschiedenen unabhängigen Unternehmen in unabhängigen Branchen wurden folgende Schwerpunkte gesetzt:
Eine seltsame Fixierung auf veraltete / veraltete Konventionen und Einschränkungen der "Zurück in die Steinzeit". Wie die Entwicklung einer primitiven Web-App in VS2003 mit einer Liste absurder Einschränkungen, die die Verwendung expliziter Funktionen in dieser Ära von .net weiter verbieten Das Paradigma und die Grenzen von vor 9 Jahren wurden durch unrealistische / willkürliche Zwänge weiter verkrüppelt. Ein anderer Ort war sehr hartnäckig in Bezug auf benutzerdefinierte Sammlungen, etwa vorgenerische Sammlungen. An einer anderen Stelle befand sich ein Codebeispiel eines Klassenmodells, das ich ausgearbeitet hatte, weil ich keine kaskadierten Konstruktoren verwendet hatte (sie schienen sich der Unterstützung für die Initialisierung von Eigenschaften bei der Deklaration nicht bewusst zu sein, die für den Bedarf ausreichte).
Extremer Fokus auf bestimmte Implementierungsdetails in einem Mikrokosmos und / oder Konfigurationseinstellungen, selbst bei Technologien, die sich darauf konzentrieren, plattform- oder protokollunabhängig zu sein (dh, der springende Punkt ist NICHT auf eine bestimmte Implementierung oder bestimmte Verwendung zu fixieren, sondern vielmehr bei Wiederverwendung / Wiederverwendung / Erweiterbarkeit / nach Bedarf Integration).
Bereitschaft, Arbeiten an und von einem Offshore-Team auszuarbeiten, zu überwachen, zu kodieren und anderweitig zu verlagern, und damit verbundene nicht-kodierende Fähigkeiten.
Verwendung bestimmter Versionen von Produkten / Plattformen / Modulen / usw. In einem manchmal absurden Ausmaß; "Also ... Sie haben die Versionen 1, 2 und 4 verwendet? Aber nicht 3, wie? Hmmm ... {kommentiert Ihren Lebenslauf mit" no v3 !!!} ". Der Grad der Nutzung schien keine Rolle zu spielen. nur , dass Sie haben oder etwas nicht verwendet überhaupt , und die spezifische Sache , die sie für auch fragen ... schien kein Ersatz zu zählen, auch von einem weit verbreiteten und voll konkurrierenden Produkt gekennzeichnet.
Ein weitaus größeres Augenmerk darauf, "wie gut Sie in unser Team passen" oder "wie gut Sie als Softwareentwickler wirklich sind" oder "haben Sie die Fähigkeiten und die Erfahrung, dem Unternehmen einen Mehrwert zu verleihen und uns dabei zu helfen, Qualität zu liefern Produkt "oder sogar" sind Sie ein gefährlicher Idiot, der in und Wrack-Shop kommen wird ". In einigen Fällen wurde mein Lebenslauf einfach als gegeben angesehen, und selbst der sogenannte "Tech Screen" oder das technische Interview war eine Persönlichkeitsbeurteilung, die weit mehr war als eine Kompetenzbeurteilung. Selbst für relativ kurzfristige Vertragspositionen, bei denen Sie vor dem Wechsel von zwei Spielzeiten wieder da und weg wären.
Die Unternehmen schienen sich diesmal weniger darauf zu konzentrieren, bestimmte technische Probleme zu lösen, neue Green-Field- oder große 2.0-Entwicklungsprojekte zu starten oder ein bestimmtes Produkt auf den Markt zu bringen, um aus einem aufkommenden Trend oder einer sich bietenden Gelegenheit oder den üblichen großen Kickoffs Kapital zu schlagen . Ein sich wiederholendes Thema, das mir an mindestens 15 Stellen auffiel, war, dass eine kleine Gruppe von 3-5 Entwicklern, die meistens den Marktabsturz von 08 überlebten, in den letzten drei Jahren ein Produkt schleifen konnte und stellten einen gewissen Erfolg fest oder ihr Unternehmen boomt insgesamt und sie stellen neue Mitarbeiter ein, um mit den steigenden Funktionsanforderungen Schritt zu halten oder die Konstruktionsmängel, die sie in diese Systeme eingebaut haben, zu beheben / überwinden oder die oben genannten Plattformen zu übernehmen, um sie freizugeben das Kernteam aufbauen, das es für "andere Projekte" gebaut hat.
Aber ... wenn ich etwas über dieses Geschäft weiß, ist es, dass es zyklisch ist. Das nächste Mal, wenn ich nach einem neuen Auftritt suche, werde ich mich nicht wundern, wenn sich das Spiel noch einmal geändert hat. Sie müssen nur geistig flexibel bleiben, aktiv zuhören, absolute Aussagen vermeiden, wenn sie unnötig sind, aber auch kein Wiesel sein und sich nicht als eindimensional herausstellen (Sie kommen als Idiot oder ein Eiferer, weder wünschenswert) noch als zu gut (es kann bedrohlich sein und einen Auftritt kosten).
Passen Sie einfach Ihre Herangehensweise an und versuchen Sie beim nächsten Mal, eine angemessenere Antwort zu geben. Nennen Sie einige verschiedene Möglichkeiten, wie Sie ein Problem angehen könnten. Aber selbst wenn es Ihnen klar ist, tun Sie so, als würden Sie tatsächlich darüber nachdenken und Begründen Sie es an Ort und Stelle. Auf diese Weise wirkt es bescheidener und weniger einschüchternd oder beleidigend.
Natürlich ist Murphy's Law genau das, was es ist. Das nächste Interview, nachdem Sie aufgehört haben, "leidenschaftlich über meinen aktuellen Lieblingstechniker" zu sein und eine ausgeglichenere / bartstreichendere Haltung einzunehmen, ist der Auftritt, den Sie bekommen hätten, wenn Sie der Verrückte gewesen wären Eiferer Kerl. ;)
quelle
Ich denke, Sie ziehen eine falsche Schlussfolgerung, weil Ihre Stichprobenmenge zu begrenzt ist. Ich habe zwar einen beachtlichen Anteil von IT-Shops mit einer starken Abneigung gegen "dort nicht erfundene" 1 gesehen , aber keiner von ihnen würde Kandidaten aufgrund ihrer Präferenzen im Technologiestapel disqualifizieren: Sie waren zu Recht davon überzeugt, den richtigen Kandidaten zu unterrichten ihre einheimischen Bibliotheken.
Ich bezweifle ernsthaft, dass das Unternehmen die Verwendung von LINQ vollständig verboten hat. Eher wollten sie, dass du ihnen deine Fähigkeiten auf einer tieferen Ebene zeigst.
Eine Möglichkeit, herauszufinden, ob Sie Ihre Hash-Tabellen kennen, besteht darin, Sie aufzufordern, eine primitive Tabelle auf einem Whiteboard zu implementieren. Diese einfache Übung enthüllt dem Prüfer eine überraschende Menge an Daten über Ihr Wissen: Er erfährt sofort, ob Sie über Hash-Code / Equals Bescheid wissen und was Sie über Hash-Kollisionen wissen. Gleichzeitig ist es schwer vorstellbar, dass jemand, der bei klarem Verstand ist, eine Hash-Tabelle erneut implementiert, weil Microsoft einen so guten Job gemacht hat. Gleiches gilt für viele Algorithmen wie Sortieren und Suchen: Interviewer möchten häufig wissen, ob Ihr Hintergrund ausreicht, um Interaktionen auf niedriger Ebene zu verstehen, anstatt zu prüfen, ob Sie über ausreichende Kenntnisse der .NET-Bibliotheken verfügen.
Es ist fast sicher, dass sie darauf bestehen, dass Sie Bibliotheksimplementierungen anstelle Ihrer eigenen verwenden, wenn Sie für deren Unternehmen eingestellt werden. Aber während des Interviews würden sie Sie zum Low-Level-Code drängen, um ein besseres Verständnis Ihrer wahren Fähigkeiten zu erlangen.
1 Ein Shop ging so weit, sein eigenes, eher primitives Build-Tool zu bauen!
quelle
Ich glaube, Sie machen da einige verrückte Verallgemeinerungen des Typs "Ich habe in Schottland eine schwarze Kuh gesehen, also sind alle schottischen Kühe schwarz".
Wenn ich Sie interviewt hätte, wäre ich enttäuscht, wenn Sie meine Fragen nicht beantworten könnten.
Linq ist allerdings eine heikle Sache, viele Leute sehen es als Voodoo an, was unfair ist, da es eigentlich sehr einfach und umso klüger ist.
quelle
Um Devil's Advocate zu spielen, sind viele Entwickler einfach nicht an neuen Dingen interessiert und denken, dass alles mit selbst entwickelten (normalerweise minderwertigen) Tools gelöst werden muss. Es ist nichts Falsches daran, Abstraktionen zu verwenden. Verdammt, es gibt normalerweise keinen guten Grund , diese Abstraktionen nicht zu verwenden.
Es hört sich so an, als hätten Sie gerade ein Interview mit einem armen Entwickler geführt, der mit den Dingen nicht auf dem neuesten Stand ist und sich mit Hammer und Nagel an alles heranmacht. Dies sind die Entwicklertypen, die nichts über hilfreiche Open Source-Tools wie NUnit oder NHibernate oder die verschiedenen IoC-Container wissen. diejenigen, die versuchen, jedes Problem mit einem massiven gespeicherten Prozess in der Datenbank zu lösen; diejenigen, die absolut nichts über MVC wissen, obwohl es seit einigen Jahren nicht mehr erhältlich ist.
quelle