Lernumfang und Projektumfang

mschrak

Commander
Registriert
Sep. 2009
Beiträge
2.199
Hallo zusammen,

ich bin ziemlicher Programmieranfänger und möchte gerne ein Projekt realisieren. Ich weiss, dass es Software gibt, die das macht, was ich programmieren will, möchte es aber eben auch als Einstieg ins Programmieren für mich verstehen.
Zuvor möchte ich aber gerne herausfinden, ob ich mich damit (insbesondere zeitlich) übernehme.
Umgesetzt werden soll das Ganze auf einem Linux-Rechner (was aber egal sein dürfte) mit Python und MariaDB(LAMP).

Herauskommen soll ein Programm mit einem GUI, in dem ich in mehreren Feldern Werte eingeben kann, die dann nach Klick auf "Absenden" als Datensatz in meine DB geschrieben werden. Das wars.

Meine Fragen:
1. Ist das aus Eurer Sicht ein großes oder eher ein kleines Projekt?
2. Wie gehe ich am Schlauesten ran?
3. Ist Python für so etwas geeignet? (Meines Wissens gibt es ja DB-Anbindungsmodule, die ich aber bislang nur für MySQL gefunden habe, sowie rel. einfach zu erlernende und zu nutzende GUI-Bausteine).
4. Kennt Ihr für diesen Zweck Tutorials, die mir helfen könnten?

Über Anregungen würde ich mich sehr freuen.

Danke im Voraus,

Martin
 
Für GUI finde ich AngularJS sehr gut.
DB ist MySQL oder MariaDB ganz vorne mit bei.

Um das alles zu verknüpfen kannst du nodeJS oder auch nen PHP Server nutzen.
 
Hallo,

ich denke, dass dein Vorhaben eher zu den kleineren Projekten zuzuordnen ist. Python kenn ich leider nicht, hatte bisher immer mit PHP gearbeitet - und dort ist das relativ zügig erledigt. Kann mir vorstellen, dass Python da ähnlich ist.
 
Jedes Web-App Tutorial dürfte dir helfen. Schau Dir zum Beispiel mal Flask an.

Alternativ gibt es auch Qt für Python. Dafür dürfte es auch jede Menge Tutorials geben.

Insgesamt ist das ein eher kleines Projekt, man muss sich lediglich ein paar Technologien anschauen und sich in diese einarbeiten.
 
Wenn du mit Pyhton Webanwendungen schreiben willst brauchst du ein passendes Framework dafür, z.B. Django dürfte das bekannteste sein.

Wenn es dir nicht speziell um Python geht sondern um Programmierung an sich so lässt sich das relativ einfach mit PHP realisieren. Damit kannst du genauso Eingabefelder definieren und eine Anbindung an mysql bzw. mariadb umsetzen.
 
MariaDB ist im Prinzip MySQL. Wie alles was sich Oracle unter den Nagel reißt wurde es geforkt.
 
Solange du es ohne ein Framework wie Django machst würde ich sagen ist es ein nettes kleines und interessantes Projekt wo man durchaus wichtige Dinge lernen kann, wenn man ein wenig herum experimentiert.

Einstiegspunkt könnte hier zum Beispiel sein: https://docs.python.org/2/howto/webservers.html


Wo du aber von GUI-Bausteinen sprichst. Wenn du ein Framework wie Django verwenden willst, dann würde ich das Vorhaben nicht als Projekt bezeichnen, sondern 'erste Schritte mit Python und Django gehen' nennen.

Beides hat gewiss seine eigene Daseinsberechtigung.
 
Ein gutes Anfängerprojekt. Als Frontend würde ich einfach html nehmen und mit Python die übermittelten Formulardaten in die Datenbank prügeln. Die GUI mit Python zu machen ist zwar nicht so praxisorientiert, aber vielleicht eine ganz gute Übung.
Für Python und SQL hier ein gutes Tutorial: https://www.w3schools.com/python/python_mysql_getstarted.asp
 
mschrak schrieb:
1. Ist das aus Eurer Sicht ein großes oder eher ein kleines Projekt?
2. Wie gehe ich am Schlauesten ran?
3. Ist Python für so etwas geeignet? (Meines Wissens gibt es ja DB-Anbindungsmodule, die ich aber bislang nur für MySQL gefunden habe, sowie rel. einfach zu erlernende und zu nutzende GUI-Bausteine).
4. Kennt Ihr für diesen Zweck Tutorials, die mir helfen könnten?

1. Eher klein, wenn man sich alles noch beibringen muss, natürlich ein bisschen größer ;)
2. Lesen, probieren, lesen, probieren, ...
Am besten nicht direkt versuchen alles umzusetzen, sondern einen kleinen Teil rausnehmen und den ausprobieren. Wobei Einträge in eine DB schreiben nicht so kompliziert ist.
3. Joah, Python geht. Ich würde vllt. auch eher zu PHP greifen, die mysql (/ mariadb)-Schnittstelle ist auch sehr, sehr gut dokumentiert: https://www.php.net/manual/de/book.mysqli.php
4. Ja, diese Seite z.B.: https://www.sanwebe.com/2013/07/creating-simple-form-using-php-and-mysql

Lg
 
mschrak schrieb:
Meine Fragen:
1. Ist das aus Eurer Sicht ein großes oder eher ein kleines Projekt?
2. Wie gehe ich am Schlauesten ran?
3. Ist Python für so etwas geeignet? (Meines Wissens gibt es ja DB-Anbindungsmodule, die ich aber bislang nur für MySQL gefunden habe, sowie rel. einfach zu erlernende und zu nutzende GUI-Bausteine).
4. Kennt Ihr für diesen Zweck Tutorials, die mir helfen könnten?
1. Kommt drauf an wie man es aufzieht. Als WebApp dürfte das gerade lernmäßig schon aufwendiger sein.
2. erstmal Plan machen was du genau haben möchtest: WebApp, Desktop App (welches OS?), Platformunabhängige App
3. Kommt drauf an, was du haben möchtest
4. kommt drauf an, was du machen möchtest

-> die einfachste Variante ist auf Windows sicher eine Desktop-Applikation zu erstellen. Gerade als Programmieranfänger.

Dabei kannst du auch erst mit etwas einfacherem anfangen:
(0) Basics der Programmiersprache lernen: damit du weißt was du überhaupt machst
(1) Konsolenapplikation, die erst einmal die Daten über die Konsole annimmt und dann einfach in der Anwendung selbst speichert, erstellen.
(2) Sobald du das geschafft hast, kannst du SQL lernen und eine Datenbank erstellen und erste Anfragen starten.
(3) Sobald du das geschafft hast, kannst du das Programm erweitern und die Daten in einer Datenbank speichern statt nur im Programm.
(4) Sobald du das geschafft hast, kannst du das Programm mit einer graphischen Oberfläche erweitern.

Der Vorteil ist, dass du dich schritt für Schritt in neue Themen einarbeitest und anfangs nicht mit allem konfrontiert bist.
Und als Anfänger ist das gewiss auch komplex genug.
Empfehlen würde ich dafür auf Windows C#.
  • Die Sprache hat mit Visual Studio eine klasse Programmierumgebung und exzellentes Debugging, was gerade für Anfänger extrem hilfreich ist
  • Außerdem kann man auf viele Funktionen von .NET Bibliothek sehr einfach zugreifen, sodass man viele Dinge sehr einfach erreichen kann.
  • Nicht zuletzt ist C# sehr einfach und (auch für Anfänger besser) streng typisiert, sodass der Kompiler viele Fehler findet, die man sonst erst durch ausprobieren finden würde.
  • extrem bekannt, man findet viel Hilfe und sehr einfach Rat (einmal googlen und du hast für alles sofort eine Lösung mit Beispielcode und Erklärung)

Ich würde für den Anfang keine WebApp mit Python bauen (auch wenn es Vorteile haben kann: Applikation kann aus dem Web zugegriffen werden, Platformunabhängig, ...) - aus folgenden Gründen:
  • sehr viele Lerninhalte: Datenbanken (SQL), Python, Python-Framework (Django), Javascript/TypeScript, HTML, CSS (und diese müssen alle zusammenarbeiten)
  • Python, Javascript(Frameworks) sind nicht so einfach zu handeln wie native Umgebungen -> Einrichtungsaufwand, Toolingaufwand, Debugging ist schwieriger, ...
  • du kannst das nachher immer noch machen, bist aber deutlich weniger erschlagen
[u]LexX. schrieb:
Für GUI finde ich AngularJS sehr gut.
AngularJS wird nicht mehr entwickelt -> Angular 8
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: pcBauer und MajorApplePie
Stehe ich gerade auf dem Schlauch? Wo steht hier dass er eine Webanwendung schreiben will?

Als Einstieg würde ich sicher keine Webanwendung + Backend empfehlen.
 
  • Gefällt mir
Reaktionen: new Account()
WebApp ist aber absoluter Trend in der Branche. Ich finde es eignet sich gut als Projekt.

..Und ja, Angular 8 natürlich. :rolleyes:
 
Ich würde auch versuchen mit einer Webapp anzufangen.

Als Django- und Angular-Kenner und Fan würde ich von beiden abraten und etwas leichgewichtigeres wählen.
Von Flask hab ich allerdings nur gehört, soll dich aber nicht stören mal in einem Tutorial zu stöbern ;)

Die Webfrontend-Ecke würde ich erstmal mit ganz planarem HTML, CSS und JavaScript machen, heutzutage geht da auch einiges einfaches (wie ein Formular abzusenden) ohne große JQuery-Aufrufe oder gar Frameworks wie Angular.

Auch wenn Django und Angular beide mMn gute Defaults bieten, ist es halt einfach für einen absoluten Anfänger dennoch erschlagend denke ich.
Wenn Die grobe Umsetzung steht könnte man sich als Erweiterung der Webseite vllt VueJS ansehen, auch wenn ich damit noch keine Erfahrung habe, es heißt aber zumindest, das sein einfach und verständlich.

Man kann natürlich auch ne Desktop-GUI schreiben, aber da der Trend so stark Richtung Web geht würde ich stark dazu raten, es ist ja auch nicht gesagt, dass das zum Einstieg wesentlich komplizierter sein muss.

Viel Spaß und Erfolg ;-)
 
WebApps sind auch ganz nett, die meisten Sachen die ich jetzt anfange sind WebApps.
Aber als einstieg finde ich sie nicht gut, die meisten Studenten sind im 5. Semester noch überfordert damit etwas halbwegs Sinnvolles auf die Beine zu stellen.
 
Shadow127 schrieb:
Wo steht hier dass er eine Webanwendung schreiben will?
Direkt steht es da nicht, aber der TE möchte scheinbar einen LAMP nutzen:
mschrak schrieb:
mit Python und MariaDB(LAMP).

Und LAMP ist eine Kombination aus:
(L) Linux
(A) Apache(Webserver)
(M) MySQL/MariaDB
(P) PHP

Eine Webapp ist für den Einstieg wirklich nicht unbedingt optimal, da das Entwickeln der WebGUI doch sehr verwirrend sein kann.
Ich würde da raten für den Anfang erstmal eine kleine Desktop GUI Applikation zu Basteln und mit Datenbank Entwurf/Aufbau und Abfragen separat auseinander setzen. Dann die Datenbank in eine eigene GUI Applikation integrieren oder eine extra GUI Applikation dafür bauen.
Mit der Webapp würde ich mich danach beschäftigen.

So muss man sich vielleicht mit einer Sprache mehr beschäftigen, aber direkt mit einer Webapp an zu fangen wo man im Code PHP für das eigentliche Programm und HTML für die GUI zusammen betrachten und in die richtige Reihenfolge bringen muss finde ich nicht so einfach. Bei einer Desktop App sind Code und GUI nicht so ineinander verstrickt.
 
  • Gefällt mir
Reaktionen: new Account()
Ich kann in der Beschreibung nichts von Webanwendung lesen.
Es ist nur von GUI die Rede.

Python, MariaDB, und ein GUI Framework (z.B Tkinter) dürften dazu reichen, oder täusche ich mich?

Ob Du dich damit übernimmst, kann niemand beantworten.
Das hängt mit deinem Zeitrahmen und deinen Lernfähigkeiten zusammen.
Zur Not kannst Du jederzeit damit aufhören.
 
Hallo,

danke schon mal für die vielen Antworten. Nein, eine Web-App solls nicht werden. Nur ein lokales Projekt. Das mit LAMP hatte ich nur dazu geschrieben, da ich die DB später evtl. netzwerkseitig ausbauen will. Das ist aber ferne Zukunft.
Natürlich wäre es schön, wenn das Ganze unter Linux und unter Windows laufen würde, aber ich möchte mich tatsächlich erst einmal nicht mit Nebekriegsschauplätzen belasten.

An Python hatte ich wegen des Lerneffekts gedacht und weil diese Sprache den Ruf hat, rel. vielfältig eingesetzt werden zu können. Und ich möchte ja wenn möglich Programmieren lernen anhand einer Sprache, die ich auch für andere Sachen gut einsetzen kann (kleine Raspi-Projekte mit meinen Kindern oder weiss der Geier was.)

Und ich glaube Datenbankwissen hat auch noch nie geschadet, wobei ich bei der Frage relationale DB vs. Nicht relationale DB schon fast die Krise bekommen habe. Das ist ja doch ein recht komplexes Thema.

Aber wie gesagt, erst einmal herzlichen Dank.
 
Thema SQL, NoSQL usw. ...
Relationale Datenbanken sind extrem weit verbreitet und relativ einfach in der Handhabung wie ich finde. Im Zweifel würde ich mit so einer arbeiten. Das ist auch die erste Form von Datenbank die du kennenlernst, wenn du professionell Programmieren lernst. (War jedenfalls bei mir so und jedem den ich kenne)
 
mschrak schrieb:
Und ich glaube Datenbankwissen hat auch noch nie geschadet, wobei ich bei der Frage relationale DB vs. Nicht relationale DB schon fast die Krise bekommen habe. Das ist ja doch ein recht komplexes Thema.
Nicht relationale Datenbanken findet man eher im Big Data Umfeld wo die Datenbanken enorm Groß werden. Bis auf weniger Spezialfälle braucht man die bei Kleinprojekten nicht.
Und bei SQL Datenbanken ist es in etwa so, kennste eine kennste alle. In der Syntax und den Funktionen unterscheiden diese sich nur gering.

mschrak schrieb:
An Python hatte ich wegen des Lerneffekts gedacht
Python ist etwas fummelig weil man da genau mit den Leerfeldern und Tabs aufpassen muss. Aber auf jeden fall ganz oben auf der Liste der Sprachen, wo es sinn macht diese zu lernen. Vorallem als Linux Anwender. Wenn es um Raspberry Projekte geht sowieso.
 
Jetzt habe ich mal noch eine wahrscheinlich dusselige Detailfrage:
Ich hatte mir gestern schon mal ein Tutorial zu Python angelesen und bin etwas verwirrt:
Kann ich durch Kompilieren aus einem Python Programm grundsätzlich auch ein selbständig laufendes Programmfile erstellen, und das zudem nicht einfach so eingesehen werden kann?

Ich hatte im Zusammenhang mit der DB daran gedacht, dass ich dem Programm ja die erforderlichen Anmeldedaten für die DB übergebe, aber nicht möchte, dass jeder Nutzer in den Quellcode reinschaut und dann Zugriff auf die DB haben kann...
 
Zurück
Oben