Einsteiger mit ambitioniertem Anfängerprojekt

Fomá-

Newbie
Registriert
Mai 2021
Beiträge
3
Hallo zusammen,

ich stehe im Einstieg in die Welt des Programmierens (bislang nur HTML und PHP-Erfahrung sowie ein kurzer Einblick in C#). Gerne würde ich mir Programmierkenntnisse aneignen, insbesondere, um ein kleines Projekt auf die Beine zustellen. Ziel ist ein Programm, dem ein Originaltext und dann ein zweiter Text mit Änderungsanleitungen (bspw. „hinter dem 3. Absatz soll folgendes eingefügt werden:“) eingespeist werden können. Das Programm soll den Originaltext anhand der Anleitungen ändern und ausgeben.

Den Thread mit nützlichen Links habe ich gesichtet, bin allerdings etwas lost und weiß gar nicht, in welche Programmiersprache ich für mein Vorhaben am besten einsteigen sollte. Für alle Hinweise bin ich Euch sehr verbunden!

Herzliche Grüße
 
Ich könnte falsch liegen, aber Python ist glaub für so etwas gut geeignet.
Der Text mit Änderungsanleitung ist halt eine harte Nuss. Entweder sind die Änderungsanweisungen fest als Funktionen hinterlegt und das Programm sucht in der Datei danach um sie dann auf den Zieltext anzuwenden oder man darf mit Interpretation/ML herumfuchteln. In diesem Fall ist Python auch nicht verkehrt.
 
  • Gefällt mir
Reaktionen: BeBur und Fomá-
Generell sollte das mit jeder Sprache gehen. Spontan hätte ich an Python gedacht, aber wenn du schon etwas C# kannst, nimm das. Die Kunst ist natürlich die "Änderungsanleitung" wenn die nicht streng vorher definierten Mustern folgt.
 
  • Gefällt mir
Reaktionen: Fomá-
Das klingt nach einem Schul oder Uni-Projekt.
Solche Tools gibt es schon: sed, awk.

Ansonsten würde ich Python empfehlen, da man leicht auch C Module einbinden kann.
 
  • Gefällt mir
Reaktionen: Fomá-
Ich verstehe den Verlauf noch nicht so 100%, wenn es aber darum gehen soll, dass es dynamisch natürliche Sprache generieren soll, dann wirst du dich mehr mit diesem Problem beschäftigen müssen, als mit dem Programmieren selber. Python ist grundsätzlich in dem Thema stark. Es kommt auf dein Interesse an, wenn du dich da auch die meiste Zeit rein arbeiten möchtest: OK. Solltest du aber ein Projekt suchen um Programmieren zu lernen ist dies eher ungeeignet.
 
  • Gefällt mir
Reaktionen: BeBur und Fomá-
Ich bin ganz begeistert von Euch! Vielen Dank für die zügigen Hinweise!
 
Ja, das ist mehr ein ML/NLP Projekt als alles andere. Keine Ahnung was es da schon alles fertig gibt musst du Mal schauen nach NLP Software. Als Sprache bietet sich Python an.
Die Idee ist evtl. als ML Anfänger nicht durchführbar.
Ergänzung ()

Eine naheliegende deutliche Vereinfachung wäre die Verwendung von festgelegten Textblöcken welche Anweisungen enthalten und ausgesucht werden können. Anstelle von Freitext Anweisungen.
 
  • Gefällt mir
Reaktionen: 0x7c9aa894, breedmaster und Fomá-
Erster Schritt aus meiner Sicht: Welche Arten von Änderungen sollen berücksichtigt werden? Falls nur Text und das hinzufügen oder entfernen von Zeichen an bestimmten Positionen ist es nicht so schwierig - aber dafür gibt es wie @0x7c9aa894 geschrieben hat bereits Tools. Nichts desto trotz eignet es sich als Einstiegt.

Die nächste Frage ist wo willst du damit perspektivisch hin. Heutzutage will man sowas eigentlich nie als Desktopanwendung haben sondern als "microservice", dem man optional ein Frontend (Web / Browser) spendieren kann. Hier wird es dann langsam ein Projekt. Falls du ein Web-Frontend haben willst, ist die Frage der Frontend Technologie.

Ich würde bei der Wahl der Technologie folgendes Berücksichtigen - in dieser Reihenfolge:
- wie groß ist die Community insbesondere bezüglich Entwicklung von Microservices inkl. Frontend (Serverside gerendert)? Gute Kandidaten Java, Python, Go, PHP, Javascript (z.b. Node)

- wieviele Alternative Frameworks gibt es z.B. für Microservices und Frontend, wie gut sind diese gepflegt

- schau dir "hello world" Beispiele an und nimm was dir gefällt

Eine wichtige Frage ist wo du perspektivisch hin willst:

  • Arbeitsmarkt-Chancen-Verbesserung
  • Big Data, Data Science
  • Operations -> Container etc
  • Fancy Frontend
  • Automatisierung für zu Hause
  • Sytemprogrammierung
  • rein intellektuelles Interesse an Programmierung

Je nachdem kann dir die eine oder andere Technologie mehr helfen. Deinen Use-Case kannst mit allen Technologien implementieren.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: netzgestaltung, Fomá- und KitKat::new()
dermoritz schrieb:
nie als Desktopanwendung haben sondern als "microservice", dem man optional ein Frontend (Web / Browser) spendieren kann.
Ohweh. Früher heiß es mal: Kein Programm ist fertig, solange man nicht damit Emails lesen kann.
Heute muß es schon ein Webservice sein :)

Man kann ein Python Modul auch einfach in einen fertigen Webservice wie z.B. Jupyter Notebook, etc einbinden.

Falls es wirklich ein Hobbyprojekt, dann fange mit was einfacherem an.
Ergänzung ()

@dermoritz hat schon recht mit den Webservices, da in der letzten Zeit viele Anwendungen in dieser Form entwickelt wurden.

Mein erster Gedanke war jedoch ein Komandozeilen-Tool.

dermoritz schrieb:
Eine wichtige Frage ist wo du perspektivisch hin willst:

  • Arbeitsmarkt-Chancen-Verbesserung
  • Big Data, Data Science
  • Operations -> Container etc
  • Fancy Frontend
  • Automatisierung für zu Hause
  • Sytemprogrammierung
  • rein intellektuelles Interesse an Programmierung
DIe Frage muß ich für mich selbst auch noch beantworten :)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Fomá-
Vielen Dank für die äußerst nützlichen und ausführlichen Ratschläge! Ich bin Jurist und mein Interesse an Programmierung ist eher „intellektuell“. Tatsächlich hätte ich aber Verwendung für das Projekt. Ich fang mal an, mich in Python einzuarbeiten und schaue mit Euren Hinweisen, wo ich so landen werde. :)
 
Früher war es tatsächlich ein echter schritt von reiner Logik die z.B. in einem Kommandozeilentool läuft hinzu einem Webservice. Dieser Schritt macht auch heute noch Sinn, falls einem zunächst das Kommandozeilentool reicht.
Im zweiten Schritt würde man dann das Kommandozeilentool als Bibliothek einbinden. Wichtig ist dass man gleich an den zweiten Schritt gedacht hat.

Da heutzutage es in jeder populären Programmiersprache Frameworks gibt, welche es einem sehr einfach machen Webservices zu bauen, kann man heute direkt damit anfangen.

Aus meiner Sicht lernt man sehr viel wenn man anstelle der Kommandozeile einen Browser auf macht und "Hello World" sieht und dann damit weiter Abreiten: "Hello <Name>".
Oder eben einen Text + Veränderung schickt und geänderten Text bekommt. So lernt mann wie die wichtigsten Anwendungen heute funktionieren (Frontend bzw. Client + Api). Man fängt an auch auf anderen Seiten im Browser mal F12 zu drücken und versteht was die Zeilen im "network" tab bedeuten.
 
Ich würde tatsächlich für das Gegenteil plädieren, als erstes sollte man ein MVP (Minimal Viable Product) erstellen, erst recht als Anfänger ist es gut sich nicht zusätzlich noch Dinge aufzubürden, die man jetzt gerade an dieser Stelle noch gar nicht möchte (und womöglich niemals möchte).

Das ummünzen auf Web ist im Zweifelsfall ja gut und problemlos machbar bei so einem Projekt.
 
  • Gefällt mir
Reaktionen: Zhdun und andy_m4

Ähnliche Themen

Antworten
51
Aufrufe
34.806
Antworten
47
Aufrufe
190.916
Zurück
Oben