Gibt es Jobs in den Bereichen Informatik/Wissenschaft, die nicht den GANZEN Tag programmieren müssen [geschlossen]

Ich habe kürzlich meinen Bachelor in Computer Engineering abgeschlossen und suche nach einem Job. Ich hatte in der Vergangenheit 4 Praktika; sie waren sowohl im staatlichen als auch im privaten Sektor tätig, im kleinen wie im großen. Ich habe jedoch festgestellt, dass der gemeinsame Faktor darin besteht, dass sie Sie vor einen Computer setzen und von Ihnen erwarten, dass Sie im Wesentlichen 8 Stunden am Stück programmieren. (Bearbeiten: Wenn ich 'Programmieren' sage, meine ich Programmieren und alles, was es realistischerweise mit sich bringt. Ich habe nicht den ganzen Tag herumgesessen und eleganten, funktionalen Code rausgehauen. Ich habe Fehler behoben, nach Lösungen gesucht, hatte die Nase voll und gab der Hardware die Schuld, etc.)

Nun, ich bin kein kompletter Idiot. Als ich mich anmeldete, wusste ich, dass Computer Engineering einen großen Programmieraufwand erfordern würde und dass ich einen erheblichen Teil meiner Zeit damit verbringen würde, direkt mit Computern zu interagieren. Sich hinzusetzen und über die nächsten ~40 Jahre meines Lebens nachzudenken, wäre jedoch nichts, aber das ließ mich ein wenig beunruhigt zurück.

Ich hasse Programmieren nicht; Ich mag es eigentlich ganz gerne. Ich habe an persönlichen Projekten gearbeitet, während ich arbeitslos war, und ich fühle mich motiviert, im Allgemeinen zu programmieren. Aber ich kann nicht länger als 4 Stunden gehen, ohne mich komplett verbrannt zu fühlen.

Ich frage mich, ob es Jobs gibt, bei denen ich meine Fähigkeiten anwenden kann, ohne jeden Tag 8 Stunden an einer einzigen Sache zu arbeiten. Mir ist klar, dass alle „anderen Dinge“, die ich tue, wenn ich nicht programmiere, stark mit dem Rechnen/Programmieren (Nachhilfe, Recherche, Schreiben usw.) verbunden sind, was völlig in Ordnung ist. Ich brauche nur etwas, um meine Verantwortung aufzuteilen.

Ich bin mir sicher, dass es diese Art von Jobs gibt, aber ich habe nicht die Vertrautheit mit der Branche, um etwas darüber zu wissen.

BEARBEITEN: Ich wollte klarstellen, dass ich nicht 8 Stunden damit verbracht habe, neuen Code herauszuschlagen. Ich habe in fast allen Fällen an bereits vorhandenem Code gearbeitet. Natürlich habe ich viel Zeit damit verbracht, Code zu debuggen und mit Code zu arbeiten/zu lernen, den andere Leute geschrieben haben. Ich denke, man kann davon ausgehen, dass Sie, wenn Sie nicht Ihre eigene App entwickeln oder für einen kleinen Laden arbeiten, nicht sofort Ihren eigenen brandneuen Code erstellen werden, und damit bin ich einverstanden. Es fühlte sich jedoch so an, als säße ich 90 % meines Tages allein in meinem Cube und starrte auf ein IDE-Fenster. Das ist wirklich der Teil, von dem ich das Gefühl habe, dass ich getrennt werden muss.

Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben .

Antworten (17)

Basierend auf dem, was Sie uns sagen, scheinen diese Jobs, bei denen Sie mehrere Stunden am Stück programmieren müssen, mit dem Bereich Software Engineering von CS zu tun zu haben (obwohl 8 Stunden am Stück meiner Meinung nach etwas übertrieben klingen).

Diese Art von Jobs sind Code-intensiver: Ein Projekt wird entworfen, Aufgaben aufgeteilt und zugewiesen, und dann heißt es „nur“ codieren und codieren, bis alle Aufgaben erledigt sind. Abhängig von der Größe des Unternehmens und den Praktiken, die es an Bord hat, kann dies zu mehreren (4-6) Stunden "einfacher Codierung" führen ... aber meiner Erfahrung nach kann die effektive Codierungszeit viel kürzer sein.

Um realistisch zu sein, wenn man keine Fehler oder Rückschläge hatte, dann wird das Projekt höchstwahrscheinlich in sehr kurzer Zeit fertig sein, wenn man 4-6 Stunden am Stück codiert hat ... aber es gibt viele andere Aspekte des Software-Engineerings, als nur wie ein Affe zu programmieren . Wenn Sie auf Fehler stoßen, müssen Sie innehalten und überlegen, wie Sie sie lösen können, wenn Sie eine neue Aufgabe beginnen, müssen Sie innehalten und darüber nachdenken, wie Sie fortfahren oder Kollegen konsultieren ... Wie wir sehen können, gibt es beim Software Engineering viel mehr als "nur einfache Codierung", und wenn wir ohne Unterbrechungen oder Rückschläge codieren könnten, würde dies reibungsloser ablaufen.

Abgesehen davon gibt es andere Bereiche von CS, die weniger codeintensiv sind. Einer davon ist zum Beispiel der Bereich Data Science .

Im Allgemeinen verbringen Sie in datenwissenschaftlichen Jobs mehr Zeit mit dem Denken und weniger mit dem Codieren, da diese Projekte tendenziell weniger Codezeilen / Boilerplate erfordern, aber jede Zeile tendenziell wichtiger ist als andere Arten von Projekten. Das bedeutet jedoch nicht, dass Data Science ein Paradies für CS-Leute ist; Codieren ist einfach, zu wissen, was zu codieren ist, ist der schwierige Teil , und Data Science hat viele schwierige Teile des Denkens (Anmerkung: Ich leite derzeit sowohl DS-Projekte als auch Software-Engineering-Projekte).

Also, um es zusammenzufassen. Vielleicht interessieren Sie sich mehr für andere Bereiche wie Data Science oder übernehmen mehr Führungsrollen, die etwas weniger Codierung und mehr Verwaltung erfordern. Manchmal muss man sich jedoch „nach oben klettern“ und lernen, wie man vorgeht, bevor man tatsächlich einen weniger Code-intensiven/Führungsjob erreicht. Zu erwarten, dass Sie frisch aus dem College kommen, mag ein bisschen unrealistisch sein, aber verlieren Sie noch nicht Ihre Hoffnung, da Sie mehrere andere Optionen haben :)

Dies ist eine großartige Antwort. Ich würde hinzufügen, dass, wenn Sie Erfahrung sammeln und in Ihrer Karriere wachsen, es weniger Code-intensiv und abstrakter Problemlösung und Führung werden wird.
Ich habe wochenlang in Jobs gearbeitet, in denen ich 12-16 Stunden am Stück ohne Pause programmiert habe. In der Startup-Szene ist es ziemlich üblich. Glücklicherweise ging es auch darum, zusätzliches Überstundengehalt in Höhe des doppelten Gehalts zu bekommen :)
Für die Liste der Softwareingenieure ist der Versuch, schrecklichen, chaotischen, unstrukturierten Code zu verstehen, ein attraktiver Teil, der viel Zeit in Anspruch nimmt (abgesehen von Meetings natürlich), für Data Scientists versucht er, schrecklichen, chaotischen, unstrukturierten Daten einen Sinn zu geben
Sehen Sie, ich glaube, ich könnte Data Science mögen. Ich liebe Python, von dem ich weiß, dass es eine große DS- und ML-Entwicklerszene hat. Ich kenne auch ein wenig TF, Numpy und Matplotlib, was nicht schadet. Ich fühle mich auf diesem Gebiet einfach besonders unerfahren, da es sich um ein so schnelllebiges, aufstrebendes Gebiet handelt, und ich habe im College wirklich nicht viel darüber mitgenommen, abgesehen von einem einführenden klassischen KI-Kurs (Schach-KI, Minimax usw.). Außerdem gibt es so viele Tutorials, die einen „Job in der Industrie“ versprechen, dass ich mich überfordert fühle.
@watersnake Nun, wenn Sie bereits etwas über DS wissen, wäre es doch keine schlechte Idee. Es mag überwältigend sein, aber niemand wird mit Wissen geboren, also können Sie mit etwas Mühe sicherlich Ihr Wissen auf diesem Gebiet erweitern und auch in Erwägung ziehen, einen verwandten Job zu suchen. Ich würde sagen, es ist eine Überlegung wert :)
Ein weiterer Bereich, der für einige Positionen überraschend wenig Codierung beinhalten kann, ist Embedded Development. Wenn die Hälfte der Zeit das Problem eher Hardware als Software ist, verbringe ich einen erheblichen Teil meiner Zeit damit, Taktsignale und Datenbusse mit einem Oszilloskop oder einem Logikanalysator zu untersuchen und Leiterplatten unter einem Mikroskop zu betrachten (um herauszufinden, welcher Chip den Rauch abgegeben hat aus) oder versuchen herauszufinden, wie man defekte Platinen am besten verdrahtet (damit sie nicht vollständig abgeschrieben werden). Das Schreiben von Code ist nur ein Teil meiner Arbeit.
@watersnake Sie haben die Ansicht Ihrer gesamten Karriere erwähnt, also werde ich dieser Antwort und diesen Kommentaren eine Sache hinzufügen. Sobald Sie ein oder mehrere Themen beherrschen, haben Sie die Möglichkeit, Mentor und Lehrer zu werden und, wie in dieser Antwort angegeben, einen Großteil Ihrer Zeit mit Design und Architektur zu verbringen. Ich fing an, mehr als 6 Stunden am Tag zu programmieren, versuchte Management, wo ich fast nie programmierte, und wandte mich dann Design und Führung zu (aber nicht „Management“). Jetzt verbringe ich nur noch 25 % meiner Zeit mit dem eigentlichen Schreiben von Code, 25 % mit dem Leiten von Teamsitzungen, 25 % mit Designsitzungen und Meetings mit Stakeholdern und 25 % allein mit Design und Recherche.
@DarkCygnus, ausgezeichnete Antwort und es ist schön zu wissen, dass es Alternativen gibt, ein Programmieraffe zu sein. Ich habe anhand der Art ihrer technischen Vorstellungsgespräche festgestellt, wie viele Jobs mich als ihren Programmieraffen wollen, weit und wenige dazwischen, bei denen mich ein potenzieller Arbeitgeber gefragt hat, was sind die Vorteile der Verwendung von Redux? oder sagen Sie mir, ich solle darauf vorbereitet sein, architektonische Fragen zu beantworten. Nein, sie wollen nur einen Programmieraffen, diese Entscheidungen wurden bereits von jemandem höher in der Nahrungskette für mich getroffen.
@Daniel, einen guten und anständigen Job zu finden, ist in der Tat eine ziemliche Herausforderung. Ich bin froh, dass meine Antwort Ihnen geholfen hat :) Denken Sie nur daran, dass es sehr wahrscheinlich ist, dass Sie irgendwann während Ihrer Karriere mindestens einmal ein Affe sein werden. Wenn man ihre Wege lernt und erfahrener wird, ist es einfacher, solche alternativen Jobs zu finden
@DarkCygnus, wieder eine tolle Antwort. Ich freue mich darauf, weitere Antworten von Ihnen in diesem Forum zu lesen. Ich folge immer gerne erfahreneren Ingenieuren, deren Worte bei mir Anklang finden.

Mein nomineller Software-Job (einen Titel, den ich bekleidet habe: Senior Software Engineer) erfordert, dass ich etwa 85 % meiner Zeit damit verbracht habe, Anforderungen zu sammeln, herauszufinden, welche Module aktualisiert werden müssen, und mich mit „The Business“ (Nicht-Software-Leute) zu befassen. , etc. und ungefähr 15% (wenn es viel ist) mit der eigentlichen Codierung. Von der Codierzeit wird nur sehr wenig mit Tippen verbracht. Most versucht herauszufinden, was der Code vorher gemacht hat und wie wir ihn dazu bringen können, das zu tun, was wir jetzt brauchen, mit so wenig Auswirkungen wie möglich. Verschiedene Cheftypen im Büro wollen, dass ich das Programmieren an jüngere Leute abschiebe, aber ich schiebe zurück, weil das der einzige Teil ist, den ich „genieße“. Ich habe keine große und dauerhafte Freude am Programmieren, aber zumindest habe ich es nicht mit den id10T s im Geschäft zu tun. (Stattdessen schimpfe ich beim Programmieren über die „suboptimalen“ Leute, die vor mir an den Programmen gearbeitet haben.)

Die Anwendung, an der ich arbeite, ist ein Point-of-Sale-System für einen GROSSEN Einzelhändler (ich würde sagen, es besteht eine Wahrscheinlichkeit von etwa 35 %, dass Sie es verwendet haben). Einige Teile sind ALT und stammen aus den späten 1990er Jahren. Teile sind neu, nicht älter als ein paar Monate. All das wurde von Menschen mit unterschiedlichen Fähigkeiten geschrieben und bearbeitet. Anforderungen ändern sich und Updates müssen früher oder später an allem vorgenommen werden.

Du kannst dankbar sein. Wenn Sie es mit neuem Code zu tun haben, müssen Sie keinen schlecht geschriebenen Code von einem arroganten und aggressiven Kollegen aktualisieren, der jedem feindlich gesinnt ist, der die Perfektion seines Programms antastet, selbst wenn es kaputt ist und er keine Lust hat, es zu reparieren es.

Um Ihre Frage zu beantworten: Ja, solche Jobs gibt es, aber sie sind in der Regel höherrangig. Ich denke, ich würde vorschlagen, es ein oder zwei Jahre zu geben, bis Sie ein wenig Erfahrung in Ihrem Lebenslauf gesammelt haben und sehen, ob Sie einen Job mit mehr Design usw. und weniger direktem Programmieren bekommen.

Vergessen Sie nicht, die Leute zu verfluchen, die diese schlecht gestaltete Bibliothek oder Software geschrieben haben, von der die Codebasis stark abhängt. Wissen Sie, der, der seit Beginn des Projekts nicht aktualisiert wurde.
Dies deckt sich mit meinen Erfahrungen. Ein wichtiger Hinweis ist, dass jüngere Softwareentwickler (~<3 Jahre Industrieerfahrung) oft einen Großteil der Codierung und einige Fehlerbehebungen erhalten. Ich konnte mich erst später mit viel höherem Design, Anforderungen usw. befassen. Auch die Größe des Unternehmens verändert die Dinge stark. Große Unternehmen haben mehr Raum, um sich zu spezialisieren, kleine Unternehmen brauchen jemanden, der alles macht.
Aus meiner Erfahrung in kleineren Unternehmen und bei (etwas) agilen Projekten: Selbst die Junioren können in die Kommunikationsteile des Jobs (z. B. Anforderungserfassung) einbezogen werden, wenn das Unternehmen klein ist oder Sie an einem agileren Projekt arbeiten.
"späte 90er" - das ist nicht alt. Eine Firma, bei der ich arbeitete, hatte ein Dokument, das mit „Ein Teil unseres Codes ist älter als einige unserer Mitarbeiter“ begann.
@MartinBonner Ein 19- oder 20-Jähriger könnte jünger sein als der Code der späten 90er Jahre. Der Code der frühen 90er Jahre wäre leicht älter als frische 4-jährige College-Absolventen.
@TafT Ich nehme an, dass mehr Junior-Positionen mehr "Hände an der Tastatur" machen, weil Sie umso mehr zu einer Führungskraft werden, je erfahrener Sie sind. Sie unterstützen andere, werden in Designsitzungen einbezogen, arbeiten mit anderen Teams zusammen, die Ihre Software verwenden usw.

Es ist eigentlich nicht normal, von einem Software-Ingenieur zu erwarten, dass er 8 Stunden am Tag kodiert, da die mit dem Codieren verbrachte Zeit kein genaues Maß für den Fortschritt ist. Leider ist nicht Ihr Job kaputt, sondern die Arbeitskultur, in der Sie sich befinden.

Für einen Softwareentwickler sollte Ihr Tag mit Dingen unterbrochen werden wie:

  • Prototyping einer neuen Lösung,
  • Standup/Teammeeting
  • recherchieren Sie neue ABC-Tools oder XYZ-Funktionen, die Sie verwenden könnten,
  • Mitglieder des Code-Review-Teams,
  • Gespräche mit dem Engineering Manager und/oder Produktmanager über eine neue Funktion,
  • Käfer zerquetschen,
  • Tests schreiben,
  • zukünftige Arbeit planen,
  • Arbeitsteilung zwischen mehreren Teammitgliedern,
  • Betreuung von Praktikanten oder jüngeren Teammitgliedern,
  • von erfahreneren Teammitgliedern betreut zu werden und
  • viel mehr

Wenn diese Liste nicht nach Ihnen klingt, dann wäre ein Rollen-/Karrierewechsel gut für Sie.

Die obige Gliederung ist ausgezeichnet.

Ich kann nur von meiner Erfahrung ausgehen. In den letzten zehn Jahren meiner Arbeit als Web-/Software-Ingenieur habe ich festgestellt, dass ich im Durchschnitt vielleicht 1-2 Stunden pro Tag tatsächlich codiere, wenn überhaupt. Üblicherweise ca. 10-100 Codezeilen, max. Den Rest des Tages verbringen wir entweder damit, zu recherchieren oder die besten Herangehensweisen an Probleme zu finden.

Jetzt ist es schwer zu sagen, was an Ihrem Job falsch (oder nicht falsch) ist. Es könnte sein, dass Sie sich nur zwingen, so lange wie möglich Code zu schreiben. Könnten Sie recherchieren, Besprechungen abhalten, mit Teamkollegen sprechen usw.?

Ich habe von Jobs im Sweatshop-Stil in allen IT-Bereichen gehört. Ich kannte einen Animator, der wirklich gut in Maya und 3ds Max war. Er musste 12 bis 15 Stunden am Tag arbeiten, um Animationen für diese Firma zu erstellen, die für einige größere Unternehmen mit dem Zeichnen ausgelagert wurde. Ihm wird im Grunde gesagt, dass er an seinem Schreibtisch sitzen soll, und er kann keine Mittagspausen machen oder etwas anderes tun, als zu animieren. Er war manchmal gezwungen, auch am Wochenende zur Arbeit zu kommen, besonders wenn sie einen engen Termin hatten oder nachlassen mussten.

Ich habe festgestellt, dass diese Läden eher klein sind und häufig offene Stellen ausschreiben (da sie mit hohen Umsätzen rechnen). Sie haben auch ihre Büroräume in einer Umgebung im Fabrikstil mit einem großen offenen Raum, in dem sich alle versammeln können, wie ein Kleiderbügel oder offene Geschäfte, die in ein „Büro“ umgewandelt wurden. Recherchieren Sie, wie ein Unternehmen Stellen online veröffentlicht. Wenn Sie sehen, dass sie jede Woche denselben Post anstoßen oder wenn eine Position scheinbar auf unbestimmte Zeit veröffentlicht wird, könnte dies ein Zeichen für die Entwicklung des Sweatshop-Stils sein. Schauen Sie sich auch ihre Glassdoor-Bewertungen an.

Ich persönlich zähle "Forschen" und "Herausfinden der besten Herangehensweisen an Probleme" zum Programmieren. Wenn ich einen Job hätte, bei dem ich das den ganzen Tag mache und auf Meetings, Koordination, Schulung anderer und dergleichen verzichten würde, würde ich diesen Job zu 100 % als Programmierjob bezeichnen.
Der obige Beitrag geht direkt ins Geld.

Die Leute haben Senior-/Managementpositionen erwähnt, aber da Sie gerade Ihren Abschluss gemacht haben, biete ich Ihnen eine weitere mögliche Option, die Sie früher erkunden können: die Arbeit für ein Start-up/kleines Unternehmen! Ich kann da nur aus eigener Erfahrung als Junior-Entwickler sprechen.

Ich arbeite für ein B2B-Softwareunternehmen, das nur etwa ein Dutzend Mitarbeiter hat. Weil wir so klein sind, müssen die meisten Leute mehrere Hüte tragen - ich bin offiziell Softwareentwickler, aber ich mache häufig Folgendes:

  • Anforderungserfassung/Recherche/Planung (allein und mit Kunden und Mitarbeitern)
  • Codierungsfunktionen und Bugfixes (allein und mit Kollegen)
  • Geben Sie Demos/Walkthroughs von Software für Kunden
  • Führen Sie Client-Installationen und Fehlerbehebungen durch
  • Dokumentation aktualisieren

Manchmal kann es frustrierend sein, wenn ich nur programmieren möchte, aber Aufgaben aus mehreren Kategorien alle Aufmerksamkeit erfordern, aber insgesamt macht eine solche Vielfalt an Verantwortlichkeiten die Tage interessanter und gibt mir eine bessere Vorstellung davon, an welchen potenziellen Karrierewegen ich interessiert bin und an welchen nicht .

lol hat fast die gleiche Antwort geschrieben, wie Sie diese gepostet haben
Ich habe Sie beide positiv bewertet, weil Sie absolut Recht haben, kleinere Unternehmen lassen Sie manchmal alles machen
Das Gleiche gilt, wenn die IT-Abteilung eines größeren Unternehmens klein ist. Der Unterschied besteht darin, dass sich Ihre Kunden im selben Gebäude, aber in unterschiedlichen Abteilungen befinden.

Als Software-Entwickler, der auch keinen Spaß daran hat, 8 Stunden am Tag gedankenlos Code zu schreiben, würde ich kleineren Unternehmen eine Vorliebe empfehlen. Größere Unternehmen haben in der Regel spezialisiertere Rollen, während kleinere Unternehmen häufig verlangen, dass Mitarbeiter eine Vielzahl von Hüten tragen.

Allerdings ist buchstäblich jeder Job, bei dem Sie 8 Stunden am Tag sitzen und Code schreiben müssen, kein guter Job. Wenn Sie nicht mehr Zeit damit verbringen, Anforderungen zu sammeln, mit Stakeholdern zu sprechen, Probleme zu durchdenken usw., als mit dem eigentlichen Codieren, machen Sie es wahrscheinlich falsch. Der Arbeitsmarkt ist gerade ziemlich gut, kein Grund, dass Sie ein Code-Affe sein sollten.

Ich wünschte, ich könnte zusätzliche Punkte vergeben, besonders für den zweiten Absatz.

Beachten Sie, dass einige der beschriebenen Rollen möglicherweise nicht als strikte CE angesehen werden, aber vorherige CE-Erfahrung ist zumindest sehr wertvoll. Manchmal ist vorherige "reine" Programmiererfahrung unerlässlich und Sie gelangen zu der beschriebenen Rolle, nachdem Sie mindestens einige Jahre an einem Code gearbeitet haben, aber Sie haben sich auf eine Perspektive von viel mehr als 10 Jahren bezogen.

Die Liste ist wahrscheinlich nicht vollständig. Außerdem kombinieren Jobs oft mehr als eine aus der Liste (ich habe viele angebotene BA/DEV- und BA/PM-Rollen gesehen). In diesem Fall umfassen Ihre Aufgaben Aufgaben beider Rollen (ein Anteil beträgt möglicherweise nicht 50-50).

Business Analyst (IT)

Diese werde ich aus meiner Erfahrung beschreiben, daher wird meine Antwort hier am ausführlichsten sein.

Bei einer BA-Rolle geht es darum, Anforderungen zu sammeln und zu dokumentieren. Es kann vom Verständnis des Geschäfts als Ganzes, der Umgestaltung von Prozessen usw. reichen oder sich nur auf die Anforderungen für eine bestimmte Anwendung konzentrieren. In einer Stellenbeschreibung können ihm unterschiedliche Namen gegeben werden (Funktionsanalytiker, Anforderungsanalytiker), aber alle beziehen sich auf dasselbe Feld.

Meistens macht BA eines von 3 Dingen:

  • Interaktion mit dem Unternehmen (Meetings, Workshops, Konferenzgespräche etc.)
  • Erstellen von Dokumentation (BRDs, FSDs, Backlog, Handbücher, Datenmappings, Mockups, GUI-Design, Eingabe in PM-verwaltete Dokumente usw.)
  • Interaktion mit den Entwicklern und anderen IT-Leuten (erklären, was in Dokumenten steht ;-) )

Darüber hinaus kann diese Arbeit etwas Programmierung (ich würde sagen ~ 10 % im Durchschnitt mit Projekten bis zu maximal 50 %), Projektmanagement (wieder ~ 10 % im Durchschnitt mit bis zu 30 % für ein bestimmtes Projekt), Tests und Schulungen umfassen.

Testanalyst

Als TA sind Sie für die QA des Projekts verantwortlich. Sie interagieren mehr mit dem Produkt selbst als mit dem Quellcode des Produkts. TA führt eine Reihe verschiedener Tests durch, um zu überprüfen, ob sich die Anwendung so verhält, wie sie sollte (auch wenn der Benutzer etwas tut, was er nicht tun sollte).

Da das Testen immer mehr automatisiert wird, beinhaltet diese Art von Arbeit normalerweise einen ziemlich großen Teil der Codierung (z. B. um Testroboter zu definieren), aber der wesentliche Teil liegt woanders.

Softwarearchitekt

Es mag nach einer Entwicklungsrolle klingen, aber es geht mehr darum, die Software zu verstehen. Der Hauptverantwortungsbereich von SA besteht darin, zu definieren, wie die Softwarelösungen aufgebaut sein sollten, um sie an den strategischen Ansatz anzupassen. Es gibt zwei grundlegende Arten von SA:

  • App-spezifisch – eine Person, die eine bestimmte Anwendung gründlich kennt und entscheidet, wie neue Anforderungen angewendet werden, um alles leicht wartbar zu halten; Sie stellen folgende Standards für die Anwendung sicher (Low-Level), entscheiden über Elemente wie DB-Struktur, im Projekt zu verwendende Technologien usw.
  • Organisationsweit – eine Person, die für die Definition von Standards und der Landschaft aller Anwendungen verantwortlich ist. Sie haben möglicherweise weniger Wissen über bestimmte Apps, sollten aber beispielsweise wissen, wie alle Apps voneinander abhängen, was die Kontaktpunkte, exponierten APIs usw. sind.

Im Allgemeinen gibt die erste Art von SA Aufgabendetails an die Code-Affen aus ;-), während die zweite Art Anforderungen validiert, die von BAs aus Sicht der IT-Strategie bereitgestellt werden.

App-spezifische SA führt normalerweise auch etwas Codierung durch, aber diese Codierung ist auf die schwierigsten und interessantesten Bereiche beschränkt .

Projektmanager

In dieser Rolle sind Sie dafür verantwortlich, Dinge zu bewegen. Sie verwalten das Budget, das Team, die Zeitpläne usw. PM berichtet dem Management (Sponsoren) über den Fortschritt der Projekte.

Als PM programmieren Sie nicht selbst, sondern sorgen dafür, dass Ihr Projektteam den richtigen Job macht.

Linienvorgesetzter (IT)

Als IT-Manager sind Sie für Ihr Team verantwortlich (aber es ist kein Projektteam wie bei PM). Sie kümmern sich um Dinge wie Neueinstellungen, Beförderungen (aber bei Bedarf auch Entlassungen), Eskalationen usw. Je nach Team und Unternehmensgröße kann ein Manager auch teilweise die gleiche Arbeit wie sein Team erledigen, aber normalerweise nicht mehr als 50 % der Zeit. Natürlich kann ein Manager für jedes der Teams sein, also Entwicklermanager, BAs-Manager usw.

+1, aber ich glaube, eine bessere Formulierung wäre "Line Manager". Wenn Sie "IT-Manager" sagen, denke ich auf den ersten Blick eher an eine Ops-Rolle ...
Ich mag diese Antwort sehr. Es könnte erwähnenswert sein, dass man, um BA zu werden, wahrscheinlich zurück an die Universität gehen muss, um mindestens ein Diplom der Business School zu erhalten.

Neben allen bereits erwähnten Optionen gibt es auch:

  • Forschung. Wie in Leute-die-Papiere schreiben. In der Regel machen Sie einen Master und/oder PhD, Post-Doc und so weiter. Meist an Universitäten, Forschungseinrichtungen und sehr großen Unternehmen.

  • Unterrichten. An Universitäten, Schulen etc.

  • Schreiben (zB Bücher, Artikel). Ich verstehe, dass es sehr, sehr schwierig ist, seinen Lebensunterhalt nur mit dem Schreiben zu verdienen.

  • Technisches Schreiben. Spezifikationen, Benutzerhandbücher, Softwaredokumentation.

Auch: Testmanager. Integrationsspezialist. API-Designer. DevOps-Ingenieur. All dies beinhaltet viel abwechslungsreichere Arbeit, wahrscheinlich 50% Codierung.

Dies hängt davon ab, was Sie als Programmierung und Interaktion mit Computern definieren.

Ich stimme Ihnen zu, dass der Gedanke, 5 Tage die Woche im Büro zu sitzen und für den Rest meines Lebens geschäftliche oder webbasierte Apps am laufenden Band zu produzieren, seelenzerstörend klingt. Aber das ist nicht die einzige Option für Sie.

Zum Beispiel wird heutzutage alles, was mit Fertigung, Schwerindustrie oder Schifffahrt zu tun hat, Computer beinhalten - und Computer erfordern Menschen, die sie programmieren. Und es geht nichts über das Schreiben von Code, der etwas Großes und Physisches steuert, und es wird immer irgendwo eine neue und andere Anlage gebaut.

Ein typisches Beispiel: Ich blockiere gerade den Code für einen dieser Kräne, der an einem Containerhafen steht und Container zu/von Schiffen umsetzt. In der Vergangenheit habe ich auch Stahlwerke, Papierfabriken, Aluminiumwerke, Abwasseranlagen, die Herstellung von AA-Batterien und sogar eine Molkerei programmiert. Und in jedem dieser Bereiche habe ich ein ausgewogenes Design, Codierung und Besuche vor Ort, um das verdammte Ding zum Laufen zu bringen.

Wenn Sie sich also umsehen, werden Sie eine endlose Vielfalt an Computernutzungen auf der Welt finden, was zu einer endlosen Möglichkeit an Karriereoptionen führt.

Schließlich sind Programmierung und Computer nicht statisch. Im Laufe Ihrer Karriere werden Sie sehen, wie sich alles im Zuge des technologischen Fortschritts ändert, sodass Sie kontinuierlich dazulernen, um relevant zu bleiben.

Beachten Sie, dass dies von modernen PCs mit Controllern durchgeführt werden kann; In den 70er, 80er und 90er Jahren war ich ein Programmierer für eingebettete Systeme, der Boot-Level-Code für mechanische und eigenständige Geräte schrieb; ein MRI-Gerät, Kommunikationsausrüstung, eine ozeanographische Unterwassersonde, ein Satellit, (damals) neue Audio- und Videoausrüstung. Ein riesiger Spaß, und ich sehe immer noch ständig neue Geräte; Drohnen und Roboter und Dinge wie landwirtschaftliche Automatisierungen und selbstfahrende Autos, und ich denke, das wäre eine lustige Sache, an der man arbeiten könnte. So viel besser als Pixelschaufeln. Erfahren Sie, was Sie brauchen, um der tatsächlichen Maschine näher zu kommen; es macht Spaß.

Es ist schwer, an einem einzigen Arbeitstag länger als 6 Stunden am Stück zu programmieren. ~4 Stunden sind etwas weniger als der Durchschnitt, den Sie an einem typischen Arbeitstag erwarten würden, aber YMMV. Das Wichtigste ist, was du ablieferst, nicht wie viele Stunden du deinem Hintern die Möglichkeit gibst, einen Hinternabdruck zu hinterlassen*.

Möglicherweise finden Sie jedoch eine Beratung geeigneter, da dies mit Kundenkontakt und möglicherweise Reisen verbunden ist. Sie müssten immer noch hart arbeiten (wahrscheinlich sogar noch härter), aber es hat ein anderes Tempo als der Code-Monkey-Pfad, auf dem Sie sich derzeit befinden.

Eine andere Möglichkeit ist, Manager zu werden. Dies ist für die meisten Unternehmen Ihr Beförderungspfad und es handelt sich im Grunde um eine Programmierung in großem Maßstab. Derzeit verwalten Sie einen Entwickler (Sie selbst), ein Manager verwaltet mehrere Entwickler. Weniger Programmierung je nach Unternehmen, und Sie müssen sich mit Ihren Kollegen / Junioren auseinandersetzen.

Während Sie immer einen glücklichen Durchbruch haben können, wird von einem Neuanfang normalerweise erwartet, dass er ein paar Jahre lang ein bisschen Grunzenarbeit leistet, bevor sich eines der oben genannten Dinge öffnet. Aber auch hier ist die Welt nicht unveränderlich und Ihre Laufleistung wird variieren.

* Lassen Sie mich das entschlüsseln: Sie können so viel albern, wie Sie wollen, solange niemand merkt, dass Sie albern. Der beste Weg, dies zu tun, ist, das zu liefern, was von Ihnen erwartet wird

Ich mag diesen ersten Teil. Um ehrlich zu sein, „vermassele“ ich manchmal mehrere Stunden oder verbringe diese Zeit damit, im Hintergrund zu verarbeiten, wie ich eine Aufgabe angehen soll … aber am Ende habe ich einen Aha-Moment und liefere die Aufgabe ab … vielleicht ist es der Weg von CS-Leuten zu zögern. Vielleicht ist es deshalb manchmal eine gute Idee, eine faule Person für die Arbeit zu wählen, da sie einen einfachen/schnellen Weg finden wird, dies zu tun.
Ich vermute, dass es eher die Ausnahme als die Norm ist, ein Manager zu sein und immer noch eine anständige Menge an Zeit mit dem Schreiben von Code zu verbringen (mehr als nur in Ausnahmefällen), insbesondere später in Ihrer (Management-)Karriere. Einige mögen argumentieren, dass Sie solche Dinge delegieren müssen, um ein guter oder leitender Manager zu sein.

Wenn Sie buchstäblich 8 Stunden am Tag Code schreiben, dann machen Sie es wahrscheinlich falsch. Erstens müssen Sie sehr viel Glück haben, wenn Sie an einem Projekt auf der grünen Wiese arbeiten (dh es gibt überhaupt keinen Legacy-Code, mit dem Sie interagieren können). Ich hätte gerne ungefähr 8 Stunden Programmierzeit pro Tag. Zweitens hört es sich so an, als würden Sie keine Unit-Tests schreiben, oder Sie hätten Debugging und Refactoring erwähnt und den Codierungszyklus durch Build/Run/Test-Phasen unterbrochen. Drittens muss es ein sehr kleiner Laden sein, wenn Sie sich nicht mit Teamkollegen über Interaktionen zwischen Ihrem Code und dem Code, an dem andere Leute arbeiten, beraten müssen. Viertens ist es ziemlich überraschend, dass Ihnen jemand eine Spezifikation geben kann und Sie einfach sofort mit dem Schreiben von Code beginnen und Tag für Tag 8 Stunden lang Code schreiben können.

Echte Softwareingenieure verbringen viel Zeit damit, A) herauszufinden, was gebaut werden soll (Anforderungen zu sammeln), B) zu verstehen, wie das Neue zu den alten/vorhandenen Dingen passt, C) mit verschiedenen Interessenvertretern zu kommunizieren, um dies sicherzustellen sind keine Konflikte in Design/APIs/etc., D) Recherche bestehender Lösungen, Best Practices, Bibliotheken oder anderer Komponenten, die Sie wiederverwenden können, etc.

Nun, wenn das überhaupt nicht nach Ihrer Erfahrung klingt, gibt es einen ziemlich offensichtlichen Grund dafür: Ihre Erfahrung bestand ausschließlich aus Praktika. Während ein Praktikum Sie gut mit den Tools und Menschen vertraut macht, mit denen Sie möglicherweise zusammenarbeiten, muss ein Praktikant unbedingt an einem Projekt arbeiten, das normalerweise in 10-12 Wochen abgeschlossen werden kann. Das erfordert oft ein ziemlich unnatürliches Projekt, das die Vollzeit-Ingenieure nicht bekommen. Insbesondere schließt es normalerweise eine der wichtigsten Phasen des Engineerings aus: das Design. Als Praktikant bekommt man in der Regel ein Problem und einen Entwurf ausgehändigt, damit man am Ende des Aufenthaltes etwas vorweisen kann. Als Vollzeitingenieur wird von Ihnen erwartet, dass Sie die Lösung schließlich selbst entwerfen. Auch als Anfänger wird von Ihnen ein kritischer Blick erwartet und Fragen gestellt, was Sie umsetzen sollen.

Im Moment würde ich sagen, dass Sie sich entspannen sollten . Es ist fast unmöglich, eine Vollzeitstelle als Softwareentwickler zu finden, die wochenlang volle 8 Stunden Programmieren pro Tag erfordert. Fragen Sie in jedem Interview, das Sie bekommen, einfach den Interviewer, wie viele Stunden pro Tag er zum Programmieren hat, und ich wette mit Ihnen um einen Kaffee, dass die überwiegende Mehrheit von ihnen darüber jammern wird, wie wenige Stunden sie zum Programmieren haben und wie viel Zeit sie damit verbringen Erledigung aller anderen Aufgaben der Softwareentwicklung (Fehlerbehebung, Fehlersuche, Umgang mit fehlerhaften Tools, Umgang mit fehlerhaften Kollegen usw.).

Ich habe 8 Stunden am Tag keinen neuen Code erstellt (es sei denn, es war ein wirklich guter Tag). Ich musste an bestehendem Code arbeiten/zusammen mit Kollegen entwickeln, aber das bedeutete nur, dass ich alle 1-2 Stunden aufstehen musste, um eine kurze Frage zu stellen. Im Wesentlichen starrten 99 % der Zeit auf ein IDE-Fenster und fragten sich, warum Code, der in einer Online-Sandbox ausgeführt wird, nicht mit dem eigentlichen Entwicklungsziel funktioniert.
@Sawyer, das klingt nach Praktikantenarbeit, die Art von Routinearbeit, die ich jemandem mit guten technischen Fähigkeiten, aber wenig Berufserfahrung zuweisen würde. Wie, hey, hier ist diese Liste von kleineren Fehlern, zu denen noch niemand gekommen ist. So viel Spaß macht diese Art von Arbeit nicht, aber wenn man erst einmal in einem Vollzeitjob ist und gezeigt hat, dass man komplexere Aufgaben bewältigen kann, wird ein typischer Tag überhaupt nicht so sein.

Arbeite für ein kleines Startup mit 5-15 Leuten.

Am Ende erledigen Sie alle möglichen anderen Geschäftsfunktionen. Projektmanagement, Anforderungserfassung, Design, Testing, Systemadministration, User Experience Engineering, Umgang mit Auftraggebern/Kunden, Strategiemeetings. Sie müssen tun, was jetzt getan werden muss.

Sie sind auch sehr gut aufgestellt, um aus der Softwareentwicklung heraus und in andere Rollen im Unternehmen zu wechseln. Wählen Sie also eine Branche / einen Sektor aus, die/der Ihnen gefällt.

Ich werde mich mit einer anderen Perspektive einmischen - wenn Sie wirklich etwas anderes als Programmieren wollen, dann ist der beste Weg, dies zu tun, sekundäre Fähigkeiten in anderen Bereichen zu entwickeln. Wenn Sie in etwas anderem als dem Programmieren sehr gut sein können und auch die Fähigkeit zum Programmieren haben, dann steigt Ihr Dienstprogramm sofort in die Höhe.

Als Beispiel für mich selbst habe ich einen Hintergrund in technischer Physik, Elektrotechnik und Materialwissenschaften. Ich habe Programmieren nicht an der Uni studiert, sondern bin Autodidakt und programmiere seit ca. 17 Jahren berufsbegleitend beruflich . Das ist natürlich nicht alles meine Aufgabe.

Im Moment arbeite ich in der industriellen Automatisierung in einem mittelständischen Unternehmen, daher umfasst der Job auch viel Hardware (SPS, Roboter, Motoren, Bewegungssteuerung, Sensoren, Detektoren und einige esoterische physikalische Sachen). Es gibt eine Kombination aus praktischer Arbeit, Systemdesign, mechanischem Design und der Entwicklung von Automatisierungssoftware, HMIs usw.

Ich kenne viele andere, die auch in anderen Bereichen in einer ähnlichen Position arbeiten. Der wirklich kritische Punkt ist , dass man sich darauf konzentrieren muss , Kompetenzen in einer Vielzahl von Dingen zu entwickeln , wenn man in seinem Job unterschiedliche Dinge tun möchte .

Die anderen Antworten sind insofern richtig, als Sie wahrscheinlich nicht einmal in einer Position als Softwareentwickler die meiste Zeit mit dem Programmieren verbringen werden. Ich bin jetzt seit etwa 8 Jahren Entwickler und kann Ihnen sagen, dass ich zwar mehr als die meisten Menschen gerne vor dem Computer sitze, aber normalerweise nicht in der Lage bin, mich 8 Stunden am Stück zu konzentrieren. Wenn Sie das Vertrauen Ihres Arbeitgebers gewinnen, haben Softwareentwicklungsjobs tendenziell einen lockereren Zeitplan, weil sie wissen, dass Sie Ihre Arbeit erledigen. An manchen Tagen arbeite ich weniger oder mehr als 8 Stunden, abhängig von der Arbeitsbelastung und davon, wie viel Spaß mir die Aufgabe macht, aber ich neige dazu, morgens vielleicht 3-4 Stunden zu arbeiten, bevor ich zu Mittag esse und dann ein Nickerchen mache. Danach kann ich viel besser arbeiten, als wenn ich ohne Mittagsschlaf weiterarbeiten würde. Gut schlafen,

Das Beste am Programmieren von Positionen ist, dass Sie dazu neigen, an Ihrer Produktivität gemessen zu werden. Finden Sie also heraus, wie Sie diese maximieren können, anstatt 8 Stunden vor dem Computer zu sitzen.

Es gibt eine Reihe anderer Jobs, die jemand mit Informatikkenntnissen ausüben kann. Sie beinhalten oft etwas Programmierung, aber es ist nicht die Gesamtheit der Arbeit.

  • Systemadministration – Sie müssen oft Skripte schreiben, um Ihre Arbeit zu automatisieren.
  • Software-Qualitätssicherung – Das Schreiben von Tests ist eine Form des Programmierens. In einigen Organisationen arbeiten Sie möglicherweise eng mit den Programmierern zusammen, um die von Ihnen entdeckten Probleme zu beheben. andere Organisationen haben eine Firewall zwischen diesen Abteilungen.
  • Technischer Support -- um festzustellen, ob ein Kundenproblem auf Softwarefehler zurückzuführen ist, kann das Lesen des Codes erforderlich sein (zumindest fand ich das hilfreich, als ich Support-Techniker war), und Sie können möglicherweise mit den Programmierern zusammenarbeiten, um sie zu lösen.

Aber auch als Software Engineer sollten andere Aktivitäten Ihren Tag unterbrechen:

  • Designdiskussionen (aber vielleicht sind Sie noch nicht alt genug, um daran beteiligt zu sein)
  • Reagieren auf Fehlerberichte
  • Schreibspezifikationen, interne Dokumentation etc.
Ich frage mich, warum die Systemadministration nicht früher erwähnt wurde - aber es ist ein Job, der heutzutage eine Menge nicht-technischer Dinge, Organisation und Logistik beinhaltet :)

Ja, das gibt es.

Ihrer Beschreibung nach klingen Sie wie jemand, der die akademische Strenge des Codierens mag, aber feststellt, dass das Erstellen von Lösungen sehr langweilig ist. Möglicherweise klingen Sie auch so, als wollten Sie mehr menschliche Interaktion – das Problem bestimmen, Lösungen schaffen (nicht bauen) und so weiter.

Nun, es gibt Beratung

Wenn das der Fall ist, dann gibt es Beratung.

Typischerweise sehen die Leute Unternehmensberater als spießig und langweilig – und hart arbeitend. Das stimmt, aber bedenke, dass sie auch erheblich mehr verdienen und die Projekte in der Regel 1-3 Monate dauern, also bekommst du vielleicht ein langweiliges Projekt, aber auch ein wirklich interessantes. Sie arbeiten auch mit den Klügsten und Ehrgeizigsten zusammen. Sie können Ihren akademischen Muskel spielen und recherchieren, aber ohne die Langeweile, tatsächlich Code zu schreiben. Du arbeitest auch mit Menschen.

Wenn Sie mehr Codierung durchführen möchten, haben die meisten großen Beratungsunternehmen jetzt auch einen technischen Arm. Es gibt offensichtlich Accenture, aber McKinsey hat auch eine Tech-Consulting-Abteilung.

Tappen Sie nicht in die Falle „ein Codierungs-Skillset bedeutet, Code zu schreiben“.

Tappen Sie auch nicht in die Falle „ein Programmier-Skillset bedeutet, Code zu schreiben“. Wie es scheint, meine Güte, jeder hat hier streng genommen angemerkt, dass das Codieren niemals 8 Stunden am Tag stattfindet. Neben dem eher CS-basierten "Code schreiben" und "Debuggen" gibt es Klärungen, Recherchen, Grenzfälle und das Ermitteln optimaler Lösungen.

Sie denken vielleicht, Codieren ist „Codieren“. Das ist es ehrlich gesagt nicht. "Codieren" bedeutet einfach, Ihre intellektuellen Fähigkeiten auf eine festgelegte Weise zu nutzen - aber auf diese Weise können auch andere Probleme gelöst werden . Die Tatsache, dass Sie darin geschult sind, optimale Lösungen zu klären, zu hinterfragen, zu untersuchen und zu ermitteln, ist ein Segen für jedes andere Unternehmen und jede Branche. Wenn Sie einem Schuhunternehmen dabei helfen, das optimale Fabriklayout zu bestimmen, oder einem Möbelunternehmen dabei helfen, auf welchen Markt es expandieren soll, oder wenn es sich lohnt, in ein bestimmtes Technologieunternehmen zu investieren, tun Sie immer noch alle oben genannten Aufgaben (nebenbei vom Schreiben von Code). Das sind immer noch ungefähr 5 Stunden Ihres Tages!

Ach, andere Möglichkeiten

OH. Und wenn Sie sich fragen, braucht Risikokapital Menschen mit diesen Fähigkeiten. So auch Private Equity und Trading. Auch Forstwirtschaft, Denkfabriken zur globalen Erwärmung und Krankenhausmanagement.

Endlich

Schließlich sollten Sie dringend erwägen, die IT hinter sich zu lassen, wenn Sie das Gefühl haben, dass Sie nicht gerne den ganzen Tag 8 Stunden alleine arbeiten. Es gibt bedeutende Untersuchungen, die zeigen, dass die Person den Job findet. Im Vertrieb finden Sie also normalerweise Leute, die von Natur aus enthusiastisch sind und gerne mit Menschen arbeiten (und wettbewerbsfähig sind). In der IT finden Sie das Gegenteil – risikoavers, schüchtern, haben keine Lust auf den Umgang mit Menschen, arbeiten lieber alleine.

Das ist jetzt eine Verallgemeinerung , klar. Aber was es auch bedeutet, wenn Sie von Natur aus kontaktfreudig sind oder gerne mit Menschen arbeiten, werden Sie Schwierigkeiten haben, in der IT glücklich zu sein, da nur sehr wenige andere Menschen diese Eigenschaften teilen und die Arbeit nicht auf diesen Persönlichkeitstyp zugeschnitten ist.

Jedes nicht triviale Projekt erfordert mehr als eine Person, die daran arbeitet (einfach, um schneller fertig zu werden), und das allein bedeutet, dass Sie nicht den ganzen Tag mit dem Programmieren verbringen können, da Sie mit Ihren Teamkollegen kommunizieren müssen. Besprechungen, Diskussionen, Dokumentation, um sicherzustellen, dass Sie alle einverstanden sind usw.

Außerdem sind meiner Erfahrung nach die meisten Codierungsbemühungen nicht darauf beschränkt, wie schnell Sie tippen, sondern wie schnell Sie denken, und Sie brauchen normalerweise Pausen.

Alles in allem ist die effizienteste Optimierung Ihrer Zeit, die Sie tun können, das Zehnfingersystem auswendig zu lernen. Nicht so sehr beim Programmieren (da es viele schwer zugängliche Symbole gibt), aber es hilft sehr beim Schreiben von Prosa, als Dokumentation oder Besprechungsnotizen oder einfach nur für Ihre täglichen E-Mails.