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.
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 :)
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.
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:
Wenn diese Liste nicht nach Ihnen klingt, dann wäre ein Rollen-/Karrierewechsel gut für Sie.
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.
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:
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 .
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.
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).
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:
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.
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.
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:
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 .
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.
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.
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.
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.
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
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.).
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.
Aber auch als Software Engineer sollten andere Aktivitäten Ihren Tag unterbrechen:
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.
Maskierter Mann