Dies könnte eine Gelegenheit sein, bei der eine semantisch bedeutsame Unterscheidung zwischen "Programmierer" und "Softwareentwickler" möglich ist. Insbesondere in diesem Zusammenhang stellen wir fest, dass Sie über Kenntnisse in mehreren Programmiersprachen und verwandten Technologien verfügen und mit diesen die gewünschten Ergebnisse erzielen können. Dies ist eine genaue Definition des Begriffs "Computerprogrammierer".
Ich betrachte mich als Softwareentwickler. In den meisten Bereichen meiner täglichen Arbeit mache ich wahrscheinlich das Gleiche wie Sie. Ich benutze Computersprache und verwandte Technologien, um ein gewünschtes Ergebnis zu erzielen. Ich verstehe jedoch Datenstrukturen und Algorithmen und betrachte dieses Wissen als eine grundlegende Grundlage für meine Fähigkeit, viel mehr zu tun.
Oft - wenn auch nicht an jedem Tag - besteht meine Aufgabe darin, Lösungen für komplexe Probleme zu finden, für die es keine offensichtlichen Lösungen gibt, nichts, was von den Merkmalen des von mir verwendeten Frameworks oder den Fähigkeiten der Sprache, in der ich arbeite, direkt angesprochen wird mit. Dabei muss ich das Problem analysieren und eine Lösung finden, und gelegentlich bewegt sich dieser Prozess im Bereich einer groß angelegten Architektur.
Ein exzellentes Verständnis dieser tieferen Themen ist für diese Art von Arbeit zwar erforderlich, aber nicht ausreichend . Mit anderen Worten: Nur zu wissen, wie eine Hash-Tabelle funktioniert oder warum eine Heap-Sortierung normalerweise gute Leistungseigenschaften aufweist, reicht nicht aus, um ein Systemarchitekt oder ein leitender Ingenieur zu sein. Es ist der logische Ausgangspunkt, und von dort aus können Sie tiefer graben und weiter reisen und die Erfahrung sammeln, die auch für die Bewältigung der größeren Probleme erforderlich ist.
Ich nehme an, um Ihre Frage zu beantworten, sollten Sie sich fragen: "Was möchte ich sein? Wohin gehe ich mit meiner Karriere?" Wenn Sie damit zufrieden sind, das zu tun, was Sie tun, möchten Sie möglicherweise nur genügend Datenstrukturen und Algorithmen erlernen, um die weitgehend willkürlichen Interviewfragen zu bewältigen, mit denen Sie konfrontiert sind.
Wenn Sie in Ihrer Karriere wachsen wollen und die Leidenschaft dafür haben, die entscheidend ist, sollten Sie sich diesen Themen so genau wie möglich annehmen. Wenn Sie etwas Zeit haben, um daran zu arbeiten, einen offenen Geist und echte Begeisterung, werden Sie einige wundervolle und aufregende Dinge finden. Ich werde nie den Tag vergessen, an dem ich Quicksort zum ersten Mal verstanden habe. Das Gefühl der Aufregung und Entdeckung bestimmte den Großteil meines restlichen Lebens, und ich könnte nicht dankbarer dafür sein. Jetzt kann ich mir nicht mehr vorstellen, außer als Software-Ingenieur zu arbeiten.
Viel Glück mit was auch immer Sie wählen.