Werbung

Wie man beim Lösen von Problemen wie ein Programmierer denkt

Wie gehen Programmierer mit Problemlösungen um? Werfen wir einen Blick "unter die Haube".

Möchten Sie lernen, wie ein Computerprogrammierer Probleme zu lösen? Dann sind Sie bei uns genau richtig.

Hier untersuchen wir, wie der durchschnittliche Programmierer Probleme angeht, und schlagen Wege vor, wie Sie genau das Gleiche tun können. Eine bessere und effizientere Zukunft zur Problemlösung erwartet Sie.

Zumindest theoretisch.

VERBINDUNG: 9 DER LUSTIGSTEN PROGRAMMER-MEMES JETZT

Was ist Problemlösung in der Programmierung?

Bevor wir beginnen, lohnt es sich möglicherweise herauszufinden, was Problemlösung für Programmierer bedeutet.

Nach dem School of Computing an der Universität von Utah wird oft definiert als :

"Problemlösung ist der Kern der Informatik. Programmierer müssen zuerst verstehen, wie ein Mensch ein Problem löst. Verstehen Sie dann, wie Sie diesen 'Algorithmus' in etwas übersetzen, das ein Computer kann, und schließlich, wie Sie die spezifische Syntax die von einem Computer benötigt wird 'schreiben', um die Arbeit zu erledigen. "

Quelle : Tomasz Stasiuk / Flickr

Klingt an der Oberfläche einfach, ist aber, wie Sie gleich herausfinden werden, eher eine "Kunst" als eine Wissenschaft bis zu einem gewissen Grad.

Festhalten ...

Wie denkst du wie ein Programmierer?

Steve Jobs bekanntlich "jeder in diesem Land sollte lernen, einen Computer zu programmieren, weil er Ihnen das Denken beibringt". Dies ist eine sehr mächtige Botschaft und bedeutet nicht unbedingt, dass Sie der nächste werden müssen. Ada Lovelace , Steve Wozniak oder Bill Gates .

Die Entwicklung von "Soft Skills" oder "Meta-Skills" wie das Erlernen des klaren und kritischen Denkens zahlt sich in vielen Aspekten Ihres Lebens aus.

Besonders in Ihrem berufliche Laufbahn welcher Weg auch immer Sie gewählt haben, sei es ein Ingenieur oder nicht.

zusammen mit anderen wichtigen " Meta-Fähigkeiten "Wie das Aufnehmen von Perspektiven, das Erkennen von Schmerzen, das Erzählen von Geschichten, das Interviewen und das Verbinden der Punkte wird das Beherrschen dieser Fähigkeit in unserer technologisch komplexen Welt allgemein als wesentlich angesehen. Tatsächlich legen viele Arbeitgeber Wert auf Problemlösung und grundlegende Kodierungin gewissem Maße über die meisten anderen Fähigkeiten bei der Suche nach potenziellen Neueinstellungen.

Werbung
Quelle : vgajic / iStock

"Fähigkeiten zur Problemlösung sind fast einstimmig die wichtigste Qualifikation, nach der Arbeitgeber suchen ... mehr als Programmiersprachenkenntnisse, Debugging und Systemdesign.

Der Nachweis des rechnerischen Denkens oder der Fähigkeit, große, komplexe Probleme zu lösen, ist genauso wertvoll wenn nicht sogar noch wertvoller als die grundlegenden technischen Fähigkeiten, die für einen Job erforderlich sind. ”- Hacker-Rang .

Wie können Sie eine solche Fähigkeit entwickeln? Eine Möglichkeit besteht darin, zu versuchen, wie ein Programmierer zu denken.

Wenn Sie jemanden in Ihrer Freundesgruppe kennen, könnte Ihre erste Anlaufstelle darin bestehen, eine offene und offene Diskussion darüber zu führen. Es mag sich am Anfang unangenehm anfühlen, aber Sie werden den Prozess schnell lernen und lieben.

Aber im Wesentlichen lernen Programmierer normalerweise durch Versuch und Irrtum, bei der Problemlösung zunehmend effektiver zu werden. Die meisten Menschen, sofern Sie kein robustes System entwickelt haben, werden wahrscheinlich Folgendes in Betracht ziehen :

Werbung

1. Versuchen Sie eine Lösung.

2. Wenn es nicht funktioniert, versuchen Sie es mit einem anderen.

3. Wenn dies ebenfalls fehlschlägt, spülen Sie Schritt 2 aus und wiederholen Sie ihn, bis Sie etwas finden, das funktioniert möglicherweise durch Glück.

Quelle : r / ProgrammerHumor / Reddit

Obwohl dies nach einem vernünftigen Ansatz klingt, belastet diese Methode sowohl Ihre geistige Energie als auch vor allem wertvolle und unersetzliche Zeit Ihr einziges echtes Kapital im Leben. Dies ist praktisch die Brute-Force-Methode zur Lösung von Problemen.

Programmierer beherrschen eine subtilere und effektivere Vorgehensweise durch a planen, tun, prüfen, handeln Strategie. Dies beinhaltet in der Tat :

1. Einen Rahmenansatz zur Lösung eines Problems haben.

2. Übe, lerne aus Fehlern, überprüfe und verbessere dich, bis du es beherrschst.

Während dies anfangs einen großen Zeitaufwand erfordert, zahlt es sich in Zukunft aus, wenn Sie sich erst einmal damit auskennen. Sie sollten auch versuchen, einige andere Lebensgewohnheiten wie die von zu pflegen. Elon Musk , die Ihnen bei der Problemlösung mit einer Programmierer-Denkweise zugute kommen.

Werbung

Wie kann ich meine Fähigkeiten zur Lösung von Programmierproblemen verbessern und eine Einstellung für Programmierer entwickeln?

Wie bereits erwähnt, besteht der beste Weg darin, einen Rahmen für die Problemlösung zu entwickeln und dann zu üben, zu üben, zu üben. Aber was bedeutet es, einen Rahmen für die Problemlösung zu haben?

Quelle : Alper Çuğun / Flickr

Es gibt eine große Bibliothek nur zu diesem Thema, aber im Wesentlichen wird ein Framework zur Problemlösung einige, wenn nicht alle der folgenden Hauptkomponenten enthalten :

1. Brechen Sie auf und verstehen Sie das vorliegende Problem

Der erste Schritt in Ihrem Problemlösungsrahmen sollte darin bestehen, genau zu wissen, was gefragt oder benötigt wird. Viele scheinbar unüberwindbare Probleme sind nur deshalb so, weil wir sie zunächst nicht vollständig verstehen.

Wie machen Sie das? Ein Indikator dafür, dass Sie das Problem verstanden haben, ist, dass Sie es in einfachem Englisch oder sogar in einem Diagramm erklären können.

Wenn Sie über das Problem nachdenken und es vokalisieren, werden Sie schnell die Lücken in der Logik oder Ihr eigenes Verständnis finden, das Sie möglicherweise vorher übersehen haben. Dies ist ein Prozess, den die meisten Programmierer genau kennen.

Werbung

Schreiben Sie das Problem auf und machen Sie einen Riss beim Skizzieren möglicherweise mit a. Mind Map und versuchen Sie es jemand anderem zu erklären.

Ein Beispiel für eine Mind Map Quelle : mindmapping.bg/Wikimedia Commons

2. Wenn Sie nicht planen, planen Sie nicht erstellen Sie einen Plan und teilen Sie ein großes Problem in kleinere auf

Der nächste Schritt besteht darin, einen Angriffsplan zu formulieren. Starten Sie wie alles im Leben niemals etwas, bis Sie dies getan haben insbesondere Dinge wie. Geld investieren .

Zerlegen Sie größere Probleme in kleinere, besser verdauliche Teile und überlegen Sie, wie Sie sie von der Liste streichen können. Wahrscheinlich haben Sie während Ihrer Zeit etwas Ähnliches entwickelt. Zeit des Studiums an der Universität oder zu jeder anderen Zeit in Ihrem Leben.

Für Programmierer tauchen sie nicht direkt ein, ohne diese Phase zu sortieren. Die in dieser Phase investierte Zeit spart Ihnen später eine Menge Zeitverschwendung.

Dies ist die Einstellung des Programmierers.

Werbung

Versuchen Sie, eine Frage zu beantworten wie "Welche Schritte muss ich bei einer Eingabe ausführen, um eine andere Ausgabe zurückzugeben?" Usw. Ganz zu schweigen von einem Netzwerk von " wenn dies dann das oder etwas anderes "Befehlssatz.

Dies ist wichtig für Programmierer, da sie Unterprogramme, Funktionen usw. entwickeln müssen. Methoden und Prozeduren und andere kleinere Codebits das muss als Ganzes funktionieren.

Ein Fehler in einem kann und wird sich normalerweise auf andere Teile des Codes auswirken und kann sogar zu Problemen wie führen. Endlosschleifen . Indem Sie jede Phase des Hauptproblems auf diese Weise durcharbeiten, können Fehler und Lösungen behoben werden, sobald sie auftreten.

Es ist auch nicht ungewöhnlich, dass ein Auflegen eine Problemlösung in mehreren kleineren, in sich geschlossenen Codestücken erfordert. Dies ist im Wesentlichen eine Möglichkeit, die Punkte zu verbinden.

Werbung
Quelle : Camilla Nilsson / Flickr

Nebenbei bemerkt ist dies auch eine der Hauptgründe Kommentare werden von Programmierern im Code verwendet. Besonders wenn Sie als Teil eines Teams arbeiten niemand kann die Gedanken eines anderen lesen.

Aber wir schweifen ab.

Sie sollten keine Angst haben, um Hilfe oder Nachforschungen zu bitten. Möglicherweise müssen Sie das Rad nicht neu erfinden. Aber NICHT Verlassen Sie sich auf die Lösungen anderer für Ihre Probleme, da Sie in einem bestimmten Bereich nicht lernen und Ihren eigenen Verstand und Ihre eigenen Fähigkeiten entwickeln können.

" Wenn ich jedem beginnenden Programmierer eine Fähigkeit zur Problemlösung beibringen könnte, wäre dies die "Reduzierung der Problemtechnik" ...

Reduzieren Sie das Problem auf den Punkt, an dem Sie wissen, wie es zu lösen ist, und schreiben Sie die Lösung. Erweitern Sie dann das Problem leicht und schreiben Sie die passende Lösung neu. Fahren Sie fort, bis Sie wieder da sind, wo Sie begonnen haben. "- V. Anton Spraul.

3. "Bleib am Ziel", du kannst und wirst manchmal stecken bleiben

"Die besten Pläne von Mäusen und Männern oft schief gehen ", wie Robert Burns berühmt sagte. Keine Sorge, das ist zu erwarten und wird oft angenommen.

Aber was machst du, wenn du kann ein Problem nicht lösen besonders beim Programmieren?

Quelle : .mw / Flickr

Während viele beim ersten Anblick eines Problems oder einer fehlgeschlagenen Lösung die Hände hochwerfen, haben die meisten Programmierer eine neugierige Haltung gegenüber " entwickelt. Fehler ".

Ganz zu schweigen von der Entschlossenheit, sie zu beheben.

Wenn sie auftauchen, initiieren Programmierer normalerweise einen Prozess, eine mentale Funktion, wenn Sie so wollen :

  • Führen Sie einen Debugging-Prozess durch, indem Sie die schriftliche Lösung Schritt für Schritt durchgehen, um offensichtliche Probleme zu finden z. B. Missbrauch der Syntax.
  • Wenn dies fehlschlägt, überprüfen Sie es erneut, indem Sie einen Schritt zurücktreten und versuchen, einen anderen Blickwinkel auf das Problem zu finden. Kann etwas abstrahiert werden oder fehlt Ihnen etwas? Mit anderen Worten, fehlt Ihnen der Wald vor lauter Bäumen?sehr, sehr häufig, um so ins Detail zu geraten, dass man oft das Gesamtbild übersieht.
  • Wenn alles fehlschlägt, können Sie einfach von vorne beginnen - Sie werden erstaunt sein, welche Lösungen gefunden werden können.

4. Übung macht den Meister

Ein kleines Klischee? Vielleicht, aber Sie können nicht erwarten, alle komplexen Probleme oder Unterprobleme über Nacht zu lösen. Um in irgendetwas gut zu sein, braucht es Zeit, um zu üben, zu scheitern, es erneut zu versuchen und zu meistern.

Quelle : Evan Long / Flickr

Wenn Sie Ihre Erfahrung in der Problemlösung aufbauen, wird der Prozess immer schneller, wenn Sie Methoden identifizieren, die Sie zuvor verwendet haben und die in einer bestimmten Situation angewendet werden können. Tatsächlich nehmen viele der erfolgreichsten Personen regelmäßig daran teil"Mini-Problemlösung" regelmäßig.

Einige spielen regelmäßig Schach, andere Sudoku, andere Kreuzworträtsel oder sogar Computerspiele. Versuchen Sie, eines zu finden, das Ihnen Spaß macht, und arbeiten Sie mit dieser grauen Substanz!

Und, was wahrscheinlich am wichtigsten ist, haben Sie keine Angst vor dem Scheitern. Sie werden viel mehr lernen, wo Sie es vermasseln, als jemals zuvor, wo Sie Erfolg haben. Lernen Sie zu scheitern und scheitern schnell!

Und das ist ein Wrap. Ihr Weg zur Problemlösung als Programmierer wartet!

Viel Glück Reisender.

Folgen Sie uns auf

Bleiben Sie über die neuesten technischen Neuigkeiten auf dem Laufenden

Geben Sie einfach Ihre E-Mail-Adresse ein und wir kümmern uns um den Rest :

Mit Ihrer Anmeldung stimmen Sie unserer zu Nutzungsbedingungen und Datenschutzerklärung . Sie können sich jederzeit abmelden.