Wie kann ich mich in Bezug auf meine Programmierkenntnisse sicherer fühlen? [geschlossen]

37

Programmierung ist mir nicht fremd. Ich habe zuerst mit Markup angefangen (HTML, jetzt lach mich bitte nicht aus), als ich 12 war, und ein bisschen BASIC, als ich 13 war (ich wusste zu diesem Zeitpunkt viel über Flowcharts, Pseudocodes), aber dann wurde ich ermahnt Biologie in der High School und daher "echte" Programmierkenntnisse von Sprachen wie C, Java, etc. verpasst. Ich habe CS für mein UG BE aufgenommen (ähnlich wie BS, aber viel theoretischer). Ich lernte C & C ++ (in geringerem Maße) alleine (mein Prof war ein totaler Schmerz und die Klasse war voller Code-Jocks (die es bereits in der Schule gelernt hatten und daher dem Unterricht keine Beachtung schenkten und es nicht taten) Lassen Sie auch kleinere Sterbliche wie mich der Klasse keine Aufmerksamkeit schenken)) und könnten ein großartiges Zusatz- oder Multiplikationsprogramm entwickeln (das jetzt sogar Kindergärtner betrifft).

Mein Hauptproblem ist, dass ich mich durch meine eingeschränkten Programmierkenntnisse immer unzulänglich und erdrosselt gefühlt und durch die Code-Jocks herabgesetzt habe (glauben Sie mir, ich bin vor langer Zeit auf diese Site gestoßen, konnte aber gerade jetzt den Mut aufbauen, tatsächlich zu posten eine frage) und waren zeitweise sogar deprimiert über die besagte unfähigkeit. Die meisten Leute sagen, dass es beim Programmieren nicht unbedingt um die Sprache geht, sondern um den Geisteszustand der Person und die Techniken, die sie zur Lösung von Problemen / Problemen einsetzt. Ich bin mit solchen Gefühlen einverstanden, aber kann ich jemals einen solchen "Geisteszustand" erlangen, und wenn ja, wie soll ich mit "Programmieren / Codieren" umgehen und ob es bestimmte Wege und Schritte gibt, die man am meisten durchläuft, um zum "Zen" zu gelangen? der Codierung ". Wie mache ich das? Es würde auch nicht schaden, wenn ein Heiliger dieses unterdrückte Stück $ #! ^ Als Mentor unterstützen wollte.

PS Ich wäre für immer dankbar für jede Person, die mich für ihre Zeit wert hält, und würde als Bonus mein erstes Stück Software nennen, das ich nach ihnen versende. (Wenn ich jemals ein Schiff bekommen, dh)

TL; DR: Nie wirklich "Programmieren / Codieren" gelernt, kann Probleme nicht lösen, auch wenn ich es versuche. Hilf mir!

Ameen
quelle
22
Lass dich nicht so auf dich selbst ein. Niemand kam aus der Gebärmutter heraus. Je mehr Sie codieren, desto mehr denken Sie im Code. Viel Spass damit.
Steven Evers
9
Wenn Sie denken "Hm, der Fehler liegt wahrscheinlich in meinem Code, nicht im Compiler", denken Sie wie ein Programmierer (na ja, wie die meisten Programmierer).
Gablin
5
@ SnOrfus: Niemand außer Jon Skeet;)
back2dos
4
von einem Noob zum anderen: Übung ist der Schlüssel!
Chani
1
@ Snorfus Ich wette, ein paar Leute haben es getan! : P
Mark C

Antworten:

26

Ich würde sagen, der beste Weg ist, einfach mehr Zeit damit zu verbringen (Suche nach der 10000-Stunden-Regel). Suchen Sie sich etwas, das Sie erledigen möchten, und machen Sie sich daran, es zu erledigen. Suchen Sie sich etwas aus, das über Ihre derzeitigen Fähigkeiten hinausgeht, aber nicht so weit entfernt ist, dass Sie nicht in angemessener Zeit fertig werden können. Wenn Sie es wirklich genießen, werden Sie feststellen, dass Sie dies wiederholen, bis Sie es wirklich gut können. Wenn Sie es nicht mögen, ist es vielleicht nicht das Richtige für Sie. Versuchen Sie, sich selbst herauszufordern, Sie werden es wahrscheinlich genießen.

WhiteFang34
quelle
Der Vorschlag für eine 10000-Stunden-Regel klingt fair. Wirklich faszinierend, aber welche Sprache soll ich wählen, welche ist immer noch relevant und bietet die gleiche Flexibilität neuer Sprachen (zum Beispiel: Wenn ich mit allen Konzepten gründlich Java gelernt hätte, wäre ich in der Lage, auf Scala, Processing, Clojure, usw. ziemlich leicht).
Ameen
11
Ameen: Mach dir keine Sorgen um andere Sprachen. Lerne eins. Fahren Sie später fort, nachdem Sie 10.000 Stunden in Java investiert haben. Das Leben ist lang, es gibt viele Sprachen, man lernt sie nicht alle. Es werden ständig neue erfunden. Lerne jetzt eine Sache. Sorgen Sie sich danach um die Zukunft.
S.Lott
2
"mehr Zeit darauf zu verwenden" ist auf vage Weise nicht effektiv.
Rein Henrichs
1
Eine gute Strategie ist es auch, eine objektorientierte Programmiersprache und eine funktionale Programmiersprache zu erlernen. Lerne eine statisch getippte Sprache und eine dynamisch getippte Sprache. Sie werden ein runder Entwickler sein.
Chiron
1
@BSeven Sie müssen sich Peter Norvigs Essay über "Programmieren lernen in 10 Jahren" ansehen, der dem ähnlich ist und eine Menge Licht auf einige wichtige Themen wirft, mit denen sich Programmieranfänger befassen.
Ameen
16

Versende Dinge . Es ist der einzige Weg. Sachen erledigen. Bei der Arbeit, Ihren eigenen Projekten, Open-Source-Projekten. Beginnen Sie mit dem Versand. Das können sehr kleine Dinge sein, wie ein Bugfix oder ein minimal vermarktbares Feature. Beginnen Sie einfach mit dem Versand . Nichts ist befriedigender oder vertrauensbildender als der Erfolg.

Bearbeiten: Sie sollten Ship It lesen . Es ist toll.

Erneut bearbeiten: Die Erfahrung, etwas anderes als den Versand zu tun, ist nur ein Misserfolg. Ich habe viele "Senior" -Entwickler gesehen, deren Haupterfahrung darin bestand, Dinge nicht zu versenden (und Entschuldigungen dafür zu finden, sie nicht zu versenden). Echtes Künstlerschiff .

Rein Henrichs
quelle
12

"Problem", "unzureichend", "erdrosselt", "begrenzte X-Fähigkeiten", "herabgesetzt", "deprimiert", "Unfähigkeit" in einem Satz, alle auf dich gerichtet, deuten auf eine noch immer schmerzende, nicht geheilte Wunde aus der Vergangenheit hin Sie. Wenn Sie Wege finden, diese zu überwinden, ist es sehr einfach, die Programmierung oder ein solches Kunsthandwerk zu beherrschen. Vielleicht würde das Lesen über die Widerstandsfähigkeit anderer Menschen hier helfen. Jeder erlebt in seinem Leben schwere Zeiten. Wenn diese Wunden nicht geheilt wären, wären ihre Erfolge nicht vorübergegangen. Heile zuerst deine Wunde. Die Programmierung kann auf einen späteren Zeitpunkt warten.

Was Programmierkenntnisse angeht, wie ich eine neue Sprache lerne und anfange, wie andere zu denken, die bereits in dieser Sprache programmieren, muss ich zunächst alles nachlesen, was mit dieser Sprache zu tun hat. Wenn ich genug gelesen habe, beginne ich, kleine Programme zu schreiben.

vpit3833
quelle
2
In diesem Sinne, wenn Sie jemanden sehen möchten, der das gleiche Problem hatte und eine Community-Kundgebung um ihn und seine Probleme veranstaltet, lesen Sie unbedingt diesen Hacker News-Thread .
Wes Baker
3
+1 für den Vorschlag, sich über Dokumentation und Tutorials zu informieren. Und was den ersten Teil betrifft, stimme ich zu, dass viele Wunden nicht geheilt sind. (Was macht ein Psychologe auf dieser Seite?) Leider können einige Wunden nicht so einfach geheilt werden wie andere. Aber ich habe mich mit ihnen arrangiert, und ehrlich gesagt sind sie nicht mehr so ​​schmerzhaft wie früher. Und müßig zu sein, treibt mich nur zu solchen negativen Gedanken, und der einzige Weg, dies zu tun, besteht darin, mich mit Coding usw. zu beschäftigen. Vielen Dank für Ihre Vorschläge, und Sie, mein Freund, haben mich mit Ihren psychischen Fähigkeiten überrumpelt.
Ameen
@Wes Baker: Vielen Dank für diesen Hacker News Thread. Ich kann mich sicherlich auf die Gedanken des OP beziehen (obwohl ich es nicht so schlimm hatte). Ich (denke) habe ziemlich gute Kenntnisse über Betriebssysteme, Computerarchitektur, Algorithmen, Datenstrukturen, Computernetze, Kryptographie, Data Warehousing usw. (obwohl ich sie auffrischen muss). Wie ich bereits sagte, kenne ich alle diese Themen aus einer theoretischen Perspektive und habe noch keine praktischen Erfahrungen damit gemacht. Ich werde diesen Thread auf jeden Fall durchgehen und dort auch viele tolle Ratschläge geben. Tyvm!
Ameen
@Ameen Durch "alles" beschränke ich mich nicht auf Dokumente und Tutorials. Code, den andere geschrieben haben, die verwendeten Redewendungen, Fehler, Ausnahmen usw., mit denen andere konfrontiert waren, sowie deren Lösungen usw. Ich bin in keiner Weise ein Hellseher oder Psychologe.
vpit3833
9

Ein paar Dinge, die Sie wirklich brauchen, um loszulegen:

Ausdauer: Ein guter Programmierer zu werden, braucht Zeit und Übung. Sie müssen viel schlechten Code schreiben, bevor Sie guten Code schreiben - viel schlechten Code. Zum Glück haben Sie Ressourcen wie diese Website, die Ihnen helfen. Solange Sie das Programmieren lernen möchten, können Sie in kürzester Zeit einfache Spiele und Hilfsprogramme zusammenstellen!

Ziele: Setzen Sie sich einige Ziele. Angenommen, Sie lernen in zwei Wochen, wie Sie STL in C ++ verwenden. Sehen Sie, wie gut es Ihnen geht. Wenn Sie länger brauchen, behalten Sie den Überblick, wie viel länger Sie brauchen, damit Sie es in Zukunft besser machen können. Ich habe diesen Trick von einem Kollegen gelernt. er konnte auf den Tag genau abschätzen, wie lange ihn fast jede Aufgabe brauchen würde. Dies hat mir geholfen, meine Ausgaben für persönliche Projekte im Auge zu behalten und zu verhindern, dass sie außer Kontrolle geraten (Scope-Management, wie man es nennt).

Neugier: Man muss interessiert und engagiert sein. Wenn Sie nicht der Typ sind, der Probleme nicht mit dem Wunsch angeht, eine Lösung zu finden, wird es zunächst schwierig, mit dem Programmieren zu beginnen, und das Debuggen kann ein Albtraum sein. Das muss aber nicht so sein. Wenn Sie ein Problem haben, fragen Sie auf Websites wie dieser, googeln Sie Ihren Fehler. Wenn Sie nicht wissen, wie Sie etwas implementieren können, fragen Sie! Es gibt immer Leute da draußen, die bereit sind zu helfen!

Vertrauen: Seien Sie zuversichtlich, was Sie tun möchten, und sicher genug, um Fragen zu stellen. Wenn Ihnen jemand einen anderen Weg zeigt, etwas zu tun, seien Sie nicht defensiv oder denken Sie, Sie hätten es falsch gemacht. Denken Sie daran, wie Ihnen ein anderer Ansatz zur Lösung Ihres Problems beigebracht wird!

Behalten Sie vor allem einen positiven Ausblick, lesen Sie viele Tutorials und stellen Sie viele Fragen, und Sie werden ein glücklicher Programmierer sein! Ein weiterer Rat, den ich geben muss, ist, eine Sprache zu wählen und dabei zu bleiben, bis Sie sicherer sind. Sie haben viel Zeit, um eine Reihe von Sprachen zu lernen, aber wenn Sie anfangen, arbeiten Sie einfach mit einer.

Viel Glück! Und denk dran, das soll Spaß machen! = D

bryanegr
quelle
Vielen Dank für Ihren aufschlussreichen Beitrag. Eines meiner Probleme war schon immer die Tatsache, dass ich (oft) zu hoch zielte und mit dem Gesicht voran hingefallen bin. Mein Unterbewusstsein hat möglicherweise einen Ansatz "Einmal verbrannt, zweimal schüchtern" gewählt und blockiert möglicherweise meine Versuche, dies zu korrigieren. Ich war schon immer neugierig, aber der Mangel an Mentor hat mich dazu gebracht, meine Neugier zu ignorieren. Und im Ernst, SE sieht im Laufe der Zeit viel beeindruckender aus. Ich werde diese großartige Ressource mit Sicherheit durchlesen und mein Ziel erreichen, ein richtiger Programmierer zu werden. Vielen Dank, ich kann nicht wirklich sagen, wie viel mir Ihr Beitrag bedeutet.
Ameen
Ich helfe gerne! = D
bryanegr
Bestes Ziel: Schiffscode!
7

In der Entwicklung scheint es, dass das Paradox "je mehr Sie wissen, desto mehr wissen Sie, dass Sie nicht wissen" gilt.

Wenn Sie eine nachdenkliche, ehrliche Person sind, müssen Sie diese Tatsache akzeptieren und lernen, damit umzugehen.

Vertrauen ist in dem von der Frage implizierten Sinne eine sehr persönliche Sache, die wirklich nichts mit einer bestimmten Fähigkeit oder Methodik zu tun hat.

Noch flacher ist das Gefühl, das in http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ beschrieben wird (Abschnitt: Sie überschätzen die durchschnittlichen Fähigkeiten des Wettbewerbs aufgrund von Die Menge, mit der du rumhängst, hat mir immer geholfen.

Ich würde vorschlagen, dass Sie lernen, mehr Vertrauen in die geleistete Arbeit zu haben, anstatt Vertrauen in Ihre Fähigkeiten als Ganzes aufzubauen. Der einfach beste Weg, dies zu tun, besteht darin, wiederholbare Tests für Ihren gesamten Code zu schreiben. Es wird Wunder auf Ihre Psyche wirken.

U / min smp7d
quelle
4

WhiteFang34 ist völlig richtig. Als Biologe habe ich festgestellt, dass ich das Programmieren nur lernen kann, wenn ich damit anfange. Lies ein paar Bücher, habe Google und SO immer zur Hand und "mach es einfach". Ihre Programme werden zu Beginn sehr einfach, schlecht codiert und fehlerhaft sein, und Sie werden mit der Zeit immer besser. Ich habe nicht die Zeit, Programmierunterricht zu nehmen, aber ich verbringe viel Zeit mit dem Programmieren (weil es Spaß macht, es zu tun).

Wählen Sie eine Sprache, mit der Sie mehr darüber nachdenken können, was Sie tun möchten, und weniger darüber, wie Sie es tun möchten. c ist kein sehr gutes Beispiel dafür. Probieren Sie höhere Sprachen wie Java oder C # aus, weil Sie damit mehr tun können, sodass Sie den Mut haben, immer mehr zu probieren.

(Dies setzt natürlich voraus, dass Sie keine Karriere als professioneller Programmierer verfolgen. In diesem Fall würde ich einfach sagen, dass Sie wieder zur Schule gehen ...)

Viel Glück und eine fröhliche Codierung

PS: Oh, und du wirst viel Faulheit, Ungeduld und Hybris brauchen

http://c2.com/cgi/wiki?LazinessImpatienceHubris

Aleadam
quelle
4

Lustige Sache ist:

Der Verstand des Programmierers dreht sich nicht so sehr um Computer, Programmiersprache,
Entwurfsmuster oder Algorithmen

Es geht darum, Feinheiten der realen Welt und die Interaktion zwischen Dingen zu verstehen. Fähigkeit, abstrakt zu denken . Fähigkeit, Dinge zu bemerken und sich an sie zu erinnern . Das führt zwangsläufig zu einer guten Problemlösung.

Implementierung, Code selbst kommt erst danach - nachdem Sie ein
bestimmtes Problem in Ihrem Kopf erfolgreich gelöst haben .

Arnis Lapsa
quelle
4

Vertrauen ist nicht etwas, das Sie versuchen sollten, über Ihre Fähigkeiten zu fühlen. Das Vertrauen ist schlecht (wahrscheinlich sogar negativ) mit der tatsächlichen Fähigkeit korreliert. Sie sollten daran arbeiten, Ihre beruflichen (oder geschätzten Hobby-) Fähigkeiten zu verbessern, unabhängig davon, wie Sie sich in Bezug auf Ihr derzeitiges Qualifikationsniveau fühlen.

Vertrauen ist etwas, das andere Menschen, die Sie für kompetent halten, über Ihre Fähigkeiten empfinden sollten, nachdem sie mit Ihnen zusammengearbeitet oder Ihre Arbeit gesehen haben.

hotpaw2
quelle
3

Es ist ganz einfach: interessiert euch dafür ! Sie scheinen bereits etwas zu finden, von dem Sie denken, dass es cool wäre, es zu tun, und stellen dann alle Fragen, die Sie unterwegs benötigen, und setzen alle Ressourcen ein, um das Projekt so zusammenzustellen, wie Sie es möchten will es. Spülen und wiederholen, und Sie werden ein großartiger Programmierer sein, ohne viel Mühe aufgewendet zu haben, da es auf dem Weg interessant / lustig war.

Finden Sie auch eine gute Balance zwischen dem Herausfinden von Dingen und dem Stellen vieler Fragen. Vor allem zu Beginn ist es eine große Hilfe, wenn andere Ihnen sagen, wo Sie falsch liegen, um Sie im ersten Teil der Lernkurve zu unterstützen. Versuchen Sie von dort aus, selbst herauszufinden, und wenn Sie nach einer Weile nicht weiterkommen, stellen Sie eine Frage. Was ich oft tue, ist, eine Frage zu SO zu posten und dann nach der Antwort zu suchen und dabei gelegentlich SO zu überprüfen. Manchmal finde ich die Antwort zuerst, manchmal findet sie mich zuerst.

Kümmern Sie sich nicht so sehr um die Technologie, obwohl es wirklich Spaß machen könnte, Grafiken mit HTML5 + JavaScript + dem Canvas-Tag zu erstellen, da die Einrichtung ziemlich einfach ist und die Belohnungen sofort verfügbar sind und Sie sie freigeben können.

Claudiu
quelle
Vielen Dank. Ich interessiere mich sehr für das Programmieren (ich löse Probleme in meinem Kopf - und natürlich in Algorithmen, Flussdiagrammen usw.). Es scheint mir zu fehlen, an einem Projekt festzuhalten, damit fortzufahren und um Hilfe zu bitten, wenn ich nicht weiterkomme in einer Sackgasse. (all das muss jetzt aber enden :) Dank SE) Auch ich habe mich sehr für HTML5 + JavaScript-Inhalte interessiert (teilweises Laden von Seiten - Mashable implementiert dies auf großartige Weise, Antworten laden auf SE usw.). Ich kenne keine anständigen Ressourcen, aus denen sie lernen können (W3C-Schulen sind angeblich Quacksalber; W3Fools sagt es!)
Ameen,
3

Ansatzprogrammierung mit einer positiveren Einstellung der Lernenden. Niemand weiß alles. Zweitens: Finden Sie heraus, warum Sie an der Programmierung interessiert sind, auch wenn Sie Spaß daran haben:

  • Probleme lösen
  • neue Dinge lernen
  • einen Computer nach deinem Willen biegen zu lassen
  • etwas anderes...

Sobald Sie wissen, was Sie an der Programmierung lieben, können Sie Ihre Lernanstrengungen in diese Richtung lenken. Ich bin ein Bastler / Problemlöser. Das macht mich extrem pragmatisch. Algorithmen und Datenstrukturen, Informatiktheorie im Allgemeinen haben mich eingeschlafen.

Mein Hintergrund ähnelt Ihrem. Mit 10 Jahren habe ich angefangen, Computer zu bauen. Habe als Teenager ein bisschen HTML / C ++ ... habe mich damit gelangweilt ... habe für ein paar Jahre aufgehört. Ich habe jedoch nie aufgehört, mit dem Computer herumzuspielen.

Jetzt liebe ich das Programmieren. Was hat sich also geändert? Ich habe meine Motivation gefunden. Ich habe angefangen zu arbeiten, wo ich eine Fülle von Problemen habe, die gelöst werden müssen. Wenn ich clevere, einfache Lösungen für komplexe Probleme finde, brennt mein Feuer.

Machen Sie sich zum Schluss keine Gedanken darüber, wie andere Code schreiben oder ob er "richtig" ist oder nicht. Es ist richtig, wenn es tut, was Sie wollen. Sobald Sie anfangen, in einem Team zu arbeiten, werden Standards wichtig. Dies liegt vor allem daran, dass andere Personen Ihre Arbeit interpretieren und modifizieren müssen. Ein neuer Programmierer sollte sich nicht mit Designstandards befassen.

P. Brian Mackey
quelle
3

Es ist immer eine Trägheit zu überwinden, wenn man neue Dinge lernt. Die neugierigen Programmierer, die ich kenne, kämpfen darum, die Motivation zu finden, weiterhin neue Sprachen und Paradigmen zu lernen. Sie werden sagen: "Ich brauche ein Projekt, um X auszuprobieren." um X zu lernen. Einige werden dieses Projekt tatsächlich finden / erfinden.

Seien Sie darauf hingewiesen, dass eine Karriere in der Programmierung ein lebenslanger Prozess der Frustration, des Lernens, Experimentierens und des Kippens gegen Windmühlen sein wird. Bis die KIs alles übernehmen.

Wenn Sie noch echte Wissenschaft betreiben, sollten Sie sich ein Projekt oder einen Bedarf vorstellen können. Beispielsweise das Kombinieren von Daten aus mehreren Quellen im oder außerhalb des Internets. Dies könnte Sie dazu inspirieren, Javascript oder R oder sogar Excel / VBA zu lernen. Wenn Sie einige Punkte für andere in Ihrem Bereich verbinden können, werden Sie erkannt, und Sie werden ein Programmierer sein.

Seien Sie vorsichtig mit Mentoren. Autorität in Frage stellen.

Übrigens ist "Zen-Kodierung" ein Oxymoron.

stevej
quelle
3

Sie werden sich nie sicher über Ihre Programmierkenntnisse fühlen.

Die Art und Weise, wie Sie Ihre Fähigkeiten beschreiben, weist auf eine Denkweise hin, mit der Sie niemals zufrieden sein werden. Du hast C ++ gemeistert? Warten Sie, es gibt Java! Sie beherrschen Java? Warten Sie, bis die parallele Programmierung abgeschlossen ist. Sie beherrschen die parallele Programmierung in C ++ und Java? Warte, da ist SOA! Da ist OOD! Und MVC! SOLIDE! Funktionale Programmierung! Web Programmierung! Cloud-Programmierung! Mobile Programmierung!

Es geht darum, sich deswegen nicht depressiv zu fühlen. Sie müssen ein paar Knöpfe in Ihrem Kopf drücken: Ihr Zweifel an Ihren Fähigkeiten ist reiner Treibstoff. Sie werden wahrscheinlich nie ein zufriedenstellendes Niveau an Programmierkenntnissen erreichen. Solange dies der Fall ist, werden Sie vorwärts gehen. Das Schwierige ist, es zu realisieren und etwas dagegen zu unternehmen, obwohl es niemals ein Ziel geben wird. Je länger Sie es aushalten können, desto höher wird Ihr Können sein.

Theo Lenndorff
quelle
Wow, das ist eine völlig neue Sichtweise. Lieben Sie, wie Sie es sagen, es wird immer etwas geben, das Sie tun möchten. Ich sollte wirklich anfangen, meine Negative in Positive umzuwandeln. Vielen Dank. Bin dankbar!
Ameen
3

Früher ging es mir genauso, und es waren tatsächlich die Stack Exchange-Sites, die mir Vertrauen verliehen.

Ich begann, mit StackOverflow Antworten auf meine Fragen zu finden, und eines Tages sah ich eine, auf die ich die Antwort kannte. Ich habe die Antwort gepostet, ein paar positive Stimmen erhalten und einen Kommentar, der besagt, dass es eine gute Antwort ist, und das hat mich dazu ermutigt, mich nach anderen Fragen umzusehen, die ich beantworten konnte.

Es wurde schnell zu einer Sucht für mich, offene Fragen zu finden, die ich lösen konnte, und im Laufe der Zeit begann ich, Vertrauen in meine Antworten zu gewinnen. Ich musste nicht mehr sagen "Ich denke, das liegt an ..." oder "Das sollte bewirken ...", sondern konnte mit einiger Zuversicht sagen, dass "Das liegt an ..." oder "Das bewirkt ..."

Ich mag Rätsel, und für mich waren SO Fragen wie Mini-Programmier-Rätsel, mit dem zusätzlichen Vorteil, dass ich ein positives Feedback bekomme, wenn ich die richtige Antwort bekomme. Wenn ich eine falsche Antwort erhalten habe, habe ich sie einfach gelöscht und aus den Lösungen anderer Personen für das gleiche Problem gelernt.

Meine Empfehlung wäre also, SO zu gehen und die Fragen in dem Tag zu durchsuchen, an dem Sie interessiert sind, und nach solchen zu suchen, auf die Sie Ihrer Meinung nach Antworten finden können. Es gibt nichts Schöneres als Leute, die Ihnen sagen, dass Ihre Programmierantworten hilfreich / gut sind, um Ihnen Vertrauen in Ihre Programmierfähigkeiten zu geben :)

Rachel
quelle
Klar, das muss ich machen. Aber mein Ego tritt ein und sagt: "Du bist nicht gut genug für andere, um Dinge zu tun, zum Teufel, du bist nicht einmal gut genug, um hier zu sein." Ich weiß, dass es albern klingt, und wie einige Leute hier es erwähnt haben, habe ich vielleicht nur Angst, mein Gehirn zu belasten, aber ich werde, ich werde diesen Fettklumpen betonen, bis es nichts mehr ist. Vielen Dank für den Vorschlag und ich werde versuchen, an meiner neuen Gewohnheit festzuhalten, SE jeden Tag nach interessanten Fragen zu durchsuchen, die es zu lösen gilt. Vielen Dank, dass Sie sich die Zeit genommen haben und meine dumme Frage beantwortet haben. Ich weiß das wirklich zu schätzen!
Ameen
3

Dein Gehirn mag es nicht, zu hart zu arbeiten. Wenn man die Wahl hat, zieht es es vor, den einfachen Ausweg zu wählen. Das ist der Grund, warum es einfach ist, Dinge aufzugeben, wenn Sie versuchen, etwas zu Ehrgeiziges anzugehen - zu viel, um es zu lernen, zu viele umständliche Details, um es richtig zu machen, zu viel Yak-Rasur.

Um dem entgegenzuwirken, können Sie verschiedene Maßnahmen ergreifen. An erster Stelle steht die Energie. Versuchen Sie zu üben, wenn Sie gut ausgeruht und satt sind, oder Ihr Gehirn hat buchstäblich nicht genug Treibstoff für komplexe abstrakte Gedanken. Der zweite Trick ist Interesse oder Wichtigkeit. Wenn Sie Ihr Gehirn davon überzeugen können, dass es wichtig ist, den Maven zu kennen, um dem Tiger zu entkommen, der Sie verfolgt, werden Sie mehr lernen und behalten, als wenn Ihr Gehirn denkt, dass es eine bedeutungslose Nebenaufgabe auf dem Weg zu dem ist, was Sie wirklich wollen. Ein dritter wichtiger Faktor ist das Strecken, ohne es zu übertreiben. Ein gewisser Aufwand wird Ihnen das Gefühl geben, etwas erreicht zu haben, und dabei helfen, neue mentale Wege zu finden, ohne unerreichbar zu sein.

Es gibt auch etwas zu sagen für wiederholtes Üben. Sie möchten genügend Variationen, um neuartig zu sein, aber genug Ähnlichkeit, um dieselben Aktionen auszuführen und sie zu trainieren.

Ein weiterer Punkt ist, dass Sie versuchen sollten, die Ärmel hochzukrempeln und sich die Hände schmutzig zu machen. Es ist leicht, viel Zeit damit zu verbringen, über alternative Ansätze oder die ideale Lösung nachzudenken, in dem Maße, in dem man nie anfängt. Dies ist ein Beispiel dafür, wie Ihr Gehirn versucht, den einfacheren Ausweg zu finden. Versuchen Sie zu erkennen, wann Ihnen dies passiert, und vermeiden Sie dies, indem Sie versuchen, loszulegen. Auch ein Test oder Experiment ist gut. Dies hat auch den Nebeneffekt, dass Ihr Gehirn den Abschluss der Aufgabe oder die Suche nach einer besseren Lösung wünscht.

CPhelps
quelle
Wow, Sie haben gerade den größten Schuldigen ausgemerzt, den ich je vermutet habe. Mein Gehirn, ich hatte immer ein Problem damit, kalte Füße zu bekommen, und die meiste Zeit ende ich damit, mich selbst zu sabotieren. Ich habe immer eine Ausrede, um nicht das zu tun, was wichtig ist. Ich muss ein Hacker werden und aufhören, mir Sorgen zu machen, dass ich aufgrund von Fehlern in der Vergangenheit monumental scheitere. Ich muss mein Leben hacken, damit ich der Inbegriff von "Ja Mann" werde. Vielen Dank, dass Sie mich auf einige der Mängel aufmerksam gemacht haben, die ich wirklich ändern musste, und ich hoffe, dass ich das so schnell wie möglich tun kann. Vielen Dank, und ich kann Ihnen nie genug dafür danken! Prost.
Ameen
2

Drei Dinge zu beachten: (Oder natürlich nicht.)

  1. Trainieren. Was ist, wenn ein Misserfolg nur ein Hinweis darauf ist, dass Sie gerade üben? Wenn Sie beim ersten Sturz aufgehört hätten, laufen zu lernen, würden Sie immer noch herumkrabbeln.
  2. Spielen Sie mit allem, was Sie tun. Spielen bedeutet einfach, etwas auszuprobieren und zu bemerken, was passiert. Geben Sie es auf, gute / schlechte Ergebnisse zu beurteilen. Spielen Sie einfach und sehen Sie, was passiert. Hören Sie auf, an ein bestimmtes Ergebnis gebunden zu sein, probieren Sie einfach etwas aus und sehen Sie, was passiert.
  3. Was ist, wenn Sie nicht der einzige Programmierer auf der Welt sind, der sich jemals so gefühlt hat?
David Pointer
quelle
2

Es gibt viele gute Kommentare zum Üben hier, es macht wirklich den Unterschied.

Sie sollten sich weniger Gedanken über "Code-Jocks" machen und deren Ratschläge oder Kommentare für das nehmen, was sie sind. Wenn es schwierig ist, mit ihnen in einem Thread umzugehen, ist es wahrscheinlich auch schwierig, sie im wirklichen Leben zu behandeln. und wirklich, wer hat Zeit, sich wegen ihrer sozialen Unfähigkeit Sorgen zu machen?

Das Endergebnis ist, dass es Tausende von Möglichkeiten gibt, sich Programmieraufgaben zu nähern. Viele Dinge laufen auf persönliche Vorlieben hinaus. Ich hasse es zum Beispiel, Code mit Tenary-Operatoren zu lesen. Andere lieben sie. Glaube ich, sie haben Recht oder Unrecht? Es ist eine persönliche Präferenz, obwohl es viele hitzige Debatten zu diesem Thema geben wird.

Wenn jemand Ihren Code beschimpft, weil Sie 25 statt 20 Zeilen genommen haben, würde ich sie eher ignorieren, es sei denn, er hat einen tatsächlichen Fehler in der Logik gefunden. Manchmal müssen wir in der realen Welt einfach Dinge erledigen (und wer wirklich jemandem zuhören möchte, der darüber bläst, wie kompliziert ... ähm, elegant sie es geschafft haben, ein Stück Code zu erstellen, das in 10 Minuten hätte erledigt werden sollen) . Kannst du aus endlosen philosophischen Debatten etwas darüber lernen, wie weit man Dinge abstrahiert? Sicher ... aber es gibt immer weniger Rendite, wenn man in konstante 100% ige Eleganz versetzt wird. Es ist nicht immer so realistisch, wie wir gerne so tun würden. Einige meiner am wenigsten eleganten Codes (die ich zu Beginn meiner Karriere geschrieben habe), die mir peinlich waren, um sie mit anderen zu teilen, haben Menschen wochenlang Zeit gespart.

Es gibt einen großartigen Blog-Beitrag von Joel Spolsky, genannt Duct Tape Programmer. Es ist eine großartige Lektüre und IMO relativiert einige Ihrer Ängste.

http://www.joelonsoftware.com/items/2009/09/23.html

Ich sage nicht, schreiben Sie Mistcode und ignorieren Sie Best Practices, sondern nehmen Sie Ranty-Programmierer mit einem Körnchen Salz.

b.pell
quelle
1

Fragen Sie sich, warum Sie sich eigentlich nicht sicher fühlen. Ich denke, es liegt daran, dass es Ihnen wichtig ist, was Ihre Kollegen denken, und das ist völlig verständlich. Aber um wirklich im Zen zu sein, müssen Sie solche Gedanken klären und sich mit der Zeit nur mit sich selbst vergleichen. Lass dich von deinem Interesse leiten, lerne und arbeite hart und du wirst ein guter Programmierer ohne all die psychischen BS.

Es ist nicht wirklich das Vertrauen, das Sie brauchen, es ist weniger Lärm auf Ihrem Weg des Fortschritts.

Kevin Hsu
quelle