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!
Antworten:
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.
quelle
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 .
quelle
"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.
quelle
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
quelle
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.
quelle
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
quelle
Lustige Sache ist:
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 .
quelle
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.
quelle
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.
quelle
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:
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.
quelle
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.
quelle
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.
quelle
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 :)
quelle
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.
quelle
Drei Dinge zu beachten: (Oder natürlich nicht.)
quelle
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.
quelle
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.
quelle