Ich habe im Alter von 6 Jahren mit dem Programmieren auf einem Commodore 64 begonnen. Jetzt bin ich 28 Jahre alt und muss 4 Kurse ab 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 Jahren C-System-Codierung im Bereich Netzwerksicherheit belegt und bekomme keine Anregung, wenn ich Code schreibe.
Ich kann Code in C, C ++, Python oder in einer beliebigen Sprache schreiben, aber ich kann mich nicht aufregen, was ich tue. Ich kann keine Herausforderung fühlen. Ich habe Multithread-Code, HTTPS MITM-Proxy und eine WSGI-Anwendung geschrieben, ohne dass spezielle Algorithmen erforderlich waren.
Ich habe das Gefühl, dass all diese neuen Dinge alle gleich sind, mit einfacheren (oder mehr) Abstraktionen oder Automatisierungen, aber für mich klingt alles gleich. Wieder und wieder. Die berechenbare Sprache ist allesamt berechenbar, sodass die Codierung nur eine Replikation eines ähnlichen Musters in dieser Teilmenge einer Teilfunktion ist.
In meiner täglichen Arbeit langweile ich mich, selbst wenn ich nach Fehlern suche, Code-Benchmarks 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 tollen Code ansehe. Ich fühle mich wohler darin, wie die Dinge funktionieren.
Ist es an der Zeit, meine Karriere voranzutreiben? Oder herausfordernde Dinge in der Informatik zu bekommen? Vielleicht einen Abschluss in CS?
Ich habe angefangen, mein erstes Buch über Projektmanagement "Peopleware" zu lesen und interessiere mich mehr für den Lebenszyklus der Softwareentwicklung. Was schlagen Sie vor zu tun?
Vielleicht haben Sie versucht, in Google, Microsoft oder Apple einzusteigen, wie es einige meiner Freunde getan haben. Oder vielleicht eine Karriere in Führungspositionen. Ich habe auch versucht, ein gutes Buch über Kommunikationsregeln und "Menschenpersönlichkeit" zu finden, um mich auf die Möglichkeit vorzubereiten, in das Management einzusteigen.
Irgendwelche Vorschläge?
PS: Ich habe viel Interesse, ich bin nicht depressiv :) Ich liebe Berg, Trekking, mache Fotoshootings und ich bin ein Sportkletterer, ich liebe Schwimmen und Sport im Allgemeinen, manchmal laufe ich, eigentlich bin ich Ich lese ein Buch über die Geschichte meines Landes (Italien) von AC bis heute und liebe Reisen (in diesem Sommer habe ich 4000 km zurückgelegt, um eine Menge Orte in Spanien zu sehen und darin zu klettern, alles in nur 3 Wochen, kein Urlaub, sondern ein Marathon Ich liebe Theater und das Leben im Allgemeinen.
Dank an alle, die über die Antwort nachgedacht haben, habe ich die Gelegenheit, meinen Weg klarer zu machen.
Für einen zusammenfassenden Zweck können wir die am häufigsten gestimmte Antwort verallgemeinern.
Zuallererst stimmen die Menschen der Notwendigkeit zu, unsere Arbeit zu einer Stütze Ihres Lebens zu machen und nicht der einzige Grund, um im Leben zu bleiben (das ist nicht mein Fall). Wenn Sie also nur Lebensgrund sind, wenn Sie arbeiten, kommen Sie schnell zu einer wirklich depressiven Situation. Wien wartet nicht auf dich :)
Nach dieser Erinnerung schlagen die Leute vor:
- Steigern 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 nicht-technisches Fachgebiet, indem Sie versuchen, Manager zu werden, oder bringen Sie einen Betreuer in einem nicht-technischen Fachgebiet, das mit Ihrer Arbeit zusammenhängt, voran.
- Ändern Sie das Fachgebiet in einer anderen technischen Herausforderung. Sind Sie ein Systemprogrammierer? Versuchen Sie, sich nicht zu langweilen, wenn Sie Anwendungen für Menschen entwickeln, damit Sie sich mit Ihrer nützlichen Software wohler fühlen, wenn Sie Menschen betrachten
- Machen Sie Fortschritte in Ihrem Informatik-Abschluss auf Ihrem akademischen Weg
Für meinen Zweck ist die richtige Antwort, in der Informatik voranzukommen, da ich denke, dass das Programmieren nicht der einzige Weg ist, um Informatik zu erlernen, und ich denke, dass ich mich besser fühlen kann, wenn ich andere Wege in der Informatik beschreite, die sich von denen in der Softwareentwicklung unterscheiden.
Antworten:
Das musste passieren.
Wenn Ihr primäres Interesse am Code liegt, wird es Sie hin und wieder verrückt, frustriert und deprimiert machen, eines Tages für immer.
Interessieren Sie sich für die Entwicklung von Produkten und genießen Sie es, Menschen zu sehen, die sie verwenden. Das ist das ultimative Ziel beim Schreiben des Codes, oder? Code ist lediglich ein Werkzeug, um etwas größeres zu erledigen.
quelle
Ich beantworte Ihre Frage mit einer Frage ...
Ist es die Aufgabe eines Programmierers, zu programmieren oder Probleme zu lösen?
Sie sagen, Sie sind gelangweilt, weil das Schreiben von Code so aussieht, wie Sie es zuvor getan haben, als ob jedes Stück Code bereits zuvor getan worden wäre.
Aber wie sind Sie zu dem Schluss gekommen, dass dieser Code der Code ist, der geschrieben werden sollte? Die meisten Probleme können auf Hunderte von Wegen gelöst werden, aber es gibt nur einen besten Weg.
Wenn Sie wirklich keine Herausforderung, Neugierde oder Interesse daran finden, Lösungen zu finden oder Probleme zu lösen, dann müssen Sie wirklich etwas ändern. Obwohl ich nicht sicher bin, ob das Software-Entwicklungsmanagement wäre. Ich würde nicht für einen Software-Manager arbeiten wollen, der diese Apathie in Bezug auf das Lösen von Problemen verspürt. 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, die Sie lösen können. Jedes Mal, wenn meine Arbeit sich mühsam anfühlt, glaube ich, dass es ein Problem zu lösen gibt. Warum mache ich viel Arbeit? Welche Lösung kann ich finden, um die anstrengende Arbeit von meinem Job zu trennen? Das ist das Schöne an der Programmierung.
quelle
Klingt für mich so, als hättest du eine Menge prozeduraler Programmierung gemacht und es satt - was ich voll und ganz verstehe. Das schrittweise Festlegen ist in jeder Verfahrenssprache ähnlich.
Da es sich so anhört, als ob Sie viele nicht-berufliche Aktivitäten haben, 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
Hier ist eine komplette Sortierfunktion:
( Eine Erklärung finden Sie unter http://www.haskell.org/haskellwiki/Introduction#Ease_of_understanding. )
Wenn Ihnen irgendetwas davon neu ist, würde ich Sie ermutigen, mit dem Abenteuer zu beginnen.
Viel Glück und viel Spass.
quelle
Computer sind langweilige Verbraucher. Wenn Sie Interaktionen von Maschine zu Maschine den ganzen Tag lang codieren, reagiert die 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 mich sowohl von der Fotografie als auch von der Benutzererfahrung inspirieren lassen. Denken Sie darüber nach, wie kommt es, dass Apple Menschen dazu bringt, sich zu übergeben, damit sie als Nächstes aus Santa Clara kommen, wenn andere Anbieter eine lauwarme Reaktion erhalten? Glauben Sie ernsthaft, dass Android eine ebenso große Resonanz bekommen hätte, wenn Apple nicht so lange gegen die Veröffentlichung des iPhone auf Verizon Widerstand geleistet hätte? Ich gebe Ihnen einen großen Hinweis: Es ist nicht unbedingt so, dass diese Produkte technisch ausgereift sind. Die Manie hat eine große psychologische Komponente.
Das Verständnis für Produktdesign und Benutzererfahrung ist etwas, über das viele von uns viel lernen müssen. Was bringt jemanden zum Ticken? Wie entwirft man etwas, das cool genug ist, um die etablierte Lösung zu verlassen? Wie erschaffst du deinen eigenen Technologiekult wie Apple? Dies sind alles sehr interessante und anregende Fragen. Sie fließen in die Softwareentwicklung ein - aber jetzt haben Sie einen anderen Fokus.
quelle
Vermutlich haben Sie nicht genug technische Herausforderungen?
Seien Sie natürlich bereit, anfangs weniger in einem Bereich zu verdienen, in dem es schwierig für Sie ist, nicht langweilig.
quelle
Ich habe Motivation gefunden, als ich in ein Feld gewechselt bin, 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 treffe viele nicht-technische Leute und zusammen versuchen wir, Wege zu finden, um die Software zu verbessern, mit der sie arbeiten müssen. Ich finde die menschliche Interaktion und das Bedürfnis, ständig die Perspektive zu wechseln, sehr angenehm und plötzlich macht das Codieren keinen Spaß so langweilig mehr.
Ich weiß, dass dies nicht jedermanns Sache ist. Einige haben es mit der Unsicherheit zu tun, dass es schwieriger ist, ein objektives Maß für die Qualität Ihrer Arbeit zu haben als andere.
Aber es ist eine Option, über die man nachdenken sollte.
quelle
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 das?
Weil ich es im Grunde genommen genieße, neue Wege der Codierung und neue, prägnante, elegante Wege zu entdecken, um etwas im Code auszudrücken. Hierfür gibt es zwei Möglichkeiten: neue Programmiersprachen erlernen oder neue Bibliotheken oder Frameworks erlernen.
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, bin ich endlich zur funktionalen Programmierung gekommen, die sich als Programmierparadigma von OOP genug unterscheidet, um eine neue Herausforderung zu sein. Ich denke, dies hat 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 andere Weise, z. B. durch Hinzufügen einer zusätzlichen Abstraktionsebene. Dies ist möglicherweise möglich, weil die heutigen Computer leistungsstärker sind als frühere Computer. oder vielleicht, weil wir als Ganzes immer besser in der Lage sind, Software zu schreiben.
Dieses letzte Bit muss wahrscheinlich erklärt werden. Ich gebe ein Beispiel: Während ich meine Programmierkenntnisse am längsten trainierte, habe ich nie ernsthaft darüber nachgedacht, wie ich den Code, den ich schrieb, pflegen sollte. 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. Ein Unternehmen wird daher versuchen, den vorhandenen Code möglichst beizubehalten, und es besteht die Möglichkeit, dass Sie eventuell übergehen müssen Ihren Code an einen Nachfolger.
Ich finde, dass das Schreiben von wartbarem Code eine große Herausforderung ist. Oft bedeutet dies, dass Sie keinen besonders cleveren und hochoptimierten Assembler-Code schreiben (erinnern Sie sich an The Story of Mel - Ein echter Programmierer ? ;-) Stattdessen nutzen Sie Abstraktion mit größerer Wahrscheinlichkeit. Je genauer Sie Ihren Code an einige Geschäftsregeln und die Problemdomäne anpassen können, desto besser. Hier kommen all diese neuen Bibliotheken ins Spiel. Wenn Sie Code so aufschreiben können, dass er sauber, klar, prägnant und leicht zu verstehen ist, ist das eine gute Sache.
Sorry, wenn diese Antwort etwas langwierig ist. Ich habe versucht zu zeigen, woher meine Motivation für das Programmieren kommt ... und ich würde mich interessieren, ob es Ihnen irgendwann genauso ergangen ist und ob (und warum) Ihre Motivation irgendwann aufgehört hat.
quelle
Wenn Sie es leid sind, Code zu schreiben, wenn es Sie nicht erregt, wenn es Sie langweilt, ist es möglicherweise Zeit für eine Änderung. Sie könnten eine Führungsposition einnehmen und andere Programmierer mit Ihrer jahrelangen Erfahrung verwalten und leiten. Oder versuchen Sie, sich seitwärts in der Systemarchitektur zu bewegen, wo Sie Systeme entwerfen und planen können und andere Personen den größten Teil der Implementierung durchführen würden.
Oder Sie können 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?
quelle
Fangen Sie an, mit Mikrocontrollern zu spielen. Es ist die erfrischendste und aufregendste Anwendung von Programmiertalent, die ich mir vorstellen kann.
quelle
Es hört sich so an, als ob die Ausgangspunkte unseres Hintergrunds insofern ähnlich sind, als wir beide mit dem Programmieren auf ähnlichen Maschinen im Alter von ungefähr 6 Jahren begonnen haben und aus verschiedenen Gründen beide nicht mehr programmiert haben. Keiner meiner Abschlüsse hat irgendetwas mit Programmieren zu tun - ich habe alle Musikabschlüsse - obwohl ich einige Informatikkurse mit Abschluss belegt habe.
Sie haben, glaube ich, Recht, wenn Sie feststellen, dass Programmierer häufig die gleichen 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 betrachten neue Technologien als völlig unabhängig von alten.
Das Lösen solcher Probleme ist für Sie uninteressant. Was wäre interessant? Mögen Sie generell das Lösen von Problemen? 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.
quelle
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 sich davon lösen können. Mein Rat ist einfach: etwas anderes tun, nur um etwas anderes zu tun. Selbst wenn es Ihr Problem nicht löst, werden Sie wahrscheinlich nicht mehr weiterkommen.
Verstehen Sie das nicht falsch (das sind anständige Leistungen), aber dies ist kaum eine umfassende Liste aller herausfordernden und aufregenden Probleme bei der Programmierung. Es gibt noch viele herausfordernde Probleme zu lösen. Die schwierigsten Probleme bestehen darin, im Maßstab zu arbeiten. Sie haben eine WSGI-Anwendung geschrieben, aber haben Sie eine geschrieben, 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 zu tun, das nicht technisch ist, sollten Sie es versuchen. Aber tun Sie das nicht, weil Sie das Gefühl haben, alle zu lösenden Probleme gelöst zu haben, da dies nicht der Fall ist.
quelle