Was ist wichtiger: eine Programmiersprache kennen oder ein GeschÀftsproblem lösen können?

Es wird viel darĂŒber diskutiert, was es wert ist, eine Programmiersprache zu lernen, um im Bereich der Entwicklung Karriere zu machen. Ich bin jedoch zutiefst davon ĂŒberzeugt, dass die Sprache des erforderlichen Wissens nicht begrenzt ist. Leider versteht das nicht jeder.

Bild

In Diskussionen ĂŒber Aufgaben sprechen Unternehmen und Entwickler verschiedene Sprachen.

Aus geschĂ€ftlicher Sicht spielt es keine Rolle, in welcher Sprache ihre Aufgabe gelöst wird. Unternehmen denken nicht und wissen vielleicht sogar nichts ĂŒber Java, Go, Ruby und andere Sprachen und Technologien. Es ist natĂŒrlich großartig fĂŒr Entwickler, wenn ein großes und interessantes Projekt von vorne beginnt und der Technologie-Stack vom Team ausgewĂ€hlt wird. In der realen Welt ist dies jedoch viel hĂ€ufiger nicht der Fall. Normalerweise verfĂŒgt ein Unternehmen bereits ĂŒber Fachwissen in einem bestimmten Stack, das IT-Manager nicht ablehnen möchten. Die GrĂŒnde können völlig unterschiedlich sein, vom Verbot des „Zoos der Technologie“ bis zu den persönlichen Vorlieben der EntscheidungstrĂ€ger. Es gibt zusĂ€tzliche Faktoren, wie den Bedarf an interessanten Technologien fĂŒr Teams, um qualifiziertes Personal anzuziehen und zu halten.

Entwickler Ă€ußern ihrerseits hĂ€ufig den Wunsch, sich in einem bestimmten technologischen Stack zu entwickeln. Diese Absicht wird durch den großen Unterschied zwischen den GehĂ€ltern fĂŒr einige Sprachen verstĂ€rkt. So gibt es Menschen, die hart leben, zum Beispiel im Rahmen von Java oder Python (Go, Kotlin, Scala ... die Liste geht fast endlos weiter) und sogar Delphi, ohne zu versuchen, zu sehen, was es sonst noch gibt.

Meiner Meinung nach ist der Wunsch, tiefer zu gehen, verdienstvoll. Aber manchmal „geht der Wald hinter den BĂ€umen verloren“ - bei diesem Tauchgang vergisst der Spezialist einfach, dass Technologie nur ein Werkzeug ist, um seine Probleme fĂŒr das Unternehmen zu lösen. Infolgedessen spiegelt die Blindheit auf einem technologischen Stapel mit angeborenem Perfektionismus („Lassen Sie uns ein Projekt fĂŒr sechs Monate umgestalten, ohne ernsthafte EntwicklungsplĂ€ne zu haben, einfach weil es schön sein wird“) nicht in bester Weise die QualitĂ€t der getroffenen Entscheidungen wider.

Mein Punkt ist, dass eine bestimmte Programmiersprache zweitrangig ist. Das primĂ€re VerstĂ€ndnis der Entwicklungsprinzipien und die FĂ€higkeit zur Lösung von GeschĂ€ftsproblemen sind primĂ€r - Kenntnisse ĂŒber AnsĂ€tze und Muster, die zur Systematisierung der Gesamtarbeit beitragen, die Erfahrung mit verschiedenen Techniken, einschließlich Teamtechniken. Mit einem solchen GepĂ€ck ist es nicht schwer, eine weitere Sprache zu beherrschen, die in diesem speziellen Projekt benötigt wird. Vor meinen Augen gibt es viele Beispiele dafĂŒr, wie Menschen im Laufe des Monats zu anderen Stapeln umgeschult werden - zwei intensive Trainings. NatĂŒrlich ist es schwieriger, zwischen Sprachen mit unterschiedlichen Paradigmen zu wechseln, beispielsweise von funktional zu objektorientiert, aber selbst hier ist nichts unmöglich, wenn sich eine Person einem solchen Wechsel „auf der Ebene des Glaubens“ nicht widersetzt.

Wenn Sie mehrere Sprachen kennen, können Sie fĂŒr jede spezifische GeschĂ€ftsaufgabe Ihren eigenen Lösungsansatz wĂ€hlen - einen, der nicht nur geeignet ist, sondern in diesem speziellen Fall optimal ist. Und je mehr das Arsenal des Entwicklers auf diesen AnsĂ€tzen (Sprachen) basiert, desto umfassender ist die Betrachtung des Problems und desto motivierter ist der ausgewĂ€hlte Stapel. Dies ist genau das, was Unternehmen benötigen - um die am besten geeignete Lösung fĂŒr ihre Aufgaben zu erhalten.

Mit fundierten Kenntnissen einer Sprache, aber ohne die FĂ€higkeit, geschĂ€ftliche Probleme zu lösen, wird ein Spezialist weit von jedem Team profitieren. NatĂŒrlich hilft eine tiefe Kenntnis der „Chips“ der Sprache in einzelnen Projekten dem gesamten Team, eine höhere Leistung zu erzielen. Aber hĂ€ufiger verlangsamt ein Teammitglied, das eine Sprache beherrscht, aber nicht in der Lage ist, GeschĂ€fte zu hören, nur Kollegen. Übrigens ist ein solcher „Leitfaden fĂŒr nicht offensichtliche Chancen“ bei Bedarf in einem bestimmten Team oft nur einer (wir ziehen Schlussfolgerungen ĂŒber die Nachfrage nach so engen Spezialisten auf dem Arbeitsmarkt).

Die FĂ€higkeit, geschĂ€ftliche Probleme zu lösen, ist Teil einer globaleren Essenz - umfassender Berufserfahrung. Sie können es sowohl beim Arbeitgeber als auch im Rahmen von Heimprojekten erhalten. Meiner Meinung nach können nur GeschĂ€ftsprojekte (bei denen es Kunden, Budgets, Fristen gibt) Feedback geben, das in solchen Situationen erforderlich ist, um die QualitĂ€t der Lösung zu bewerten. Dies bestimmt nĂ€mlich die Tiefe der gesammelten Erfahrung. Es gibt einfach niemanden, der ein solches Feedback von Heimprojekten erhĂ€lt: Sie selbst tun etwas und entscheiden zu einem bestimmten Zeitpunkt selbst, dass Sie es gut gemacht haben. Hier endet alles. Wenn das Projekt jedoch fĂŒr Unternehmen implementiert wird, wird eine unzureichend entwickelte Lösung zur Überarbeitung gesendet.
dann immer wieder, wenn nötig. Und im Verlauf dieser Iterationen werden Sie unweigerlich verschiedene AnsĂ€tze fĂŒr das Problem lernen - Sie werden ein VerstĂ€ndnis fĂŒr eine höhere Ebene erlangen.

Eine der Komponenten der FĂ€higkeit, geschĂ€ftliche Probleme zu lösen, ist das VerstĂ€ndnis dieser Aufgabe. Und da russische Entwickler hĂ€ufig an auslĂ€ndischen Projekten teilnehmen, sind fĂŒr dieses VerstĂ€ndnis Kenntnisse der englischen Sprache erforderlich. In dieser Angelegenheit können Sie sich nicht immer auf Business Analytics verlassen, da es auf diesem Gebiet nicht genĂŒgend gute Spezialisten auf dem Markt gibt.

Ein besseres VerstĂ€ndnis des GeschĂ€fts hilft beim Eintauchen in eine Branche. Wenn Sie nicht nur ein abstraktes Modul erstellen, das Datenpakete empfĂ€ngt, verarbeitet und an ein unbekanntes Ziel sendet, sondern beispielsweise einen Teil eines komplexen Abrechnungssystems oder Bankensystems implementieren, in dem es verschiedene Arten von Benutzern, Standards und anderen Funktionen gibt. Diese Details zu kennen ist sehr wertvoll. Ein solches Eintauchen lehrt Sie, sich fĂŒr das zu interessieren, was um Ihren Teil der Aufgabe herum geschieht. Dies hilft, die beste Lösung zu finden. Ich kenne Spezialisten, die niemals an einer Aufgabe arbeiten werden, deren Grund unklar ist. In einigen Bereichen der GeschĂ€ftsentwicklung fĂŒr Entwickler wird eine obligatorische interne Schulung angeboten, da eine effektive Arbeit ohne Eintauchen im Prinzip nicht funktioniert.

Als kleine ErgĂ€nzung zum besseren VerstĂ€ndnis von GeschĂ€ftsfragen empfehle ich die Teilnahme an branchenspezifischen Konferenzen. Dort teilen die Referenten ihre Erfahrungen mit, wie sie ein GeschĂ€ftsproblem mithilfe der IT-Technologie gelöst haben. Oft erhalten Sie von dort nĂŒtzliche Informationen darĂŒber, in welche Richtung Sie sich bewegen mĂŒssen. Obwohl natĂŒrlich niemand die Erfahrung anderer im Detail wiederholen muss.

Ich sage nicht, dass sich jeder Entwickler um GeschĂ€ftsaufgaben kĂŒmmern sollte. June tritt nur in diesen Kreis ein. In der Anfangsphase dauert es zu lange, mit Kollegen zu kommunizieren und zu lernen, wie man ein bestimmtes Problem löst. Es ist keine Zeit, den eigenen Horizont zu erweitern. Ausgehend von der Mitte bildet die bisherige Erfahrung jedoch ein VerstĂ€ndnis dafĂŒr, auf welcher Seite Aufgaben eines bestimmten Typs angegangen werden mĂŒssen. Zu diesem Zeitpunkt stellen sich keine Fragen mehr zum Entwicklungsökosystem - wann und welche Status festgelegt werden mĂŒssen, wie auf CodeĂŒberprĂŒfungen reagiert werden soll usw. Der Spezialist beginnt auch mit ungewohnten Aufgaben schneller fertig zu werden - hier ist die Zeit, die GeschĂ€ftskomponente „hochzuziehen“. TatsĂ€chlich zeichnet sich der Senior aus der Mitte durch dieses VerstĂ€ndnis von AnsĂ€tzen zur Lösung allgemeiner GeschĂ€ftsprobleme aus. Und der Wunsch nach einem solchen VerstĂ€ndnis hilft, schneller zum nĂ€chsten Level zu gelangen.

Daher fordere ich dringend auf, gleichzeitig Entwicklungsziele in zwei Richtungen zu setzen. Lernen Sie einerseits Sprachen und sammeln Sie andererseits Erfahrung in der Lösung spezifischer geschÀftlicher Probleme. Und bei dieser Entwicklung ist es notwendig, ein Gleichgewicht zu halten, sonst wird es ziemlich schwierig sein, einen Platz in der Welt der Senioren zu finden. Wo genau man sich entwickeln muss - hin zu einem Architekten, einem sehr starken Entwickler oder Teamleiter - hÀngt jedoch von den Ambitionen und persönlichen QualitÀten (Teamwork, Verantwortung, Geselligkeit usw.) eines bestimmten Spezialisten ab.

Was denkst du darĂŒber?

Artikelautor: Sergey Marina

PS Wir veröffentlichen unsere Artikel auf mehreren Websites der Runet. Abonnieren Sie unsere Seiten auf VK , FB oder Telegramm-Kanal , um mehr ĂŒber unsere Veröffentlichungen und andere Maxilect-Nachrichten zu erfahren.

Source: https://habr.com/ru/post/de459294/


All Articles