Ich habe vor etwas mehr als einem Jahr das Programmieren aufgegeben, als ich immer wieder gegen diese Wand stieß. Ich besuche das Thema erneut, weil ich eine grundlegende Android-Anwendung erstellen möchte. Aber ich habe das Gefühl, dass mein begrenztes Wissen nicht ausreichen wird.
Hier ist mein Problem.
Ich habe ein paar Bücher gelesen und Video-Tutorials zu C # / Java angesehen, bin Beispielen gefolgt und habe das Buch fertiggestellt. Am Ende scheinen sie mich immer verblüfft zu lassen, was ich als nächstes tun soll.
Was für ein Mittelwert ist, dass sie Sie von Ihrer grundlegenden "Hallo Welt" -Anwendung bis hin zu Ifs und Arrays unterrichten und dann anscheinend erwarten, dass Sie wissen, wie Sie in die Welt des Codierens eintauchen und alles erstellen können.
Vermisse ich hier etwas? Ich weiß, dass dies die Bausteine aller Programme sind, aber Bücher, die ich lese, zeigen mir nie wirklich, was ich als nächstes tun soll.
Ich nehme an, die einfache Antwort wäre, mit dem Codieren zu beginnen, aber wo? Ich habe zum Beispiel "Head First Java" gelesen. Bis zu dem Teil, in dem sie Ihnen sagen, dass Sie alles, was Sie gelernt haben, nehmen und ein Hunderennspiel erstellen ...
"Versuchen Sie nicht zu betrügen und schauen Sie sich den bereitgestellten Quellcode an. Sie sollten dies jetzt tun können." _ Das ist kein genaues Zitat, aber im Grunde wurde mir das gesagt .......
Vor einer halben Stunde haben sie nur erklärt, wie man Arrays macht. Ohne Theorie soll ich dann ein funktionierendes Spiel erstellen?
Der Grund, warum ich das frage, ist, dass ich befürchte, dass dies alles ist, was ich wissen sollte, um zumindest mit dem Codieren zu beginnen, aber es scheint, als hätte ich einen kleinen Werkzeugkasten bekommen und den Auftrag erhalten, einen Wolkenkratzer zu bauen.
Vielen Dank für jeden Rat
quelle
Antworten:
Nicht wirklich. Sie sind nicht. Die Bausteine aller Programme sind Abstraktion und Wiederverwendung. Viele Programmiersprachen nicht einmal haben Arrays oder
if
s oder Schleifen.Es gibt einige großartige Bücher, in denen Sie lernen, wie man programmiert und nicht wie eine bestimmte Programmiersprache funktioniert. Dies scheinen die Bücher zu sein, die Sie gelesen haben.
How to Design Programs aka HtDP ist ein solches Buch. Es zeigt Ihnen, wie Sie Programme entwerfen. Dazu erhalten Sie Rezepte, mit denen Sie Probleme analysieren, lösen, in Algorithmen und weiter in Arbeitsprogramme umwandeln können.
Beachten Sie, dass "Rezept" im Grunde ein anderes Wort für "Programm" ist. Mit anderen Worten, das Buch lehrt Sie Programme, die Menschen in ihren Köpfen ausführen können, um Programme zu generieren, die von Computern ausgeführt werden sollen. Wie cool ist das? :-)
Die Autoren arbeiten derzeit an einem Entwurf für eine zweite Ausgabe von HtDP , den Sie möglicherweise anstelle der ersten Ausgabe lesen möchten. Das Material zur imperativen Programmierung wurde entfernt und wird im noch ungeschriebenen zweiten Band How to Design Components behandelt . Sie können jedoch die fehlenden Kapitel aus der ersten Ausgabe lesen.
Beachten Sie, dass HtDP keine Programmierkenntnisse voraussetzt und sich an Schüler richtet. Aber lassen Sie sich davon nicht aufhalten: Es bedeutet nur, dass Sie wahrscheinlich einige frühe Kapitel schneller beenden können, aber ich glaube nicht, dass Sie sich langweilen werden.
Concrete Abstractions ist auch eine gute Lektüre entlang ähnlicher Adern. Wie bei HtDP werden keine Programmierkenntnisse vorausgesetzt.
Ein weiteres Buch, das Sie vielleicht erwähnt hören, ist Struktur und Interpretation von Computerprogrammen, auch bekannt als SICP. Es ist eines der größten Programmierbücher, die jemals geschrieben wurden, und es setzt wiederum keine Programmierkenntnisse voraus.
Es ist jedoch darauf ausgerichtet, Neulinge zu vervollständigen, die am MIT studieren . Und so, während es keine Programmierkenntnisse übernimmt, ist es nicht übernehmen ziemlich viel Domain Wissen, zB in den Bereichen Elektrotechnik, Physik und Mathematik. Hinweis: Diese haben nichts mit den gelehrten Konzepten zu tun. Sie werden nur benötigt, um die Übungen und Beispiele zu verstehen . Daher ist es möglicherweise besser, zuerst HtDP oder Concrete Abstractions und dann SICP zu lesen.
quelle
if
Aussage oder irgendeine Art von gehörtloop
: Ohne sie wäre es nicht vollständig .loop
Anweisungen und sie sind vollständig.Nun, Sie befinden sich nicht in einer einzigartigen Situation. Die meisten Bücher der Anfängerbücher in Programmiersprache konzentrieren sich eher auf die Grundbausteine der Sprache, und das ist gut so. Wie auch immer, am Ende befinden wir uns in einer Situation, in der wir jedes einzelne Konstrukt gelernt haben, das die Sprache zu bieten hat, dies aber nicht anwenden können, um einige praktische Probleme zu lösen. Kurz gesagt, die Lücke zwischen Textbeispielen und praktischen Programmen kann nur geschlossen werden, wenn Sie versuchen, mit dem Code zu spielen (wie Telastyn sagte). Hier ist, was ich im Allgemeinen mache, während ich einige neue Dinge lerne:
Am Ende dreht sich alles um Praxis und Forschung, die Ihnen helfen, Ihre Programmierkenntnisse zu verbessern und Sie letztendlich zu einem Architekten vieler Wolkenkratzer zu machen.
quelle
Siehe dies für C #. Es ist sehr vollständig: http://www.programmersheaven.com/ebooks/csharp_ebook.pdf Ich habe das vor einem halben Jahr selbst benutzt. Ich benutze den # Developer Compiler damit für die Beispiele. Ich kann Ihnen mit Java nicht viel helfen, weil ich es kaum jemals benutzt habe.
Wenn es um das Programmieren geht, merken viele Leute nicht, dass Sie normalerweise ein zusätzliches SDK oder Framework für das, was Sie entwerfen, verwenden. Erwarten Sie also nicht, sofort von Java oder C # zur Telefonprogrammierung zu wechseln, da Sie wahrscheinlich ein gutes Zwischenframework benötigen und die Lernkurven für diese genauso lästig sein können wie die Lernkurven für die Programmiersprachen selbst. Obwohl das von mir veröffentlichte C # -Tutorial nur C # behandelt, werden viele der darin enthaltenen Konzepte in anderen objektorientierten Sprachen wie Java angezeigt.
Bearbeiten: Das von Ihnen beschriebene Szenario ist leider der Weg, dem viele Tutorials folgen. Sie müssen einem solchen Tutorial nicht folgen, und wenn es gegen Ihre Lernmethoden funktioniert, ist es wahrscheinlich am besten, ein anderes zu versuchen (ich kenne keines, aber Google tut es wahrscheinlich). Um sicherzugehen, überprüfen Sie, ob der Autor des von Ihnen beschriebenen Buches den Code zeilenweise erklärt hat. Mach dir keine Sorgen darüber, wie schlau du bist, nur ein Wunderkind kann direkt von einem Buch zu einem funktionierenden Spiel wechseln. Denken Sie daran, Tutorials sind keineswegs das Standardmaß für Ihre Fähigkeiten. Entscheiden Sie sich also für das, was Sie am besten lehren, und lassen Sie sich nicht entmutigen!
quelle
Ja, das sollte ausreichen, um super einfache Programme zu erstellen. An diesem Punkt versuchen Sie, ein etwas komplexeres Programm zu erstellen, als Sie es in den Büchern getan haben. Wenn Sie etwas Bestimmtes tun müssen und selbst bei einigen Arbeiten nicht wissen, wie es geht, suchen Sie im Internet oder fragen einen Lehrer / Mentor. Dies führt zu erweiterten Funktionen (und ziemlich oft zu einer Sackgasse, da Sie unwissentlich etwas ausgewählt haben, das viel komplexer ist als das, was Sie tun können).
Kein Buch wird Ihnen beibringen, wie man Probleme löst.
Kein Buch wird erklären, wie man Programme entwirft - das geht mit Übung einher. Kein Buch wird Ihnen beibringen, wie man eine nicht triviale Anwendung macht - es gibt einfach zu viele Nuancen; Sie würden lernen, wie man diese Implementierung erstellt, nicht solche Dinge.
Der beste Weg, um an diesem Punkt zu lernen, ist zu versuchen. Mit dem Code herumspielen, um etwas zu erstellen. So wie Künstler oft anfangen, kleine Leckerbissen zu kritzeln, die immer raffinierter werden und gut aussehen, brauchen auch Programmierer diesen explorativen Fortschritt.
quelle
Ich kann mich nicht wirklich erinnern, ob ich ein Buch verwendet habe, um in die Programmierung einzusteigen, aber ich denke, damals war es eher ein Syntax-Referenzhandbuch als ein Tutorial-Buch. Es brachte mir bei, was die Programmiersprache kann, aber nicht, wie man damit eine echte Anwendung erstellt.
Zum Glück gab es einige Beispiele in dem Buch, die ich eingegeben habe (ja, damals keine herunterladbaren Quellcode-Beispiele) und dann versucht habe, herauszufinden, wie es funktioniert. Das ist nicht der optimale Weg, um Programmieren zu lernen, aber für mich hat es damals Spaß gemacht.
Was ich empfehlen würde, ist, dass Sie sich ein Ziel wie " Ich möchte eine Javascript-Anwendung erstellen, die einen Sprungkreis zeichnet " setzen und dann Ihr bereits erworbenes Wissen verwenden, um alles andere in der Sprache SDKs / Dokumentation und / oder hier zu starten und nachzuschlagen auf SO.
Das ist der Ansatz, den ich verwende, wenn ich versuche, in eine neue Sprache zu springen und meine ersten Schritte zu lernen. Die meisten Bücher, die ich in den letzten Tagen gelesen habe, waren nicht zufrieden, weil ich das gleiche Gefühl hatte , etwas Wichtiges zu verpassen . Glücklicherweise haben wir jetzt das Internet. Unabhängig davon, welche Sprache Sie lernen möchten, können Sie im Internet einen Beispielquellcode finden und diesen verwenden, um Ihr Lernen fortzusetzen.
Bearbeiten Natürlich sind einige allgemeinere Bücher, in denen Sie lernen, wie Sie eine Anwendung entwerfen oder welcher Prozess (SCRUM, XP, V-Modell) zu befolgen ist, eine gute Ergänzung zu den reinen Sprachkenntnissen.
quelle
Ich stimme Jörg zu, dass Sie auch einige allgemeine Bücher über die Konzepte der Programmierung lesen sollten, anstatt zu diesem Zeitpunkt zu viele Details über eine bestimmte Sprache zu lernen. Das Buch Wie man Programme entwirft , wird in diesem Kurs als Referenz verwendet , was für Sie von Interesse sein könnte.
Andernfalls spricht ein anderes Tool, das andere nicht erwähnt haben , viel mit anderen Entwicklern . Ich erinnere mich, dass für mich eine der effektivsten Möglichkeiten zum Erlernen des Programmierens darin bestand, viele Stunden mit Kollegen oder anderen Programmierern über Aspekte der Programmierung, Programmiersprachen, Techniken oder konkrete Probleme zu diskutieren, mit denen ich in diesem bestimmten Moment konfrontiert war. Die mündliche Weitergabe von Wissen kann immer noch eines der effektivsten Mittel sein, um neue Fähigkeiten zu erlernen.
quelle
Ich würde vorschlagen, Open Source-Projekte zu finden und diese in persönliche Sandboxen umzuwandeln. Ändern Sie vorhandene Verhaltensweisen, fügen Sie neue Verhaltensweisen hinzu und löschen Sie auch einige. Spielen Sie herum, setzen Sie Ihre eigenen Ideen um und "Was wäre, wenn ich das versuchen würde".
Ich befürworte nicht, dass Sie ein anderes Open-Source-Projekt konvertieren und es für sich beanspruchen.
Ich sage, schauen Sie sich andere Arbeitsprojekte an, um sich selbst beizubringen, wie Sie zu den nächsten Schritten gelangen. Es stehen viele Websites mit OpenSource-Code zum Herunterladen zur Verfügung. Hier sind einige, die mir in den Sinn kommen: CodePlex CodeProject
quelle
Das ist das Leben der Programmierer. Sie kennen keine Technologie, entwickeln aber eine „Hallo Welt“ und werden zum Experten. In Unternehmen (im wirklichen Leben) funktioniert es so. Viel Glück
quelle