Welche Programmiersprache für Hobbyprojekt?

@burglar225 Nein, natürlich nicht ;) Überlegt vielleicht nur kurz was hier Sinn macht und was nicht, in irgendeiner Art und Weise braucht der TE auch erst einmal eine Heranführung. Ihr könnte ihm Frameworks um die Ohren werfen so viel ihr wollt, aber ich behaupte mal das der TE ja noch gar nicht grundlegend programmieren kann, daher ist das alles etwas fragwürdig.
 
Ich halte es allerdings für fragwürdig jemandem, der ein konkretes Projekt vor Augen hat zu raten erst einmal 1 Jahr lang etwas anderes (Programmier Grundlagen lernen) zu machen, vermutlich ist es sinnvoller, wenn er mit einem Web-Framework startet und sich das Wissen zusammenklaubt für einen ersten Prototypen.

Das was man an Programmierkenntnissen braucht bei solchen Frameworks und Projekten ist oftmal nicht viel mehr als absolute Grundlagen über Syntax und ganz grobes und allgemeines Verständnis wie programmieren funktioniert (von oben nach unten, zeilenweise, was macht so ein Punkt .) die man relativ schnell lernt.
 
  • Gefällt mir
Reaktionen: burglar225
Vielen Dank für eure Antworten :-) So schnell hatte ich nicht damit gerechnet ;-) Ich werde mal versuchen, alle Antworten zusammen zu verarbeiten.

Dass das Projekt Zeit braucht, ist mir klar, daher arbeite ich mit Zwischenzielen, auch wenn ich versucht habe, den zweiten Schritt vor dem ersten Schritt zu machen: Ich hatte mich zuerst mit Aufbau und Gliederung beschäftigt und hier mit HTML 5 und CSS programmiert. Allerdings kam dann die Frage auf, ob diese Sprachen dafür geeignet sind, daher meine Nachfrage hier (hätte man zuerst machen können. Aber auch negative Erfahrung hilft).
Eben noch zur Ergänzung: Die Datenbank sowie Backend und Frontend sollen letztlich auf dem Raspberry Pi zu Hause liegen, welcher im Grunde als eigener Webserver dienen soll. Ich will halt auch von unterwegs aus auf meine Daten zu Hause zu greifen können, die Familie in Teilen auch. Hier werkel ich derzeit an der VPN-Verbindung herum.
Auch wenn ich in den Bereich der Programmierung recht spät (38 Jahre) einsteige, macht es doch trotz Rückschlägen Spaß. Ich bin Technikaffin und will jetzt eben stärker in die Materie einsteigen.

Die von euch vorgeschlagenen Programme werde ich mir einmal anschauen und ein wenig damit herum experimentieren. Ich hatte ein paar Wochen lang eine Informatikvorlesung besucht, in der Java vermittelt wurde. Als Editor wurde Atom verwendet, daher hatte ich jetzt auch weiter in Atom programmiert.
Ergänzung ()

fendle schrieb:
- Dabei soll das Smartphone in erster Linie als Scanner und als mobile Datenbank für unterwegs eingesetzt werden.
Eine Frage dazu, in dem Szenario es auch "Offline" direkt auf dem Handy zu haben oder dann über das Internet auf die Daten zugreifen?
Ich will unterwegs über Internet bzw. VPN auf die Daten zugreifen. Ich hatte mich hier missverständlich ausgedrückt. Es soll nur eine Datenbank auf dem Raspberry geben, auf die man dann zugreifen kann/soll.
 
1. Dann ist es ja nur sinnvoll, jetzt auch mit Java (und Spring Boot) weiterzumachen
2. Ich würde nicht Atom verwenden, sondern Visual Studio Code. Dafür gibt es auch eine sehr gute Integration von Spring Boot, die einem das Leben nochmal um einiges leichter macht.
 
Grundsätzlich gilt: Nimm das womit du gut klar kommst und was dir Spaß macht. Versuch nicht einen 'perfekten Start' hinzulegen sondern einen Start der dir was bringt und dazu führt dass du in 1 Jahr schon weiter bist und nicht immer noch am starten.
Das Projekt das dir vorschwebt lässt sich auf 200 Arten durchführen die alle sinnvoll und ok sind und es gibt definitiv nicht 'die beste Art' da ran zu gehen.

Tip von mir aber noch: Als Datenbank kann ich sehr SQLite empfehlen, das wird für alle deine Belange locker ausreichen und erspart dir viel Arbeit bezgl. Installation und Konfiguration einer "richtigen Datenbank".
 
@BeBur Das ist durchaus valide und macht am meisten Spaß - man braucht aber meistens eine höhere Frustgrenze, da direkt mit Frameworks einzusteigen halt schwieriger ist. Das ist alles worauf ich hinaus wollte. Viele nehmen sich konkrete Projekte vor, denken sich tolle Sachen aus, sind dann aber nach gefühlt 5 Minuten durch, weil zu schwer. Das muss natürlich hier nicht so sein und ich wollte auch nicht entmutigen.
 
  • Gefällt mir
Reaktionen: BeBur
Das simpelste ist da echt einfach Frontend mit React (create-react-app), Backend Express (node.js) und MongoDB.

Dann haste im Kern erstmal "nur" Javascript.

Mit rein html und css macht heute eigentlich niemand mehr etwas.

React kapselt dir die HTML Erzeugung, CSS wird meist zu sass fuer Variablen und Imports.

Daten gehen simple in mongodb, da ist die Komplexitaet auch ueberschaubar.
Alternativ sq.lite -> liegt direkt im filesystem und kann so einfach gebackuped werden.

Laeuft alles easy auf nem Pie. Die Prozesse kann man gut mit PM2 "starten" / verwalten.
Docker ist hier overkill.

Edit: Noch ein Grosser Tipp: SCHEISS auf Design am Anfang. Da kann man sich komplett, elendig verrennen. Sieh zu, dass du die Basic Logik absolut haesslich umgesetzt kriegst. Huebsch geht dann spaeter immer.
 
Dalek schrieb:
Unnötig langes Zitat durch Moderation entfernt
Python hatte ich auch schon überlegt, aber erstmal hinter Java zurückgestellt, da ich das Gefühl hatte, dass Java "gefragter" ist
 
Zuletzt bearbeitet von einem Moderator: (Unnötig langes Zitat durch Moderation entfernt)
DaysShadow schrieb:
man braucht aber meistens eine höhere Frustgrenze, da direkt mit Frameworks einzusteigen halt schwieriger ist. Das ist alles worauf ich hinaus wollte.
Ja, das stimmt auf jeden Fall. Jeder schritt ist grausam und unverständlich und 'warum so kompliziert???' :D.

Flamewar starting:
e_Lap schrieb:
Das simpelste ist da echt einfach Frontend mit React, Backend Express und MongoDB.
Das simpelste ist so viel wie geht in der sehr schönen und eingängigen Sprache Ruby zu programmieren und diese C-Style Syntax JS zu meiden :p. Und wie gesagt SQLite schlägt jede Alternative um Längen für ein Anfängerprojekt.

Lendril schrieb:
Python hatte ich auch schon überlegt, aber erstmal hinter Java zurückgestellt, da ich das Gefühl hatte, dass Java "gefragter" ist
Nein, geh wirklich nicht danach. Alles ist gefragt. Mach das worauf du Bock hast.
 
Lendril schrieb:
Ich will unterwegs über Internet bzw. VPN auf die Daten zugreifen. Ich hatte mich hier missverständlich ausgedrückt. Es soll nur eine Datenbank auf dem Raspberry geben, auf die man dann zugreifen kann/soll.
Achtung: So solltest du das unter keinen Umständen machen. Es sollte immer ein Backend als Zwischenschicht zwischen Datenbank und den Clients geben. Die Kommunikation mit der Datenbank erfolgt dann immer über die Backendanwendung (die gerne auch auf dem PI laufen darf).

BeBur schrieb:
Und wie gesagt SQLite schlägt jede Alternative um Längen für ein Anfängerprojekt.
Der Vorteil von Spring wäre an dieser Stelle noch, dass die Datenbank (eines Typs, relational, dokumentbasiert) immer 100% austauschbar sind. Man kann also in aller Ruhe mit SQLite anfangen und später, wenn mehr Leistung benötigt wird einfach auf eine MariaDB oder PostgreSQL wechseln.
 
  • Gefällt mir
Reaktionen: BeBur
BeBur schrieb:
Unnötig langes Zitat durch Moderation entfernt
Vielen Dank für den Link, es gibt also noch mehr verrückte wie mich :-D Ich bin eben kurz durchgeflogen, da dürfte ich einiges an input finden. Wegen des Kontaks würde ich nochmal auf Dich zukommen, da nicht unbedingt das Endprodukt das Ziel ist, sondern der Weg.
 
Zuletzt bearbeitet von einem Moderator: (Unnötig langes Zitat durch Moderation entfernt)
  • Gefällt mir
Reaktionen: BeBur
Lendril schrieb:
Python hatte ich auch schon überlegt, aber erstmal hinter Java zurückgestellt, da ich das Gefühl hatte, dass Java "gefragter" ist

Beide Sprachen sind sehr weit verbreitet, aber in sehr unterschiedlichen Umgebungen. Java wird vor allem im Enterprise Bereich verwendet, und z.B. für Android Apps (wobei Google zu Kotlin wechselt). Python ist momentan bei Data Science/Machine learning absolut dominant, ist aber auch in vielen anderen Bereichen verbreitet.

Python ist meiner Meinung nach der einfacherer Einstieg für einen Anfänger. Und die Nachteile von Python spielen in diesem Fall einfach keine wirkliche Rolle. Aber Java geht natürlich auch.
 
burglar225 schrieb:
@DaysShadow Das ist klar und wurde ja auch schon gesagt. Aber sollen wir deswegen einfach keine Vorschläge machen? :D
Vorschläge sind immer willkommen, weil ihr euch auskennt und ich nicht. Und jeder Hinweis und Hilfe sind willkommen!
 
  • Gefällt mir
Reaktionen: burglar225
Lendril schrieb:
Wegen des Kontaks würde ich nochmal auf Dich zukommen, da nicht unbedingt das Endprodukt das Ziel ist, sondern der Weg.
Ich will diese Variante nicht zu sehr bewerben, aber gemeinsam lernen ist auf jeden Fall ein guter Weg zu lernen und theSplit ist mMn jemand, mit dem man gut zusammen lernen kann.
 
  • Gefällt mir
Reaktionen: Lendril
All die Tipps hier sind offenbar von Menschen, die schon lange entwickeln. Jetzt von Spring, Django, React etc. zu reden ist vollkommener overkill. Davon hat er nichts. Im Grunde scheint er mir auf dem Niveau zu sein, dass er erstmal verstehen muss, was Schleifen sind, Verzweigungen, Funktionsaufrufe, Objektorientierung, Funktionale Programmierung etc. All das macht man mit HTML/CSS ja nicht (HTML und CSS bringen einem nicht Programmieren bei; das sind Auszeichnungssprachen).

Das Projekt ist vollkommen überdimensioniert, das geht garantiert schief. Man geht auch nicht her und sagt sich: ich will ein Auto selbst zusammenbauen. Daher mache ich mir jetzt einen Porsche.

Für eine Webanwendung brauchst du viel verschiedenes Knowhow. Das anzulernen, dauert. Und du kannst nicht alles auf einmal lernen. Du solltest klein anfangen und versuchen, nach und nach mehr zu verstehen.

Daher solltest du zunächst "Programmieren" lernen. Programmieren lernen bedeutet im Wesentlichen programmiersprachen-unabhängig programmieren. Du fängst zwar natürlich mit einer Sprache an, aber eignest dir dabei die Basics an, die in fast jeder Sprache in der einen oder anderen Form vorkommen. Du wechselst danach die Sprache und lernst, was dort anders ist.

Grundsätzlich wäre sinnvoll, eine rudimentäre Implementierung in folgenden "Umgebungen" zu versuchen:
a) Excel (das schult dich u.a. darin zu überlegen, welche Daten du brauchst, wie eine erste UI aussieht und verwendest Funktionen)
b) Access (du gliederst u.a. deine Daten noch besser und steigst ins Programmieren ein)
c) Java Desktop-Anwendung (du verwendest u.a. eine gute Datenbank und programmierst objektorientiert)
d) Web-Anwendung (du strukturierst deine Anwendung in mehrere Schichten und verwendest viele verschiedene Technologien)

Jeder Schritt erhöht das Knowhow, dass du für d) benötigst. d) wird bei den ersten paar Iterationen furchtbaren Code erzeugen - aber man lernt nur, in dem man immer wieder neu entwickelt.

Alles in allen wird es aber Jahre dauern, bis etwas brauchbares auf dem Level entsteht, das du beschrieben hast.
 
  • Gefällt mir
Reaktionen: Scirca und e_Lap
Dalek schrieb:
Beide Sprachen sind sehr weit verbreitet, aber in sehr unterschiedlichen Umgebungen. Java wird vor allem im Enterprise Bereich verwendet, und z.B. für Android Apps (wobei Google zu Kotlin wechselt). Python ist momentan bei Data Science/Machine learning absolut dominant, ist aber auch in vielen anderen Bereichen verbreitet.

Python ist meiner Meinung nach der einfacherer Einstieg für einen Anfänger. Und die Nachteile von Python spielen in diesem Fall einfach keine wirkliche Rolle. Aber Java geht natürlich auch.
Ok, dann werde ich Python mehr in meine Überlegungen einbeziehen. Mein grundlegendes "Problem" ist, dass ich in den Bereich der Digitalen Geisteswissenschaften will, aufgrund meines Alters aber kein weiteres Studium machen will. Gefordert wird landläufig HTML 5, CSS, Javascript und eben Java, vereinzelt auch Python, wobei die Anforderungen auch unterschiedlich sind. Daher kam mir die Idee, mir eben das Programmieren an einem bestimmten Projekt, was ich selber auch gut nutzen kann, zu erlernen; das erscheint mir sinnvoller.
 
Die Sprache ist grundsätzlich eigentlich egal. Es gibt natürlich welche, die sind "steiler", aber ob Java, Python, Ruby oder Elixir ist Geschmackssache.
Jedenfalls würde ich, nachdem ich mir eine Sprache ausgewählt habe, die Übungen auf https://exercism.io/ machen.

Lendril schrieb:
Digitalen Geisteswissenschaften

Was genau stellst du dir darunter vor?
 
Nefcairon schrieb:
Unnötig langes Zitat durch Moderation entfernt
Gut eingeschätzt, dass ist so mein Fertigkeitenstand. In Java hatte ich letztes Jahr die ersten Schritte gemacht. In den letzten Jahren habe ich auch Excel intensiver genutzt.
 
Zuletzt bearbeitet von einem Moderator: (Unnötig langes Zitat durch Moderation entfernt)
Lendril schrieb:
Daher kam mir die Idee, mir eben das Programmieren an einem bestimmten Projekt, was ich selber auch gut nutzen kann, zu erlernen; das erscheint mir sinnvoller.

Ist es auch. Liegt einem etwas an dem was man tut dann lernt man auch einfacher. Insofern ist das schon alles richtig und Gedanken machst du dir ja auch genug.
 
  • Gefällt mir
Reaktionen: Lendril
Nefcairon schrieb:
Die Sprache ist grundsätzlich eigentlich egal. Es gibt natürlich welche, die sind "steiler", aber ob Java, Python, Ruby oder Elixir ist Geschmackssache.
Jedenfalls würde ich, nachdem ich mir eine Sprache ausgewählt habe, die Übungen auf https://exercism.io/ machen.



Was genau stellst du dir darunter vor?
Die digitalen Geisteswissenschaften sind ein recht junges Forschungsfeld und quasi eine Schnittstelle zwischen Informatik und den Geisteswissenschaften. Grob gesagt geht es um digitale Editionen, Textanalysen, Aufbau von Datenbanken etc.
Ergänzung ()

burglar225 schrieb:
Achtung: So solltest du das unter keinen Umständen machen. Es sollte immer ein Backend als Zwischenschicht zwischen Datenbank und den Clients geben. Die Kommunikation mit der Datenbank erfolgt dann immer über die Backendanwendung (die gerne auch auf dem PI laufen darf).


Der Vorteil von Spring wäre an dieser Stelle noch, dass die Datenbank (eines Typs, relational, dokumentbasiert) immer 100% austauschbar sind. Man kann also in aller Ruhe mit SQLite anfangen und später, wenn mehr Leistung benötigt wird einfach auf eine MariaDB oder PostgreSQL wechseln.
Danke für den Hinweis, werde ich beachten!

In erster Linie soll nur unsere ganzen Medien zu Hause verwaltet werden. Obwohl wir laut meinem Schwager gefühlt "die halbe Stadtbibliothek" zu Hause haben, dürfte von der Datenbank an sich nicht so viel Leistung benötigt werden. Dann werde ich auf SQLite umsteigen.
 
  • Gefällt mir
Reaktionen: BeBur
Zurück
Oben