Programmieren für Anfänger - Wie fange ich an?

AW: Programmieren für Anfänger - Wie fange ich an?

Vielleicht sind meine persönlichen Ansprüche für einen Anfänger auch viel zu hoch ;)

Naja, für den Anfang sollte es reichen wenn man mit objektorientierter Programmierung klar kommt.

Design Pattern kann man dann anwenden, wenn man die Syntax beherrscht und einfach mal eine Applikation zusammenschustern kann.
Frei nach dem Motto: Write - Improve - Write - Improve - ...

Und wenn man nem Anfänger ein Buch von Fowler vorlegt, will er sicherlich nicht mehr programmieren ^^
 
AW: Programmieren für Anfänger - Wie fange ich an?

Darauf versuche ich heute Abend im Detail einzugehen. Weil ja, so kann man es machen. Wenn man dann jedoch das Ganze mit dem Fachwissen bzgl. Polymorphie, Liskovsches Substitutionsprinzip, Kovarianz und Kontravarianz etc. anreichern will, finde ich es für den Einstieg unpassend. Immerhin hat man gar keine Ahnung ;)

Jetzt musste ich ganz laut und lange lachen...

Das ist genau so wie "ANSI SQL vs Oracle SQL" (Oracle steht hier nur als Beispiel für ein "RDBMS-spezifisches SQL"). Wenn einer bei uns anfängt ANSI SQL zu schreiben, wird er direkt gefeuert... so ein Schwachsinn wie "RDBMS-Unabhängigkeit" interessiert bei uns kein Schwein, das funktioniert in der Theorie aber nie in Wirklichkeit.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Uiuiui, da hat sich hier ja einiges an Antworten noch aufgetan was ich so gar nicht mitbekommen habe. :D

Ich bedanke mich erst einmal recht herzlich für all die unterschiedlichen Sichtweisen. :)
Ich habe mittlerweile schon meine ersten Fortschritte in Python gemacht und bin auch relativ zufrieden mit meinem Einstieg. Programmieren kann man schlecht von heute auf morgen lernen, von daher gibt es immer wieder mal ein wenig Frustration, aber davon lasse ich mich nicht unterkriegen. Diese ganze "projekt" von mir ist ja auf die nächsten paar Jahre ausgelegt und solange ich da jede Woche ein paar Stündchen investiere, sollte das so funktionieren wie ich möchte.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Ich kann auch VisualStudio 2017 mit Xamarin.Forms (C#) empfehlen! Ist sehr einfach zu erlernen und man bekommt damit gleich 3 Apps auf einmal programmiert (iOS, Android und Windows) natrülich auch alles kostenlos ;)
 
AW: Programmieren für Anfänger - Wie fange ich an?

Ich kann auch VisualStudio 2017 mit Xamarin.Forms (C#) empfehlen! Ist sehr einfach zu erlernen und man bekommt damit gleich 3 Apps auf einmal programmiert (iOS, Android und Windows) natrülich auch alles kostenlos
Hast Du damit Erfahrung? Darf man die Aussagen unter
https://www.xamarin.com/platform-> Xamarin.iOS schrieb:
Our Ahead-of-Time (AOT) compiler compiles Xamarin.iOS apps directly to native ARM assembly code, meaning your app is a native platform binary.
wirklich so interpretieren, dass man mittlerweile unter Windows eine gültige, laufähige iOS App compilieren kann, die man dann einfach irgendwie auf seine eigene Apple-iOS Hardware kopieren/installieren kann?

Bisher kannte ich nur die altbekannte Gängel-Aussge von Xamarin (bzw. Apple)
https://developer.xamarin.com/guides/ios/getting_started/installation/windows/connecting-to-mac/ schrieb:
iOS applications cannot be created without Apple’s compiler, and they cannot be deployed without Apple’s certificates and code-signing tools. This means that your Xamarin.iOS for Visual Studio installation requires a connection to a networked Mac OS X computer
Man muss also Geld für einen (natürlich einigermaßen aktuelle) Apple-Kiste ausgeben, damit man gnädiger weise seine Xamarin-iOS App kompilieren darf. Virtuell und legal geht nichts, da man Mac OS nicht legal ohne Computer kaufen kann. Ein lageler und vor allen (wie von dir genannt) kostenloser Ansatz, um eine App "im Netz" für iOS kompilieren und signieren zu lassen, habe ich noch nicht gefunden (selbst, wenn ich mal alle Sicherheitsbedenken bei so einem Vorgehn außen vor lassen würde).
 
AW: Programmieren für Anfänger - Wie fange ich an?

Ich habe früh eine Faszination für C++ entwickelt, aber mir viel der Einstieg sehr schwer.
Durch HTML und CSS gelang mir ein einfacher Einstieg ins Coding allgemein. Das Erlernen von JavaScript war dann auch keine Hürde. Schnell habe ich meine Kenntnisse um jQuery erweitert und habe es dann nochmal mit C++ versucht und hatte Erfolg!
Schnell fand ich mich dann auch in x86-64 Assembler, PowerPC Assembler und PHP zurecht :) Das alles geschah in ungefähr 9 Monaten (nur hatte ich HTML und CSS schon zuvor gelernt und kannte mich etwas in PPC Assembler aus).
Vielleicht hilft es dir ja, einen Weg in die Programmierung zu finden.
Hier sind ein Paar Bücher und Links, die ich empfehlen kann: Schrödinger lernt HTML, CSS & JavaScript
Learning C++ by creating Games with UE4
Introduction to 64 Bit Assemlby Programming
QT5 Blue Prints
Einstieg in PHP 7 und MySQL

Zu empfehlende YouTube Kanäle:
x64 Assembler: What's a Creel?
- YouTube

C++, Qt, Java, HTML, CSS, C#, Python: https://www.youtube.com/user/VoidRealms/playlists
C++ Qt, Android Programmierung, Java: https://www.youtube.com/user/ProgrammingKnowledge/playlists
 
AW: Programmieren für Anfänger - Wie fange ich an?

Wärst Du von C auf C++ gekommen, hättest Du keine Probleme...

Aber man kann natürlich das Pferd von hinten aufzäumen...
 
AW: Programmieren für Anfänger - Wie fange ich an?

Virtuell und legal geht nichts, da man Mac OS nicht legal ohne Computer kaufen kann.

Doch, das geht. Du kannst bei Apple OSX Snow Leopard als Retail Version legal beziehen. Dann hast du die Lizenz, womit du auch updates bekommst. Das ist auch der Grundsatz auf den sich die Hackintosh Szene beruft.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Ich finde, beim Programmieren ist weniger die Syntax bzw. "Sprache" das Problem, sondern viel eher, wie schon gesagt wurde, Algorithmen zu erstellen, die die gewünschte Aufgabe erledigen (das erfordert imho nur logisches Verständnis), aber VOR ALLEM auch die eigentliche "Entwicklung" eines Programms (hier ist imho ne gewisse Erfahrung notwendig)

Heißt, der Aufbau eines Programms. Welche Funktionen brauche ich überhaupt und was muss ich insgesamt überhaupt für ne Struktur ans laufen bringen, damit mein Programm überhaupt arbeitet.

Ich hab mich auch schon mal mit der Thematik beschäftigt. Kleinere textbasierte Programme mit eingabeaufforderung, kein Problem. Das ganze mit ner GUI auszustatten - reine Fleißarbeit.
Aber ein komplexeres Programm, wie z.B. ein ganzes 2D Spiel zu erstellen hat auf dem ersten blick imho wenig mit "programmieren" zu tun, so wie man es im einstieg lernt. Man beschäftigt sich hier viel mehr mit der gesamten Konzeptionierung des Programms. Die einzelnen Algorithmen zu erstellen ist dabei mit etwas übung wirklich nicht schwer...

Und das war es auch, was mich letztendlich nicht weiter motiviert hat bzw. mir zu zeitaufwändig war.
Mit Anleitung bzw. Plan ein kleineres Spiel zu programmieren ist mir sehr leicht gefallen. Weil ich eben weiß, wie das Programm aufgebaut sein muss, damit es arbeitet.

Das ganze aber komplett ohne Anleitung zu erarbeiten? Keine Ahnung...

Ich sehe hier nur zwei Möglichkeiten, sich das anzueignen. Sehr viel Übung mit vielen weiteren Beispielen oder eben eine gezielte Schulung.
Und genau deswegen sehe ich solche Hinweise auf Seiten wie "Java ist auch eine Insel" als wenig hilfreich an. Hier wird zwar die Syntax, alle Befehle und einige Grundlagen gut erklärt. Wie man aber an das Problem der Softwareentwicklung herangeht wird natürlich nicht vermittelt.
Gut, das ist sicherlich auch nicht die Zielsetzung dieses Buchs bzw. dieser Website. Aber jemand, der Programmieren lernen will und erwartet eigene Programme entwickeln zu können, den bringt das quasi null weiter.


Kurz gesagt: "Programmieren" ist das eine (und lässt sich in wenigen Wochen aneignen), "Softwareentwicklung" das andere...
Eine Programmiersprache (halbwegs) zu beherrschen ist ein mächtiges Werkzeug. Es gilt aber zu wissen, wie man dieses Werkzeug einsetzt, um letztendlich "bauen" zu können, was man sich vorstellt. Nur das Werkzeug zu verstehen hilft einen da nicht weiter.
 
Zuletzt bearbeitet:
AW: Programmieren für Anfänger - Wie fange ich an?

Ich finde, beim Programmieren ist weniger die Syntax bzw. "Sprache" das Problem, sondern viel eher, wie schon gesagt wurde, Algorithmen zu erstellen, die die gewünschte Aufgabe erledigen (das erfordert imho nur logisches Verständnis), aber VOR ALLEM auch die eigentliche "Entwicklung" eines Programms (hier ist imho ne gewisse Erfahrung notwendig)

Heißt, der Aufbau eines Programms. Welche Funktionen brauche ich überhaupt und was muss ich insgesamt überhaupt für ne Struktur ans laufen bringen, damit mein Programm überhaupt arbeitet.

Ich hab mich auch schon mal mit der Thematik beschäftigt. Kleinere textbasierte Programme mit eingabeaufforderung, kein Problem. Das ganze mit ner GUI auszustatten - reine Fleißarbeit.
Aber ein komplexeres Programm, wie z.B. ein ganzes 2D Spiel zu erstellen hat auf dem ersten blick imho wenig mit "programmieren" zu tun, so wie man es im einstieg lernt. Man beschäftigt sich hier viel mehr mit der gesamten Konzeptionierung des Programms. Die einzelnen Algorithmen zu erstellen ist dabei mit etwas übung wirklich nicht schwer...

Und das war es auch, was mich letztendlich nicht weiter motiviert hat bzw. mir zu zeitaufwändig war.
Mit Anleitung bzw. Plan ein kleineres Spiel zu programmieren ist mir sehr leicht gefallen. Weil ich eben weiß, wie das Programm aufgebaut sein muss, damit es arbeitet.

Das ganze aber komplett ohne Anleitung zu erarbeiten? Keine Ahnung...

Ich sehe hier nur zwei Möglichkeiten, sich das anzueignen. Sehr viel Übung mit vielen weiteren Beispielen oder eben eine gezielte Schulung.
Und genau deswegen sehe ich solche Hinweise auf Seiten wie "Java ist auch eine Insel" als wenig hilfreich an. Hier wird zwar die Syntax, alle Befehle und einige Grundlagen gut erklärt. Wie man aber an das Problem der Softwareentwicklung herangeht wird natürlich nicht vermittelt.
Gut, das ist sicherlich auch nicht die Zielsetzung dieses Buchs bzw. dieser Website. Aber jemand, der Programmieren lernen will und erwartet eigene Programme entwickeln zu können, den bringt das quasi null weiter.


Kurz gesagt: "Programmieren" ist das eine (und lässt sich in wenigen Wochen aneignen), "Softwareentwicklung" das andere...
Eine Programmiersprache (halbwegs) zu beherrschen ist ein mächtiges Werkzeug. Es gilt aber zu wissen, wie man dieses Werkzeug einsetzt, um letztendlich "bauen" zu können, was man sich vorstellt. Nur das Werkzeug zu verstehen hilft einen da nicht weiter.

Ich finde Spiele sind kein guter Einstieg für Anfänger und Hobbyprogrammierer. Eher früher als später landet man eh bei einer fertigen Engine wie Unity - da programmiert man zwar natürlich auch, aber eben auf einer ganz anderen Basis, dafür ist das Ding ja da.

Du hättest mit deinem textbasierten Programm weiter machen sollen. Sowas wächst mit der Zeit, stellt einen vor ganz neue Probleme und man lernt sehr gut dazu.
Aber es spricht ja nichts dagegen ein anderes Vorhaben in die Tat umzusetzen.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Ich mag ja nach wie vor das Originalkonzept des Raspberry Pi: Das ist nämlich eigentlich eine Programmier-Lehrplattform.
Und zwar im ersten Schritt mit Scratch
Scratch - Raspberry Pi Documentation
Da kann man dann ganz in Ruhe Logik lernen bevor man sich Gedanken um fehlende Semikolons macht.

Syntax irgendwelcher Sprachen kann man bei Bedarf nachschlagen, die sind kein Selbstzweck.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Vielleicht ein kleiner Erfahrungsbericht:

Ich habe mit der Programmiersprache Java (studiumsbedingt) angefangen, das wurde von der FH so vorgegeben – denke da werden sich viele wiederfinden. Im Nachgang fand ich Java als erste Programmiersprache gar nicht so verkehrt. Es empfiehlt sich (andere vor mir haben es ebenfalls bereits erwähnt), direkt mit einer Entwicklungsumgebung wie z.B. Eclipse für Java zu beginnen, anstatt Programme im Notepad zu schreiben. Es gibt etliche Tutorials, und das erste „Hello World“ Programm ist fix erstellt und ausführbar. Dass mal was nicht klappt, und das tut es auf Anhieb meistens nie, daran muss man sich einfach gewöhnen. Anfangs muss man auch erst mal die Elemente der Sprachsyntax wie Anweisungen, Variablen, Schleifen, Bedingungen…. Kennenlernen – die gibt es nämlich in jeder Programmiersprache. Nach einigen Tutorials war das höchste der Gefühle, dass ich kleine Rechtecke in einem kleinen Eingabefenster ausgegeben oder Zahlenfolgen erzeugt und rausgeschrieben habe. Es gibt genug kleine Tutorials mit immer schwerer werdendem Schwierigkeitsgrad, einfach mal googlen!

Während dem Studium hat mir das Buch „Java ist auch eine Insel“ enorm geholfen – es geht zwar oft unglaublich ins Detail, aber zum Nachschlagen ist es allemal eine gute Hilfe. Wenn ich was nicht verstanden hatte oder ich zu einem Thema mehr wissen wollte, in dem Buch stand es garantiert…natürlich gab es dennoch viele schwarze Flecken am Java-Horizont, insbesondere wenn die Entwicklungsumgebung mal nicht so wollte - es wurde bereits der berühmte „classpath“ erwähnt. Man tappt anfangs generell oft im Dunkeln, weil die modernen IDEs (Entwicklungsumgebungen) so viel können mit zig Funktionen, und man eigentlich als Anfänger nur ein Bruchteil benötigt…davon nicht abschrecken lassen! Nach dem anfänglichen Kennenlernen der Sprache dann der nächste Meilenstein: mit einer IDE kann ich mein Programm an einer von mir gewählten Stelle anhalten und Anweisung für Anweisung weiter ausführen, das sogenannte Debugging. Ich kann den aktuellen Zustand betrachten, dies ist z.B. sinnvoll, um einen Fehler zu finden. (Ich verbringe einen Großteil meiner Arbeitszeit mit dem Debuggen, teilweise sucht man Stunden, um einen Fehler zu finden!)
Zurück zu den Sprachen: ich habe im späteren Studium in .NET entwickeln müssen, d.h. Programmiersprache C#, Entwicklungsumgebung Microsoft Visual Studio Express. Nun stellt man schnell fest, dass man doch etwas kann, denn in C# sieht alles sehr ähnlich aus und funktioniert auch sehr ähnlich. Sogar das erst erlernte Debugging gelingt ohne große Umstellung... C# als erste Sprache kann ich also auch empfehlen. Ein Pluspunkt MS Visual Studio: Programme mit grafischer Oberfläche waren „zu meiner Zeit“ viel einfacher und komfortabler im Visual Studio erstellt, ohne noch irgendwelche Plugins etc. suchen zu müssen. Per WYSIWYG-Oberfläche hat man sich also ziemlich schnell ein paar Buttons, Eingabefelder etc. in ein Fenster gepackt und war „fertig“.

Ich finde es auch nicht verkehrt, mit einer objektorientierten Sprache zu beginnen – mittlerweile kann man sogar in der SAP-Sprache ABAP objektorientiert entwickeln. Sicherlich wird man OOP nicht auf Anhieb verstehen und so verinnerlichen, wie jemand der seit Jahren damit arbeitet und die Möglichkeiten ausschöpft. Allerdings denke ich, dass man zumindest mit grobem Wissen über (abstrakte) Klassen, und (Statische) Methoden und Interfaces schon ein gutes Stück weit kommt.

Meiner Meinung nach kommt nun die spannendste Phase: man beherrscht die Sprachsyntax grob und findet sich in der IDE zurecht – bisher konnte man nur kleine Java-Programme schreiben, die in einem Fenster ausgeführt werden, weit entfernt von einer schicken grafischen Oberfläche. Wer mit einer anderen Programmiersprache angefangen hat, wird sicher ähnlichen Stand haben. Folgendes ist mir damals durch den Kopf gegangen: „Außerdem würde ich gerne mal Informationen abspeichern können, z.B. in eine Textdatei, in ein XML (und zwar korrekt und „wohlgeformt“, sodass ich diese ohne Fehler auch irgendwann wieder einlesen kann!)“. Oder „Mein Programm soll mit anderen Programmen/Diensten/was auch immer kommunizieren können, z.B. über das http-Protokoll. Die meisten Apps auf den Smartphones tun dies z.B., da sie ja irgendwie die Daten vom Server bekommen müssen“. „Und ein sauberes Fehlerhandling wäre auch nicht verkehrt, denn mein Programm darf nicht jedes Mal abstürzen, sondern sollte die Aktion abbrechen und dies dem User mitteilen“. Und und und….jetzt lernt man „eigentlich“ erst die Programmiersprache richtig kennen. Nicht bezüglich der Syntax, sondern vom „Sprachumfang“. Jede der populären Programmiersprachen bietet bereits viele Funktionalitäten, die ich durch Aufrufe/Nachrichten/Events/gerichtete Würfe von Zaunpfählen in meinem Code verwenden kann. „Ich muss nicht jedes Mal das Rad neu erfinden“. So kann man also – vorausgesetzt, man weiß, ob es so eine Funktion in Java (C#....) bereits gibt – wie sie heißt – und wie man diese Funktion füttern muss („welche Parameter muss ich übergeben?“). Das oben angesprochene Buch zeigt einem schon eine ganz gute Vielfalt, was out-of-the-box möglich ist. Achtung Spoiler: oftmals googelt man sich das Zeug auch zusammen, und landet meistens eh auf stackoverflow.com, wo ein User dies GARANTIERT auch schon mal wissen wollte – und wenn es gut läuft, ist auch noch ein Beispiel gepostet für STRG+C, V ;-) Man beginnt, sich kleinere Projekte zu überlegen. Klassiker: „Movie-Database“. Wenn man dran bleibt, wird man besser, und verwendet schon viele Sachen aus dem einen Programm in seinem nächsten. Tjoa, simple as that (oder auch nicht). Beispiel aus meinen Anfängen: ich hatte irgendwann ne ganz schöne Ansammlung von kleinen „Showcases“. Kleinstprogramme, die oftmals in einer einzigen Source „irgendwas“ machen. Der eine schreibt etwas Beispieltext in eine Textdatei. Mehr nicht. Der nächste erzeugt einen Thread (nebenläufiges Programm), der sich irgendwann in meinem Hauptthread meldet. Wenn sich dieser meldet, wird eine Ausgabe erzeugt. Hab ich irgendwann später ein Programm eine Funktion einbauen wollen, hab ich mich gern bei meinen Showcases bedient ;-)

Ich habe gerade noch einmal die Beiträge vor mir überflogen (wo insgesamt viel Richtiges imho drin steht). Ein Hinweis noch: ich habe zu meiner Schulzeit mal versucht, mich mit HTML, CCS und Co anzufreunden. „Mal ne kleine Webseite bauen“. Ich habs gehasst ;-), waren mir damals zu viele unterschiedliche Konzepte auf einmal, schätze ich. Mittlerweile habe ich auch ein paar Apps entwickelt, sowohl für Android (Java) als auch iOS (Objective C), letzteres schon paar Jahre her. Find ich ebenfalls für den Einstieg vielleicht etwas überfordernd, obwohl Apps „cool“ sind. Wer z.B. schon etwas fit ist mit Java, kann mal den Exkurs zu einer Android App wagen, ich persönlich hätte wohl aufgegeben wenn Apps mein Einstieg sein sollten.

My two cents
 
AW: Programmieren für Anfänger - Wie fange ich an?

Das Problem, was ich bei Java und C# sehe, dass einem sehr viel (zu viel mMn.) abgenommen wird, wie zum Beispiel der komplette Speichermanagement. Und das kein Mensch weiß, was da genau passiert. So passiert es sehr schnell, dass man ein Memory Leak eingebaut hat, dass irgendwelche Ressourcen nicht freigegeben werden und irgendwelche Klassen nicht entsorgt werden. Gerade beim "Klassen entsorgen" ist auch schon das zweite Problem ist, das Verhalten nicht deterministisch ist, sprich, wann der GC zuschlägt. Dann die unterschiedliche Speicherbereiche, Heap, Edden, Old Gen, ... und wie die Lebensdauer eine Klasse ist.

Was heißt "zu meiner Zeit"? Das VS gibt es schon ewig. Da gab es auch schon die Oberflächen-Builder, damals noch mit MFC. Oder auch der alte C++ Builder von Borland (anno 2002) hatte es mit an Bord, mit ihrer VCL-Library. Also, es ist nichts Neues.

Eclipse ist der letzte sch**ss, ich habe noch nie eine IDE gesehen, die so verbuggt ist. Nach jahrelanger Quälerei mit Eclipse bin ich auf NetBeans umgestiegen und ich muss sagen, coole Sache! Das Zeug funktioniert.

Ich fange an (bzw. habe angefangen) einen Treiber für Linux zu entwickeln, eigentlich ist es ein Stack, also ein "bisschen" mehr. Die Leute haben sich echt Gedanken gemacht, auch wenn man an manchen Stellen sich fragen muss "hä, warum so?", aber gut, sind halt Eigenarten. Aber, pures C, kein C++ und klar strukturiert. Und genau hier wird es interessant, kmalloc und kfree zum Beispiel :) Oder Interrupt-Routinen. Und um das Ganze richtig spannend zu machen: wie wär's mit Real Time Kernel? Als IDE nehme ich KDevelop und muss sagen, es ist nicht schlecht. Es kann direkt die Linux-Kernel Source einbinden und auch damit umgehen, was Eclipse NICHT kann, auch nicht nach stundenlangem einrichten.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Das Problem, was ich bei Java und C# sehe, dass einem sehr viel (zu viel mMn.) abgenommen wird, wie zum Beispiel der komplette Speichermanagement. Und das kein Mensch weiß, was da genau passiert. So passiert es sehr schnell, dass man ein Memory Leak eingebaut hat, dass irgendwelche Ressourcen nicht freigegeben werden und irgendwelche Klassen nicht entsorgt werden. Gerade beim "Klassen entsorgen" ist auch schon das zweite Problem ist, das Verhalten nicht deterministisch ist, sprich, wann der GC zuschlägt. Dann die unterschiedliche Speicherbereiche, Heap, Edden, Old Gen, ... und wie die Lebensdauer eine Klasse ist.
Hmm. Du überspringst gerade etliche Stufen, redest aus deiner Sicht. Ich vermute, dass eben der Anfänger, der vor lauter Bäumen den Wald nicht sieht, happy af ist, wenn er sich jetzt nicht auch noch direkt mit Speicher allokieren, dies und das und tralala beschäftigen muss! Natürlich hat jeder, der Java entwickelt, sich auch Regeln, "Best Practices", aneignen müssen, damit das Ding auch performant bleibt - ich denke, dass 95% der interessierten Leser hier sich wohl nie um Performance-Probleme kümmern müssen werden, und ganz froh sind, dass es für die 0815 Anwendung mehr als ausreichend ist.

Was heißt "zu meiner Zeit"? Das VS gibt es schon ewig. Da gab es auch schon die Oberflächen-Builder, damals noch mit MFC. Oder auch der alte C++ Builder von Borland (anno 2002) hatte es mit an Bord, mit ihrer VCL-Library. Also, es ist nichts Neues.
"Zu meiner Zeit" sollte eine Momentaufnahme sein, da ich mich weder großartig davor (Schüler, höchstens Zocken am PC im Kopf) noch nach meinem Studium mit grafischen Oberflächen beschäftigt habe, sprich: ich weiß nicht, ob es heute schon richtig gute Plugins gibt, die das grafische Erstellen kinderleicht machen. Zu dem Zeitpunkt, als mein Interesse geweckt wurde, hatte VS out-of-the-box die für mich einfachere, zugänglichere Möglichkeit parat, mal ne Maske zu designen. Die ersten Schritte. Drag n Drop. Für einen Laien ist das schick, dass er so schnell was zusammen gezimmert hat. Ich kann mich nicht dran erinnern, dass es das direkt im Eclipse so gab, und ich meine, UI Frameworks gab es wenn dann nur komplizierter, unkomfortabler oder wie auch immer, fürs Eclipse. Android IDE und Xcode waren sehr nett, allerdings gings da nicht um Desktop-Anwendungen.

Eclipse ist der letzte sch**ss, ich habe noch nie eine IDE gesehen, die so verbuggt ist. Nach jahrelanger Quälerei mit Eclipse bin ich auf NetBeans umgestiegen und ich muss sagen, coole Sache! Das Zeug funktioniert.
Gott sei Dank.

Ich fange an (bzw. habe angefangen) einen Treiber für Linux zu entwickeln, eigentlich ist es ein Stack, also ein "bisschen" mehr. Die Leute haben sich echt Gedanken gemacht, auch wenn man an manchen Stellen sich fragen muss "hä, warum so?", aber gut, sind halt Eigenarten. Aber, pures C, kein C++ und klar strukturiert. Und genau hier wird es interessant, kmalloc und kfree zum Beispiel :) Oder Interrupt-Routinen. Und um das Ganze richtig spannend zu machen: wie wär's mit Real Time Kernel? Als IDE nehme ich KDevelop und muss sagen, es ist nicht schlecht. Es kann direkt die Linux-Kernel Source einbinden und auch damit umgehen, was Eclipse NICHT kann, auch nicht nach stundenlangem einrichten.
Das freut mich, dass du Spaß an deinem Hobby hast. Ich muss gestehen, ich hatte noch nie vor, einen Real Time Kernel zu entwickeln, noch mein OS auf Linux umzustellen oder Linux-Kernel Sourcen einbinden. Deswegen bin ich auch nicht unbedingt traurig drum, dass Eclipse das nicht kann. Ich arbeite heute übrigens auch nicht mehr mit Eclipse. Ich dachte allerdings nur an den TE oder andere Neugierige, die genau wie ich damals den Kopf voller Ideen haben und gar nicht recht wissen, wie sie anfangen sollen. Denn ab und zu macht die Geschichte verdammt nochmal viel Spaß, vor allem, wenns einem mal einfach so richtig läuft. Die Freude, wenn es mal funktioniert wie man möchte. Oder wenn man sich überlegt, was man Neues dran programmieren kann. Ich denke, darum gehts. Und um die Einstiegshürde nicht mehr ganz so groß aussehen zu lassen wie sie anfänglich eben ist, hab ich einfach mal runter geschrieben, wie das bei mir so war - und wie sich der Erfolg und der Spaß ganz von alleine einstellen.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Hmm. Du überspringst gerade etliche Stufen, redest aus deiner Sicht.

Was überspringe ich?

Ich vermute, dass eben der Anfänger, der vor lauter Bäumen den Wald nicht sieht, happy af ist, wenn er sich jetzt nicht auch noch direkt mit Speicher allokieren, dies und das und tralala beschäftigen muss!

Also, ich denke mal, gerade am Anfang ein

Code:
#include <stdio.h>

int main(void) {

printf("Hallo Welt!\n");

return 0;
}

einfacher ist, als sich mit Konstruktor, Package und etc. zu beschäftigen. Wie gesagt, meine Meinung.

Natürlich hat jeder, der Java entwickelt, sich auch Regeln, "Best Practices", aneignen müssen, damit das Ding auch performant bleibt - ich denke, dass 95% der interessierten Leser hier sich wohl nie um Performance-Probleme kümmern müssen werden, und ganz froh sind, dass es für die 0815 Anwendung mehr als ausreichend ist.

Das ist, leider, die Traumwelt und Traumvorstellung. Die Realität sieht anders aus. Ich kann Dir Code von Entwickler (!!! keine Programmierer) zeigen, da wird es Dir übel und das ist (wie gesagt, leider) die Realität...

"Zu meiner Zeit" sollte eine Momentaufnahme sein, da ich mich weder großartig davor (Schüler, höchstens Zocken am PC im Kopf) noch nach meinem Studium mit grafischen Oberflächen beschäftigt habe, sprich: ich weiß nicht, ob es heute schon richtig gute Plugins gibt, die das grafische Erstellen kinderleicht machen. Zu dem Zeitpunkt, als mein Interesse geweckt wurde, hatte VS out-of-the-box die für mich einfachere, zugänglichere Möglichkeit parat, mal ne Maske zu designen. Die ersten Schritte. Drag n Drop. Für einen Laien ist das schick, dass er so schnell was zusammen gezimmert hat. Ich kann mich nicht dran erinnern, dass es das direkt im Eclipse so gab, und ich meine, UI Frameworks gab es wenn dann nur komplizierter, unkomfortabler oder wie auch immer, fürs Eclipse. Android IDE und Xcode waren sehr nett, allerdings gings da nicht um Desktop-Anwendungen.

Genau das wollte ich doch wissen, was heißt "zu meiner Zeit", Jahr oder sowas. Nur damit ich weiß, von welcher Zeit wir gerade reden. Wie gesagt, ich rede von anno 2002, da kam ich in Berührung mit VS und Borland C++. Eclipse kam da gerade erst auf.

Das freut mich, dass du Spaß an deinem Hobby hast. Ich muss gestehen, ich hatte noch nie vor, einen Real Time Kernel zu entwickeln, noch mein OS auf Linux umzustellen oder Linux-Kernel Sourcen einbinden. Deswegen bin ich auch nicht unbedingt traurig drum, dass Eclipse das nicht kann. Ich arbeite heute übrigens auch nicht mehr mit Eclipse. Ich dachte allerdings nur an den TE oder andere Neugierige, die genau wie ich damals den Kopf voller Ideen haben und gar nicht recht wissen, wie sie anfangen sollen. Denn ab und zu macht die Geschichte verdammt nochmal viel Spaß, vor allem, wenns einem mal einfach so richtig läuft. Die Freude, wenn es mal funktioniert wie man möchte. Oder wenn man sich überlegt, was man Neues dran programmieren kann. Ich denke, darum gehts. Und um die Einstiegshürde nicht mehr ganz so groß aussehen zu lassen wie sie anfänglich eben ist, hab ich einfach mal runter geschrieben, wie das bei mir so war - und wie sich der Erfolg und der Spaß ganz von alleine einstellen.

Naja, ich entwickle ja keinen Kernel und ich hoffe, dass ich die RT-Geschichten vom Kernel nicht brauche, aber wer weiß.

Ich bin nach wie vor davon überzeugt, dass OOP nicht der richtige Weg für den Einstieg ins Programmieren ist. Am Anfang hat man eh Probleme damit die Schleifen, Verzweigungen, Funktionen und etc zu verstehen, da braucht man nicht noch extra Klassen, Klassenhierarchien, Ableitung und den ganzen Geraffel mit drauf zu packen. Denn die Schleifen, Verzweigungen und etc. sind immer da, egal ob objektorientiert oder prozedural. Hat man das verstanden, ist der nächste Schritt mit Klassen, Vererbung und etc. einfacher.

Ich denke, es ist einfacher erst den Weg von A nach B zu erkunden, sprich "was mache ich hier eigentlich" und "wie mache XYZ" und dann das Ganze in OOP sich vorzustellen.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Den Kerneltreiber hab ich damals mit Geany geschrieben und von da raus kompiliert. Ist alles kein Hexenwerk (wobei Kdevelop schon ganz schick ist)
Aber halt eins nach dem Anderen.

Entscheidend ist "irgendwo" anzufangen. Den perfekten Weg für Alle und Alles gibt es nicht.
Allein beruflich bin ich gerade mit C, C++, C#, VB, Python, Matlab und Stateflow zugange. Nicht aus Überzeugung sondern aus Notwendigkeit.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Den Kerneltreiber hab ich damals mit Geany geschrieben und von da raus kompiliert. Ist alles kein Hexenwerk (wobei Kdevelop schon ganz schick ist)
Aber halt eins nach dem Anderen.

Kriegt er das Linking und Makefile-Projekte sauber hin? Ich mache ja Crosscompiling.

Entscheidend ist "irgendwo" anzufangen. Den perfekten Weg für Alle und Alles gibt es nicht.
Allein beruflich bin ich gerade mit C, C++, C#, VB, Python, Matlab und Stateflow zugange. Nicht aus Überzeugung sondern aus Notwendigkeit.

VB, Du kennst aber auch gar nichts, ist ja ekelhaft... :D
 
AW: Programmieren für Anfänger - Wie fange ich an?

Geany ruft einfach direkt make auf. Wenn das Makefile einen Crosscompiler benennt dann macht es eben das. Hab ich zu Uni-Zeiten gerne als Minimal-IDE genutzt.

Lieber VB als die Sprachen in denen Whitespace/Einrückung eine funktionale Bedeutung hat.
 
Zurück