it-swarm-eu.dev

Welche Fähigkeiten würden Sie von einem Junior Software Engineer erwarten und schätzen?

Ich habe kürzlich meinen Master of Science in Software Engineering abgeschlossen und stehe kurz vor dem Beginn meiner beruflichen Laufbahn in wenigen Wochen. Meine Rolle wird als Junior Developer für ein Unternehmen sein, das Software unter Verwendung von Java & verwandten Technologien (darunter Spring und Hibernate) entwickelt. Um ehrlich zu sein, bin ich sehr gespannt auf das, was kommt, insbesondere weil ich meine Karriere als Java Entwickler] weiterentwickeln möchte. Ich bin auch sehr daran interessiert, Erfahrungen auf diesem Gebiet zu sammeln. Außerdem wird dies meine erste Berufserfahrung als professioneller Entwickler sein, also ich Ich möchte wirklich von Anfang an mein Bestes geben.

Ich würde gerne wissen, welche Fähigkeiten und Fertigkeiten, sowohl weich als auch technisch, von einem neuen Fachmann (Junior Developer), der Teil Ihres Teams sein könnte, am meisten geschätzt werden und auf welche Fähigkeiten ich mich konzentrieren sollte, um eine erfolgreiche Karriere als Software zu erreichen Ingenieur.

64
Bartzilla

Viele davon sind wahr, egal wo Sie sich in Ihrer Karriere befinden, aber sie sind möglicherweise besonders wichtig für jemanden, der gerade erst anfängt.

  • Hör mehr zu als du redest. Lerne aus dem, was andere Leute sagen.
  • Demütig sein. Haben Sie keine Angst, Ihre Ideen zu teilen, aber gehen Sie nicht davon aus, dass Sie Recht haben und alle anderen Unrecht haben. Wenn Sie etwas sehen, das Sie für falsch halten, fragen Sie danach und machen Sie keine Aussagen darüber.
  • Lerne weiter. Die Grundlage Ihrer Ausbildung ist (sollte) großartig, aber Sie haben erst begonnen, den Beruf zu erlernen. Lerne beim machen. Ich glaube nicht, dass Sie wirklich lernen können, wenn Sie nicht tatsächlich üben, was Sie lernen.
  • Der Kunde weiß selten, was er will, bis er es sieht. Gewöhnen Sie sich daran, dass sich Ihre Anforderungen ändern. Nehmen Sie einen Entwicklungsstil an (falls zulässig), der die Dinge schnell vor den Kunden bringt, um Feedback zu erhalten.
  • Finden Sie Leute, die gut mit Kunden zusammenarbeiten können, und bitten Sie sie, Sie bei der Entwicklung von Beziehungen zu ihnen zu unterstützen.
  • Schreiben Sie gut getesteten, robusten Code. Es zu erledigen ist nicht das Ziel; es richtig zu machen ist. Wenn Sie gut darin sind, wird die Geschwindigkeit mit der Zeit kommen.
  • Hart arbeiten. Warten Sie nicht, bis Sie gebeten werden, etwas zu tun. suche oder frage nach Dingen, die zu tun sind.
  • Machen Sie sich mit Ihren Fehlern oder den Fehlern Ihres Teams vertraut. Werfen Sie Ihre Teammitglieder nicht unter den Bus vor den Kunden, sondern seien Sie ehrlich, wenn Sie Codeprobleme haben.
  • Sie denken vielleicht, dass Ihre Teamkollegen möchten, dass Sie ein brillanter Programmierer sind. Das wäre großartig, aber deine Teamkollegen wollen wirklich, dass du kompetent bist und kein Idiot. Wenn du ein Idiot sein willst, solltest du besser brillant sein.
50
tvanfosson

Hier ist eine kurze Liste auf Anhieb:

  • Follow-through (beenden Sie, was Sie beginnen)
  • Ehrlichkeit (sag mir, wenn du feststeckst)
  • Neugier (bessere Wege finden, um Dinge zu tun)
  • Aufgeschlossenheit (sowohl gegenüber Kritik als auch gegenüber Ideen, die nicht Ihre sind)
  • Großzügigkeit (teilen Sie, was Sie lernen; trainieren Sie die nächste Generation)
61
Alex Feinman

Zwei Dinge: Lernbereitschaft und Lernfähigkeit.

8
Dima

Motivation. Wissen Sie, wie Sie sich motivieren können? Wissen Sie, welche Taktik besser funktioniert als andere? Hier geht es um Selbstbewusstsein, von dem manche erwarten, dass Sie es von all der Ausbildung wissen, die Sie gemacht haben, um dies nebenbei herauszufinden.

Grundlegende Test- und Debugging-Fähigkeiten. Wissen Sie, was ein Unit-Test ist? Kennen Sie einige Möglichkeiten, um ein Problem zu beheben? Hier geht es nicht darum, genau zu wissen, was in einer Umgebung zu tun ist, sondern darum, was die grundlegendsten Tests sein können und welche Strategien bei der Betrachtung eines Problems zu verfolgen sind.

Kommunikationsfähigkeit. Wie genau beherrschst du die Sprache? Wie gut können Sie von technisch zu nicht-technisch wechseln? Zugegeben, dies ist etwas zu entwickeln, aber es ist etwas zu beachten und in einigen Fällen jemanden zu retten, der sich selbst in Schwierigkeiten bringen kann, indem er die Auswirkungen dessen, was er behauptet, nicht versteht. Wie gut verstehen Sie sich mit Menschen? Nicht, dass dies eine strenge Anforderung wäre, aber wenn Sie gute Beziehungen zu Kollegen haben können, kann dies die Arbeit mit einigen Jobs etwas erleichtern. Ehrlichkeit und Integrität fallen ebenfalls unter diese Fähigkeitsgruppe, da es im Allgemeinen Fragen geben kann, wie gut Sie sagen, was Sie meinen und was Sie sagen. "Office Space" enthält viele Beispiele für schlechte Kommunikation, und obwohl die Arbeit fiktiv ist, gab es möglicherweise viele Szenen, die für manche Menschen in Bezug auf die Arbeit in Büroumgebungen sehr realitätsnah waren.

Vielseitigkeit. Neue Mitarbeiter im Team erhalten möglicherweise eine breite Palette von Verantwortlichkeiten, sodass Sie in einem kleinen Unternehmen möglicherweise Datenbanken, Netzwerke, Webserver und andere Dinge einrichten müssen, die außerhalb der Entwicklung liegen. Ein weiteres Beispiel wäre es, einem Team zu helfen, eine Frist einzuhalten.

4
JB King

Neugier, Begeisterung, setzt einen hohen Standard für sich selbst, Lernbereitschaft, Bereitschaft zuzugeben, dass sie es nicht wissen, Interesse daran, was das Unternehmen tut und wie es sich auf die von Ihnen produzierte Arbeit auswirkt. (Alle guten Eigenschaften, auch wenn Sie 20 Jahre Erfahrung haben)

Gute technische Kenntnisse sind großartig, aber Sie müssen zeigen, wie Sie diese Kenntnisse anwenden würden.

Der Interviewer muss vor allem sehen können, dass Sie dort arbeiten, einen Beitrag leisten und bleiben wollen. Wenn Sie zu gut sind, kann dies einige Leute schneller abschrecken als unterdurchschnittlich. ;)

4
Peter Lawrey

Ich stimme mit allem überein, was bereits gesagt wurde, aber ich möchte betonen, dass Sie diese allgemeinen (und weichen) Fähigkeiten niemals vergessen sollten, anstatt ein technischer Experte zu sein. Sie sollten an beiden arbeiten, aber ich hätte lieber einen Fortgeschrittenen, der kommunizieren kann, was er weiß, als einen Meister, der lieber alleine arbeitet.

Verbringen Sie auch nicht zu viel Zeit mit Ihrer Nase in einem Buch. Bücher sind gut, sogar großartig, aber wenn Sie die meiste Zeit mit Lesen und weniger Zeit mit Arbeiten verbringen, werden Sie nicht halb so viel aus diesen Büchern herausholen.

3
Wes Baker

Für mich als Junior-Entwickler ohne Abschluss hat meine Bereitschaft, hart zu arbeiten und mich zu verbessern, meiner Karriere sehr geholfen. Ich bemerkte auch, dass es von meinen Vorgesetzten geschätzt wurde, mit Kritik (positiv oder nicht) fertig zu werden und diese weiterverfolgen zu können.

Was eine neue Umgebung betrifft: Ich würde empfehlen, in der ersten Woche oder so einfach mit dem Fluss zu gehen. Ich habe den Fehler gemacht, mich zu sehr anzustrengen, das wurde nicht geschätzt.

3
Zsub

Tolle Antworten an alle. Ich würde nur aus meiner begrenzten Flugerfahrung hinzufügen - wissen Sie, wie sie einen Pilotenschein nennen?

Eine Lizenz zum Lernen.

2
Mike Dunlavey

Viele tolle Antworten.

Selbst wenn ich nicht für die "großen Jungs" arbeite und kein Guru bin, werde ich meine 2 Cent hinzufügen.

Sei nett zu den Leuten.

Versuchen Sie, mit Ihren Kollegen in Kontakt zu treten, und verbringen Sie, wenn möglich, jeden Tag ein wenig Zeit mit einigen von ihnen. Gehen Sie ab und zu mit ihnen zum Abendessen, lachen Sie gut mit ihnen.

Mit anderen Worten, versuchen Sie, eine "Community" aufzubauen, wenn es keine gibt, oder ein Teil davon zu werden, wenn es eine gibt.

Das Kennenlernen Ihrer Kollegen hilft Ihnen dabei, leichter mit ihnen auszukommen. Außerdem stehen die Chancen gut, dass Sie Spaß daran haben werden.

2
s.m

Neben all den guten Sachen, die von der Community (oben) eingereicht wurden, würde ich auch Beweise für einige harte Fähigkeiten erwarten. Keine Perfektion oder Über-Geek-Kräfte, sondern gute Kenntnisse der Grundlagen und Grundkonzepte. Du hast den Job schon bekommen (Glückwunsch übrigens!), Also bist du so ziemlich da.

Wenn Sie jedoch Ihr Wissen auffrischen und/oder sich mit den Tools, Sprachen und Technologien Ihres Unternehmens vertraut machen, werden Sie sofort loslegen und einen guten ersten Eindruck hinterlassen.

Ein hypothetischer perfekter Nachwuchsentwickler kennt die Grundlagen solcher Dinge wie

  • die Sprache.
  • I/O.
  • OO-Konzepte wie Vererbung
  • Objektschnittstellen
  • datenbankzugriff (insbesondere in Bezug darauf, wie sie dies in Ihrem neuen Code-Shop tun)
  • das HTTP-Modell
  • CSS
  • JavaScript/JQuery
  • datenbank Design
  • SQL und gespeicherte Prozeduren
  • die IDE (s), die Sie verwenden werden
  • relevante Frameworks (Sie erwähnen Spring)

und so weiter. Er kann sich darauf konzentrieren, neue Fähigkeiten zu erlernen, ohne anhalten und die Grundlagen lernen zu müssen. Er wird in der Lage sein, weiterzumachen (so viele vernünftige Fragen zu stellen, wie er möchte - die meisten älteren Entwickler Liebe gefragt zu werden vernünftig technische Fragen) mit Der Routinetarif von Online-Formularen, Verwaltungsseiten, mit denen viele Junioren in den ersten Monaten konfrontiert sind. Ein zuverlässiger Junior-Entwickler zu werden, könnte dein erster Team-Initiierungstest sein ;-)

Als ich als Junior im Webteam eines großen Unternehmens anfing, war der Großteil der anfänglichen Arbeit, die mir zugewiesen wurde, etwas wenig inspirierend, belastete mich jedoch bis zu dem Punkt, an dem ich jeden Abend in die Bücher schlug, damit ich verstehen konnte, was ich vorhatte zu tun haben am nächsten Tag. Ich habe es geschafft, aber das war fünf oder sechs Monate nach dem relativen Luxus meines Masterstudiengangs stressig ;-)

Wenn Sie alle grundlegenden Dinge effizient erledigen können, erhalten Sie ziemlich schnell interessantere Dinge, die Sie erledigen können, und dies wird natürlich dazu beitragen, Ihre Karriere voranzutreiben.

Und wie viele oben gesagt haben, entwickelt sich die Welt der Computer und des Codes ständig weiter. Sie müssen jeden zweiten Tag neue Dinge lernen. Halten Sie Ihren Geist weit offen und versuchen Sie im Auge zu behalten, warum Sie sich überhaupt darauf eingelassen haben - weil Sie es <3 sind. In den kommenden Jahren kann es Zeiten geben, in denen dies nicht im Vordergrund Ihres Geistes steht. Die Begeisterung wird Sie über die meisten Unebenheiten und Hürden führen.

Abgesehen davon deutet meine Erfahrung der letzten zwölf Jahre darauf hin, dass die meisten Junioren nicht für immer in ihrer ersten Gesellschaft bleiben. Lassen Sie sich also nicht zu sehr darauf ein, „perfekt“ zu sein. Fehler zu machen ist alles Teil des Prozesses, der Sie vom Junior dorthin bringt, wohin Sie am Ende wollen. Ich mache das jetzt schon eine Weile und fast - lösche eine Produktionsdatenbank so ziemlich mindestens ein paar Mal im Jahr.

Viel Glück bei Ihrer Karriere.

2
5arx
  • Leidenschaft für die Arbeit

  • Bereit mehr und mehr zu lernen ..

  • ehrlichkeit

  • konsistenz

1
Jigar Joshi

Tolle Antworten, wenn Sie all dem folgen, was die Leute hier sagen, bin ich sicher, dass jeder gut darin sein wird, was er/sie tut.

Ich möchte nur ein paar Punkte hervorheben.

  • Sei demütig, habe keine Angst davor, deine Meinung zu äußern, aber wenn eine Meinung geteilt wird, halte sie nicht fest, sei bereit, von anderen zu lernen.
  • wenn Sie Beziehungen zu Ihren Teammitgliedern aufbauen, Menschen, so sehr wir mit intelligenten und gut etablierten Programmierern zusammenarbeiten möchten, brauchen wir immer noch Menschen, mit denen wir sprechen können. Eine gesunde Beziehung zu Ihren Teammitgliedern wird Ihrer Karriere sehr helfen.
  • Seien Sie proaktiv, warten Sie nicht auf Arbeit, finden Sie Arbeit, schlagen Sie der Umwelt neue Ideen vor, auch wenn diese nicht akzeptiert werden. Dies erhöht Ihren Wert für das Unternehmen.
  • Teilen Sie anderen mit, was Sie lernen. Dies erhöht Ihr Verständnis und Ihren Wert für das Unternehmen und die Community.
  • Beenden Sie, was Sie beginnen, Engagement ist eine großartige Qualität zu haben.
  • Bleiben Sie glücklich und lassen Sie sich nicht enttäuschen, wenn die Dinge nicht wie geplant laufen. Es wird Höhen und Tiefen geben, aber bleiben Sie dran

Alles Gute für Ihre Arbeit

1
Brian Paul

Die Initiative ergreifen. Ich hatte viele Leute, die das überhaupt nicht tun und immer darauf warten, genau zu erfahren, was zu tun ist. Wenn Sie etwas sehen, das verbessert werden sollte, tun Sie es. Sie haben eine Idee, etwas zu verbessern? Bring es vorwärts. Benötigen Sie eine andere Fähigkeit, um etwas zu verbessern? Lern es.

Zeigt, dass Sie sich für das interessieren, was Sie tun und verbessern möchten.

1
jmq

Eine Fähigkeit, von der ich glaube, dass sie nicht viele Jr-Programmierer haben, aber eine wirklich gute, die Fähigkeit, eigene Werkzeuge zu erstellen. Mit ein paar gut gemachten benutzerdefinierten Werkzeugen können Sie viel Zeit und Mühe sparen. Und sie müssen nichts Besonderes sein, die meisten von mir sind dreizeilige Shell-Skripte, obwohl einige viel länger sind.

Aber das Lernen, Dinge zu automatisieren, wird Ihnen das Leben leichter machen. (Und beeindrucken Sie Ihre Mitarbeiter, wenn Sie die Dinge gut erledigen können)

1
Zachary K

Um Sie überhaupt nicht zu erschrecken, aber eine Sache, vor der ich Sie in jeder einzelnen Firma, in der ich gearbeitet habe, warnen werde, sind die großen, schmutzigen, riesigen Bildlaufmethoden und schlecht benannten Objekte, die Sie fürchten, die Quelldateien bloß zu öffnen Schock und Entsetzen eines solchen Chaos. Die Stellen, an denen Sie diese normalerweise finden, befinden sich in den Ereignishandlern für die Schaltflächen "OK" in Dialogfeldern oder in der Schaltfläche "Senden" auf Webseiten.

Ich flehe dich von ganzem Herzen an. Bitte installieren Sie eine mentale Alarmglocke. Wenn eine Methode groß aussieht und ich damit mehr als 10 Zeilen meine, denken Sie darüber nach, eine andere Methode zu erstellen. So viele Methoden später werden Sie verstehen, wie viel Verantwortung die Methode hat Objekt, in dem Sie sich entwickeln, hat.

Die nächste Alarmglocke, die ich empfehlen würde, sind die maximal 2-3 Parameter in einer Methode. Wenn Sie Methoden mit etwa 10 Eingabeparametern sehen, begrüßen Sie die funktionale Programmierung in einer Sprache OO ...

Entschuldigen Sie die leichte Frustration, die in dieser Antwort zum Ausdruck kommt. Ich kann es einfach nicht genug schreien, wie nützlich es ist, zu lernen, wie man sauberen Code schreibt.

Bitte besorgen Sie sich eine Kopie von Robert. C Martins Clean Code . Lesen Sie es wöchentlich, nehmen Sie es zum Abendessen heraus, schlafen Sie damit unter Ihrem Kissen, haben Sie eine Kopie davon in der Toilette, drucken Sie ein paar Seiten aus und kleben Sie sie an die Decke, damit Sie sie vorher lesen können, wenn Sie schlafen gehen du nickst ein;).

Ich wünsche Ihnen alles Gute für Ihre Karriere. Ihre Leidenschaft an diesem Punkt zeigt bereits, dass Sie großartig abschneiden werden.

1
Martin Blore

Der einzige Rat, den ich anbieten kann, ist, niemals aufzuhören zu lernen. Die Art und Weise, wie diese Rockstar-Entwickler dorthin kamen, besteht darin, sich Zeit zu nehmen, um neue Techniken und Sprachen zu lernen, und ist ihre eigene Freizeit. Es ist zwar toll, wenn Sie 10 Jahre dort bleiben, aber wenn Sie herauskommen, wissen Sie nur Java + Spring + Hibernate. Deshalb schaue ich in meiner Freizeit auf die .NET-Plattform, Python und der gelegentliche C++ - Code, um aktiv zu bleiben. Als jemand, der in Info-Sek. An einer MS arbeitet, kann Zeit kostbar sein und muss mit Bedacht eingesetzt werden.

1
Woot4Moo

Die Möglichkeit, Google zu verwenden. Ja wirklich.

Nicht, dass ich niemals jemandem helfen würde, besonders einem jungen Kollegen. Aber es gibt nichts Frustrierenderes, als jemanden zu haben, der bei der kontinuierlichen Lösung von Problemen nicht die gebotene Sorgfalt wendet.

Mein Rat an Junior Soft. Ingenieure müssen Ihre Sorgfalt bei der Lösung von Problemen tun. Verwenden Sie Google, Wikipedia oder Stackoverflow sorgfältig und methodisch, wenn Sie etwas nicht wissen.

Warten Sie nicht zu lange, bevor Sie sich an einen älteren Mitarbeiter wenden - das hängt jedoch von der Art der Organisation ab. Wenn Sie in einem guten Unternehmen, in dem sich die Menschen gegenseitig helfen, mehr als einen halben Tag damit verbringen, eine Antwort zu finden, zögern Sie nicht, Ihre eigene Forschung zu beenden, um um Hilfe zu bitten.

In anderen Organisationen, in denen die Menschen immer gemein zueinander sind, müssen Sie möglicherweise einige Tage alleine verbringen (um alles zu dokumentieren, was Sie getan haben und wo Sie recherchiert haben), bevor Sie um Hilfe bitten. In solchen Unternehmen hilft es, zu dokumentieren, was Sie getan haben, damit Sie ihnen zeigen können, dass Sie es googelt haben, da dies die erste Retorte ist, die sie auf Sie werfen.

Unabhängig davon besteht das Wesentliche, wonach ich bei einem Nachwuchsingenieur suchen würde, darin, seine Sorgfalt darauf zu verwenden, ein Problem zu lösen, anstatt zu erwarten, dass ihm ständig Antworten gegeben werden. Kurz gesagt, zeigen Sie mir, dass Sie Google verwenden können.

1
luis.espinal

(1) Offenheit. Sie möchten nicht, dass jemand für jedes Projekt die Sprache X und die Umgebung Y verwendet. Sie möchten jemanden, der erkennen kann, wenn eine bestimmte Technologie ein Problem nicht sauber löst und gute Alternativen bietet. Darüber hinaus möchten Sie jemanden, der das konventionelle Denken in Frage stellt und Lösungen findet, die das Geschäft motivieren. Sie können dies selbst erleben, aber ich habe festgestellt, dass sich die Leute so an einen Prozess gewöhnen, dass sie ihn nicht ändern, aber sie beschweren sich immer noch über die Menge an Schmerzen, die sie verursachen. Normalerweise schaue ich bei meiner Ankunft nach, wie ich das verbessern kann, und biete meinem Manager Lösungen an. Jetzt würde ich auch sagen, dass das Personal "diplomatisch" über seine/ihre Vorschläge sein sollte :)

(2) Gute Fähigkeiten zur Domänenmodellierung. Dies ist eine ziemlich große, die einige Leute übersehen haben. An einigen Orten, an denen ich gearbeitet habe, bedeutet das Erlernen des Geschäfts, sich die Hände schmutzig zu machen, und die Leute scheuen sich vor rein technischen Problemen wie der Integration von Rechtschreibprüfungen in die Versionskontrolle usw. und investieren nicht viel Zeit in die Verbesserung der Geschäft. Wenn Sie in der Lage sind, ein Unternehmen zu betrachten und daraus Modelle (Vereinfachungen) zu erstellen und zu kommunizieren, dass Sie verschiedenen Zielgruppen, sei es gesprochen, visuell (UML, SSADM oder was auch immer) oder ein bisschen von beidem, jemanden mit dieser Mentalität wünschen.

Zwei Bücher, die ich zu diesem Thema empfehlen kann, sind: The Passionate Programmer und The Pragmatic Programmer . Beide Bücher bieten sowohl Junior- als auch Senior-Programmierern gute Ratschläge.

1
Desolate Planet