Wie kann ich lernen, algorithmen?
Kurze Geschichte: Gerade die high school absolviert, gelernt, ein wenig python und C++, habe keine Freunde mit jede hilfreiche computer wissen. Aus jedem, den ich traf in meiner Schulzeit war ich wahrscheinlich der größte nerd, aber niemand wusste es wirklich. Ich halte mich zu haben eine große Menge an wissen über Computer und tech dann die Durchschnittliche person. Gebaut/repariert Tonnen von Computern, und die Fähigkeit zu beheben, so ziemlich jedes problem, das ich gestoßen.
Nun, dass high-school ist vorbei, ich habe wirklich darüber nachgedacht, meine Karriere. Lieben, Leben, Computer in den letzten 13 Jahren meines Lebens habe ich mich entschieden, meine Fähigkeit, und versuchen zu lernen, computer-Programmierung, warum ich nicht früher anfangen, weiß ich nicht, scheint sein großer Fehler meinerseits...
Tun, einige der Forschung, ich habe festgestellt, dass Python war die erste Programmiersprache, die ich lernen sollte, denn es war hohes Niveau und einfacher zu verstehen, dann C++ und Java. Ich wusste auch, gut zu werden in dem, was ich Tat, die ich brauchte, um zu wissen, mehr als nur 2 oder 3 Sprachen, die nicht, wie offenbar ein großes problem, bedenkt man einmal lernte ich die Art und Weise Python gearbeitet, vor allem die syntax geändert, und der rest würde natürlich kommen. Ich sah ein paar youtube-videos, heruntergeladene Buch einige pdf ' s und geschnüffelt um aus einigen tutorials hier und dort das zu begreifen, was zu tun ist.
Zwei Feste Wochen waren vergangen, zu versuchen, zu verstehen, die syntax, das erstellen kleiner Programme, die die grundlegenden Funktionen, und zu verstehen, wie es funktionierte, ich denke ich habe den Dreh raus. Es zerfällt in das, was ich ' ve Umgang mit all diese Zeit (obwohl ich irgendwie wusste) ist, dass die Eingabe, Ausgabe, Schleifen, Funktionen und andere Dinge, abgeleitet aus 0 und 1 speichern von Daten und das abrufen, etc. (EINE SEHR EINFACHE IDEE). Ich habe in der Lage, erstellen kleine Programme, Hangman, Datei speichern, Temperatur-Konvertierung, Cäsar-Chiffre entschlüsseln/encoding, Fibonacci-Folge und mehr, die kann ich erstellen und verstehen, wie die einzelnen arbeiten.
Als 2 Wochen, ich habe eine Menge gelernt. Gar nichts im Vergleich zu dem, was ich sollte lernen, in die Jahre zu kommen, wenn ich einen Griff auf das, was ich Tue. Während dieser Programme werde ich nicht aufhören, bis ich getan habe, tun ein Praxis-problem auf ein Buch, was peinlich genug, mich ein paar Stunden-je nach Komplexität der it. Ich absolut nicht beiseite legen, die Herausforderung, bis es fertig ist, DAS KANN SEHR ENTWÄSSERUNG, ich habe versucht die meisten Probleme, ohne zu betrügen und erreichte Erfolg, das macht mich sehr stolz auf mein selbst nach Abschluss etwas nach viel Versuch und Irrtum.
Nachdem dies alles habe ich traf den Dämon, algorithmen, die scheinen der Schlüssel zu sein, um effizienten code. Ich kann nicht scheinen, um wickeln Sie meinen Kopf herum, einige der computer-codes legen die Menschen da draußen mit zahlen und manchmal auch noch grundlegende Funktionen, die ich in der Lage gewesen, um Sie zu verstehen nach einer Weile, aber ich weiß, es gibt viel mehr komplexe Dinge zu kommen, da ich selbst smart, Funktionen, komplexe codes, die tatsächlich verletzt mein Gehirn. NICHTS IST JEMALS IM LEBEN VERLETZT MEIN GEHIRN....... nicht einmal Mathematik-Unterricht in der highschool, versucht zu verstehen, einige der Dinge, die Menschen da draußen fühle ich mich wie ich haben eine mentale Nachteil lol... ich noch zu Fuß nach vorne, obwohl, Kreuzung meine Finger, dass das Verständnis kommt mit der Zeit.
Sorry, wenn ist das ist lang, ich wünschte nur, jemand nimmt alle diese Dinge in Betracht, wenn die Beantwortung meiner Frage. Auch durch alle diese Nachteile, ich bin immer noch dabei, über-und Weiterbildung, um zu versuchen und gut erhalten, ich weiß, Lesen Sie diese tutorials nicht machen, mir etwas gutes, es sei denn, ich kann kreativ werden und meine eigenen, verstehen andere Völker Programme, so dass dies führt mich zu der einfachen Frage, die ich hätte Fragen am Anfang.....
WO IN DER WELT SOLL ICH ANFANGEN?
Ich habe versucht, herauszufinden, wie zu verstehen, einige der open-source-Projekten, wie kann ich arbeiten mit erfahrenen Programmierern um von Ihnen zu lernen und Ihnen helfen, aber ich glaube nicht, dass das auch möglich durch die Art und Weise, wie weit die Menschen wissen im Gegensatz zu mir, ich habe keine Freunde, die ich lernen kann, kann mir jemand helfen und mich führen, in die richtige Richtung.. ich habe eine riesige motivation, um gut auf die Codierung, etwas information wäre sehr hilfreich.
- Wie alt sind Sie?
- Siehe meine Antwort an diese Frage
- Ahh! Große wall of text!
- Sie begann mit 3 Jahren?
- hahah ! das ist peinlich... ich denke, man kann sehen, wo der Algorithmus Durcheinander gebracht wurden, mein Gehirn 😛
- Im ernst, Sie scheinen ein sehr gutes Laufwerk, und Sie sollten gratuliert werden auf die Widmung, die Sie angezeigt haben. Sie sind 18. Programmierung ein komplexer Prozess, und Sie machte es schon für < ein Monat. Geben Sie es einige Zeit, Kumpel. Ich würde den Kopf über projecteuler.net und versuchen, einige der Probleme dort. Sie sind sehr Algorithmus orientiert, und geben Ihnen gute Praxis bei einfachen Problemen.
- Vielen Dank Dominik, ich werde auf jeden Fall überprüfen Sie heraus ProjectEular
- Zu Lang, nicht Gelesen. Bitte konzentrieren Sie Ihre Frage auf etwas kleines und verständlich. Nichts persönliches, aber Ihre Lebensgeschichte ist nicht die Frage.
- Einmal in eine Weile, eine persönliche Geschichte ist gut! IMO
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste von allen...ich denke, Sie sollten geben Sie sich etwas Zeit.
Nicht bekommen, gezogen in viele Dinge auf einmal erlernen der Programmierung kann ein langer Prozess sein.
Als ersten Schritt würde ich empfehlen zu studieren, die eine Programmiersprache(wie Sie bereits in python), und lernen die Konzepte der Programmierung (oo, Rekursion, Schleifen, Funktionen , Variablen, etc.) so gut wie Sie können.
Als zweiten Schritt sollten Sie versuchen, eine Antwort auf die Frage "was genau möchte ich tun mit der Programmierung?" und das ist natürlich das wichtigste ,es ist wirklich anders, wenn Sie Grafiken , wenn Sie tun, DSP-Anwendungen und, wenn Sie tun, web-Entwicklung.So lernen algorithmen im Allgemeinen, ohne ein bestimmtes Ziel, kann wirklich frustrierend manchmal.
Also die wichtigsten Elemente, die können, Geduld und fokussiert wird, nachdem alle Rom wurde auch nicht an einem Tag erbaut...
viel Glück
Ich mag Udi Manber gemacht ist Introduction to algorithms. Im Gegensatz zu populären Büchern, sagen Cormen Leiserson und Rivest, Manber gemacht das Buch konzentriert sich auf kreatives Problemlösen und der Prozess, bei dem algorithmen entstehen. Also anstatt zu Lesen, ein Lexikon zu algorithmen, die andere Menschen erfunden haben, und werden verwirrt darüber, wo auf der Erde kamen Sie aus, Sie lernen, in algorithmen erfinden sich selbst—und auf dem Weg erhalten Sie neu zu erfinden einige der standard diejenigen, die finden Sie in Enzyklopädien.
Ich denke, dass im langen Lauf Sie finden diese Art von Fähigkeit zur Problemlösung dienen Sie weit besser als ein enzyklopädisches wissen von anderen Menschen algorithmen.
gut für Sie.
haben Sie als einige college-Kurse? meistens können Sie einige Algorithmus-Typ-Klassen gibt.
ich finde, dass eine starke mathematische hintergrund ist sehr, sehr hilfreich, sowohl in der Problemlösung und die basic-Reihe manipulation Fähigkeiten. Viele der Dinge, die Sie in der Programmierung basieren auf mathematischen Grundlagen. Die algorithmen, Sie werden am Ende Verwendung oder Erstellung wird drivin durch die Art der Programme, die Sie schreiben möchten.
Den Auftrag, ein Layout für ein Studium in algorithmen - und die anderen Dinge, die Sie wissen müssen, um Sie zu verwenden - vor allem führt Sie zu einer Karriere in Computern, ist die Aufgabe, ein Layout für die Ausbildung ein Studium im Bereich der informatik. In der Tat habe ich den Verdacht, dass einige Universitäten bieten wenig Wert, außer zum legen der Lehrplan und Beurteilung der Schüler - die Schüler tun so ziemlich alles andere für sich selbst. Wenn möglich, sollte Ihr Ziel sein, um sich vorzubereiten auf einen Kurs in Computer Science, egal ob durch voll-oder Teilzeit studieren.
Meine Buch-Empfehlung wäre "The Practice Of Programming" von Kernighan und Pike, vor allem, wenn Sie planen, durch tun zu lernen. Es geht nicht sehr tief in algorithmen, aber in ein paar Seiten, es sollte Ihnen sagen, genug über design und Tests, dass, wenn Sie üben, finden Sie, reparieren Sie, und lernen Sie von den viele Ihrer Fehler, und kommen Sie in die Gewohnheit, die Programme zu schreiben, die anderen Menschen betrachten kann, ohne Grimassen.
Aus meiner Erfahrung: Probleme - führt Sie über Pfad, den Sie haben ausgewählt Sprachen und wird Ihnen helfen, schauen Sie es aus verschiedenen Blickwinkeln. Wenn Sie stick nur ein oder zwei Sprachen Sie werden in der Lage sein, um fortzufahren, aber Sie werden verpassen viele Dinge auf dem Weg, das kann Ihnen in Zukunft helfen, die Ihnen möglicherweise Spaß etc.
Und... Es gibt viel mehr Dinge, die Sie tun können, neben der Programmierung. Machen Sie nicht "ich möchte in die Programmierung" als Ihr primäres Ziel. "Ich will, um Probleme zu lösen ..." und "ich will Programmierung zu tun ...". (also machen Sie nicht den Worten sein, die Ihr Ziel)
Ich glaube, ich habe wählte diesen Weg, weil es war die einfachste Sache zu tun. Keine Notwendigkeit für Training jeden Tag, keine Notwendigkeit für tun wiederholbare arbeiten, keine Notwendigkeit, bereit zu sein für die Reise am nächsten Tag, keine Notwendigkeit, prepeare Reihe von Materialien und so weiter. Natürlich später fand ich, dass einige Dinge, die kann existiert auch dort.
In meinem Ansatz zur Programmierung ich denke, dass die erhobenen schreiben von Brian Kernighan sind die einflussreichsten Bücher auf, wie Sie zu denken wie ein Programmierer, der ich begegnet bin. Auf dem cover von "The Practice of Programming" sind die Worte:
was bei Ihr bemerkt Interesse in Python liest sich wie die Kurzform von PEP 20. Algorithmen sind ein Mittel zum Zweck, da sind Rezepte Kochen. Während es wahr ist, dass Sie nicht Brot, ohne zu wissen, über die Pflege und Fütterung der Hefe, zu wissen, dass Sie wollen Brot in Erster Linie ist das Ziel. Obwohl Kernighan Bücher scheinen mag hoffnungslos veraltet, Ihre übergeordnete Themen der Handwerker gesprochen, mit einer Eleganz, die nur wenige technische Redakteure auch danach Streben, machen für.
Sind die Maschinen immer so schnell, dass die formalen Untersuchung (z.B. Knuth) von algorithmen können in der Tat für einen kompetenten Mechaniker - aber das ist eigentlich der einfache Teil. Was der Lehrling von heute anstreben sollten, ist die Kunst der Bereich, weil das ist, wo die Menschen wirklich zu Ihrem besten.
Wohl die beste Lösung, die ich denken kann, ist nur die Anmeldung auf Websites wie codeguru.com und suchen für Praxen oder join-Programmierer-Gruppen in Ihrer Nähe. Auf diese Weise können Sie erwerben sowohl expirance und wissen, dass Sie in Zukunft brauchen wird.
Ich nicht geben Ihnen zahlreiche "Mach-das-tun-was" - Vorschläge, aber ein paar Dinge:
Haben Sie gelernt, Python alle von sich selbst, ein großes Lob,esp, wenn niemand um dich herum ist, dies zu tun.So haben Sie bereits etwas zu fühlen, gut über. Halten, die Nutzung, das Zeug wächst Ihre Wissensbasis.
Sagte Sie, Sie wurden 13. Python könnte Bücher haben, gerecht zu werden, um Ihr Niveau der Komplexität, aber ganz bestimmt nicht algorithmen. Algorithmen sind eine ernste Angelegenheit. Es gibt ein gutes Niveau der Mathematik in und um die Domäne von algorithmen. Und es gibt keine Möglichkeit zu sugarcoat, der. Hinzu kommt, dass Bücher, die auf algorithmen sind in der Industrie weit bekannt als schwer zu knacken Bücher. Fragen Sie Bill Gates und Don Knuth.
Also ich würde sagen, wenn Sie erfahren möchten, Computern, weil Sie Liebe zu lernen, und die Sehnsucht nach wissen, dann würde ich vorschlagen, auf der einen Seite,
Gleiche mit algos. Vorbereitet werden zum Besuch dieser domain zwei-oder dreimal in den nächsten fünf Jahren. Jedes mal, wenn Sie die vorhandene Wissensbasis wird ein besseres Kompliment yourpursuit von algorithmen.
Bis dann,
Soham