ubuntuusers.de

Programmieren lernen

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

jojojojo

Anmeldungsdatum:
13. Juni 2013

Beiträge: 65

Hallo, ich würde gerne richtig Programmieren lernen. Ich meine damit keine spezifische Sprache sondern die generellen Grundlagen. Also Projektvorbereitung, Projektverwaltung (Versionskontrolle usw), Dokumentation, eben alles, was neben dem eigentlichen "Akt" der Programmierung noch dazu gehört.

Und dann natürlich will ich richtig Programmieren lernen. Ich kann zwar die Grundlagen, also Variablen, Schleifen usw und OOP hab ich so halbwegs verstanden, verschenke aber vermutlich viel Potential der Sprachen. Es gibt so viele Sachen wie Lambda, Map (z.B. in Python), Closures und viele andere "moderne" Programmierfunktionen, die ich zwar schon gesehen habe, die ich aber nicht richtig einsetzen kann.

Wie kann ich mir das Wissen aneignen, ohne gleich ein Informatik Studium machen zu müssen? Bücher haben mir bisher nur wenig geholfen. Entweder habe ich es nur halb verstanden oder die Themen wurden erst gar nicht behandelt.

ubuntu-windows

Anmeldungsdatum:
27. Juni 2013

Beiträge: 35

Wenn du richtig Programmieren lernen willst und ein paar Grundlagen schon beherschst, würde ich mich an deiner Stelle für eine Sprache entscheiden (z.B. Java/C++) und dir diese genauer anschauen. Fürs Lernen würd ich schon mir ein Buch kaufen, und/oder im Internet halt darüber informieren. Wenn du dann etwas spezifisches (im Buch) nicht verstehst, kannst du dann eine konkrete Frage hier im Forum stellen, die dir dann sicherlich auch schnell beantwortet wird.

Aber "allgemein Programmieren zu lernen", ohne dich irgendwo genauer einzuarbeiten dürfte sich als schwierig erweisen 😉

Mfg ubuntu-windows

stfischr Team-Icon

Avatar von stfischr

Anmeldungsdatum:
1. März 2007

Beiträge: 19197

Hi.

Programmieren lernt man am besten, wenn man es macht. Überlege dir einfach ein Projekt, dann erstellst du dir ein Grundkonzept, wie du es gedenkst zu verwirklichen, dann legst du dir ein git-repo an und los gehts. Doku des für Programmierer interessanten Teils legt man üblicherweise im Quelltext an: so kann das aussehen. Für den Anwender machst du dann ne Manpage oder ähnliches.

Python ist sicher ne schöne Sprache um in diese Welt einzutauchen.

Ruudsy

Anmeldungsdatum:
1. Mai 2012

Beiträge: 328

Mir hat vor ienigen Jahren der Einstieg in die Programmierung Python sehr geholfen, auch weil man dazu gezwungen wird den Code ordentlich zu strukturieren. Tutorials gibt es viele, mit ein wenig Englischkenntnissen ist das ein möglicher Einstiegspunkt: http://docs.python.org/2/tutorial/

Ein Buch als Nachschlagewerk ist nie schlecht, auch enn man kaum Vollständigkeit erwarten kann, dem sollte man sich bewusst sein.

Das Drumherum kommt dann von alleine, wenn man sich selbst ein Projekt ausdenkt und auch durchziehen möchte 😉

jojojojo

(Themenstarter)

Anmeldungsdatum:
13. Juni 2013

Beiträge: 65

Programmieren kann ich, auch Python. Aber ich hab zu C64 Zeiten programmieren gelernt, deshalb sind meine Kenntnisse auf, sagen wir, etwas über C Niveau.

Ich bekomme das schon hin, was ich programmieren möchte, aber meistens viel zu umständlich. Gerade das Potential von Python kann ich nicht richtig nutzen. Ich programmiere vieles umständlich von Hand, obwohl man es elegant in ein paar Zeilen Code erledigen könnte.

Benno-007

Anmeldungsdatum:
28. August 2007

Beiträge: 29240

Wohnort: Germany

Ich programmiere vieles umständlich von Hand, obwohl man es elegant in ein paar Zeilen Code erledigen könnte.

Ist doch erst mal völlig egal - damit bist du schon mal wesentlich weiter als der Großteil der Bevölkerung. Wie stfischr schon sagte:

Programmieren lernt man am besten, wenn man es macht.

Dann wenigstens eine help-Ausgabe programmieren und den Quelltext kommentieren. Das ganze Gedöns mit git usw. kannst du dir holen, sobald du es brauchst. Für die eigene "Küchen-"Programmierung braucht man den ganzen Rummel drumrum nicht unbedingt. Der bläht letztlich auch nur auf, weil du dich wieder in neue Dinge einarbeiten musst. Wenn man's braucht, macht man's. Also einfach machen. Und wenn du's nicht vermisst, brauchst du es auch nicht wirklich.

stfischr Team-Icon

Avatar von stfischr

Anmeldungsdatum:
1. März 2007

Beiträge: 19197

jojojojo schrieb:

Gerade das Potential von Python kann ich nicht richtig nutzen. Ich programmiere vieles umständlich von Hand, obwohl man es elegant in ein paar Zeilen Code erledigen könnte.

Dann schlage ich dir vor, arbeite bei einem OpenSource-Projekt mit und bereinige dort Fehler etc. Da bist du gezwungen viel Quellcode von anderen zu lesen und zu verstehen und lernst nebenbei diverse Funktionen/Möglichkeiten der jeweiligen Programmiersprache.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

jojojojo schrieb:

Wie kann ich mir das Wissen aneignen, ohne gleich ein Informatik Studium machen zu müssen?

Im Informatik Studium lernst du das eigentlich gar nicht...

Man kann sich auch verkünsteln mit elegantem Code... nicht jeder Einzeiler in Python ist besser Stil als es auszuschreiben, und es gibt immer eine bessere Lösung aber irgendwann muß man sich einfach zufrieden geben, solange es funktioniert.

Wenn du Kniffe lernen willst, im IRC bekommt man einige davon mit (FreeNode #python), wenn man da nebenbei mitliest. Auch kann man dort Fragen stellen (wie mache ich am besten dieses und jenes) und gute Antworten bekommen.

Ansonsten: Fremden Code lesen, und fremde Leute eigenen Code lesen lassen.

Solange du nicht den Fehler machst dir einzubilden ein genialer Programmierer zu sein und alles besser zu wissen - das sind meistens die Leute die nicht weiterkommen.

TraumFlug

Avatar von TraumFlug

Anmeldungsdatum:
16. Juli 2009

Beiträge: 999

Wohnort: zwischen den ohren

Ich denke es geht dem T.E. eher um die Standardmethodik, übliche Verfahrensweisen, Planung und Aufbau eines Projektes, die geläufigen Bezeichnungen für Techniken, ...eben was in der Industrie, Arbeitswelt, und auch Opensource-Projekten so an Methodik etabliert ist.

Mir ist auch aufgefallen, dass man durch reines Studium fremder Quelltexte, oder kreatives erforschen der Möglichkeiten bei'm selbst coden nicht wirklich ein Gefühl für diese Techniken entwickeln kann, und sie wenn man sie schon halbwegs kennt und benutzen kann auch nicht bei den Namen nennen kann, die andere im Studium brav auswendig gelernt haben; auch wenn man sicher so schon mal einiges an Niveau dazugewinnen kann - und vor allem eigenständiges und kreatives Problemlösen und Analysieren. Arbeitet man später in einem Team mit, fällt man denke ich schon unangenehm auf, wenn man die richtige Taxonomie und wichtige Arbeitsschritte, auch in der Vorarbeit, schlicht noch gar nicht kennt.

Ich hätte auch grosses Interesse an Büchern/Texten, die diese Thematiken vertiefen und gut präsentiert aufbereiten, möglichst frei und kostenlos verfügbare Quellen. Man kann zwar das eine oder andere aus einzelnen Artikeln aufschnappen, aber mir fehlt auch eine gute, wenn auch grobe, Übersicht.

jojojojo

(Themenstarter)

Anmeldungsdatum:
13. Juni 2013

Beiträge: 65

@TraumFlug: genau das trifft es. Man kann einfach nicht alles bei anderen "anschauen". Manches bedarf einfach einer Erklärung.

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2133

Wohnort: Gelsenkirchen

@jojojojo: Wenn ich dich richtig verstehe, dann suchst du im Grunde etwas zum Thema "Softwaretechnik". Recherchiere doch einfach mal im Internet oder ggf in Bibliotheken / Buchhandlungen zu diesem Begriff. Da findet man zahlreiche Treffer und muss sich nur noch das heraussuchen, was einem vom Schreibstil und der behandelten Thematik (also wo der Fokus gelegt ist) am Besten gefällt. Spezialthemen wie "Versionsverwaltung" oder "Entwicklungsumgebung" kann man dann bei Bedarf später noch genauer behandeln, nachdem man einen groben Überblick erhalten hat.

Und bezüglich der angesprochenen Defizite mit Python: Es dauert nunmal eine Weile bis man in einer Programmiersprache einigermaßen gute Programme schreiben kann. Man muss sich intensiv mit der Standardbibliothek der Sprache und den vorgesehenen Vorgehensweisen in dieser Sprache vertraut machen. Du könntest hierzu das offizielle Python-Tutorial (deutsche Version) durcharbeiten und bei Interesse / Bedarf im deutschen Python-Forum mitlesen bzw -posten, um mehr über die möglichst pythonische Umsetzung von Problemlösungen zu erfahren (klingt schön verklausuliert 😀).

elostio

Avatar von elostio

Anmeldungsdatum:
2. Februar 2006

Beiträge: 424

Wohnort: Guayaquil

Ad Git: Ein Buch welches mir sehr gut gefällt ist folgendes: http://ftp.newartisans.com/pub/git.from.bottom.up.pdf.

Ad Techniken wie Lambda, Map: Lerne Haskell: http://learnyouahaskell.com/

Edit: Sorry hab erst jetzt gelesen dass dir Bücher bis jetzt nicht geholfen haben ☹ . Ich kann dir aber trotzdem empfehlen eine Sprache wie Haskell zu lernen. Das Wissen das du dir aneignest wird dir auch bei anderen Sprachen helfen.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

jojojojo schrieb:

Ich bekomme das schon hin, was ich programmieren möchte, aber meistens viel zu umständlich. Gerade das Potential von Python kann ich nicht richtig nutzen. Ich programmiere vieles umständlich von Hand, obwohl man es elegant in ein paar Zeilen Code erledigen könnte.

Dann stell' doch den Code im deutschen Python-Forum (http://www.python-forum.de) zur Diskussion. Da gibt's eine Subforum für Hilfe zu div. Themen, eine Subforum für Codeschnipsel und eines Namens "Showcase" für komplette Programme / Module. Und jede Menge Leute, die dir sagen, was man anders / besser machen könnte.

Gruß, noisefloor

jojojojo

(Themenstarter)

Anmeldungsdatum:
13. Juni 2013

Beiträge: 65

Danke, werde ich bei Gelegenheit machen. Muss aber erst mal Code zum zeigen haben ☺

jojojojo

(Themenstarter)

Anmeldungsdatum:
13. Juni 2013

Beiträge: 65

Ich lese gerade "Dive into Python 3". Das verbessert mein Verständnis für Closures, Iteratoren, Generatoren usw doch erheblich. Bis ich das verinnerlicht habe muss ich es aber glaube ich fünf mal lesen und zehn mal selbst programmiert haben 😉

*KnotenImKopf*

Antworten |