Programmieren lernen einfach so?

Miner

Banned
Registriert
Mai 2020
Beiträge
122
Moin moin,
abstrakt spiele ich schon länger mit dem Gedanken "lerne doch mal programmieren". Ich bin versierter Anwender und Ende. Ein gewisses Grundverständnis ist noch vorhanden, aber auch nicht mehr. Ich habe im menschlichen Umfeld leider auch keine Personen die ich fragen könnte, wo man sich über so was austauschen würde. Kurse bei Volkshochschulen gibt es hier in der Region nicht. Eine google-Anfrage ist schnell gemacht und natürlich findet man viel. Wenn ich 2 Stunden einen für mich abstrakten Text lese kommt mein Gehirn in die Notabschaltung. Ich denke ich sollte einfach mit etwas anfangen? Learning bei doing? Oder ist so eine Herangehensweise zu naiv?

Was bei mir für Motivation sorgen könnte wäre meine berufliche Tätigkeit. Meinen Job könnte man als Sachbearbeiter beschreiben. Eigentlich sollte ich das Vorhaben nicht umsetzen. Hin und wieder frage ich mich im Job, warum ich als Mensch so einen "Quatsch" mache? Eigentlich könnte der Computer das auch alleine! Aber man soll ja auch seine Brötchen verdienen usw. - und trotzdem ist es frustrierend.

Unter anderem! Ich habe eine Liste mit Daten. Dahinter stehen Kunden/Klienten. Aus einem Datensatz nehme ich einen Teil z.B. im weitesten Sinn eine Kundennummer. Dann logge ich mich auf einem Webportal ein. Dann wird ein bestimmtes Menü aufgerufen. Dort wird diese Nummer eingetragen. Dann sieht man in der Ausgabe andere Daten z.B. Datumswerte. Nun vergleiche die Daten dort mit den uns bereits bekannten Daten. Stimmt es überein, wird nichts weiter unternommen. Weiter mit dem nächsten Datensatz.

Der Gedanke wäre, ein Programm schreiben. Dort die uns bekannten Daten hinterlegen. Dann kann das Programm meine Zugangsdaten bekommen oder auch neue eigene, das Programm loggt sich ein und arbeitet die Liste der Datensätze durch. Das Webportal ist extern und nicht von uns. Deshalb ganz gemütlich z.B. alle 30 Sek. eine Nummer prüfen und nach einer Stunde oder zwei geht es von vorne los. Und sobald ein Unterschied auftritt macht es etwas. Hinweisfenster, oder es schickt mir eine Mail ... - das Programm könnte während der Arbeitszeit auf meinen Arbeitsplatz laufen, oder auch auf einem Datei-Server der sonst nicht viel zu tun hat. Und ich würde erst dann etwas machen, wenn auch etwas zu tun ist.

Welche Programmiersprache wäre den hier sinnvoll? Oder überhaupt? Vielleicht gibt es ja schon Tools die vergleichbares machen, aber wäre doch nett, wenn man sich so etwas selber "basteln" könnte. Was denkt Ihr? Soll ich es gleich lassen? Versuchen? Bedarf im Allgemeinen soll ja vorhanden sein.
 
Wir haben oftmals bei Kunden Projekte mit ähnlichen Problemstellungen und lösen das beispielsweise mit der Kombination aus "Macro Recorder + Excel + Notepad++". Läuft bei uns auch zuverlässig mehrere Tage durch und man spart sich viele viele Stunden manuelle Arbeit. ;)
 
Miner schrieb:
Welche Programmiersprache wäre den hier sinnvoll? Oder überhaupt?
Schnittstellen Programmierung ist definitiv ein wichtiges Thema. Aber ich rate dir nicht dazu. Ein externer Anbieter bzw. dein AG wird dir keine Schnittstelle zur Verfügung stellen gegen die du dann programmieren kannst (also dass das Programm Eingaben von deinem Programm erlaubt, welches beide Teile zusammen klebt).
Mit Browser Makros aufzeichnen was du tust ist der Weg in die Hölle bzw. zu mehr Problemen als du löst.

Ich rate dir: Werde Excel-Profi, sicher arbeitest du auch viel mit Excel, die ganze Welt arbeitet viel mit Excel, importiert nach Excel und importiert aus Excel heraus. Reports werden in Excel erstellt, Analysen werden in Excel erstellt, hier an der Stelle dampft schon die Tastatur vieler Mit-User hier, aber das ist eben die Realität in der wir leben :p und daraus folgt, dass du als Excel-Profi absolut heraus stichst und geradezu magische Dinge bewirken kannst in den vorhandenen Prozessen.

Generell: Hab keine Angst dich weg zu rationalisieren, jemand der das kann, der findet auch einen Ort, an dem er besser aufgehoben ist. Ja, mach learning by doing, gerade wenn du sagst, ewige Texte sind nichts für dich. Es gibt viele Arten zu lernen heutzutage. Die Programmiersprache ist in jedem fall egal, aber bei Excel wird natürlich VBA verwendet, wobei wirklich sehr sehr viel auch ohne VBA geht.
 
Für solche Sachen bieten sich Skriptsprachen an. Aus meiner Sicht ist Python für deinen Fall gut geeignet. Es bietet umfangreiche Bibliotheken auch zum API abfragen.

Um auch Excel zu automatisieren kann man auch PowerShell verwenden. Die Syntax und Mechanik dahinter ist allerdings gewöhnungsbedürftig, allerdings steht einem auch die komplette .NET Umgebung zur Verfügung.
 
Excel ist vermutlich das Programm überhaupt für mich. Für was ich das in der Vergangenheit schon so "missbraucht" habe... - z.B. mal für ein Browserspiel. - Dazu musste sich Excel auch einloggen. Damals hat Excel mit dem IE kooperiert. Wenn der IE eingeloggt war, bekam Excel auch die Daten an die man mit IE herangekommen wäre. Dann hat es Webabfragen im zeitlichen Rhythmus getätigt und auf einem weiteren Tabellenblatt mit vorhandenen Daten verglichen. Über bedingte Formatierung hat man dann auf einem Blick gesehen ob etwas herbeigesehntes nun erreicht ist. Ich hatte schon Excel als Datenbank missbraucht. Dann über eine OpenVPN Anbindung konnten Kollegen mit einer weiteren Excel Tabelle und den dort hinterlegten festen Bezügen auf die an einem anderen Ort befindlichen "Datenbank" zugreifen. Lief ohne Skripte.

Das sehe ich hier nicht. Wobei die Daten in einer Excel vorliegen. Nur ich möchte ja gerade nicht jemanden um Schnittstellenzugang bitten. Ich mache immer die selben Arbeitsschritte manuell. Und ich kann konkret definieren worauf dabei zu achten ist. Was wenn nicht das sollte ein Computer bzw. Programm erledigen können. Warum arbeite ich heute noch mit dem Computer als ob es eine Schreibmaschine wäre?

Ich google nebenher etwas...
finde:
"Schritt 1: Sei bereit hart zu arbeiten" genau das will ich ja ändern!
"Schritt 2: Finde einen Lehrer oder Mentor" na die warten ja auch nur auf mich und haben eh nur Langeweile um mich zu unterstützen.
"Schritt 3: Wähle Deinen Weg" na ja genau das hatte ich ja gehoft dort zu finden :lol:

Programmiert man heute denn noch "frei" - klar Experten vermutlich schon. Aber nutzt man nicht irgendeine Art Programm dazu?
 

Den Ansatz finde ich ganz pfiffig.
 
Das Projekt mit der Webanwendung ist nicht unbedingt ideal zum Anfang. Es ist nicht klar ob die Software kooperativ ist und gescriptet werden will oder nicht. Man kann auch Webseiten skripten die nicht dafür gedacht sind, aber das ist kein Projekt um die absoluten Grundlagen zu lernen. Ganz grundsätzlich muss man da auch vorsichtig sein das man keinen Blödsinn macht, ich würde z.B. so ein Projekt auf jeden Fall als read-only implementieren und mir eine Liste ausgeben die dann ein Mensch ansehen kann und die relevanten Änderungen überprüfen und dann manuell in der Webseite eingeben kann. Da kann einfach weniger schiefgehen.

Wenn die Webseite/Webanwendung kooperativ ist und dazu gedacht ist das man sie mit Skripten bedient, dann hat sie eine sogenannte API (application programming interface). Das sollte dann auch dokumentiert sein und ist dafür gedacht das man die Anwendung einfach fernsteuern kann. In diesem Fall wäre das tatsächlich ein Projekt das man auch als kompletter Anfänger machen kann.

Python ist generell eine sehr gute Sprache für Einstieger, und für diese Art von Programmierung auch ziemlich gut. Wenn dein Englisch gut ist und du mit Videos/Vorlesungen gerne lernst findet man auf Coursera und ähnlichen Seiten gute, kostenlose Kurse zu allen möglichen Programmierthemen.
 
Dalek schrieb:
Es ist nicht klar ob die Software kooperativ ist und gescriptet werden will oder nicht.

🤔 ähm... hä?

Ich bin schon länger bei dem AG tätig. Und "Digitalisierung" heißt bei uns konkret, dass der Job immer komplexer (schwieriger) geworden ist. Meine Kollegen verzweifeln immer mehr. Ich persönlich kann den Anforderungen noch folgen und finde es witzig. Bin immer gefragter. Buchstäblich... immer mehr Kollegen kommen mit Fragen. UND wir haben viel viel mehr zu tun. Was eigentlich absurd ist. Wir sind auch Dienstleister. Die Kollegen die unsere eigentliche Dienstleistung anbieten nutzen im Prinzip keine Digitalen Mittel. Die Auflagen etc. steigen stetig an.

Digitalisierung bedeutet für mich nicht, dass ich den Zettel nicht mehr auf dem Tisch habe sondern als PDF auf dem Schirm. Kann man sicherlich auch so nennen. Unter Digitalisierung verstehe ich, dass Dinge SMART werden. Das Dinge vielleicht von selbst laufen. Das man keine Ressourcen (i.w.S.) mehr verschwendet. Rohstoffe sind Endlich, Menschen werden immer mehr - die Problemstellung ist erkennbar. Digitalisierung könnte etwas helfen.
Meine Realtiät ist, es wird immer schlimmer. Wir machen (müssen machen) immer mehr Schwachsinn. Die Zielsetzung des uns aufgezwungenen Schwachsinns ist eine Verbesserung der Dienstleistung zu erreichen. Erreicht wird das bestenfalls nicht. Wenns blöd läuft wird es schlechter und teurer.
Richtig wäre, eine Schnittstelle zwischen zwei Programmen herzustellen. Dann würde es wirklich von selbst laufen. Ist aber auf beiden Seiten nicht vorgesehen. Ob das so einfach ergänzt werden könnte ist fraglich. Bei einer anderen Angelegenheit haben wir so etwas beauftragt. Das Resultat ist nahe an der Katastrophe. Wir bräuchten DORT (nicht hier) eine Synchronisation. Bekommen haben wir einen Datenexport. Letztendlich arbeiten wir das was die Schnittstelle macht manuell nach. Dann werden die Programme noch weiter entwickelt, was theoretisch auch eine Anpassung dieser Schnittstelle erfordern kann. Nur sehen wir zu keinem Zeitpunkt, was eigentlich genau passiert. Irgendwann funktioniert das (ohnehin schon Schlechte) nicht mehr und wir können gegen Bezahlung dann herausfinden lassen wo der Fehler liegt. Für unsere Kunden steigt der Preis für etwas, von dem sie nichts aber auch rein gar nichts haben.

Mein Gedanke hier ist, ich als User komme via Browser an Daten ran. Mache immer den selben Arbeitsschritt. Kopiere Daten aus einer Excel-Liste in ein Feld im Browser, schaue was dann für Daten ausgegeben werden, schaue ob ich das schon zur Kenntnis genommen habe und wenn eine Erweiterung erkennbar ist, dann wird etwas bei uns erfasst. Der Gedanke ist ein Tool zu entwickeln dass das alleine kann. Zumindest vergleichen. Mit Makros habe ich nie gearbeitet. Könnte vielleicht funktionieren. Ich würde es bevorzugen, ein eigenständiges Tool zu bauen. Ich möchte nicht am Browser andocken, noch an dem Webinterface, auch nicht an Tabellen oder unserer Software. Ich würde sogar bevorzugen, wenn eigentlich nicht bemerkt wird, dass da ein Tool arbeitet. Wird sich zwar nicht ganz vermeiden lasse, da die Abfragen zu Regelmäßig sind, aber ich möchte keine Eingriffe oder Fehler bei der Gegenstelle verursachen.
 
Miner schrieb:
Ich würde sogar bevorzugen, wenn eigentlich nicht bemerkt wird, dass da ein Tool arbeitet. Wird sich zwar nicht ganz vermeiden lasse, da die Abfragen zu Regelmäßig sind, aber ich möchte keine Eingriffe oder Fehler bei der Gegenstelle verursachen.
Auch dafür gibt es Wege :D
Am besten lässt sich so etwas mit Scripting bewerkstelligen. Entweder mit VBA und dem IE oder direkt über ein XMLHTTP Object.
 
Miner schrieb:
🤔 ähm... hä?

Es gibt mehrere Szenarien wie der Hersteller der Webanwendung darauf reagiert wenn jemand die Daten dort automatisch auslesen will:

  • die finden das super, und erklären dir gleich noch wie das viel einfacher geht mit einer API die sie bereitstellen
  • die sind eher skeptisch, befürchten das du die Seite überbeanspruchst
  • ist denen völlig egal
  • die haben ein Interesse daran das zu unterbinden (z.B. weil es eine viel teurere Version gibt die Automation beinhaltet)

Im letzten Szenario kann es sein das es absichtlich schwerer gemacht ist die Seite per Skript auszulesen. Das ist dann halt wirklich kein Projekt mehr für einen Anfänger. Und wenn du in eine Bot-Detektion rennst kann es auch sein das dein Zugang gesperrt wird.

Kooperative wäre wenn es eine API gibt und Dokumentation, aber das scheint nicht der Fall zu sein. Bei "ist mir egal" geht das alles auch noch evtl. recht einfach, aber das braucht etwas mehr Grundwissen um z.B. die Authentifizierung rauszufinden und nachzumachen.
 
  • Gefällt mir
Reaktionen: BeBur
Miner schrieb:
Mein Gedanke hier ist, ich als User komme via Browser an Daten ran. Mache immer den selben Arbeitsschritt. Kopiere Daten aus einer Excel-Liste in ein Feld im Browser, schaue was dann für Daten ausgegeben werden, schaue ob ich das schon zur Kenntnis genommen habe und wenn eine Erweiterung erkennbar ist, dann wird etwas bei uns erfasst. Der Gedanke ist ein Tool zu entwickeln dass das alleine kann.
Ich kann deinen Standpunkt zu 200% nachvollziehen. Ich kriege signifikante negative Emotionen, wenn ich sehe dass unnötig händisch gearbeitet wird.
Ich will dir ein paar Dinge mitgeben:

1. Ein Tool zu schreiben, welches so arbeitet wie du willst kann zu Problemen zwischen deinem AG und dem Software-Hersteller führen. Das automatisierte auslesen / einlesen könnte explizit ausgeschlossen / verboten sein.

2. Du wirst Fehler machen. Sei es nun, dass Excel dir nicht das anzeigt was es kopiert (z.B. kopiert den Zahlwert des Datums statt korrekt formatiert) oder Zeichen mit im Feld sind, welche nicht angezeigt werden (newline z.B.)

3. Niemand entwickelt am Produktiv-System herum. Du brauchst eine Test-umgebung die 1:1 so reagiert wie das reale System. Sonst bist du immer mit einem Fuß am Abgrund.

4. Wenn der Hersteller dir keine Schnittstelle anbietet, dann musst du über das Webinterface arbeiten in deinem Programm (d.h. du saugst dir index.html und suchst dir dann das element wo du was eintragen oder auslesen willst etc.) und das ist immer eklig und geht kaputt sobald der hersteller da was ändert. Womöglich vertauscht der eines Tages die Reihenfolge und dann trägst du ein bzw. liest genau falsch herum ein.

5. Nur lesend ist etwas unproblematischer. Ich würde dir zu einem semi-automatischen Weg erst einmal raten. D.h. du saugst dir die Daten mithilfe eines Programmes und stellst sie so gegenüber wie du das gerne willst, so dass du nur noch Leertaste drücken musst und so nach und nach alles anschaust. Wenn du damit etwas Erfahrung gesammelt hast kannst du darüber nachdenken, dass vollautomatisch zu machen.


PS.:

Dalek schrieb:
  • die finden das super, und erklären dir gleich noch wie das viel einfacher geht mit einer API die sie bereitstellen
  • die sind eher skeptisch, befürchten das du die Seite überbeanspruchst
  • ist denen völlig egal
  • die haben ein Interesse daran das zu unterbinden (z.B. weil es eine viel teurere Version gibt die Automation beinhaltet)
Niemand mit Verstand gibt dazu die Erlaubnis = übernimmt die Verantwortung dafür. Der Hersteller wird selbstredend sagen "die Software ist nur so verwenden wie vorgesehen und nicht anders".
 
  • Gefällt mir
Reaktionen: Dalek
BeBur schrieb:
Niemand mit Verstand gibt dazu die Erlaubnis = übernimmt die Verantwortung dafür. Der Hersteller wird selbstredend sagen "die Software ist nur so verwenden wie vorgesehen und nicht anders".

Es gibt Software die auch so gedacht ist das man sie auch per API verwendet. Ist leider viel seltener als es sein sollte, aber es gibt sie. Und natürlich ist man dann immer noch verantwortlich wenn man groben Blödsinn macht.
 
  • Gefällt mir
Reaktionen: BeBur
Dalek schrieb:
Es gibt Software die auch so gedacht ist das man sie auch per API verwendet. Ist leider viel seltener als es sein sollte, aber es gibt sie. Und natürlich ist man dann immer noch verantwortlich wenn man groben Blödsinn macht.
Ja, absolut. Aber wenn es keine API gibt so wie hier wird ein Hersteller nicht hingehen und einem Kunden erlauben mithilfe von Programmen selbst Hand an zu legen.
 
Puh ja. Stelle gerade fest, dass es nicht gerade optimal ist, um mit dem Programmieren anzufangen.
Andererseits - es ist eine klare Aufgabenstellung. Nachvollziehbar und hat einen Zweck. Letztlich findet sich immer etwas, dass nicht optimal ist. Es sei denn ich schreibe (programmiere) etwas nach einem Tutorial ab.

Die Bedenken teile ich alle. Bin fast etwas überrascht, dass das "so spät" ... "beanstandet" wird.
Es ist sogar noch schlimmer. Hinter der "Web-Anwendung" steckt dann der "Staat" (i.w.S.). In der Weise würde ich gleichfalls behaupten, hinter der "Corona-App" steckt dann auch der "Staat". Der Staat kann gar nichts. Deshalb häufen sich die "Beraterverträge" usw. und solche Dinge gibt er dann in Auftrag. Ich weiß nicht welche Erfahrung Ihr mit dem Staat in dieser Hinsicht habt. Meine bisherige Erfahrung ist die, es ist im sch.... Egal wie viel Arbeit es den Betroffenen macht. Oder ob es Sinn macht. Er macht Gesetze und sagt dann "macht ihr mal". Ich will das gar nicht weiter... negativ darstellen oder so. War nur meine Betrachtung.

Wie sag ich das. Ich persönlich in eigener Verantwortung würde es riskieren. Nun bin ich schon recht lange bei dem AG und... habe ein Stück weit Narrenfreiheit. Zum Einen ein gewachsenes Vertrauensverhältnis. Zum Anderen (so traurig das ist) über mir kommt niemand mit mehr EDV-Kompetenz. Der AG hätte dann alleine wegen dem Verlust an Kompetenz ein Problem. Aber natürlich sind die Friedhöfe der Welt voll mit unersetzlichen Personen. Die dann doch offenbar ersetzt wurden. Mein Gehalt spiegelt in keiner Weise das Engagement und Leistung wieder. Ob sich da auf die schnelle jemand findet. Und..

Auf der anderen Seite des Planeten lernen die Kinder etwas über künstliche Intelligenz und ich verschwende hier meine Zeit mit so einem Sch... - das alleine würde das Projekt rechtfertigen.
Wenn ich bei dem Versuch etwas zu verbessern den Job verliere... dann bitte gerne.

Ich sehe nicht, dass der Anbieter da etwas von sich aus zur Verfügung stellen würde. Dem Staat ist es eh egal. Da bleibt bald wenn dann nichts anderes übrig, als am Live-System zu entwickeln. Deshalb wäre ja der Wunsch etwas eigenständiges. Nicht unmittelbar am Browser angedockt. Was vermutlich als Addon leichter wäre.

Ist wie mit den Lehrern in der Home-Scooling-Phase. Wer von den Lehrern lange auf Erlaubnisse gewartet hat, der hat seine Schüler lange nicht gesehen. Wer viel fragt bekommt viel Antwort.
 
  • Gefällt mir
Reaktionen: lokon und BeBur
Noch eine Anmerkung, weniger zur Programmierung: Es gibt (fast) immer eine alternative Software. Ich säge regelmäßig einen Anbieter ab, einfach weil die Software und Firma nicht mehr zeitgemäß ist/arbeitet. Dann sucht man halt einen modernen Anbieter, der Schnittstellen in der Software bietet. Das könnte schlussendlich die erhoffte Arbeitsentlastung bringen.
EDIT: zum Thema Staat, ich arbeite in einer Behörde, ich verstehe was du meinst - Stichwort OZG :D
 
Python als Programmiersprache? Brauche ich da Software? Gibt es da etwas das gratis ist? Was habe ich am Ende? Eine Exe? Oder mehrere Teile? Braucht das Endprodukt ein spezielles Umfeld? - So als Ziel wäre eine Stand-Allone-Exe die auf jedem Windows Rechner laufen kann.
 
na, weisst Du jetzt noch, nach all dem was Dir hier um die Ohren geflogen ist, was Du willst?
Deine von deinem AG bezahlte Arbeit vereinfachen.
Das ist schon bemerkenswert, vielleicht bemerkenswert naiv.
Eigentlich sollte sich dein AG darüber Gedanken machen, und Dir eine entsprechende Schulung anbieten. Wenn er dafür keine Notwendigkeit sieht handelst Du Dir NUR Ärger ein.
Bilde Dir nicht ein, den unersetzbar-Status zu erreichen. So etwas gibt's schon lange nicht mir.
Also überschlaf's, mach etwas für Dich unabhängig von Deiner täglichen Arbeit.
take it easy
 
Miner schrieb:
Wenn ich bei dem Versuch etwas zu verbessern den Job verliere... dann bitte gerne.
Ich kann dich gut verstehen, du machst einen klugen und umsichtigen Eindruck, soweit es mich persönlich betrifft hast du hier Beratung (bzw. Abratung) zu deinem Anliegen bekommen, das abgewägt und willst das jetzt dennoch machen, was in diesem Kontext ein akzeptables Ergebnis ist, von daher kann man gerne inahtlich voran schreiten, finde ich.

aw48 schrieb:
Also überschlaf's
Definitiv immer eine gute Idee :D.

Miner schrieb:
Python als Programmiersprache?
Ja das geht und bietet sich an, da
  • viele Tutorials
  • große Community
  • jede denkbare Library verfügbar (Libraries sind Ansammlungen von Code die man oft benötigt und bilden oft die Grundlage für Projekte)

Miner schrieb:
Gibt es da etwas das gratis ist?
Ja, ist quasi alles gratis.

Miner schrieb:
Was habe ich am Ende? Eine Exe? Oder mehrere Teile?
Du hast am Ende eine oder mehrere .py Dateien, die du dann per Kommando aufrufst (vergleichbar mit einem Doppelklick auf eine .exe Datei) und dann das macht (hoffentlich ;)) was du da eingetippt hast.

Miner schrieb:
So als Ziel wäre eine Stand-Allone-Exe die auf jedem Windows Rechner laufen kann.
Das geht ist aber nicht der Standardfall für Python und kann daher fummelig sein oder Probleme / Mehrarbeit machen so etwas zu generieren. Da können andere mehr zu schreiben, ich habe da keine Erfahrung.

Viele werden dir zu C# ("C-Sharp") raten wenn das Ziel explizit ein Windows Programm ist. C# ist absolut eine gangbare Option die man nur schwer mit Python vergleichen kann, letztendlich wirst du zu keinem abschließenden Ergebnis kommen können was (dir) besser taugt.
 
Zurück
Oben