it-swarm-eu.dev

Was tun, wenn sich das Codieren langweilig anfühlt, als ob alles nur mehr dasselbe wäre?

Ich habe im Alter von 6 Jahren mit dem Programmieren auf einem Commodore 64 begonnen. Jetzt bin ich 28 und muss 4 Kurse von einem ersten Abschluss in Informatik absolvieren.

Nach all den Jahren wird es mir langsam langweilig, Code zu schreiben. Ich habe einen Kurs in Informatik in theoretischen Computersprachen und 10 Jahre C-Systemcodierung im Bereich Netzwerksicherheit belegt und bekomme einfach keine Anregung durch das Schreiben von Code.

Ich kann Code in C, C++, Python oder in einer beliebigen Sprache) schreiben, aber ich kann mich nicht über meine Arbeit aufregen. Ich kann keine Herausforderung spüren geschriebener Multithread-Code, HTTPS MITM-Proxy und eine WSGI-Anwendung, ohne dass spezielle Algorithmen erforderlich sind.

Ich habe das Gefühl, dass all diese neuen Dinge alle gleich sind, mit einfacheren (oder mehr) Abstraktionen oder Automatisierung, aber für mich klingt alles gleich. Wieder und wieder. Die berechenbare Sprache ist alle Turing-berechenbar, daher ist die Codierung nur eine Replikation eines ähnlichen Musters in dieser Teilmenge einer Teilfunktion.

In meiner täglichen Arbeit langweile ich mich selbst, wenn ich nach Fehlern suche, Benchmarks für Code durchführe oder das Problem mit der Bibliothek X, Y, Z behebe.

Ich bin eine sehr neugierige Person. Ich werde immer von etwas angeregt. Aber ich kann nicht einmal, wenn ich mir großartigen Code ansehe. Ich fühle mich wohler darin, wie die Dinge funktionieren.

Ist es an der Zeit, Fortschritte in meiner Karriere zu machen? Oder anspruchsvollere Dinge in der Informatik zu bekommen? Vielleicht einen Hauptabschluss in CS?

Ich habe angefangen, mein erstes Buch über Projektmanagement "Peopleware" zu lesen, und ich interessiere mich mehr für den Lebenszyklus der Softwareentwicklung. Was schlagen Sie vor?

Vielleicht versuchen Sie, in Google oder Microsoft einzusteigen, oder Apple, wie es einige Freunde von mir getan haben. Oder vielleicht einen Karriereweg für Manager. Ich habe auch versucht, ein gutes Buch über Kommunikationsregeln und "Menschen" zu finden Persönlichkeit ", um mich auf die Möglichkeit vorzubereiten, ins Management zu kommen.

Irgendwelche Vorschläge?

PS: Ich habe großes Interesse, ich bin nicht depressiv :) Ich liebe Berg, Trekking, Fotoshooting und ich bin ein Sportkletterer, ich liebe es manchmal zu schwimmen und Sport zu treiben Ich laufe, eigentlich lese ich ein Buch über meine Landgeschichte (Italien) von AC bis heute und ich liebe Reisen (diesen Sommer habe ich 4000 km zurückgelegt, um viel Platz in Spanien zu sehen und darin zu klettern, alles in nur 3 Wochen , kein Urlaub, sondern ein Marathon, 24 km Trekking haben meine Hernienverletzung verursacht), ich liebe Theater und das Leben im Allgemeinen.


Vielen Dank an alle, wenn ich über alle Antworten nachdenke, habe ich die Möglichkeit, meinen Weg klarer zu machen.

Für einen zusammenfassenden Zweck können wir die am meisten abgestimmte Antwort verallgemeinern.

Zuallererst stimmen die Leute für die Notwendigkeit ab, um unsere Arbeit zu einer Unterstützung Ihres Lebens zu machen und nicht zum einzigen Grund, im Leben zu bleiben (dies ist nicht mein Fall). Wenn Sie also nur argumentieren Wenn Sie arbeiten, kommen Sie schnell in eine wirklich depressive Situation. Wie Peopleware sagt, wartet Wien nicht auf dich :)

Nach dieser Erinnerung schlagen die Leute vor:

  • erhöhen Sie die technische Komplexität, an der ich gerade arbeite, um die Herausforderung zu erhöhen und mich weniger zu langweilen.
  • ändern Sie das Fachgebiet in ein nichttechnisches Fachgebiet, um Manager zu werden, oder bringen Sie einen Betreuer in einem nichttechnischen Fachgebiet voran, das mit Ihrer Arbeit zusammenhängt.
  • ändern Sie das Fachgebiet in einer anderen Art von technischer Herausforderung. Sind Sie ein Systemprogrammierer? Versuchen Sie, sich bei der Entwicklung von Anwendungen für Menschen weniger zu langweilen, damit Sie sich beim Betrachten von Personen mit Ihrer nützlichen Software wohler fühlen
  • machen Sie einige Fortschritte in Ihrem Informatik-Abschluss auf Ihrem akademischen Weg

Für meinen Zweck ist die richtige Antwort, in der Informatik voranzukommen. Für mein Gefühl denke ich, dass Programmieren nicht der einzige Weg in der Informatik ist, und ich denke, ich kann mich besser fühlen, wenn ich einen anderen Weg in der Informatik als den Betreuer der Softwareentwicklung beschreite.

33
boos

Das musste passieren.

Wenn Ihr Hauptinteresse beim Code liegt, werden Sie von Zeit zu Zeit verrückt, frustriert und depressiv, eines Tages dauerhaft.

Interessieren Sie sich für die Entwicklung von Produkten und genießen Sie es, wenn Menschen sie verwenden. Das ist das ultimative Ziel, den Code zu schreiben, oder? Code ist lediglich ein Werkzeug, um etwas Größeres zu erledigen.

49
user8685

Ich werde Ihre Frage mit einer Frage beantworten ...

Ist es die Aufgabe eines Programmierers, zu programmieren oder Probleme zu lösen?

Sie sagen, Sie langweilen sich, weil das Schreiben von Code wie etwas aussieht, das Sie zuvor getan haben, so wie jedes Stück Code bereits zuvor getan wurde.

Aber wie sind Sie zu dem Schluss gekommen, dass dieser Code der Code ist, der geschrieben werden sollte? Die meisten Probleme haben Hunderte von Möglichkeiten, es zu lösen, aber es gibt nur einen besten Weg.

Wenn Sie wirklich keine Herausforderung, Neugier oder Interesse daran finden, Lösungen zu finden oder Probleme zu lösen, müssen Sie sich wirklich ändern. Obwohl ich nicht sicher bin, ob das Softwareentwicklungsmanagement wäre. Ich würde nicht für einen Software-Manager arbeiten wollen, der diese Apathie bei der Problemlösung empfand. Es sollte wahrscheinlich nur eine andere Branche mit anderen Problemen sein.

Wenn Sie gerne Probleme lösen, aber nicht gerne programmieren, finden Sie möglicherweise nicht genügend Probleme, um sie zu lösen. Jedes Mal, wenn sich meine Arbeit langweilig anfühlt, glaube ich, dass es ein Problem zu lösen gibt. Warum arbeite ich viel? Welche Lösung kann ich finden, um die beschäftigte Arbeit von meinem Job zu entfernen? Das ist das Schöne am Programmieren.

21
Nicole

Klingt für mich so, als hätten Sie eine Menge [~ # ~] [~ # ~] prozedurale Programmierung durchgeführt und sind es leid geworden - was ich voll und ganz getan habe verstehen. Die schrittweise Angabe ist in jeder prozeduralen Sprache ähnlich.

Da es so klingt, als hätten Sie viele arbeitsfreie Aktivitäten, würde ich vorschlagen, einige der Konzepte zu lernen, die nicht dem entsprechen, was Sie jetzt wissen, und - ja - es gibt viele, aber zu Beginn würde ich Haskell empfehlen, weil es so ist

  • funktional - Sie schreiben Funktionen, die Sie zusammenstellen, um größere Funktionen zu erstellen, die schließlich zu einem Programm führen.
  • verzögerte Auswertung - anstatt Schritt für Schritt anzugeben, zieht die Laufzeit die benötigten Werte nach Bedarf . Dies bedeutet, dass es sehr häufig vorkommt, dass Sie in Ihren Programmen mit unendlichen Listen umgehen.
  • mustervergleich - Anstatt große if-Strukturen zu haben, listen Sie Muster auf, wie die Parameter aussehen, und die Laufzeit wählt das entsprechende Muster aus und führt den entsprechenden Code aus.

Hier ist eine vollständige Sortierfunktion:

qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

(Eine Erklärung finden Sie unter http://www.haskell.org/haskellwiki/Introduction#Ease_of_understanding )

Wenn Ihnen dies alles neu ist, würde ich Sie ermutigen, mit dem Abenteuer zu beginnen.

Viel Glück und viel Spass.

9
user1249

Computer sind langweilige Verbraucher. Wenn Sie die Interaktion von Maschine zu Maschine den ganzen Tag codieren, reagiert diese Maschine jedes Mal gleich. Gut, um das Projekt fertig zu stellen, aber nach einer Weile langweilig. Es hilft wirklich, die Monotonie mit etwas aufzubrechen, das nicht direkt mit der Maschine zusammenhängt.

Ich habe Inspiration sowohl beim Fotografieren als auch beim Studium der Benutzererfahrung gefunden. Denken Sie darüber nach, wie kommt es, dass Apple) dazu führen kann, dass sich Menschen über sich selbst lustig machen, damit das nächste, was aus Santa Clara kommt, wenn andere Verkäufer eine lauwarme Antwort erhalten? Denken Sie ernsthaft, dass = Android hätte eine ebenso große Resonanz erhalten, wenn Apple hätte sich nicht so lange geweigert, das iPhone auf Verizon zu veröffentlichen? Ich gebe Ihnen einen großen Hinweis: Es ist nicht so unbedingt, dass diese Produkte so technologisch fortschrittlich sind. Die Manie hat eine enorme psychologische Komponente.

Das Verständnis von Produktdesign und Benutzererfahrung ist etwas, über das viele von uns viel lernen müssen. Was bringt jemanden zum Ticken? Wie entwirfst du etwas Cooles, das die Leute dazu bringt, die etablierte Lösung zu verlassen? Wie erstellen Sie Ihren eigenen Technologiekult wie Apple (nicht, dass ich wohlgemerkt ein Kultführer sein möchte)? Dies sind alles sehr interessante und anregende Fragen. Sie wirken sich auf die Softwareentwicklung aus - aber jetzt ist dein Fokus anders.

8
Berin Loritsch

Wahrscheinlich bekommen Sie einfach nicht genug technische Herausforderung?

  • Probieren Sie hochverteilte Systeme aus. Können Sie ein System einfach codieren, um Protokolle von 1000 Computern in einem Cluster mit einer Genauigkeit von Mikrosekunden zu erfassen?
  • Versuchen Sie es in Echtzeit. Packen Sie alle Ihre Prozesse in einer Umdrehung eines Motors.
  • Versuchen Sie es mit Computer Vision oder Bildverarbeitung. Mathematische Fähigkeiten, Formel-zu-Code-Fähigkeiten und Optimierungsfähigkeiten sind praktisch.
  • Versuchen Sie es mit AI. Sehen Sie, wie der Computer von IBM Jeopardy spielt? Wahrscheinlich ist in diesem Bereich eine gewisse algorithmische Raffinesse beteiligt.

Seien Sie natürlich bereit, zunächst weniger in einem Bereich zu verdienen, in dem Dinge für Sie eine Herausforderung darstellen und nicht langweilig.

7
9000

Ich fand Motivation, indem ich zu einem Bereich wechselte, in dem es keine "richtigen" Lösungen gibt. Ich schreibe redaktionelle Tools und meine Arbeit ist so gut, wie die Benutzer es nützlich finden. Ich lerne viele nicht-technische Leute kennen und gemeinsam versuchen wir, Wege zu finden, um die Software zu verbessern, mit der sie arbeiten müssen. Ich finde die menschliche Interaktion und die Notwendigkeit, ständig die Perspektive zu wechseln, sehr angenehm und plötzlich ist das Codieren nicht mehr möglich so langweilig mehr.

Ich weiß, dass es nicht jedermanns Sache ist. Einige gehen mit der Unsicherheit um, dass es nicht schwieriger ist, ein objektives Maß für die Qualität Ihrer Arbeit zu haben als andere.

Aber es ist eine Option, die eine Überlegung wert sein kann.

4
biziclop

Ja, manchmal habe ich das Gefühl, dass man in Wirklichkeit immer und immer wieder dieselbe Art von Code schreibt. Aber nein, mir ist noch nicht langweilig. Warum ist das so?

Weil ich es im Grunde genieße, neue Codierungsmethoden und neue, prägnante und elegante Ausdrucksmöglichkeiten für Code zu entdecken. Es gibt zwei Möglichkeiten, wie Sie dies erreichen können: Erlernen neuer Programmiersprachen oder Erlernen neuer Bibliotheken oder Frameworks.

Das Erlernen einer neuen Programmiersprache ist für mich mit jeder Sprache, die ich ausprobiert habe, einfacher geworden. Und nach einiger Zeit hörte es auf, sehr interessant zu sein. Aber dann, vor ungefähr ein oder zwei Jahren, habe ich endlich die funktionale Programmierung, die sich als Programmierparadigma genug von OOP unterscheidet, um eine neue Herausforderung zu sein. Ich denke, das hat sich geändert) Ich habe meine Programmierfähigkeiten wirklich bereichert und mir eine neue Perspektive gegeben, aus der ich ein Programmierproblem betrachten kann. Ich versuche jetzt, verschiedene Programmierparadigmen zu entdecken, anstatt nur verschiedene Programmiersprachen. Das ist eine größere Herausforderung.

Zweitens: Lernen einer neuen Bibliothek, eines neuen Frameworks oder einer neuen API: Wie Sie richtig gesagt haben, lösen neue Frameworks häufig keine neuen Probleme. sie lösen es einfach auf eine andere Weise, z. durch Hinzufügen einer zusätzlichen Abstraktionsebene. Dies ist möglicherweise möglich, weil die heutigen Computer leistungsfähiger sind als frühere Maschinen. oder vielleicht, weil wir als Ganzes besser darin sind, Software zu schreiben.

Dieses letzte Stück muss wahrscheinlich erklärt werden. Ich gebe ein Beispiel: Während ich meine Programmierkenntnisse übte, habe ich lange Zeit nicht wirklich ernsthaft über die Wartung des Codes nachgedacht, den ich geschrieben habe. Seit ich anfange, für einen Job zu programmieren, hat sich meine Perspektive geändert. Das Schreiben von wartbarem Code ist in einer Unternehmensumgebung oft sehr wichtig, da jede Stunde, die Sie für das Codieren ausgeben, echtes Geld kostet. Daher wird ein Unternehmen versuchen, den vorhandenen Code möglichst beizubehalten, und es besteht die Möglichkeit, dass Sie irgendwann übergehen müssen Ihr Code zu einem Nachfolger.

Ich finde, dass das Schreiben von wartbarem Code tatsächlich eine große Herausforderung ist. Es bedeutet oft, dass Sie keinen superschlauen und hochoptimierten Assembly-Code schreiben (denken Sie daran Die Geschichte von Mel - Ein echter Programmierer , irgendjemand? ;-) Stattdessen nutzen Sie eher die Vorteile der Abstraktion. Je näher Sie Ihren Code an einige Geschäftsregeln und die Problemdomäne heranführen können, desto besser. Hier kommen all diese neuen Bibliotheken ins Spiel. Wenn Sie damit Code aufschreiben können, damit er sauber, klar, präzise und leicht zu verstehen ist, ist das eine gute Sache.

Entschuldigung, wenn diese Antwort etwas lang ist. Ich habe versucht zu zeigen, woher meine Motivation beim Programmieren kommt ... und ich würde mich interessieren, ob Sie irgendwann genauso gefühlt haben und ob (und warum) Ihre Motivation irgendwann sowieso weg ist.

4
stakx

Wenn Sie es leid sind, Code zu schreiben, wenn es Sie nicht begeistert, wenn es Sie langweilt, ist es möglicherweise Zeit für eine Änderung. Sie könnten versuchen, eine Führungsposition einzunehmen und andere Programmierer mit Ihrer jahrelangen Erfahrung zu verwalten und zu führen. Oder versuchen Sie, sich seitwärts in die Systemarchitektur zu bewegen, wo Sie Systeme entwerfen und planen können und andere Personen den größten Teil der Implementierung übernehmen.

Oder Sie könnten Ihre Karriere komplett auf etwas umstellen, das absolut nichts mit Computern zu tun hat. Haben Sie sich gefragt, was Ihr Traumberuf wäre, wenn jemand ihn Ihnen geben könnte?

Spielen Sie mit Mikrocontrollern. Es ist die erfrischendste und aufregendste Anwendung von Programmiertalenten, die ich mir vorstellen kann.

3
Rob S.

Es hört sich so an, als ob die Ausgangspunkte unserer Hintergründe insofern ähnlich sind, als wir beide ungefähr im Alter von 6 Jahren auf ähnlichen Maschinen mit dem Programmieren begonnen haben und aus verschiedenen Gründen sowohl programmiert als auch nicht programmiert haben. Keiner meiner Abschlüsse hat etwas mit Programmieren zu tun - ich habe alle Musikabschlüsse - obwohl ich einige Informatikkurse auf Hochschulniveau besucht habe.

Ich denke, Sie haben Recht, wenn Sie beobachten, dass Programmierer häufig dieselben Probleme wiederholt lösen und dass das "Neue" alles auf dem "Alten" basiert. Dass Sie diese Tatsache erkennen, ist zu Ihrer Ehre; Zu viele Entwickler und Geschäftsleute sehen neue Technologien als völlig unabhängig von alten an.

Das Lösen solcher Probleme ist für Sie also uninteressant. Was wäre interessant? Lösen Sie Probleme im Allgemeinen? Vielleicht ist ein Leben als "Business" -Softwareentwickler nichts für Sie.

Ich weiß, dass ich mehr Fragen als Antworten gegeben habe, aber ich hoffe, dass die Beantwortung dieser Fragen einen Einblick in eine Richtung gibt, die Sie einschlagen sollten.

2
Andrew

Es klingt für mich, als ob du feststeckst. Sie befinden sich in einer Situation, in der Sie nicht sein möchten, und Sie wissen nicht, wie Sie daraus herauskommen sollen. Mein Rat ist einfach: Mach etwas anderes, nur um etwas anderes zu machen. Selbst wenn es Ihr Problem nicht löst, werden Sie wahrscheinlich nicht mehr weiterkommen.

Ich kann Code in C, C++, Python oder in einer beliebigen Sprache) schreiben, aber ich kann mich nicht über meine Arbeit aufregen. Ich kann keine Herausforderung spüren geschriebener Multithread-Code, HTTPS MITM-Proxy und eine WSGI-Anwendung, ohne dass spezielle Algorithmen erforderlich sind.

Verstehen Sie das nicht falsch (dies sind anständige Leistungen), aber dies ist kaum eine umfassende Liste aller herausfordernden und aufregenden Probleme bei der Programmierung. Es gibt immer noch viele herausfordernde Probleme zu lösen. Die schwierigsten Probleme sind maßstabsgetreue Arbeiten. Sie haben eine WSGI-Anwendung geschrieben, aber eine, die eine Milliarde Seitenaufrufe pro Tag verarbeiten kann? Sie haben Multithread-Code geschrieben, aber Sie haben Multicomputer-Code geschrieben (mit Hunderten von Computern)?

Kurz gesagt, wenn Sie versuchen möchten, etwas Nicht-Technisches zu tun, machen Sie es. Aber tun Sie das nicht, weil Sie das Gefühl haben, alle zu lösenden Probleme gelöst zu haben, weil dies nicht der Fall ist.

2
Jason Baker