Programmieren effektiv lernen?

LinuxRoot

Cadet 1st Year
Registriert
März 2018
Beiträge
8
Guten Tag,
ich bin LinuxRoot und möchte beherrsche derzeit HTML, CSS, das Betriebssystem Linux und widme mich derzeit PHP.
Mein Problem ist, dass ich mich generell für Programmiersprachen interessiere, jedoch habe ich beim Lernen dieser Programmiersprachen Schwierigkeiten. Mein Fokus liegt hierbei auf Python und Java. Ich habe bereits verschiedenste Methoden probiert diese Programmiersprachen zu erlernen, ob Videos im deutschen, wie auch englischen Raum. Und natürlich das klassiche Anlesen. Ich kann es mir einfach nicht einprägen. Anders bei Systemen wie Linux, mit welchen ich über Jahre Serverseitig arbeite. Meine Konzentration auf das Lernen dieser Sprachen, macht mich ganz wirre, nur es möchte nicht in meinen Kopf hinein.

Meine Frage nun ist, ob jemand eine Idee hat oder sogar sich bereit erklärt mir Unterricht in einer dieser Sprachen zu geben. Für die zweite Variante würde ich TeamSpeak3 als Kommunikationsplattform vorschlagen.

Mit freundlichen Grüßen,
LinuxRoot
 
Jeder lernt anders. Wenn es dir die "akademischen" Beispiele aus Büchern nicht helfen, würde ich einen anderen Ansatz vorschlagen:

Such dir ein kleines Projekt, dass dich interessiert und/oder dir im (Arbeits-)Alltag hilft und versuch das umzusetzen. Und dann die Lücken an denen du hängst über google bzw. den Büchern zu schließen.
 
Einprägen geht nur über Wiederholung. Programmieren lernen bedeutet nicht, die Theorie dahinter zu lernen. Das muss man zwar auch, aber das reicht nicht. Du musst selber Code schreiben um es zu lernen. Und einen anderen Weg gibt es auch nicht.
Wenn du in Python zum 10. Mal eine generator function schreibst dann wirst du sie beim 11. Mal einfach so runterschreiben können.
 
Hallo,
erstmal Danke für eure informativen Beiträge.
Könnt ihr mir einen Anschlag geben, welches Projekt ich denn mal programmieren kann?

Mit freundlichen Grüßen,
LinuxRoot
 
beim programmieren gilt: learning by doing.

such dir ein Projekt, das du in Python umsetzten möchtest und setz dich dran. Klar musst du dann am Anfang viel nachschlagen und dir einiges durch Tutorials nachschlagen.
Richtig "lernen" wirst du die Sprache erst, nachdem du mehrere Projekte gemacht hast und dann beim vllt. 6 Projekt nicht mehr viel nachgucken musst. Das funktioniert aber nur, wenn dazwischen nicht allzu lange Pausen liegen, sonst vergisst man das meiste wieder.
 
Wenn du bislang mit PHP, also einer prozeduralen Skriptsprache, programmiert hast, wirst du ja schon grundlegende Dinge wie Schleifen, Bedingungen etc. kennengelernt haben. Der größte gedankliche Sprung wird nun vermutlich sein, vom prozeduralen Ansatz weg und hin zur Objektorientierung zu kommen.
Vielleicht wäre es kein schlechter Ansatz, mit Java und der Entwicklungsumgebung BlueJ einzusteigen, das auch in der Schule verwendet wird. BlueJ hat den Vorzug, dass es Objekte visualisiert und man damit interagieren kann, ohne sich eine entsprechende grafische Oberfläche programmieren zu müssen. Entsprechende Literatur gibt es ebenfalls…

Gruß Jens
 
Hallo LinuxRoot,

Programmieren lernen hat schon eine gewisse Komplexität.
Es ist vergleichbar mit einer neuen Fremdsprache, man muss den Wortschatz beherrschen sowie Grammatik, Satzbau usw.

Es gibt Menschen die lernen Sprachen schnell und manche tuen sich einfach schwer, aber ob jetzt eine Programmiersprache oder eine Fremdsprache, der Aufwand ist bei beiden groß, bloß das eine Programmiersprache keine Fehler verzeiht.

Viele gehen an das Thema Programmieren zu optimistisch ran, nicht umsonst gibt es dafür Studiengänge (software engineering oder eine Ausbildung).

Wie die meisten schon gesagt haben, viel selbst Programmieren und lesen, lesen, lesen.
Die Welt der Programmierung ist mittlerweile so riesig, da muss man schon eine gewisse Hartnäckigkeit mitbringen.

Das Problem das dein gelerntes nicht hängen bleibt ist normal und am Anfang oft üblich, weil man doch recht schnell erschlagen wird mit Wissen-- > da mussten aber alle Programmiere bis jetzt durch...

Bleib einfach am Ball.. In paar Monate wirst dann sehen das zum Anfang einen riesen Sprung gemacht hast, aber dir wird dann auch schnell bewusst, wie viel dir noch fehlt..:lol:
 
Ich habe mir übrigens relativ frühzeitig angewöhnt, mir verschiedene Codeschnipsel samt kurzer Erklärung in Quiver zu notieren und zu verschlagworten (analoge Programme gibt es sicher auch für andere Betriebssysteme als MacOS), da ich mir auch längst nicht alles merken kann. Auf die Weise finde ich schnell alles wieder, was ich mal gemacht, aber nicht mehr im Kopf habe.

Gruß Jens
 
Quiver sieht nach einer tollen Möglichkeit aus, sich code snippets zu machen.

Aber für Windows kenne ich leider kein gutes Notizprogramm, welches Code entsprechend darstellen kann.

Kennt ihr etwas ähnliches wie Quiver für Windows??
 
Hallo nochmal von mir,
danke für alle hilfreichen Antworten auf diesen Beitrag.
Das habe ich echt nicht erwartet. Ich habe mir den Online-Kurs von dem ich von Wilson_Fisk aufmerksam gemacht wurde angeschaut und auch angefangen. Er hat mir bis jetzt sehr weiter geholfen, bin nun schon bei den Listen(Arrays) angekommen, und wie man mit diesen rechnen kann, mittels einer for-Schleife. Ist sehr ausführlich und einfach erklärt. Dieser Kurs hat meine Richtung in Richtung Programmierung und speziell in Richtung Python zu gehen, gefestigt.

Danke nochmal speziell an dich dafür. :)
Außerdem werde ich mir das mit den Code-Snippets sowie dem "dran bleiben" merken.

Einen schönen Abend wünsche ich jedem noch.

Mit freundlichen Grüßen,
LinuxRoot
 
Nur mal so als Anmerkung: PHP ist schon seit gefühlten 18 Jahren (PHP 4.0 ab 2000) und seit reellen 14 Jahren (PHP 5 ab 2004) objektorientiert.
Prinzipiell kann man auch in Java prozedural programmieren.
UND prozedurale Programmierung ist nicht automatisch schlechte Programmierung, es kommt (wie immer) auf die konkreten Anforderungen drauf an.

Nicht, dass man Einsteigern in die schöne Welt der Programmierung hier gleich von vornherein Blödsinn vor dem Herrn zum niederknien erzählt.
 
LinuxRoot schrieb:
Anders bei Systemen wie Linux, mit welchen ich über Jahre Serverseitig arbeite.

Das ist der Schlüssel. Programmieren lernt man, indem man über Jahre hinweg programmiert, um etwas zu bewirken, was wichtig ist. Das ist auch der Grund, warum die allermeisten Leute nicht programmieren, nicht programmieren brauchen, nicht programmieren wollen und nicht programmieren können.

Wenn Du Server administrierst, dann müßtest Du doch bereits mit bash oder Perl programmiert haben?
 
Ob du mir es glaubst, oder nicht.
Ich habe bisher meine automatisierten Prozesse nicht mit cronjobs, sondern über PHP-Scripts laufen gehabt.
Siehe die Funktion shell_exec(). Und dazu for-Schleife, oder while-Schleife und schwups hat man das gleich Ergebnis wie mit einem Shell-Script. Natürlich muss man den PHP-Skript ausführen, wenn dieser jedoch 10 verschiedene Prozesse auf 10 verschiedenen Servern startet ist es sehr hilfreich. ;)

Mit freundlichen Grüßen,
LinuxRoot
 
LinuxRoot schrieb:
... über PHP-Scripts laufen gehabt. Siehe die Funktion shell_exec(). Und dazu for-Schleife, oder while-Schleife und schwups hat man das gleich Ergebnis wie mit einem Shell-Script
Dann programmierst Du doch ;) Wo ist das Problem?
Bezüglich des Eingangsposts: "Mein Fokus liegt hierbei auf Python und Java". Python und Java sind beides, meiner Meinung nach weder besonders schöne, noch besonders prägnante Sprachen. Beide Sprachen haben sich auf eigentümliche Konventionen festgelegt, die für mich selber auch unattraktiv sind. Sowohl mit Python als auch mit Java kannst Du mich verjagen. Für Java habe ich kein Anwendungsgebiet, ich nehme C/C++ für meine Aufgaben und Python, naja. Ich kann zwar Python etwas, aber ehe ich mit dem Ärgern über eine Beschränkung von Python fertig bin, habe ich den Kram schnell in Perl geschrieben. Insofern brauche ich kein Python - und wenn ich ein fertiges Pythonskript mit Fehlern vorgesetzt bekomme, ist nicht unbedingt die Sprache sondern die Logik das Problem. Ausserdem finde ich Python ziemlich unästhetisch (und Perl sehr hübsch, aber das hat wohl mit der "Gewöhnung" zu tun).
Natürlich muss man den PHP-Skript ausführen, wenn dieser jedoch 10 verschiedene Prozesse auf 10 verschiedenen Servern startet ist es sehr hilfreich.
Code:
for i in `seq -w 1 10`; do rexec -lLinuxRoot -pPasswort Server${i} "/sbin/reboot"; done
 
Zurück
Oben