Programmieren lernen ich bin total Planlos
Hey ich habe eine etwas blöde anfrage.
Ich arbeite in der IT und habe täglich mit Skripten in z.B. Powershell zutun.
Mit der Zeit habe ich gelernt diese zu lesen und in teilen anpassen zu können.
Am schreiben jedoch hapert es.. Vor ein paar Jahren habe ich versucht C++ zulernen.
Dazu habe ich zwei bücher gelesen und die MS Tutorials nachprogrammiert.
Schön und gut, die angegeben Projekte kann ich nun. Selbst etwas erschaffen jedoch keineswegs.
Deshalb meine Frage. Wie "lernt" man Programmieren? Habt Ihr mit einem Buch angefangen? Oder Videotutorials?
Wie habt Ihr dann weitergemacht? Mir ist bewusst das es ab einem gewissen Grad an komplexität die Docs zu den Jeweiligen Schnittstellen ein muss zum nachschlagen ist.
Aber selbst wenn ich mir nun z.B. die DOCs von MS ansehe. Wir ich nun die Syntax schreibe, wie ich nun was in richtiger Reihenfolge mache weis ich trotzdem nicht.
Wäre cool wenn Ihr einen Rat für mich hättet.
Danke und Grüße!
Ich arbeite in der IT und habe täglich mit Skripten in z.B. Powershell zutun.
Mit der Zeit habe ich gelernt diese zu lesen und in teilen anpassen zu können.
Am schreiben jedoch hapert es.. Vor ein paar Jahren habe ich versucht C++ zulernen.
Dazu habe ich zwei bücher gelesen und die MS Tutorials nachprogrammiert.
Schön und gut, die angegeben Projekte kann ich nun. Selbst etwas erschaffen jedoch keineswegs.
Deshalb meine Frage. Wie "lernt" man Programmieren? Habt Ihr mit einem Buch angefangen? Oder Videotutorials?
Wie habt Ihr dann weitergemacht? Mir ist bewusst das es ab einem gewissen Grad an komplexität die Docs zu den Jeweiligen Schnittstellen ein muss zum nachschlagen ist.
Aber selbst wenn ich mir nun z.B. die DOCs von MS ansehe. Wir ich nun die Syntax schreibe, wie ich nun was in richtiger Reihenfolge mache weis ich trotzdem nicht.
Wäre cool wenn Ihr einen Rat für mich hättet.
Danke und Grüße!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 609908
Url: https://administrator.de/contentid/609908
Ausgedruckt am: 21.11.2024 um 17:11 Uhr
26 Kommentare
Neuester Kommentar
Hi,
vielleicht bin ich ja altmodisch - aber ich würde ein richtiges Buch empfehlen (so aus Papier, und gegen Geld).
Es gibt viele tolle Blogs etc. Aber von deren Betreibern haben nur wenige a) die Zeit, dort wirklich ein langes, auf Einsteiger abgestimmtes Konzept zu erarbeiten und b) ein Lektorat. Bei Büchern ist das beides gegeben und dient der Qualität (was nicht heißen soll, dass es nicht auch schlechte Bücher gibt).
Wichtig finde ich es auch, sich das Buch genau anzuschauen. Es lohnt nicht, sich einen Stapel Bücher im Internet zu kaufen (dann am besten noch billige, weil ein Stapel schon teuer ist) und nach 20 Seiten die Lust zu verlieren. Toll ist es, wenn man eine gute Bibliothek hat, wo es eine Auswahl zu leihen gibt - mittlerweile in vielen Städten der Fall. Oder natürlich eine gute Buchhandlung. Lohnt sich vielleicht auch mal 20km weiter zu fahren.
Grüße
Filipp
vielleicht bin ich ja altmodisch - aber ich würde ein richtiges Buch empfehlen (so aus Papier, und gegen Geld).
Es gibt viele tolle Blogs etc. Aber von deren Betreibern haben nur wenige a) die Zeit, dort wirklich ein langes, auf Einsteiger abgestimmtes Konzept zu erarbeiten und b) ein Lektorat. Bei Büchern ist das beides gegeben und dient der Qualität (was nicht heißen soll, dass es nicht auch schlechte Bücher gibt).
Wichtig finde ich es auch, sich das Buch genau anzuschauen. Es lohnt nicht, sich einen Stapel Bücher im Internet zu kaufen (dann am besten noch billige, weil ein Stapel schon teuer ist) und nach 20 Seiten die Lust zu verlieren. Toll ist es, wenn man eine gute Bibliothek hat, wo es eine Auswahl zu leihen gibt - mittlerweile in vielen Städten der Fall. Oder natürlich eine gute Buchhandlung. Lohnt sich vielleicht auch mal 20km weiter zu fahren.
Grüße
Filipp
Moin,
zuerst mal - du "lernst" nicht Programmieren indem du 1, 2 oder 20 Bücher liest. Genauso wenig wie du Englisch, Spanisch, Deutsch oder sonstwas lernst wenn du ne Handvoll Bücher liest. Du "lernst" da höchstens Worte (-> Befehle), aber wieso die grade DA genutzt wurden oder wie du es später Anwendest wirst du da nicht lernen (also ich für meinen Teil habe mich noch nie mit "Hello, my name is mike, i am from germany" irgendwo vorgestellt - sondern üblicherweise eben nich nur nach Schulbuchenglisch).
Aus meiner Sicht: Das erste was du brauchst ist etwas was du programmieren WILLST. Doch jetzt laufe nich gleich los und überlege dir ne Software die das AD komplett umkrempelt, dir noch 50 angepasste PowerShell-Scripte raushaut und dabei noch die Lottozahlen der nächsten 2 Jahre rausgibt. Und nein, ein Spiel ist für den Anfang auch für gewöhnlich ungeeignet -> denn bei grösseren Dingen wirst du rausfinden das du
- nicht die Kenntnisse hast das vernünftig zu strukturieren
- nicht das Vokabular hast um das überhaupt zu bauen
- ständig Teile neu schreibst weil du plötzlich feststellt das die Idee wie du letzte Woche was gemacht hast sich heute als sch... erwiesen hat.
-> Am Ende machst du das Projekt zu und hast nur keinen Bock mehr...
Fange also an dir zu überlegen in welcher Sprache du loslegen willst und wohin die Reise gehen soll. Dabei ist es an der Stelle erst mal völlig egal ob du ne Scriptsprache (PHP,...) nimmst oder Hochsprachen wie Java/C++,... Für den Anfang sind oft PHP+Co leichter weil du dich da nich um jeden Kram kümmern musst (die Darstellung übernimmt halt simples HTML und du musst eben nich jedem Button erklären das der auf nen Klick auch reagieren soll...). Nehmen wir an du möchtest ein Programm für die tägliche Zeiterfassung machen (das ist nur EIN Beispiel weil ich in meinem Programm damit angefangen habe). D.h. du hast nen Login und das Zeitmodul mit Anzeigen, Bearbeiten, Löschen, Neu eintragen - und dahinter ne kleine DB (die Felder kannst du dir ja überlegen - ob du z.B. auch nen Feld hast was das Tätigkeitsgebiet war um am Ende zu sehen wieviel % du in welchem Bereich so vernagelst...). Alles in allem kein sonderlich schweres Modul... Wenns dann läuft dann kannst du halt anfangen das Programm RICHTIG zu machen -> Was passiert wenn ich bei der Startzeit einfach schon genervt war - und statt 8:00 einfach nen fröhliches lm:aa reinhaue? Wenn du das Modul dann wirklich "fertig" hast - dann kannst du halt überlegen -> willst du mit PHP weitermachen oder willst du versuchen dasselbe Modul mal in Java/C++ zu bauen? Und da wirst du merken das hier noch ganz andere Kaliber auf dich warten (weil du hier fremde Lib's verwendest - z.B. mysql-connector). Nichts unmögliches - aber auf jeden Fall etwas was dir den Spass schnell verdirbt wenn du direkt versuchst was nachzubauen...
Am Ende wirst du merken das es eben auch oft auf Erfahrung basiert was du nun wie genau löst - WENN du es dann überhaupt löst. Ich habe z.B. ein Modul in meiner Software was grosse Datenmengen zwischen Servern abgleichen muss. Nachdem mir der Java-Weg für das Kopieren da nich so gefällt hab ich es halt einfach gelöst indem ich nen rsync auf der Kommandozeile starte. Auch DAS kann eine Lösung sein - das du etwas nicht mehr selbst programmierst sondern fertige dinge nutzt ;). DAS wird aber kaum in einem Buch stehen - sondern das macht die Erfahrung am Ende aus...
zuerst mal - du "lernst" nicht Programmieren indem du 1, 2 oder 20 Bücher liest. Genauso wenig wie du Englisch, Spanisch, Deutsch oder sonstwas lernst wenn du ne Handvoll Bücher liest. Du "lernst" da höchstens Worte (-> Befehle), aber wieso die grade DA genutzt wurden oder wie du es später Anwendest wirst du da nicht lernen (also ich für meinen Teil habe mich noch nie mit "Hello, my name is mike, i am from germany" irgendwo vorgestellt - sondern üblicherweise eben nich nur nach Schulbuchenglisch).
Aus meiner Sicht: Das erste was du brauchst ist etwas was du programmieren WILLST. Doch jetzt laufe nich gleich los und überlege dir ne Software die das AD komplett umkrempelt, dir noch 50 angepasste PowerShell-Scripte raushaut und dabei noch die Lottozahlen der nächsten 2 Jahre rausgibt. Und nein, ein Spiel ist für den Anfang auch für gewöhnlich ungeeignet -> denn bei grösseren Dingen wirst du rausfinden das du
- nicht die Kenntnisse hast das vernünftig zu strukturieren
- nicht das Vokabular hast um das überhaupt zu bauen
- ständig Teile neu schreibst weil du plötzlich feststellt das die Idee wie du letzte Woche was gemacht hast sich heute als sch... erwiesen hat.
-> Am Ende machst du das Projekt zu und hast nur keinen Bock mehr...
Fange also an dir zu überlegen in welcher Sprache du loslegen willst und wohin die Reise gehen soll. Dabei ist es an der Stelle erst mal völlig egal ob du ne Scriptsprache (PHP,...) nimmst oder Hochsprachen wie Java/C++,... Für den Anfang sind oft PHP+Co leichter weil du dich da nich um jeden Kram kümmern musst (die Darstellung übernimmt halt simples HTML und du musst eben nich jedem Button erklären das der auf nen Klick auch reagieren soll...). Nehmen wir an du möchtest ein Programm für die tägliche Zeiterfassung machen (das ist nur EIN Beispiel weil ich in meinem Programm damit angefangen habe). D.h. du hast nen Login und das Zeitmodul mit Anzeigen, Bearbeiten, Löschen, Neu eintragen - und dahinter ne kleine DB (die Felder kannst du dir ja überlegen - ob du z.B. auch nen Feld hast was das Tätigkeitsgebiet war um am Ende zu sehen wieviel % du in welchem Bereich so vernagelst...). Alles in allem kein sonderlich schweres Modul... Wenns dann läuft dann kannst du halt anfangen das Programm RICHTIG zu machen -> Was passiert wenn ich bei der Startzeit einfach schon genervt war - und statt 8:00 einfach nen fröhliches lm:aa reinhaue? Wenn du das Modul dann wirklich "fertig" hast - dann kannst du halt überlegen -> willst du mit PHP weitermachen oder willst du versuchen dasselbe Modul mal in Java/C++ zu bauen? Und da wirst du merken das hier noch ganz andere Kaliber auf dich warten (weil du hier fremde Lib's verwendest - z.B. mysql-connector). Nichts unmögliches - aber auf jeden Fall etwas was dir den Spass schnell verdirbt wenn du direkt versuchst was nachzubauen...
Am Ende wirst du merken das es eben auch oft auf Erfahrung basiert was du nun wie genau löst - WENN du es dann überhaupt löst. Ich habe z.B. ein Modul in meiner Software was grosse Datenmengen zwischen Servern abgleichen muss. Nachdem mir der Java-Weg für das Kopieren da nich so gefällt hab ich es halt einfach gelöst indem ich nen rsync auf der Kommandozeile starte. Auch DAS kann eine Lösung sein - das du etwas nicht mehr selbst programmierst sondern fertige dinge nutzt ;). DAS wird aber kaum in einem Buch stehen - sondern das macht die Erfahrung am Ende aus...
Moin,
als Ergänzung zu dem, was meine Vorredner bereits gesagt haben:
Lesen (können) ist schön und gut, aber auch vestehen ist viel wichtiger. Für das Verständnis muss man aber eine Sprache einigermaßen können und da liegt Dein Problem. Ich habe vor langer Zeit mit (damals (tm)) Pascal angefangen, programmieren zu lernen. Heutzutage startet man eher mit Java. Im Selbststudium dürfte das allerdings recht schwer bzw. sehr zeitaufwändig werden.
C/C++ halte ich für die Grundlagen bzw. den Anfang für ungeeignet.
Gruß
cykes
als Ergänzung zu dem, was meine Vorredner bereits gesagt haben:
Lesen (können) ist schön und gut, aber auch vestehen ist viel wichtiger. Für das Verständnis muss man aber eine Sprache einigermaßen können und da liegt Dein Problem. Ich habe vor langer Zeit mit (damals (tm)) Pascal angefangen, programmieren zu lernen. Heutzutage startet man eher mit Java. Im Selbststudium dürfte das allerdings recht schwer bzw. sehr zeitaufwändig werden.
Am schreiben jedoch hapert es.. Vor ein paar Jahren habe ich versucht C++ zulernen.
Dazu habe ich zwei bücher gelesen und die MS Tutorials nachprogrammiert.
Schön und gut, die angegeben Projekte kann ich nun. Selbst etwas erschaffen jedoch keineswegs.
Da bleibt die Frage, hast Du es nur abgetippt und Dir das Ergebnis angesehen oder auch versucht zu verstehen, welche Zeilen was machen?Dazu habe ich zwei bücher gelesen und die MS Tutorials nachprogrammiert.
Schön und gut, die angegeben Projekte kann ich nun. Selbst etwas erschaffen jedoch keineswegs.
C/C++ halte ich für die Grundlagen bzw. den Anfang für ungeeignet.
Deshalb meine Frage. Wie "lernt" man Programmieren? Habt Ihr mit einem Buch angefangen? Oder Videotutorials?
Videotutorials gab's in meiner Anfangszeit noch nicht. Bücher habe ich allerhöchstens ergänzend benutzt, die waren dann aber meist eher für eine spezielle Problemstellung und weniger für die Grundlagen.Wie habt Ihr dann weitergemacht? Mir ist bewusst das es ab einem gewissen Grad an komplexität die Docs zu den Jeweiligen Schnittstellen ein muss zum nachschlagen ist.
Dazu brauchst Du aber erstmal die Grundlagen. Auch für folgendes:Aber selbst wenn ich mir nun z.B. die DOCs von MS ansehe. Wir ich nun die Syntax schreibe, wie ich nun was in richtiger Reihenfolge mache weis ich trotzdem nicht.
Das baut nur Frust auf, die ersten Schritte erzeugen noch kein Klicki-Bunti-Programm mit tollen Menüs usw., da werden bspw. die unterschiedlichen Schleifentypen durchexerziert und viel "wann verwendet man was" oder "wie kann man was eleganter lösen". Gleich irgendwo in der Mitte anzufangen stößt schnell an seine Grenzen.Gruß
cykes
Hallo,
Ich kann mich da nur anschließen. Such Dir ein Problem, dass Du lösen WILLST. Dann schreib Deinen Code. Am Ende wirst Du vielleicht wieder von vorne anfangen, weil Du merkst, dass man das ganze eleganter lösen kann. Du hast sicher schon bemerkt, dass die Programmiersprachen nicht wirklich Geheimsprachen sind. Das meiste ist fast flüssig lesbar. Programmieren können heißt also dann eigentlich, Probleme effizient lösen zu können. Das braucht Übung. Wenn Du Dich eines Tages darüber freust, wie elegant Dein Code ist und wie viele (potentielle) Fehlerquellen Du gerade umschifft hast, dann programmierst Du.
Kleiner Zusatztipp für den Start: kommentiere so viel wie möglich. Du wirst Deine Kommentare vermutlich später noch brauchen.
Grüße
lcer
Ich kann mich da nur anschließen. Such Dir ein Problem, dass Du lösen WILLST. Dann schreib Deinen Code. Am Ende wirst Du vielleicht wieder von vorne anfangen, weil Du merkst, dass man das ganze eleganter lösen kann. Du hast sicher schon bemerkt, dass die Programmiersprachen nicht wirklich Geheimsprachen sind. Das meiste ist fast flüssig lesbar. Programmieren können heißt also dann eigentlich, Probleme effizient lösen zu können. Das braucht Übung. Wenn Du Dich eines Tages darüber freust, wie elegant Dein Code ist und wie viele (potentielle) Fehlerquellen Du gerade umschifft hast, dann programmierst Du.
Kleiner Zusatztipp für den Start: kommentiere so viel wie möglich. Du wirst Deine Kommentare vermutlich später noch brauchen.
Grüße
lcer
Deshalb meine Frage. Wie "lernt" man Programmieren? Habt Ihr mit einem Buch angefangen? Oder Videotutorials?
Was Hänschen nicht lernt, lernt Hans nimmermehr. Ich kann da nur aus eigener Erfahrung reden, ich prügelte mich mit Mädchen als ich 12 war, brach mir eine Hand, saß 3 1/2 Stunden beim Unfallarzt (trotz bestehender Privatversicherung der Eltern) und lernte ein Basic Programm auswendig.
Am nächsten Tag fand man mich bei Quelle in der Computerecke, und nach 3 Stunden Herumprobieren lief das Programm. Sinclair ZX81 hieß das Ding, die damals aktuellen Spiele waren Pacman, hin und wieder noch Pong... das war 1981. Meine Motivation damals war: die blöde Maschine soll tun was ich will.
Also bin ich bei BASIC geblieben, anfänglich, kaufte mir für 5,50 DM eine 170 kB Diskette und bastelte (nun am C64) immer mächtigere Programme zusammen, bis sie voll war. Das Tolle daran ist, ich hab sie immer noch - und sie geht auch immer noch in einem Commodore 128. Mein Vater hat wie du nur in der Suppe gestochert und auch 3 Jahren Skript editieren und im Hexeditor Codes tauschen nichts, aber auch garnichts gerafft. Das ging hin bis zu einer Computerphobie, und man soll es nicht glauben, als bei ihm Mitte der 80er ein Terminal auf dem Schreibtusch gestellt wurde, war er berufsunfähig und hat eine Pension gekriegt. Bestimmte Leute sind halt nicht für Computer gemacht, glaub mir.
Wenn meine Tochter mal alt genug für sowas ist, würde ich sie nicht unbedingt mit BASIC anfangen lassen... wenn schon eine deklarative Sprache, dann wäre heute C# das Mittel der Wahl, und letztenendlich gibt es Millionen von unterschiedlichen Programmierkursen, die muß man halt alle durchprobieren, sowie alle Sprachen von A-Z (wenn auch noch nicht alle Buchstaben belegt sind) ob das was dabei ist, was einem besonders liegt.
Und wenn ich Powershell höre, dann wird mir regelmäßig schlecht. Die Sprache konnte bis vor ein paar Jahren noch nicht mal den Unterschied zwischen globalen und lokalen Variablen, birgt aber undurchschaubare Schweinereien aus der BASH Skriptsprache und deren Anwender ergehens ich darin, möglichst undurchschaubare Skripte damit zu basteln. Ist für mich auch nur ein ungehobeltes Werkzeug, und das alte C ohne die fehlerheft implementierte Erweiterung C++ hat für mich eine einfache klare logische Schönheit bedeutet.
Sie hat mich auch 6 Jahre meines Lebens als Programierer begleitet...
Zuerst suchst du dir ein Problem (muss nicht dein eigenes sein, kann auch von wem anders kommen), dann analysierst du es, versuchst es zu verstehen und entwickelst dann eine Idee für die Lösung.
Anfangs hilft es, die Lösung noch in Pseudocode darzustellen.
Danach nimmst du dir die Programmiersprache deiner Wahl und versuchst dann, deine Pseudocodelösung in Quelltext umzuwandeln.
Wichtig: Damit du nicht sehr schnell frustiert bist: Divide & Conquer. Also das Problem in kleine Teile aufteilen und die dann Schritt für Schritt angehen. Windows wurde auch nicht an einem Tag (und insbesondere nicht an einem Stück) erschaffen.
Ich hab in der Schule mit den Standardprogrammieraufgaben angefangen, später im Beruf hab ich mir dann erst kleine Hilfsprogramme gebaut, mittlerweile sind einige meiner "nebenbei" entwickelten Programme betriebskritische Komponenten geworden.
Anfangs hilft es, die Lösung noch in Pseudocode darzustellen.
Danach nimmst du dir die Programmiersprache deiner Wahl und versuchst dann, deine Pseudocodelösung in Quelltext umzuwandeln.
Wichtig: Damit du nicht sehr schnell frustiert bist: Divide & Conquer. Also das Problem in kleine Teile aufteilen und die dann Schritt für Schritt angehen. Windows wurde auch nicht an einem Tag (und insbesondere nicht an einem Stück) erschaffen.
Ich hab in der Schule mit den Standardprogrammieraufgaben angefangen, später im Beruf hab ich mir dann erst kleine Hilfsprogramme gebaut, mittlerweile sind einige meiner "nebenbei" entwickelten Programme betriebskritische Komponenten geworden.
Unsere Programmierer die sich bei uns bewerben müssen im Vorstellungsgespräch uns Auskunft erteilen über Managed Code und Unmanaged Code.
Je nachdem was uns dann erzählt wird, der Bewerber hat dazu zehn Minuten Zeit, führen wir das Bewerbungsgespräch weiter oder nicht.
Je nachdem was uns dann erzählt wird, der Bewerber hat dazu zehn Minuten Zeit, führen wir das Bewerbungsgespräch weiter oder nicht.
Zitat von @142583:
Unsere Programmierer die sich bei uns bewerben müssen im Vorstellungsgespräch uns Auskunft erteilen über Managed Code und Unmanaged Code.
Je nachdem was uns dann erzählt wird, der Bewerber hat dazu zehn Minuten Zeit, führen wir das Bewerbungsgespräch weiter oder nicht.
Unsere Programmierer die sich bei uns bewerben müssen im Vorstellungsgespräch uns Auskunft erteilen über Managed Code und Unmanaged Code.
Je nachdem was uns dann erzählt wird, der Bewerber hat dazu zehn Minuten Zeit, führen wir das Bewerbungsgespräch weiter oder nicht.
Na, DAS sagt ja dann viel darüber aus ob jemand programmieren kann... Ich hab wohl nur schon zuviele flachpfeiffen gesehen die zwar mit Fachbegriffen um sich werfen können aber von der Materie keine Ahnung haben...
Deshalb gibt es nach der ersten Frage einen Exit.
Im zweiten Gespräch, das dauert sechs Stunden, wird auch programmiert bzw Fehlersuche betrieben.
Im zweiten Gespräch, das dauert sechs Stunden, wird auch programmiert bzw Fehlersuche betrieben.
Mir geht es genauso. Ich bin auch Administrator und wurde mit den Skriptsprachen, wie Perl, Python und Bash oder Powershell nie so richtig warm. Jetzt versuche ich seit einigen Jahren mich in C++ einzuarbeiten, weil ich irgendwann mit Qt programmieren möchte. Ich habe mir auch Grundlagenbücher gekauft. Und ich schaue mir einiges an Videos an. Zuletzt habe ich ein (für mich) ganz netten Ansatz in einer Videoserie gefunden, um Dinge zu verstehen. https://www.youtube.com/watch?v=J4X5dRfOMNs&list=PLfgMNKpBVg4VsMv0lN ... Aber das ist sehr individuell und ich bin noch am Anfang der Vorlesungsserie.
Ich empfehle dir nicht aufzugeben. Und ich empfehle Dir in sehr kleinen Schritten zu lernen. Schaffe dir kleine Erfolgserlebnisse, freue dich, wenn du eine Kleinigkeit verstehst. So halte ich mich momentan über Wasser. Mein Zielprojekt würde von mir alleine eh nie zu schaffen sein, aber es ist meine Richtschnur. Und so gehts weiter. Effektiver zu lernen ist eine Frage von Zeit und Praxis. Wenn Du schneller lernen willst, versuche viele Zeiträume (mehrere Stunden in der Woche) frei zu machen, in denen du nur das tust. Oder eben eine entsprechende Ausbildung oder ein Studium.
Ich wünsche dir alles Gute.
Ich empfehle dir nicht aufzugeben. Und ich empfehle Dir in sehr kleinen Schritten zu lernen. Schaffe dir kleine Erfolgserlebnisse, freue dich, wenn du eine Kleinigkeit verstehst. So halte ich mich momentan über Wasser. Mein Zielprojekt würde von mir alleine eh nie zu schaffen sein, aber es ist meine Richtschnur. Und so gehts weiter. Effektiver zu lernen ist eine Frage von Zeit und Praxis. Wenn Du schneller lernen willst, versuche viele Zeiträume (mehrere Stunden in der Woche) frei zu machen, in denen du nur das tust. Oder eben eine entsprechende Ausbildung oder ein Studium.
Ich wünsche dir alles Gute.
Moin,
zuerst musst du dich mit der theoretischen Programmierung befassen. Stell dich vor einem Problem und versuche es in der Theorie (Entwurfssprache) zu lösen. Wann setzt du die Wenn-Abfragen ein, wann setzt du welche Schleife ein und wie befüllst du Variablen. Funktionen kannst du dir in der Theorie beliebig ausdenken. Erst dann hast du ungefähr die Ahnung was ein Programmcode eigentlich macht. Hier sprechen wir dann von der theoretischen Schaffung von Script- oder Programmabläufen.
Wenn du das verstanden hast, kommen wir zum Eingemachten: Du musst dich vor einem kleinen Problem stellen, das du mit einer Programmiersprache löst. Auch wenn es dafür schon Lösungen gibt, ist es gut, wenn du deine eigene Lösung krierst.
Als ich damals mit der Powershell angefangen habe, habe ich kleine Auswertungen für Kunden erstellt. Das steigert sich irgendwann, bis du dann in der Lage bist vollautomatisierte Migrationsprozesse zu entwickeln. Aber dafür reicht das Wissen der, in dem Fall, PowerShell nicht aus: Du musst auch Hintergrundwissen haben. Du musst verstehen was im Hintergrund passiert. Erst dann kannst du logische Zusammenhänge nachvolziehen und darauf aufbauen. Wenn du die Logik verstanden hast, kannst du dich auch um Probleme kümmern und Fehler beseitigen.
Viel Erfolg und wenn du Unterstützung brauchst, meld dich.
Viele Grüße
Daemmerung
zuerst musst du dich mit der theoretischen Programmierung befassen. Stell dich vor einem Problem und versuche es in der Theorie (Entwurfssprache) zu lösen. Wann setzt du die Wenn-Abfragen ein, wann setzt du welche Schleife ein und wie befüllst du Variablen. Funktionen kannst du dir in der Theorie beliebig ausdenken. Erst dann hast du ungefähr die Ahnung was ein Programmcode eigentlich macht. Hier sprechen wir dann von der theoretischen Schaffung von Script- oder Programmabläufen.
Wenn du das verstanden hast, kommen wir zum Eingemachten: Du musst dich vor einem kleinen Problem stellen, das du mit einer Programmiersprache löst. Auch wenn es dafür schon Lösungen gibt, ist es gut, wenn du deine eigene Lösung krierst.
Als ich damals mit der Powershell angefangen habe, habe ich kleine Auswertungen für Kunden erstellt. Das steigert sich irgendwann, bis du dann in der Lage bist vollautomatisierte Migrationsprozesse zu entwickeln. Aber dafür reicht das Wissen der, in dem Fall, PowerShell nicht aus: Du musst auch Hintergrundwissen haben. Du musst verstehen was im Hintergrund passiert. Erst dann kannst du logische Zusammenhänge nachvolziehen und darauf aufbauen. Wenn du die Logik verstanden hast, kannst du dich auch um Probleme kümmern und Fehler beseitigen.
Viel Erfolg und wenn du Unterstützung brauchst, meld dich.
Viele Grüße
Daemmerung
Powershell ist eine Programmiersprache? So wie HTML und CSS?
Hier sind schon einige nützliche Antworten genannt worden.
Da ich selbst seit 30 Jahren Software entwickle und auch mehrere Jahre Azubis im ersten Jahr programmieren beigebracht habe, möchte ich noch was ergänzen.
Das Thema hat auch mit Talent zu tun. Ich habe mir autodidaktisch BASIC als erste Programmiersprache beigebracht, mit einigem Erfolg, da ich ein gewisses Talent dazu habe. Ich bin dann aber schnell auch an Grenzen gekommen, die andere noch leichter überwunden hatten. Sie hatten mehr Talent.
Dann kam die Ausbildung, und ich bekam Programmieren beigebracht.
Das ist nämlich was anderes, als eine Programmiersprache zu lernen!
Inzwischen habe ich gut 10-12 Programmiersprachen autodidaktisch gelernt, weil mir daneben von anderen beigebracht wurde, wie man programmiert.
Zu den Sprachen: Es ist natürlich gut, die Sprachen zu nutzen, mit denen man im Alltag sowieso ständig zu tun hat.
Darüber hinaus stehen einem manche Programmiersprachen beim Programmieren lernen deutlich im Weg, weil man sich mehr mit deren Eigenheiten als mit dem Problem beschäftigen muss, andere weniger.
Python ist hier deutlich auf der hilfreichen Seite der Skala.
Zum Lernen: Trotz meiner Erfahrung als Autodidakt muss ich sagen, dass Bücher und Videos nur bedingt nützen.
Ich kann zwar leicht immer wieder Erklärungen wiederholen, zurückblättern und stoppen.
Aber die Erklärung wird sich dadurch nicht ändern.
Und wenn sie nun mal für mich nicht verständlich ist, dann hilft auch die Wiederholung nicht.
Es geht dabei um das Modell des Ganzen, was du in deinem Kopf aufbaust.
Das Beste zum Lernen ist jemand, den man fragen kann.
Wenn er gut ist, wird er sich erstmal anhören, was du denn glaubst, verstanden zu haben.
Dann wird er dich versuchen lassen, deine Fragen zu formulieren. Der Versuch, die richtige Frage zu stellen, setzt nämlich schon Lernprozesse in Gang.
Und zum Schluss wird er dir erklären, wo dein ganz konkretes Modell Denkfehler hat.
Das kann kein Frontalunterricht/Video und erst recht kein Buch leisten, weil du als Leser nicht mit ihnen zurückkommunizieren kannst.
Fazit: Such dir einen, der bereit ist, deine Fragen zu beantworten. So lernst du Programmieren.
PS: Bei all meiner Erfahrung, gerade auch mit bash, tue ich mich extrem schwer, vernünftig mit der Powershell zu arbeiten.
Ich profitiere deutlich von einem Kollegen, der meine Fragen gerne beantwortet.
Da ich selbst seit 30 Jahren Software entwickle und auch mehrere Jahre Azubis im ersten Jahr programmieren beigebracht habe, möchte ich noch was ergänzen.
Das Thema hat auch mit Talent zu tun. Ich habe mir autodidaktisch BASIC als erste Programmiersprache beigebracht, mit einigem Erfolg, da ich ein gewisses Talent dazu habe. Ich bin dann aber schnell auch an Grenzen gekommen, die andere noch leichter überwunden hatten. Sie hatten mehr Talent.
Dann kam die Ausbildung, und ich bekam Programmieren beigebracht.
Das ist nämlich was anderes, als eine Programmiersprache zu lernen!
Inzwischen habe ich gut 10-12 Programmiersprachen autodidaktisch gelernt, weil mir daneben von anderen beigebracht wurde, wie man programmiert.
Zu den Sprachen: Es ist natürlich gut, die Sprachen zu nutzen, mit denen man im Alltag sowieso ständig zu tun hat.
Darüber hinaus stehen einem manche Programmiersprachen beim Programmieren lernen deutlich im Weg, weil man sich mehr mit deren Eigenheiten als mit dem Problem beschäftigen muss, andere weniger.
Python ist hier deutlich auf der hilfreichen Seite der Skala.
Zum Lernen: Trotz meiner Erfahrung als Autodidakt muss ich sagen, dass Bücher und Videos nur bedingt nützen.
Ich kann zwar leicht immer wieder Erklärungen wiederholen, zurückblättern und stoppen.
Aber die Erklärung wird sich dadurch nicht ändern.
Und wenn sie nun mal für mich nicht verständlich ist, dann hilft auch die Wiederholung nicht.
Es geht dabei um das Modell des Ganzen, was du in deinem Kopf aufbaust.
Das Beste zum Lernen ist jemand, den man fragen kann.
Wenn er gut ist, wird er sich erstmal anhören, was du denn glaubst, verstanden zu haben.
Dann wird er dich versuchen lassen, deine Fragen zu formulieren. Der Versuch, die richtige Frage zu stellen, setzt nämlich schon Lernprozesse in Gang.
Und zum Schluss wird er dir erklären, wo dein ganz konkretes Modell Denkfehler hat.
Das kann kein Frontalunterricht/Video und erst recht kein Buch leisten, weil du als Leser nicht mit ihnen zurückkommunizieren kannst.
Fazit: Such dir einen, der bereit ist, deine Fragen zu beantworten. So lernst du Programmieren.
PS: Bei all meiner Erfahrung, gerade auch mit bash, tue ich mich extrem schwer, vernünftig mit der Powershell zu arbeiten.
Ich profitiere deutlich von einem Kollegen, der meine Fragen gerne beantwortet.
Zitat von @inocertiv:
Dazu habe ich zwei bücher gelesen und die MS Tutorials nachprogrammiert.
Schön und gut, die angegeben Projekte kann ich nun. Selbst etwas erschaffen jedoch keineswegs.
Dazu habe ich zwei bücher gelesen und die MS Tutorials nachprogrammiert.
Schön und gut, die angegeben Projekte kann ich nun. Selbst etwas erschaffen jedoch keineswegs.
Genau das ist der Fehler: Einfach nur Beispiele nachprogrammieren ist vielleicht was für den absoluten Einstieg, aber weit kommst du damit nicht.
Ich wollte damals Programme für einen bestimmten Zweck und habe dann versucht das zu entwickeln. Ist nicht der schnellste Weg, aber der effektivste. Hab später eine Ausbildung als FIAE gemacht und war enttäuscht weil ich dachte, dass ich bestenfalls ein fortgeschrittener Anfänger bin und jetzt lerne, wie es die Profis richtig machen. Letztendlich hatte ich im Selbststudium weit mehr gelernt als in der Ausbildung. Essenzielle Dinge wie z.B. Versionsverwaltung, automatisierte Deployment-Pipelines gab es weder in der BS noch im Betrieb, im Betrieb hab ich das damals eingeführt.
Jedenfalls hat mir diese lösungsorientierte Arbeitsweise sehr viel Erfahrung gebracht. In den Anfängen waren unter anderem Chatbots dabei oder ein Screenshot-Tool. Für die Chatbots bin ich dann auch gleich bei Java, Reverse Engineering, PHP und MySQL gelandet. Das Screenshot-Tool hat meine C# und .NET Skills damals stark gepusht. Zusammen damit kamen auch die ersten Gehversuche mit der Win-API.
Ich habe immer versucht was lauffähiges zu bekommen. Anfangs war auch oft C&P dabei. Egal ob es funktioniert hat oder nicht: In beiden Fällen hab ich im Anschluss versucht das ganze möglichst zu verstehen. Im Fehlerfall natürlich warum es nicht geht. Aber auch im Erfolgsfall wollte ich dann wissen, was genau der kopierte Code macht. Als ich später mehr Wert auf Codedesign und Qualität gelegt habe, wurde der dann auch entsprechend meinen Coding Standards angepasst.
Allgemeine Bücher/Videotutorials habe ich nie wirklich benutzt. War auch eine Frage der Mittel, hatte damals weder einen festen Internetanschluss noch Geld und die Fülle wie es sie heute gibt an kostenlosem Material gabs da noch nicht. Ich bin der Meinung, dass so was für absolute Anfänger ein Einstieg sein kann, um die Grundlagen (Datentypen usw) kennen zu lernen - wenn es dem eigenen Lerntyp entspricht (der eine mag eher Bücher, der andere Filme). In einem Buch hast du halt zusammenhängende Infos, die aufeinander abgestimmt sind. Das ist für einen Anfänger sicher leichter, als jedes Teil aus einer anderen Quelle mit unterschiedlicher Zielgruppe etc zu holen. Ich habs quasi auf die harte Tour gemacht und dafür länger gebraucht, aber auch schnell gelernt zu recherchieren.
Über die Grundlagen hinaus sehe ich es eher als schädlich an, weil sich viele zu sehr leiten lassen. Hab schon mehrere gesehen, die ein Buch einfach durcharbeiten, so wie es unser Schulsystem vorlebt: Buch durcharbeiten, das in einer Klassenarbeit wiedergeben, gute Note bekommen, Thema erledigt. Den Vogel abgeschossen hat ein Informatikstudent, der sich in Java einarbeiten sollte und dafür ein entsprechendes Buch bekam. Nach wenigen Stunden hieß es: Hab das Buch durchgelesen, was soll ich jetzt machen?
Genau so funktioniert Softwareentwicklung aber eben nicht. Und natürlich hatte der Student danach nicht mehr Ahnung von Java als vorher. Genau so wenig wie du ein Buch übers Holzhandwerk lesen kannst und anschließend 1A Scheiner bist. So was muss geübt werden. Und zwar frei geübt, nicht nur die Werkstücke aus dem Buch nachmachen. Das kann ein erster Anfang sein, aber irgendwann ist der Punkt da, wo man eigene Werkstücke erstellt. Erst dabei lernt man wirklich was neues. Und erst im Nachhinein kann man einschätzen, wie gut oder schlecht die eigene Leistung war (Dunning-Kruger-Effekt).
Oder ein anderes Beispiel: Fahrrad fahren lernen. Anfangs würde man einem Kind erklären, den Sattel einzustellen, wie man bremst, den Ständer ein/ausklappt etc. Dann das Kind mal aufsitzen lassen und das Rad fest heben. Bei den ersten Metern läuft man noch mit, wiederholt das vllt ein paar mal. Bis hierhin wäre es für mich der Part, bei dem man ein Anfänger-Buch Kapitel für Kapitel ließt und ggf parallel ausprobiert. Danach lässt man das Kind alleine fahren, es wird später dann auch mal auf anderem Untergrund fahren und so weiter. Hier gibts dann kein Buch mehr das sagt was als nächstes kommt, sondern das Kind überlegt selbst wohin es fahren will, bei welchem Wetter etc.
Zitat von @Daemmerung:
zuerst musst du dich mit der theoretischen Programmierung befassen. Stell dich vor einem Problem und versuche es in der Theorie (Entwurfssprache) zu lösen. Wann setzt du die Wenn-Abfragen ein, wann setzt du welche Schleife ein und wie befüllst du Variablen. Funktionen kannst du dir in der Theorie beliebig ausdenken. Erst dann hast du ungefähr die Ahnung was ein Programmcode eigentlich macht.
zuerst musst du dich mit der theoretischen Programmierung befassen. Stell dich vor einem Problem und versuche es in der Theorie (Entwurfssprache) zu lösen. Wann setzt du die Wenn-Abfragen ein, wann setzt du welche Schleife ein und wie befüllst du Variablen. Funktionen kannst du dir in der Theorie beliebig ausdenken. Erst dann hast du ungefähr die Ahnung was ein Programmcode eigentlich macht.
Das "muss" finde ich dort fehl am Platz. Ich habe den Theoriekrams zum ersten mal im TG gemacht und mich davor schon jahrelang mit praktischer Softwareentwicklung beschäftigt. Danach habe ich es ein zweites mal für die Berufsschule gemacht und seit dem nie wieder. Auch wenn die Schulbücher das gerne sagen, wird so in der Praxis kaum gearbeitet. Mir persönlich war es auch eher lästig als eine Hilfe. Bestenfalls habe ich mir ein paar Notizen gemacht, dann ging es zumindest mit einem Interface los.
Ein Struktogramm KANN eine Hilfe sein, wenn man beim Coden nicht so richtig weiß was zu tun ist bzw wie es weiter geht. Das so hinzustellen als müsse er jetzt unbedingt mit Stift und Papier anfangen bevor es an den Code geht, ist falsch.
Aber das eigentliche Problem liegt woanders. Wie schon gesagt braucht er erst mal ein konkretes eigenes Projekt, um eigene Erfahrungen zu sammeln. Dort kann er dann auch ausprobieren, ob Struktogramme & co eine Verständnishilfe sind oder ihn eher über einen Berufswechsel nachdenken lassen
Im Grunde gebe ich dir völlig recht. Nur lese ich aus seinem Text heraus, dass er die Logik hinter der Programmierung noch nicht ganz verstanden hat und deshalb nichts eigenes krieren kann. Die Syntax versteht er, aber es hat im Kopf noch nicht klick gemacht, damit er es umsetzen kann. Genau deshalb hilft es meistens erst einmal die grundliegende Theorie dahinter zu verstehen. Wenn er sich im Kopf sagen kann, ich muss erst eine Eingabe tätigen, die dann in eine Variable gespeichert wird, um diese dann mit einer IF-Abfrage abzufragen, etc... kann er dann an die richtige Programmierung ran.
P.S.: Mir ist übrigens klar, dass PowerShell keine Programmiersprache ist. Es wäre nur unklug jetzt anzukommen und den TE noch mehr zu verwirren, indem man hier Haarspaltereien betreibt. Führt uns nicht weiter. Früher oder später wird er es selbst erfahren.
P.S.: Mir ist übrigens klar, dass PowerShell keine Programmiersprache ist. Es wäre nur unklug jetzt anzukommen und den TE noch mehr zu verwirren, indem man hier Haarspaltereien betreibt. Führt uns nicht weiter. Früher oder später wird er es selbst erfahren.
Ich will die Empfehlung kurz und konkret halten, daher:
- zum Einstieg ins Programmieren empfehle ich die Porgrammiersprache Python, sie ist gleichzeitig einfach, mächtig und wird in sehr vielen Einsatzgebieten verwendet
- ich würde einen Kurs auf Udemy mit guten Bewertungen und konkreten Porjekten auswählen, zum Beispiel:
https://www.udemy.com/course/the-python-mega-course/
oder:
https://www.udemy.com/course/complete-python-bootcamp
um nur zwei zu nennen, die ich selber gekauft habe.
Letzter Hinweis: die Kurse unbeding nur dann kaufen, wenn sie rabatiert sind - das ist im Schnitt jede 2. Woche. Dann kosten die meisten 12-15€, und nicht was als "normaler Preis" geführt wird. Ich warte in der Regel nicht mehr auf die Rabate, sondern, wenn es keine gibt, frage ich direkt beim Support nach, bis jetzt haben sie mir schon immer einen Rabattcode geschickt.
Gruß,
Nenad
- zum Einstieg ins Programmieren empfehle ich die Porgrammiersprache Python, sie ist gleichzeitig einfach, mächtig und wird in sehr vielen Einsatzgebieten verwendet
- ich würde einen Kurs auf Udemy mit guten Bewertungen und konkreten Porjekten auswählen, zum Beispiel:
https://www.udemy.com/course/the-python-mega-course/
oder:
https://www.udemy.com/course/complete-python-bootcamp
um nur zwei zu nennen, die ich selber gekauft habe.
Letzter Hinweis: die Kurse unbeding nur dann kaufen, wenn sie rabatiert sind - das ist im Schnitt jede 2. Woche. Dann kosten die meisten 12-15€, und nicht was als "normaler Preis" geführt wird. Ich warte in der Regel nicht mehr auf die Rabate, sondern, wenn es keine gibt, frage ich direkt beim Support nach, bis jetzt haben sie mir schon immer einen Rabattcode geschickt.
Gruß,
Nenad
Man muss nicht unbedingt Kurse belegen. Bei Youtube findet man viele Anleitungen.
Hier ein Beispiel für einen sehr guten Javakurs für Anfänger:
https://www.youtube.com/watch?v=8baa27uPo0U&t=364s
Hier ein Beispiel für einen sehr guten Javakurs für Anfänger:
https://www.youtube.com/watch?v=8baa27uPo0U&t=364s
Zitat von @mbehrens:
Ich würde für die ersten Schritte eine Sprache mit starker Typisierung/Typsicherheit wählen (F#, Go, Haskell, Tust, Object Pascal).
Ich würde für die ersten Schritte eine Sprache mit starker Typisierung/Typsicherheit wählen (F#, Go, Haskell, Tust, Object Pascal).
Naja - is halt die Frage - ich würde da doch eher ne "Wald- und Wiesensprache" nehmen weil man damit eben auch was anfangen kann... Also ich zumindest hab noch eher wenig Anzeigen gesehen bei denen jemand mit F, Go oder sonstigen Sprachkenntnissen gesucht wird (verglichen zu Java/C++/PHP/... würde ich sagen das geht gegen 0...)
F# ist bei uns unter unseren .NetDevs gar nicht so selten.
Für die C# Devs ist es sehr einfach in F# zu wüten, jedoch sind unsere Code-Prüfer sehr happy über F# weil Fehler nicht nur schneller gefunden werden können, sondern auch immer besser geprüfter Code zurück in die Repos kommt.
Ein paar Kommunikationsdienste zur Arbeit mit Daten in SPSen sind komplett in F# gebaut und machen sehr viel weniger Probleme. Die Optimierung und Fehlerbehebungen sind sehr viel nachhaltiger. Gut, der Anteil an C# Code in den Repos ist mindestens 20x so hoch, dennoch sind die F# härter.
Wir haben eine Fertigungsstraße für recht komplexe Zusammenbauteile, wobei über Rückverfolgung per DMC und das Speichern von diversen weiteren Werten die Bauteile entstehen und das Ganze wird über zwei Windows-Dienste über alle Steuerungen und Prozessschritte abgewickelt. Das war die Arbeit von 2,5 Programmierer und ich muss sagen, selten so wenig Probleme gehabt, obwohl die Anlagenprogrammierer zig Zulieferer waren aus aller Welt und viel schräges SPS-Coding dabei.
Ich würde in Zukunft gerne mehr davon sehen, dennoch dürfen das die Devs selber entscheiden, so lang der Code wenig zukünftige Wartung brauch und sich nicht unnötig aufwendig auf die zunehmende .Net Core Strategie auswirkt.
Code-Wartung macht bei uns leider ungefähr 50% der Programmierstunden auf und rechtfertigt mittlerweile ein Team samt Leiter, wegen der großen Menge des Codes.
Es ist ein schwieriges Thema weil hier immer gespart werden soll und die GF sich da vom Controlling immer dummes Zeug vorrechnen lässt. Die Kontrolle über den Code zu verlieren hätte aber zur Folge, dass der Code in Kürze nicht mehr zu verantworten und zu warten wäre.
Unsere alten C und C++ Projekte haben oft diesen Mangel.
Alte PQ35 Technik von knapp 20 Jahren ist unglaublich schwer zu warten und brauch auch Mal fette CPU und RAM, weil 'kleine" Programme unmöglich mit den Ressourcen umgehen aber irgendwie "funktionieren".
Und die alten Hasen gehen alle bald in Rente.
Für die C# Devs ist es sehr einfach in F# zu wüten, jedoch sind unsere Code-Prüfer sehr happy über F# weil Fehler nicht nur schneller gefunden werden können, sondern auch immer besser geprüfter Code zurück in die Repos kommt.
Ein paar Kommunikationsdienste zur Arbeit mit Daten in SPSen sind komplett in F# gebaut und machen sehr viel weniger Probleme. Die Optimierung und Fehlerbehebungen sind sehr viel nachhaltiger. Gut, der Anteil an C# Code in den Repos ist mindestens 20x so hoch, dennoch sind die F# härter.
Wir haben eine Fertigungsstraße für recht komplexe Zusammenbauteile, wobei über Rückverfolgung per DMC und das Speichern von diversen weiteren Werten die Bauteile entstehen und das Ganze wird über zwei Windows-Dienste über alle Steuerungen und Prozessschritte abgewickelt. Das war die Arbeit von 2,5 Programmierer und ich muss sagen, selten so wenig Probleme gehabt, obwohl die Anlagenprogrammierer zig Zulieferer waren aus aller Welt und viel schräges SPS-Coding dabei.
Ich würde in Zukunft gerne mehr davon sehen, dennoch dürfen das die Devs selber entscheiden, so lang der Code wenig zukünftige Wartung brauch und sich nicht unnötig aufwendig auf die zunehmende .Net Core Strategie auswirkt.
Code-Wartung macht bei uns leider ungefähr 50% der Programmierstunden auf und rechtfertigt mittlerweile ein Team samt Leiter, wegen der großen Menge des Codes.
Es ist ein schwieriges Thema weil hier immer gespart werden soll und die GF sich da vom Controlling immer dummes Zeug vorrechnen lässt. Die Kontrolle über den Code zu verlieren hätte aber zur Folge, dass der Code in Kürze nicht mehr zu verantworten und zu warten wäre.
Unsere alten C und C++ Projekte haben oft diesen Mangel.
Alte PQ35 Technik von knapp 20 Jahren ist unglaublich schwer zu warten und brauch auch Mal fette CPU und RAM, weil 'kleine" Programme unmöglich mit den Ressourcen umgehen aber irgendwie "funktionieren".
Und die alten Hasen gehen alle bald in Rente.
Das mag ja alles sein und ist auch schön...nur hat es für einen EINSTEIGER keine Bedeutung...
Das der irgendwelchen alten Code sich anschauen will ist glaub ich zuerst nicht zu erwarten... Das die Code-Qualität zu Anfang auch nur ansatzweise für eine prod. Reife geht ist auch nicht zu erwarten da eben auch da die Kenntnisse für fehlen werden.
Daher kann man natürlich ALLES reinwerfen - über Assembler (da kann man richtig schnelle Programme mit machen... ;)), dann gibts die esoterischen Sprachen (Whitespace - kann man gut ausdrucken!), man könnte über Prolog (KI), VHDL (falls man ne eigene CPU bauen will) und vieles mehr gehen. Genauso halte ich es für einen Einsteiger für unsinnig sich mit CVS/SVN/GIT auseinander zu setzen - zu Anfang ist der Code es noch nich mal Wert in nen Repo zu gehen und kann lieber einfach auf Dateisystemebene gemacht werden (KISS-Prinzip ;) ). WENN dann in nem halben Jahr oder Jahr noch Interesse besteht, die ersten Grundkenntnisse da sind usw. DANN kann man sich sowas immer noch ansehen und damit arbeiten.
Wenn ich aber versuche nen Einteiger zu Anfang gleich mal nen komplexes Programm hinzuwerfen was noch nen paar lustige Funktionen hat, ggf. über Webschnittstellen, Interfaces usw. geht - dann wäre das zwar technisch ggf. sauber umgesetzt, wird aber eher dazu führen das man die Lust verliert... (Ähnlich als wenn ich nem Grundschüler im Matheunterricht gleich mal nen Bronstein hinlege.. dann hat der mit Sicherheit alle Formeln die der bis zum Abi je brauchen wird aber nach der 3ten Seite keinen Bock mehr ;) ).
Daher eben der Ansatz lieber erst mal mit was simplen anfangen - und da würde ich durchaus auch PHP überlegen... Da kommt wenigstens auch was "buntes" bei raus - und das ohne lange Fehlerbehandlung usw... Wenns da dann passt und man noch weiter lust hat DANN kann man natürlich gucken in welche Sprache man geht ...
Das der irgendwelchen alten Code sich anschauen will ist glaub ich zuerst nicht zu erwarten... Das die Code-Qualität zu Anfang auch nur ansatzweise für eine prod. Reife geht ist auch nicht zu erwarten da eben auch da die Kenntnisse für fehlen werden.
Daher kann man natürlich ALLES reinwerfen - über Assembler (da kann man richtig schnelle Programme mit machen... ;)), dann gibts die esoterischen Sprachen (Whitespace - kann man gut ausdrucken!), man könnte über Prolog (KI), VHDL (falls man ne eigene CPU bauen will) und vieles mehr gehen. Genauso halte ich es für einen Einsteiger für unsinnig sich mit CVS/SVN/GIT auseinander zu setzen - zu Anfang ist der Code es noch nich mal Wert in nen Repo zu gehen und kann lieber einfach auf Dateisystemebene gemacht werden (KISS-Prinzip ;) ). WENN dann in nem halben Jahr oder Jahr noch Interesse besteht, die ersten Grundkenntnisse da sind usw. DANN kann man sich sowas immer noch ansehen und damit arbeiten.
Wenn ich aber versuche nen Einteiger zu Anfang gleich mal nen komplexes Programm hinzuwerfen was noch nen paar lustige Funktionen hat, ggf. über Webschnittstellen, Interfaces usw. geht - dann wäre das zwar technisch ggf. sauber umgesetzt, wird aber eher dazu führen das man die Lust verliert... (Ähnlich als wenn ich nem Grundschüler im Matheunterricht gleich mal nen Bronstein hinlege.. dann hat der mit Sicherheit alle Formeln die der bis zum Abi je brauchen wird aber nach der 3ten Seite keinen Bock mehr ;) ).
Daher eben der Ansatz lieber erst mal mit was simplen anfangen - und da würde ich durchaus auch PHP überlegen... Da kommt wenigstens auch was "buntes" bei raus - und das ohne lange Fehlerbehandlung usw... Wenns da dann passt und man noch weiter lust hat DANN kann man natürlich gucken in welche Sprache man geht ...
Ich bin der Meinung, dass die Entscheidung für einen Anfänger sehr wichtig ist, wenn keine Kenntnisse vorliegen und man nicht 10 Jahre alt ist und anfängt zu programmieren.
Auch bin ich der Meinung, dass man besonders als Anfänger lauffähigen Code bekommt und unzählige Fehler gar nicht erst machen kann, währenddessen man bei anderen (Unmanaged) Sprachen das Rad neu erfinden kann und sich austoben. Dann konsumieren belanglose Programme auf ein Mal diverse CPU Stunden und futtern den RAM unnötig usw... Katastrophale Sicherheitsprobleme usw gar nicht bewertet.
In C# oder von mir aus F# Code zu bauen mit eklatanten Schwächen im Umgang Speicher usw ist schon schwierig.
Auch bin ich der Meinung, dass man mit PHP besonders gefährlichen Code schreiben kann. Es ist teilweise verrückt, was man zusammen Nageln kann und der Server für die ganze Welt ausführbar macht.
Auch bin ich der Meinung, dass man besonders als Anfänger lauffähigen Code bekommt und unzählige Fehler gar nicht erst machen kann, währenddessen man bei anderen (Unmanaged) Sprachen das Rad neu erfinden kann und sich austoben. Dann konsumieren belanglose Programme auf ein Mal diverse CPU Stunden und futtern den RAM unnötig usw... Katastrophale Sicherheitsprobleme usw gar nicht bewertet.
In C# oder von mir aus F# Code zu bauen mit eklatanten Schwächen im Umgang Speicher usw ist schon schwierig.
Auch bin ich der Meinung, dass man mit PHP besonders gefährlichen Code schreiben kann. Es ist teilweise verrückt, was man zusammen Nageln kann und der Server für die ganze Welt ausführbar macht.
Hallo,
ich programmiere nun auch schon rd. 30 Jahre.
Meine Empfehlung ist: Entscheide Dich zuerst, was Dein kurzfristiges und langfristiges Ziel ist und welche Programmiersprache dafür geeignet ist.
Du schreibst, daß Du im Wesentlichen mit Skripten zu tun hast, also geht es Dir momentan eher um Automation. Also etwa, immer wiederkehrende Aufgaben zu automatisieren, also Abläufe zu schreiben, auch über mehrere andere Programme hinweg oder in Zusammenarbeit mit dem Betriebssystem - das wären so typische Aufgaben für Powershell-Skripte oder auch ganz einfach nur Batch-Skripte, unter "cmd" ausführbar.
Auf der anderen Seite hüpfst Du dann zu einer Programmiersprache wie C++, was kaum mit Powershell vergleichbar ist. Mit dem Wissen über das eine kannst Du kaum etwas anfangen im Anderen und umgekehrt. Lediglich der objektorientierte Ansatz ist in Grenzen vergleichbar.
Also was möchtest Du wirklich lernen? In Deinem beschriebenen IT-Alltag wird Dir C++ nur wenig helfen, Du müßtest hier eine große Menge Wissen aufbauen, bevor Du hier etwas Ähnliches erreichen kannst wie das, was Powershell in Sachen Automation für Dich tun kann. Umgekehrt ist C++ eher dafür geeignet, "maschinennah" zu programmieren und das setzt auch viel Wissen über die Funktionsweise von Betriebssystemen und die Art, wie Computer intern ein Programm verarbeiten, voraus (oder wird beim Erlernen der Sprache mit gelernt). In C++ kannst Du dafür auch wirklich alles programmieren, ausführbare EXE-Dateien programmieren, die sonst nichts "drumherum" benötigen, hast aber auch eine steile Lernkurve, die schnell überfordert.
"Programmieren" kann sehr vieles bedeuten, denn es gibt nicht nur etliche Sprachen, sondern auch etliche Denkmodelle. Um nur zwei Beispiele zu nennen, die "prozedurale" Programmierung, die mit ganz einfachen Abläufen von oben nach unten funktioniert (funktionieren kann, es geht hier natürlich auch, komplexer zu programmeiren) und die "objektorientierte" Programmierung, bei denen man eher in unabhängigen Bausteinen denkt, die für sich alleine möglichst unabhängig programmiert werden und dann zu komplexeren Programmen zusammengefügt werden, bei denen jedes Modul (Objekt) im Bedarfsfall einfach "dupliziert" wird (Primitives Beispiel: Modul (Objekt) "Taste", das zu einem übergeordneten Modul Tastatur zusammengefaßt wird - man schreibt nicht für jede Taste ein Programm, sondern nur EINEN Objektcode, der über Eigenschaften mal zur Taste "A" wird oder "B" etc.).
Powershell etwa setzt auf die objektorientierte Denkweise, ein Batch-Skript wie "DOS"-Skripte eher auf prozedurale.
Allein die verschiedenen Denkweisen setzen auch unterschiedliche Herangehensweise an eine Programmierung voraus. Einfacher ist sicherlich, zuerst einmal simple Abläufe prozedural zu entwickeln, um sich daran heranzutasten, was Programmierung ist, bevor man sich an objektorientierte Sprachen, zu denen auch C++ gehört, heranwagt.
Dann ist aber eben auch das langfristige Ziel von Bedeutung bei der Wahl der Sprache. Hier wird etwa oft PHP genannt. Das ist auch eine objektorientierte Sprache, die natürlich (wie die meisten objektorientierten Sprachen) auch erst mal prozedural programmiert werden kann. Dennoch würde ich niemandem raten, mit PHP zu beginnen, denn PHP ist im Wesentlichen eine Sprache, deren primärer Zweck es ist, auf einem Webserver ausgeführt zu werden, um Webseiten zusammenzustellen, die dann an einen Browser des Clients geschickt zu werden. Um dessen Vorteile ausnutzen zu können, muß man mindestens mal rudimentär auch mit HTML umgehen können, meist auch CSS (beides keine Sprachen) oder gar JavaScript für die Kommunikation zwischen Client und Server.
PHP an sich mag einfach zu lernen sein, für Anfänger aber total ungeeignet. Ich würde Dir auch heute noch empfehlen, mit einer wirklich einfachen Sprache wie Basic zu beginnen. Das beste daran ist, daß Du die Entwicklungsumgebung wahrscheinlich sogar auf Deinem Computer hast, wenn Du z.B. MS Office installiert hast. In allen ist VBA (Visual Basic for Applications) enthalten und dazu auch die passende Entwicklungsumgebung. Hier ist alles rudimentäre schon enthalten, etwa Formulare, die Du mit vorgefertigten Controls für die Ein- und Ausgabe bestücken kannst, die dann einfach zu programmieren sind und mit schnellem Erfolgserlebnis. Auch wenn Du am Anfang viel Schrott produzieren wirst (damit haben wir alle mal angefangen...) - man lernt nur durch Selbermachen. Wenn man sich aber erst mit komplizierten Sprachen wie C++ mit etwa Erstellung von Fenstern, Zeigern, Speicherverwaltung uvm. herumschlagen muß, wird es lange dauern, bis man überhaupt mal etwas lauffähiges auf die Beine gestellt hat, der Frust wird schnell groß.
Bei Sprachen wie VBA muß man sich um die Grundlagen noch nicht kümmern, man kann sich überwiegend auf die gewählte Aufgabe konzentrieren und erst mal lernen, wie man die Programmabläufe richtig hinbekommt. Dabei lernt man nebenbei auch Tools wie einen Einzelschrittdebugger kennen oder Variablenbeobachtung mit dem "Locals"-Fenster während der Laufzeit uvm. Will man danach tiefer in die Geheimnisse der internen Abläufe eines Computers einsteigen, kann man dann immer noch C++ oder, wer ganz weit runter will, Assembler (also echte Maschinensprache) lernen.
Dennoch wird Dir auch eine Sprache wie VBA mit Powershell nicht weiterhelfen, lediglich lernst Du die Grundlagen, wie man programmiert, hier einfacher kennen. Wenn Dein Ziel also ist, Automation wie mit Powershell selbst programmieren zu können, mußt Du Dich mit der speziellen Syntax von Powershell auseinandersetzen und dir minimal die Objektorientierungs-Theorie reinziehen, was ein Objekt ist, wie sie miteinander kommunizieren und wie sie instantiiert werden - das kann man sich auch erst mal theoretisch ohne konkrete Programmiersprache beibringen.
Will sagen: Das Denken in Programmierstrukturen ist recht stark an das Ziel geknüpft. Es ist falsch zu denken, "kennst Du eine, kennst Du alle" und dann ist ein Syntaxhandbuch genug. Wenn es so einfach wäre, gäbe es längst Übersetzungsprogramme, die jeden Programmcode einer Sprache in jeden Programmcode einer anderen übersetzen könnten.
Das geht aber nicht, weil die verschiedenen Programmiersprachen eben oft für ganz bestimmte Zwecke entwickelt wurden. Ein T-SQL eines SQL Servers etwa ist dafür bestimmt, mit Datenbanken zu arbeiten und große Mengen an Daten zu verarbeiten. Das Wissen von VBA würde hier nicht weiterhelfen und das von Powershell ebensowenig. Auch kann man mit T-SQL keine grafische Oberfläche erzeugen, weil das nicht ihr Zweck ist. Entsprechend kann man T-SQL nicht in VBA "übersetzen", ebensowenig umgekehrt. Für beides muß man seine eigene Denkweise an die Funktionalität der Programmiersprache und ihren Einsatzzweck anpassen. Etwa so, wie Du ja auch ein Bildbearbeitungsprogramm nicht zum Schreiben eines Zeitungsartikels einsetzt.
Also, die Kernfrage lautet: Was willst Du für Dich erreichen?
Willst Du Deine Powershell-Kenntnisse verbessern und selbst komplexere Skripte schreiben? Dann befasse Dich konkret mit Powershell im Besonderen und Objektorientierung im Allgemeinen.
Willst Du in die Programmierung von eigenständigen Anwendungen einsteigen? Dann vergiß, was Du über Powershell weißt, und befasse Dich mit einfachen Einstiegen wie VBA.
Bist Du damit fertig und willst komplett eigenständige Anwendungen schreiben? Dann baue auf das Wissen auf und befasse Dich mit z.B. VB.NET, um mit sehr ähnlicher Syntax wie VBA sehr viel mehr in die Objektorientierung umzusteigen und die Arbeit mit Bibliotheken und eigenen Benutzeroberflächen kennenzulernen.
Möchtest Du dann die Sprache einfach wechseln können, wechsele von da aus zu C#, damit kannst Du alle Programmierideen aus VB.NET sehr ähnlich umsetzen, verwendest die gleichen Bibliotheken, lediglich lernst Du eine neue Syntax kennen.
Möchtest Du dann mehr, komplett eigenständigen Code und in die Untiefen des Rechners und Betriebssystems einsteigen, ist von da der Weg nach C++ nicht weit.
Möchtest Du dagegen bei sehr ähnlicher Syntax plattformübergreifenden Code erstellen, wäre Java eine Möglichkeit (ja, plattformübergreifend geht heute auch mit .NET). Das vor allem geeignet für Endgeräte wie Android, um "Apps" direkt laufenzulassen.
Du möchtest dann lernen, wie man eine Website programmiert? Willkommen zu JavaScript, das auch wieder eine ähnliche Syntax wie Java/C hat, aber Einschränkungen in dem, was es ausführen kann (weil halt ein Webbrowser nicht alles auf Deinem Rechner machen können soll).
Hast Du dann nebenbei auch HTML/CSS mitbekommen, kannst Du auch mal Deine Website mit PHP auf der Serverseite erweitern.
Und nebenbei gibt es mit ASP.NET natürlich auch eine .NET-Programmiersprache, die für Website-Programmierung ausgelegt ist.
Das war jetzt nur ein wiiiinziger Ausschnitt aus einer MÖGLICHEN Richtung, und es gibt etliche Programmiersprachen und Programmierlaufbahnen mehr, die man einschlagen kann. Es ist an Dir, zunächst mal die ungefähre Richtung festzulegen, in die Du gehen willst, und ebenso, wie tief Du einsteigen willst. Man muß keinen eigenen Druckertreiber in C++ programmieren können, um mit C++ Programme schreiben zu können. Man muß auch keine Website programmiern können, um Programme in PHP zu schreiben. Es ist an Dir, zu entscheiden, was Du erreichen willst und welchen Weg zu lernen Du angehen willst.
Ein Tip noch am Ende: Wenn Du Dich für eine Programmiersprache entschieden hast, dann solltest Du nach einer Einarbeitungszeit auch erst mal dabei bleiben und versuchen, sie zu meistern. Und dazu ist tatsächlich der beste Weg, in ein Forum einzusteigen, das sich damit befaßt, in dem täglich Anfängerfragen auftauchen. Am besten lernst Du zu programmieren, indem Du Dir die Fragen vornimmst und sie zu lösen versuchst. Entweder kommst Du zu einer Lösung und kannst ggf. sogar eine Antwort geben, oder Du schaffst auch keine Lösung, hast aber wenigstens eine konkrete Zielstellung und Dich mit einem Lösungsversuch befaßt, der Dir aufzeigt, wo es Dir noch Wissen fehlt. Du wirst dann nach anderen Lösungen suchen und Lösungswege kennenlernen und kommst so automatisch immer tiefer in die Programmierung und Denkweise Deiner eigenen Programmiersprache. Und nach all diesen kleinen Problemlösungen kommt dann irgendwann auch automatisch, wie Du eine Problemstellung lösen könntest, die Dir selbst weiterhelfen kann in Deiner täglichen Arbeit. So lernt man Programmieren am schnellsten.
Und ein gutes Buch dabei für Deine Programmiersprache, schadet auch nicht. Empfehlungen sucht man am besten bei anderen Programmierern der gleichen Sprache, z.B. wieder in Foren.
Gruß
Christian
ich programmiere nun auch schon rd. 30 Jahre.
Meine Empfehlung ist: Entscheide Dich zuerst, was Dein kurzfristiges und langfristiges Ziel ist und welche Programmiersprache dafür geeignet ist.
Du schreibst, daß Du im Wesentlichen mit Skripten zu tun hast, also geht es Dir momentan eher um Automation. Also etwa, immer wiederkehrende Aufgaben zu automatisieren, also Abläufe zu schreiben, auch über mehrere andere Programme hinweg oder in Zusammenarbeit mit dem Betriebssystem - das wären so typische Aufgaben für Powershell-Skripte oder auch ganz einfach nur Batch-Skripte, unter "cmd" ausführbar.
Auf der anderen Seite hüpfst Du dann zu einer Programmiersprache wie C++, was kaum mit Powershell vergleichbar ist. Mit dem Wissen über das eine kannst Du kaum etwas anfangen im Anderen und umgekehrt. Lediglich der objektorientierte Ansatz ist in Grenzen vergleichbar.
Also was möchtest Du wirklich lernen? In Deinem beschriebenen IT-Alltag wird Dir C++ nur wenig helfen, Du müßtest hier eine große Menge Wissen aufbauen, bevor Du hier etwas Ähnliches erreichen kannst wie das, was Powershell in Sachen Automation für Dich tun kann. Umgekehrt ist C++ eher dafür geeignet, "maschinennah" zu programmieren und das setzt auch viel Wissen über die Funktionsweise von Betriebssystemen und die Art, wie Computer intern ein Programm verarbeiten, voraus (oder wird beim Erlernen der Sprache mit gelernt). In C++ kannst Du dafür auch wirklich alles programmieren, ausführbare EXE-Dateien programmieren, die sonst nichts "drumherum" benötigen, hast aber auch eine steile Lernkurve, die schnell überfordert.
"Programmieren" kann sehr vieles bedeuten, denn es gibt nicht nur etliche Sprachen, sondern auch etliche Denkmodelle. Um nur zwei Beispiele zu nennen, die "prozedurale" Programmierung, die mit ganz einfachen Abläufen von oben nach unten funktioniert (funktionieren kann, es geht hier natürlich auch, komplexer zu programmeiren) und die "objektorientierte" Programmierung, bei denen man eher in unabhängigen Bausteinen denkt, die für sich alleine möglichst unabhängig programmiert werden und dann zu komplexeren Programmen zusammengefügt werden, bei denen jedes Modul (Objekt) im Bedarfsfall einfach "dupliziert" wird (Primitives Beispiel: Modul (Objekt) "Taste", das zu einem übergeordneten Modul Tastatur zusammengefaßt wird - man schreibt nicht für jede Taste ein Programm, sondern nur EINEN Objektcode, der über Eigenschaften mal zur Taste "A" wird oder "B" etc.).
Powershell etwa setzt auf die objektorientierte Denkweise, ein Batch-Skript wie "DOS"-Skripte eher auf prozedurale.
Allein die verschiedenen Denkweisen setzen auch unterschiedliche Herangehensweise an eine Programmierung voraus. Einfacher ist sicherlich, zuerst einmal simple Abläufe prozedural zu entwickeln, um sich daran heranzutasten, was Programmierung ist, bevor man sich an objektorientierte Sprachen, zu denen auch C++ gehört, heranwagt.
Dann ist aber eben auch das langfristige Ziel von Bedeutung bei der Wahl der Sprache. Hier wird etwa oft PHP genannt. Das ist auch eine objektorientierte Sprache, die natürlich (wie die meisten objektorientierten Sprachen) auch erst mal prozedural programmiert werden kann. Dennoch würde ich niemandem raten, mit PHP zu beginnen, denn PHP ist im Wesentlichen eine Sprache, deren primärer Zweck es ist, auf einem Webserver ausgeführt zu werden, um Webseiten zusammenzustellen, die dann an einen Browser des Clients geschickt zu werden. Um dessen Vorteile ausnutzen zu können, muß man mindestens mal rudimentär auch mit HTML umgehen können, meist auch CSS (beides keine Sprachen) oder gar JavaScript für die Kommunikation zwischen Client und Server.
PHP an sich mag einfach zu lernen sein, für Anfänger aber total ungeeignet. Ich würde Dir auch heute noch empfehlen, mit einer wirklich einfachen Sprache wie Basic zu beginnen. Das beste daran ist, daß Du die Entwicklungsumgebung wahrscheinlich sogar auf Deinem Computer hast, wenn Du z.B. MS Office installiert hast. In allen ist VBA (Visual Basic for Applications) enthalten und dazu auch die passende Entwicklungsumgebung. Hier ist alles rudimentäre schon enthalten, etwa Formulare, die Du mit vorgefertigten Controls für die Ein- und Ausgabe bestücken kannst, die dann einfach zu programmieren sind und mit schnellem Erfolgserlebnis. Auch wenn Du am Anfang viel Schrott produzieren wirst (damit haben wir alle mal angefangen...) - man lernt nur durch Selbermachen. Wenn man sich aber erst mit komplizierten Sprachen wie C++ mit etwa Erstellung von Fenstern, Zeigern, Speicherverwaltung uvm. herumschlagen muß, wird es lange dauern, bis man überhaupt mal etwas lauffähiges auf die Beine gestellt hat, der Frust wird schnell groß.
Bei Sprachen wie VBA muß man sich um die Grundlagen noch nicht kümmern, man kann sich überwiegend auf die gewählte Aufgabe konzentrieren und erst mal lernen, wie man die Programmabläufe richtig hinbekommt. Dabei lernt man nebenbei auch Tools wie einen Einzelschrittdebugger kennen oder Variablenbeobachtung mit dem "Locals"-Fenster während der Laufzeit uvm. Will man danach tiefer in die Geheimnisse der internen Abläufe eines Computers einsteigen, kann man dann immer noch C++ oder, wer ganz weit runter will, Assembler (also echte Maschinensprache) lernen.
Dennoch wird Dir auch eine Sprache wie VBA mit Powershell nicht weiterhelfen, lediglich lernst Du die Grundlagen, wie man programmiert, hier einfacher kennen. Wenn Dein Ziel also ist, Automation wie mit Powershell selbst programmieren zu können, mußt Du Dich mit der speziellen Syntax von Powershell auseinandersetzen und dir minimal die Objektorientierungs-Theorie reinziehen, was ein Objekt ist, wie sie miteinander kommunizieren und wie sie instantiiert werden - das kann man sich auch erst mal theoretisch ohne konkrete Programmiersprache beibringen.
Will sagen: Das Denken in Programmierstrukturen ist recht stark an das Ziel geknüpft. Es ist falsch zu denken, "kennst Du eine, kennst Du alle" und dann ist ein Syntaxhandbuch genug. Wenn es so einfach wäre, gäbe es längst Übersetzungsprogramme, die jeden Programmcode einer Sprache in jeden Programmcode einer anderen übersetzen könnten.
Das geht aber nicht, weil die verschiedenen Programmiersprachen eben oft für ganz bestimmte Zwecke entwickelt wurden. Ein T-SQL eines SQL Servers etwa ist dafür bestimmt, mit Datenbanken zu arbeiten und große Mengen an Daten zu verarbeiten. Das Wissen von VBA würde hier nicht weiterhelfen und das von Powershell ebensowenig. Auch kann man mit T-SQL keine grafische Oberfläche erzeugen, weil das nicht ihr Zweck ist. Entsprechend kann man T-SQL nicht in VBA "übersetzen", ebensowenig umgekehrt. Für beides muß man seine eigene Denkweise an die Funktionalität der Programmiersprache und ihren Einsatzzweck anpassen. Etwa so, wie Du ja auch ein Bildbearbeitungsprogramm nicht zum Schreiben eines Zeitungsartikels einsetzt.
Also, die Kernfrage lautet: Was willst Du für Dich erreichen?
Willst Du Deine Powershell-Kenntnisse verbessern und selbst komplexere Skripte schreiben? Dann befasse Dich konkret mit Powershell im Besonderen und Objektorientierung im Allgemeinen.
Willst Du in die Programmierung von eigenständigen Anwendungen einsteigen? Dann vergiß, was Du über Powershell weißt, und befasse Dich mit einfachen Einstiegen wie VBA.
Bist Du damit fertig und willst komplett eigenständige Anwendungen schreiben? Dann baue auf das Wissen auf und befasse Dich mit z.B. VB.NET, um mit sehr ähnlicher Syntax wie VBA sehr viel mehr in die Objektorientierung umzusteigen und die Arbeit mit Bibliotheken und eigenen Benutzeroberflächen kennenzulernen.
Möchtest Du dann die Sprache einfach wechseln können, wechsele von da aus zu C#, damit kannst Du alle Programmierideen aus VB.NET sehr ähnlich umsetzen, verwendest die gleichen Bibliotheken, lediglich lernst Du eine neue Syntax kennen.
Möchtest Du dann mehr, komplett eigenständigen Code und in die Untiefen des Rechners und Betriebssystems einsteigen, ist von da der Weg nach C++ nicht weit.
Möchtest Du dagegen bei sehr ähnlicher Syntax plattformübergreifenden Code erstellen, wäre Java eine Möglichkeit (ja, plattformübergreifend geht heute auch mit .NET). Das vor allem geeignet für Endgeräte wie Android, um "Apps" direkt laufenzulassen.
Du möchtest dann lernen, wie man eine Website programmiert? Willkommen zu JavaScript, das auch wieder eine ähnliche Syntax wie Java/C hat, aber Einschränkungen in dem, was es ausführen kann (weil halt ein Webbrowser nicht alles auf Deinem Rechner machen können soll).
Hast Du dann nebenbei auch HTML/CSS mitbekommen, kannst Du auch mal Deine Website mit PHP auf der Serverseite erweitern.
Und nebenbei gibt es mit ASP.NET natürlich auch eine .NET-Programmiersprache, die für Website-Programmierung ausgelegt ist.
Das war jetzt nur ein wiiiinziger Ausschnitt aus einer MÖGLICHEN Richtung, und es gibt etliche Programmiersprachen und Programmierlaufbahnen mehr, die man einschlagen kann. Es ist an Dir, zunächst mal die ungefähre Richtung festzulegen, in die Du gehen willst, und ebenso, wie tief Du einsteigen willst. Man muß keinen eigenen Druckertreiber in C++ programmieren können, um mit C++ Programme schreiben zu können. Man muß auch keine Website programmiern können, um Programme in PHP zu schreiben. Es ist an Dir, zu entscheiden, was Du erreichen willst und welchen Weg zu lernen Du angehen willst.
Ein Tip noch am Ende: Wenn Du Dich für eine Programmiersprache entschieden hast, dann solltest Du nach einer Einarbeitungszeit auch erst mal dabei bleiben und versuchen, sie zu meistern. Und dazu ist tatsächlich der beste Weg, in ein Forum einzusteigen, das sich damit befaßt, in dem täglich Anfängerfragen auftauchen. Am besten lernst Du zu programmieren, indem Du Dir die Fragen vornimmst und sie zu lösen versuchst. Entweder kommst Du zu einer Lösung und kannst ggf. sogar eine Antwort geben, oder Du schaffst auch keine Lösung, hast aber wenigstens eine konkrete Zielstellung und Dich mit einem Lösungsversuch befaßt, der Dir aufzeigt, wo es Dir noch Wissen fehlt. Du wirst dann nach anderen Lösungen suchen und Lösungswege kennenlernen und kommst so automatisch immer tiefer in die Programmierung und Denkweise Deiner eigenen Programmiersprache. Und nach all diesen kleinen Problemlösungen kommt dann irgendwann auch automatisch, wie Du eine Problemstellung lösen könntest, die Dir selbst weiterhelfen kann in Deiner täglichen Arbeit. So lernt man Programmieren am schnellsten.
Und ein gutes Buch dabei für Deine Programmiersprache, schadet auch nicht. Empfehlungen sucht man am besten bei anderen Programmierern der gleichen Sprache, z.B. wieder in Foren.
Gruß
Christian