Ich bin seit ungefähr 5 Jahren im Bereich Financial Engineering (nach BA Math und BA Computer Science) tätig (20% Analyse / Programmierung, 80% Kommunikation) und bin stolz auf meine Fähigkeit, mit Menschen zu kommunizieren und technische Probleme zu diskutieren (dh zu interagieren) mit einem Team). Ich liebe diesen Teil meines Jobs. Zum Whiteboard gehen, um abstrakte Ideen zu zeichnen und Brainstorming zu betreiben.
Aus vielen Gründen möchte ich meine Karriere in ein Technologieunternehmen (Software Engineering) überführen, habe aber große Angst, dass ich in einen stereotypen Programmierjob gerate, bei dem Programmierer mit großen Kopfhörern programmieren. Ich weiß sicherlich, dass dies nur ein Stereotyp ist, aber ich habe zuvor (bei Startups) ähnliche Umgebungen erlebt, und es macht mir Angst zu glauben, dass ich zu einer Karriere der Isolation übergehen würde.
Ich liebe es zu programmieren und algorithmisch zu denken, aber ich möchte nicht aufhören, mit Menschen zu interagieren. Ich verstehe, dass kommunikative Fähigkeiten nur positiv sind, aber bereite ich mich auf das Scheitern der Karriere vor, indem ich in die Softwareentwicklung übergehe. Ich würde gerne Klarstellungen und / oder Ratschläge hören.
Antworten:
Hier ist das Geheimnis des Programmierens: Es ist fast 100% Kommunikation . Ein wesentlicher Teil davon ist die Kommunikation mit einem Menschen; Der Rest kommuniziert das, was Sie gerade gelernt haben, an einen Computer.
Der letzte Teil ist der einfachere von beiden. Computer tun genau das, was ihnen gesagt wurde, und Sie sind immer in der Lage, zu testen, ob das, was Sie gesagt haben, richtig ist.
Ersteres ist etwas anderes. Unterschiede in der Terminologie, im Verständnis und in den Prioritäten von Person zu Person erschweren es sehr, die richtige Nachricht an den Computer zu senden. Fehlkommunikationen auf dieser Ebene sind weitaus häufiger als Fehlkommunikationen zwischen einem Programmierer und einem Computer.
Gute Programmierer können gut mit dem Computer kommunizieren. Großartige Programmierer können auch auf die eine oder andere Weise gut mit Menschen kommunizieren.
Diese Programmierer, die Sie sehen, kommen nie aus ihren Kopfhörern? Sie machen immer noch diese Kommunikation, sei es per E-Mail, über einen Bug-Tracker oder sogar über einen Messenger. Es passiert alles, sonst können sie unmöglich wissen, was sie dem Computer sagen sollen.
Ja, Ihre Kommunikationsfähigkeiten werden Ihnen gute Dienste leisten.
quelle
Die Programmierer möchten vielleicht mit großen Kopfhörern codieren (nun ja, nicht alle), aber das bedeutet nicht, dass sie nicht kommunizieren können, sondern nur, dass sie in diesem Moment nicht gestört werden möchten - nicht, dass sie werde nie kommunizieren.
Bei Besprechungen mit dem Rest des Teams, bei Ad-hoc-Besprechungen, mit Geschäftsanwendern, mit anderen Teams usw. sind mündliche Kommunikationsfähigkeiten nach wie vor äußerst wichtig.
Schriftliche Kommunikationsfähigkeiten sind auch sehr wichtig, wenn Sie Ihren Mitarbeitern mit großen Kopfhörern eine E-Mail senden, damit sie Ihnen später antworten können.
quelle
Für mich klingt es so, als sollten Sie sich als technischer Berater bewerben. Es beinhaltet oft Programmierung, erfordert aber auch viel Kommunikation - mit Kunden, Kollegen, Beratern anderer Unternehmen ... OTOH bedeutet es auch, viele technische Probleme zu beheben, ohne tatsächlich Code zu schreiben, wenn Sie das nicht mögen, sollten Sie suche wohl andere wege. HTH.
quelle
Kommunikationsfähigkeiten sind für einen Softwareentwickler äußerst wichtig. Irgendwo gibt es eine Statistik (möglicherweise neben der Statistik, die besagt, dass 68% aller Statistiken erstellt wurden), die besagt, dass ein Großteil der Softwareprojekte aufgrund schlechter Kommunikation fehlschlägt. Die Person zu sein, die in einem Software-Entwicklungsteam mit dem Unternehmen kommunizieren kann (und das Unternehmen versteht), MUSS ein guter Ort sein.
quelle
Ich bin der festen Überzeugung, dass mein größter Wettbewerbsvorteil gegenüber anderen Programmierern und IT-Typen, die ich kenne, die Fähigkeit ist, mit Menschen zu kommunizieren, die keine fließenden IT-Konzepte beherrschen. Es ist die am meisten unterschätzte und am wenigsten entwickelte Fähigkeit eines Durchschnittsmitglieds der IT-Community und dennoch eine der wichtigsten.
In fast jeder erdenklichen Rolle müssen Sie irgendwann mit jemandem sprechen, der fast keine Ahnung davon hat, was Sie tun, und Sie müssen in der Lage sein, ihn darüber zu verkaufen, was Sie tun.
Möglicherweise müssen Sie sich auch mit Benutzern befassen, um die Anforderungen für eine Spezifikation zu ermitteln. Diese spezielle Art des Zuhörens (zusammen mit den richtigen Aufforderungen und Fragen) ist auch Kommunikation!
Das hat natürlich noch einen weiteren Vorteil: Gute Kommunikationsfähigkeiten machen es sehr viel einfacher, überhaupt einen Job zu finden.
quelle
Herzliche Glückwünsche. Sie haben eine glänzende Zukunft als Anwendungstechniker und dann als Anwendungstechniker (FAE Manager).
Im Rahmen dieses Sterling-Berufs erstellen Sie Powerpoint-Präsentationen für Tier-I-Kunden mit dem Text "Software Stack", der überall darauf geschrieben ist, und abstrahieren sehr komplexe Software-Engineering-Entwürfe in rechteckigen Blöcken mit verschiedenen Farben, die häufig willkürlich angeordnet sind. Diese Präsentationen werden von den wichtigsten Softwareingenieuren auf den obersten Ebenen der Forschung und Entwicklung initiiert, verwässert und anschließend in Anforderungsdokumente eingefügt, die den wichtigsten Softwareingenieuren auf den obersten Ebenen vorgelegt werden von F & E als Make-or-Break-the-Business-Spezifikationen. Einer Ihrer Boni hängt von der liberalen Verwendung des Wortes "Wolke" ab.
quelle
Mit großartigen Kommunikationsfähigkeiten sind Sie besser dran. Heads-down-Programmierer sind oft diejenigen, die sich nicht mit den aufregenden Projekten befassen, da ihre Manager sie möglicherweise auch nicht verstehen. Wenn Sie nie Luft holen, werden Sie als "der seltsame Kerl in der Ecke" eingestuft.
Auch hier arbeiten wir an Stereotypen, und nicht jede Umgebung ist so, aber zumindest helfen gute Kommunikationsfähigkeiten Ihnen dabei, das Geschäft und die Menschen in Ihrer Umgebung besser zu verstehen, damit Sie besser für die Bewältigung komplexer Probleme in Ihrer Umgebung gerüstet sind bestimmte Domain.
Wie viel Sie kommunizieren, liegt bei Ihnen. Es kommt selten vor, dass Sie in einem Team landen, das voll von Head-down-Programmierern ist, mit niemandem, der reden möchte, aber wenn Sie nicht auf Nerd-Humor aus sind, bereiten Sie sich darauf vor, schnell vorgestellt zu werden. Seien Sie auch auf die unvermeidlichen sozial schwierigen Programmierer vorbereitet. Es gibt immer mindestens einen.
quelle
Wahrscheinlich scheitern die meisten Softwareprojekte nicht an technischen Problemen, sondern an Kommunikationsproblemen. Das Schreiben von großartigem Code ist für einen Softwareentwickler sicherlich wichtig, aber gute Kommunikationsfähigkeiten sind für ein Team von großem Nutzen - und auch schwieriger zu verbessern als Codierungsfähigkeiten.
quelle
Ich programmiere gerade mit großen Kopfhörern. Nun, ich habe gerade programmiert. Klar bin ich jetzt bei StackExchange ...
Es ist wahr, dass viel programmiert wird in Solidarität. Um gut zu programmieren, BRAUCHEN Sie diesen Fokus und diese Privatsphäre. Glauben Sie wirklich, dass der größte Teil Ihrer Zeit mit Programmieren verbracht wird? Ein Großteil Ihrer Zeit wird auf Teambesprechungen, Strategiegespräche, Gehen, Nachdenken, Besprechen usw. aufgeteilt. Eigentlich ist es nicht Ihr ganzes Leben, an Ihrem Schreibtisch zu sitzen und zu tippen. Ich erinnere mich, dass ich in meinem Software-Engineering-Kurs gelesen habe, dass die besten / produktivsten Programmierer in einem Team die kontaktfreudigen und NICHT die introvertierten sind.
Gute Programmierer können gut mit ihrem Team kommunizieren. Anforderungen von einem technischen Leiter oder Manager zu erhalten und zu verstehen, ist oft keine leichte Aufgabe. Gute Kommunikationsfähigkeiten sind erforderlich, um Ihre Aufgaben zu klären und mit dem Team zu kommunizieren. Wenn Sie sich zum technischen Leiter oder Manager hocharbeiten, sind Kommunikationsfähigkeiten von entscheidender Bedeutung, um das Team zusammenzuhalten.
Ich bin auch jemand, der es liebt, aufgeschlossen zu sein. Ich muss zugeben, dass ich die Solidarität in meinem Programmierjob zunächst ein wenig bedrückend fand. Ich habe einige Schritte unternommen, um den Job sozialer zu gestalten, hauptsächlich: 1) Ich weigere mich, alleine zu Mittag zu essen
Ein Programmierjob sollte nicht asozial sein.
quelle
Kommunikationsfähigkeiten werden auf keinen Fall verschwendet. Selbst wenn Sie 80% Ihrer Zeit damit verbringen, Programmcode zu schreiben, müssen Sie sich darüber im Klaren sein, was der Code bewirkt. Wirksame Kommunikation mit Ihrem Kunden (oder Projektleiter) ist erforderlich, um sicherzustellen, dass Ihre Anstrengungen nicht verschwendet werden und tatsächlich zu dem führen, was erforderlich ist. Darüber hinaus können Sie Ihre Arbeit, mögliche Probleme mit dem Design, einfachere Implementierungen usw. denjenigen, die mit der Programmierung weniger vertraut sind, leichter erklären. Beim Programmieren von benutzerinteraktiver Software wären schließlich Kommunikationsfähigkeiten sehr hilfreich, um eine Benutzeroberfläche zu entwerfen, die die richtigen Informationen auf eine benutzerfreundliche und verständliche Weise vermittelt. Dies hilft Ihnen auch dabei, die richtigen Informationen vom Benutzer zur Ausführung des Auftrags zu erhalten.
quelle
Ich stimme allen hier zu, die argumentieren, dass Kommunikation der Schlüssel bei der Computerprogrammierung ist. Ich denke ehrlich, dass Sie aus dem, was beschrieben wird, einen großartigen Hauptprogrammierer oder mehr vom Typ "Software-Ingenieur" machen werden. Ich habe als allgemeine IT in einem Unternehmen angefangen und bin, sobald ich meine Programmierkenntnisse nachweisen konnte, zum Programmierer übergegangen, da ich sehr sozial und teamorientiert bin, bin ich jetzt der leitende Programmierer in zwei Projekten. Sie werden feststellen, dass je höher Sie in der Programmierkette sind, desto mehr Probleme und Probleme werden Sie lösen.
Wenn Ihre Persönlichkeit die Eigenschaft "Führung" hat (auf die Sie hinweisen), werden Sie sehr schnell an die Spitze aufsteigen. Nur vorausgesetzt, Sie befinden sich in einem Unternehmen, mit dem Sie sich auf diese Weise weiterentwickeln können.
Sozialkompetenz, Problemlösung und gute Programmierung sind oft seltener als Sie vielleicht denken. Arbeitgeber töten für diese Art von Fähigkeit. Ich denke, Sie sind auf dem richtigen Weg. Mach weiter so!
quelle
Ich stimme allen anderen zu, die sagen, dass es in der Softwareentwicklung viel Kommunikation gibt, und ich füge hinzu, dass selbst das Schreiben von gutem Code gute Kommunikationsfähigkeiten erfordert.
Es ist wichtig, den richtigen Code zu schreiben. Das Schreiben von Code, den andere verstehen können, ist wohl viel wichtiger. Wenn Ihr Code ein paar Fehler enthält, aber so geschrieben ist, dass ich leicht verstehen kann, was vor sich geht, ist es für mich nicht schwer, die Fehler zu finden und zu beheben. Wenn Ihr Code vollständig korrekt ist, aber so geschrieben ist, dass ich nicht sicher bin, ob ich ihn verstehe, kann ich nicht wirklich sicher sein, dass er korrekt ist, und die Wahrscheinlichkeit, dass ich ihn in Zukunft korrekt ändern kann, ist viel geringer .
quelle
Natürlich ist eine gute Kommunikation wichtig! Ich würde mich darauf konzentrieren, ein exzellenter Lehrer zu werden. Wirklich effektive Programmierer können in einem 15-minütigen Telefonanruf die Grundlagen erklären, für deren Verständnis Jahre benötigt wurden. Im selben Gespräch müssen Sie die Details in nicht-technischen Begriffen erläutern, damit die Person am anderen Ende der Leitung über einen längeren Zeitraum eine fundierte Entscheidung treffen kann, die für ihr Unternehmen am besten ist.
quelle
Es kommt darauf an, wohin du gehst. Ich kenne ein quantitatives Handelsunternehmen, bei dem Sie viel Zeit auf dem Whiteboard verbringen und mit Doktoranden Brainstorming betreiben. Ich kenne eine renommierte Beratungsfirma, in der Sie ebenfalls viel kommunizieren würden, aber mit Leuten ohne technischen Hintergrund ... Ich kenne eine große Nicht-Software-Fortune-100-Firma, in der Sie ebenfalls viel tun würden zu kommunizieren, aber es würde hauptsächlich Politik spielen.
OTOH, viele Startups und Software-Unternehmen benötigen Mitarbeiter für die Heads-down-Codierung. Sicher, Sie kommunizieren einiges, aber es ist viel anders, aufstehen, um eine Präsentation zu liefern, die Ihre Firma verkauft, als nur mit anderen Programmierern zu sprechen ...
Der eine Bereich, in dem Kommunikation wirklich ins Spiel kommt, ist Verkaufstechnik / technische Beratung / etc ... Wenn Sie wirklich ein exzellenter Kommunikator sind (und nicht nur ein SW-Ingenieur, der nicht sozial umständlich ist), werden Sie das bekommen gutes Geld bezahlt. Es gibt dort auch etwas Verkauf .
quelle
Nun, aus der Sicht der Leute, die von außen kommen ... Ich kann nicht wirklich sagen (wie alle anderen), dass es beim Programmieren nur um Kommunikation geht.
Es ist nicht wirklich normaler Tag zu Tag der Kommunikation über gegenseitigen Basis Respekt und Interessen , und Stakes ... es ist mehr über Gedankenlesen , Art der Pflege , und einige Argumentieren sind sicherlich beteiligt. Es wird auch viel verhandelt , aber nicht so, wie Sie es wahrscheinlich gewohnt sind.
Sie nicht wirklich sh-t verkaufen Programmierer, müssen Sie Spiel sie, oder verführen sie mit schweren Beweise und Tatsachen. Während dies für missionskritische relevante Themen fair erscheinen mag , wenden Sie an, dass sich niemand, nicht einmal derjenige, der es angesprochen hat, wirklich darum kümmern sollte, und ... willkommen in der Kommunikationshölle .
Wenn Sie ein Byte in der Außenwelt haben (die Welt der Verkäufe / Geschäftsabschlüsse / Händeschütteln), ist es wirklich schwierig, sich auf die Art von (etwas jugendlichen, etwas akademischen) Interaktionsprogrammierern einzustellen, die es in den Kabinen gibt.
Der geschäftliche Teil Ihres Lehrplans wird stark verschwendet , es sei denn, Sie finden einen Weg, die Managementleiter schneller als eine brennende Katze zu erklimmen .
quelle
Kommunikationsfähigkeiten sind hilfreich, aber technische Kompetenz übertrifft alles, was Entwicklern geboten wird.
Sie wären wahrscheinlich glücklicher als Anwendungsingenieur, dh als Ingenieur, der Kunden bei der Anpassung und Nutzung des Softwareprodukts hilft, das von Entwicklern entwickelt wurde. Auf diese Weise arbeiten Sie mit Software, verbringen aber den größten Teil Ihres Tages mit Reden.
quelle
Da Sie das Programmieren von Ihrer Interpretation des Kommunizierens (Diskutieren mit Menschen) getrennt haben und 80% der Zeit mit Menschen sprechen möchten, ist das Programmieren keine gute Wahl. Wenn Sie in eine Situation geraten, in der Sie Vollzeitanalyst, Architekt, Manager oder Kundenberater sein können (Sie können mit Kunden und Programmierern sprechen, Sie sind der Dolmetscher.)
Es gibt Phasen von Projekten, in denen man den ganzen Tag am Brett verbringen kann, aber irgendwann muss man Code schreiben. Es ist eine Form der Kommunikation, aber nicht so, wie Sie es beschrieben haben. Vielleicht können Sie in einem Pair-Programming-Shop viel chatten, während Sie programmieren. Meistens müssen Sie sich auf die Tastatur konzentrieren. Das Tragen von Kopfhörern bedeutet, dass Sie von zu vielen Menschen umgeben sind, die es nicht sind.
quelle