Programmieren lernen... Wo fange ich an?

Schnufer_87

Enthusiast
Thread Starter
Mitglied seit
20.11.2004
Beiträge
355
Ort
Bodensee
Hallo,

Ich habe bis auf gerade erst angeeignete und noch sehr bescheidene VBA Kenntnisse noch kaum Kontakt mit Programmierung gehabt...

Ich finde das Thema aber schon immer spannend und habe mich wohl nur nie damit weiter beschäftigt, weil ich nie wusste wo ich anfangen soll...

Daher meine Frage an euch, ob ihr mir nicht ein paar Tipps geben könnt? Dachte da an Programmiersprache und vielleicht dazugehörige Literatur Vorschläge die sich bewährt haben. Es gibt einfach zu viel um es ohne Fachwissen zu überblicken. Mir ist auch nicht klar auf welcher Plattform ich anfangen sollte (Windows,OS X, Linux, ...).

Ich bin fasziniert davon Sachen zu automatisieren. Insbesondere gilt das wenn ich eine für mich individuelle Lösung Suche und ausarbeite.
Ich habe in meinem Studium (Maschinenbau; Programmierung im mathematischen Sinne und im Bereich Regelungs- und Steuerungstechnik) in mehreren Projekten diese Neigung festgestellt. Daher sollte die Programmierung als solche ein super Hobby werden.

Ich versuche mal etwas konkreter zu werden in welchem Bereich ich etwas machen möchte, auch wenn das irgendwie garnicht so einfach ist. Angefangen von kleinen hilfreichen Tools, die den Rechner bspw. mit vorgegebenen Countdown ausschalten oder ähnlichem. Weiter mit Dingen in Richtung der regelungs- & Steuerungstechnik (keine präzisionssachen mit absurden Toleranzen oder so). Ich stelle mir sowas vor wie z.b. einen regensensor am Dachfenster zu verbauen und eine Warnung bei offenem Fenster und Regen zu bekommen, oder sogar ein automatisches schließen zu integrieren. Auch interessant fände ich Das ansteuern der Kaffeemaschine oder des heimtheaters, solche Sachen halt. Ein GUI zum bedienen aller Spielereien wäre dann vielleicht langfristig ein Ziel. Bei diesem Beispiel steht die Hardware im Hintergrund, da finden sich passende Sachen. Mit ein bisschen basteln ist das auch deutlich billiger möglich als die zig tausend Euro Lösungen die ich im Studium beigebracht kriege.

Das letzte was mich brennend interessiert ist Netzwerktechnik. Das bekommt einen extra Absatz, da es das aktuell interessanteste Thema für mich ist und absoluten Vorrang hat.
Ob eine netzwerkverbindung klappt oder nicht ist immer ein Glücksspiel bei mir, gleiches gilt für Freigaben, remotedesktop etc. Ich wäre gerne in der Lage mein lokales netzwerk (gerne per templates oder Plugins wenn es sowas gibt) so zu gestalten, dass alles nach meinen Vorstellungen funktioniert und alle Geräte entsprechend kommunizieren (Internetzugang gezielt und sicher unterbinden ohne diesen zu kappen; ohne softwarefirewall). Das was Windows in diesem Punkt bietet ist nicht meins, zumindest von dem ich weiß :-P. Mich nerven auch die Tausend clouds auf denen ich meine Daten suchen muss, die verschiedenen Versionen von Dokumenten die durch das Aufrufen an verschiedenen Geräten entstehen können usw. Ich weiß ja auch nicht was ein cloud Betreiber mit Server im Ausland (was ja meist der Fall ist) mit meinen Daten anstellt. Ich habe deshalb vor dafür zeitnah eine lokale Lösung zu finden. Natürlich könnte ich mir einfach ein nas kaufen und gut ist. Nur möchte ich flexibel bleiben. Mein Unwissen hilft bei der Entscheidung auch nicht gerade in welche Richtung es gehen soll. Was ich erreichen möchte ist, dass außer den Betriebssystemen und Programmen keine Daten mehr auf anderen Geräten liegen. Ich will also ein zentrales datenlager. Desweiteren möchte ich ein mediacenter integriert wissen, dass Sachen wie Filme und Bilder am Fernseher anschaulich darstellt und streamt. Ein SICHERER Zugang (z.b. VPN) aus dem Internet wäre auch so ne Sache. Ich lasse solche Funktionen immer deaktiviert, da ich nicht überschauen kann was wirklich passiert. Ich möchte das aber wissen in meinem netzwerk ;-)! Spielen will ich darauf nicht, dass ist aber auch das einzige das ich vollkommen ausschließen kann. Ich vermische hier gerade das netzwerk Thema mit dem geplanten Server/nas was dazu angeschafft werden soll... Ich hoffe ihr behaltet trotzdem den überblick.



Zusammengefasst möchte ich die Kenntnisse erwerben um eine für mich passende netzwerklösung zu erstellen. Das nas/Server sollte dabei in der Lage sein das beschriebene zu bewältigen und damit meine ich auch das anfangs beschriebene wie das ansteuern von etwaiger Hardware.

Ich hab das Gefühl dass das alles sehr umständlich und unverständlich geschrieben ist, aber vielleicht gibt es ja doch jemanden der meine Frage versteht und ein bisschen Ordnung ins Chaos bringen kann...

Tausend Dank für jede Antwort :-D
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Erstmal solltest du Programmieren wie Sprechen betrachten.
Erstmal musstest du über Jahre lernen zu Sprechen. Irgendwann kamen neue Sprachen dazu, aber du hast nicht noch einmal gelernt, wie man spricht, sondern nur die Grammatik und Wörter. Der Unterschied bei der Programmierung ist hier nur, dass es einfacher ist, weil du nicht bei jeder anderen Sprache so viel lernen musst, weil sich viele ähneln und du lediglich die Syntax und besondere Verwendung lernen musst, was einfacher ist als eine komplett neue Sprache zu lernen.

Daher ist die Wahl der ersten Programmiersprache zwar wichtig, aber wenn du die einmal beherscht, ist es halb so schwer eine neue zu lernen.

Ich empfehle dir direkt eine der "grossen" zu lernen.

C++:
DER Allrounder. Läuft überall (jedes OS) und es gibt die meisten Bibliotheken dazu. Grafische Oberflächen kannst du zB mit QT machen.
Ich persönlich benute als IDE am liebsten Visual Studio und desshalb nehme ich C++ selten für UIs

C#:
Für Microsoft Systeme und besitzt einfach die besten Möglichkeiten für Office und generell Windowsanbindungen. Hierfür sollte man Visual Studio benutzen und C# bietet 1A UIs, die perfekt mit Windows zusammen spielen.


Java:
Halte ich nicht viel von.


Als IDE würde ich dir wie oben erwähnt Visual Studio empfehlen und natürlich als OS Windows.


Zum Lernen von C# finde ich das galileo Open Book ganz gut. Bei C++ gibt es tausende Materialien, da habe ich den Einstieg über die Spiele Entwicklung gefunden. Ein super Buch für C++ ist "Der C++ Programmierer", aber ich denke als blutiger Anfänger ist es recht komplex.


Generell, solltest du vielleicht mal ein bisschen über die Sprachen im Internet suchen und dich dann entscheiden.



Zur Netzwerktechnik kann ich leider nur sagen, dass ich es in meiner schulischen Laufbahn gelernt habe. Vielleicht kannst du ja über Bekannte an einen CISCO Login kommen.
Ansonsten sidn wichtigee Stichpunkte (zufällige Reihenfolge):
- IPv4/IPv6
- Router, Switches
- Routingprotokolle
- VLANs
- VTP
- STP
- OSI Modell

Es gibt garantiert ne Milliarde andere wichtige Punkte, aber die fallen mir halt grade so spontan ein.


Ich hoffe ich konnte dir ein bisschen helfen. Stell einfach weitere Fragen zu spezifischen Dingen.
 
Nicht zu vergessen ist C als strukturierte Programmierung. Wenn man mit Automatisierung und Ansteurung von Technik sich befassen will, speziell µC, dann kommt man um diese Sprache nicht rum. Ich habe mit Datentypen angefangen.
 
@ERROR134
Super, vielen Dank für die ausführliche Antwort, genau sowas hab ich gebraucht.
Dann soll es C++ und direkt danach dann C# für den Anfang erstmal sein.
Was sind denn Uls?

Was ist CISCO? Ne Art lernsoftware?

@exubiz
Dir auch vielen Dank für die Antwort! Ist der Unterschied zu C so groß das man die Sprache auch "neu" lernen muss, oder ist es mehr eine abgespeckte Version von C++ oder so? Womit fängt man in deinen Augen am besten an? Was ist mit strukturierte Programmieren gemeint? Ist µC jetzt wieder ne andere Sprache oder gehört es zu C? Zuletzt noch, was meinst du mit Datentypen?

Sorry wenn ich dir jetzt alles als Frage formuliert hier zurück schicke, aber das ist halt mein momentanes Problem. Ich hab von nichts ne Ahnung und es klingt wahnsinnig schnell nach Bahnhof und ich wills ja verstehen! Deswegen auch die Bitte nach bewährten Quellen zum Selbststudium ;-),
 
UI = Userinterface

CISCO = Mit der größte Hersteller was Netzwerk-Hardware angeht. Nr.1 wenn es um riesige Stukturen geht, für Heimgebrauch eher weniger gedacht da sehr teuer aber auch potent.

CISCO hat eine Software, mit der du vieles simulieren kannst -> Packet Tracer


Fang einfach mit C++ an. Irgendwo muss man ja anfangen ;)

Hier ein sehr gutes Tutorial für C++ -> http://www.learncpp.com/
 
Zuletzt bearbeitet:
Ach das war ein i wie Ingried und kein l wie Ludwig :-P
Da hätte ich auch drauf kommen können :-D

Werd ich wohl machen, also mit c++ anzufangen. Danke für den Link werde ich mir angucken.

Freu mich schon auf meine Semesterferien, dann kann ich damit endlich anfangen... Bis zum Winter sollte dann genug wissen da sein um mal was größeres zu starten!
Davor werde ich mich an eurem Wissen aber mit Sicherheit noch des öfteren bedienen müssen. Dafür schonmal danke :-D
 
Ich hab mal versucht wol an meinem alten Rechner einzurichten. Das wollte aber nie klappen, obwohl das mainnoard das unterstützen sollte...
Ist so ein Script eher was für fortgeschrittene? Sonst hat jemand dazu vielleicht ein gutes Tutorial parat?

Ist es möglich den Verlauf im Router aufzunehmen? Also anzeige besuchter Seiten mit Zuordnung zum jeweiligen Benutzer?
Im Betrieb ist eine fritzbox 6340 von Kabel bw
 
Zuletzt bearbeitet:
Wenn du dich mit Netzwerken beschäftigen möchtest, dann könntest du Wireshark zum Spaß ausprobieren. Da sieht man seine Netzwerkaktivitäten.

Zu deinen Fragen: C++ ist höher levelig als C. In C++ hast du Möglichkeit objektorientiert zu arbeiten. In C hast du Strukturen. Es weiter ausgiebiger zu erklären ist zu früh imo.

µC ist Mikrocontroller. So kleine Computersysteme. Ich würde die Seite learncpp durchforschen und durcharbeiten. Dann hast auch kein Fragen, was ein Datentyp ist ;)
 
Zuletzt bearbeitet:
Die Links sehen sehr viel versprechend aus. Danke!
Hab mir gerade ein paar Videos zum Thema home automatization mit raspberry Pi angeschaut. Da fallen mir gleich zig anwendungsmögkichkeiten ein, die damit umsetzbar wären. Scheint ne günstige Plattform zu sein zum basteln und Motivation oben halten zu sein...

Bin richtig heiß drauf mich da rein zu stürzen nach den Klausuren. Ob ich nicht das falsche studiert habe?! ;-)



Freue mich über weitere Infos und Links/quellen falls noch jemandem was einfällt.
 
Muss mal eben noch ne bescheuerte Frage hinterher werfen. Habe mir zuletzt überlegt ein MacBook Air zuzulegen. Gedacht als reine arbeitsmaschine... Das ganze ist nur ne Idee und nicht wirklich durchdacht, darauf gekommen bin ich nur da ich das Gerät an sich gut finde und die ewig lange akkulaufzeit. Dazu kommt das ich ipad und iPhone nutze und nun noch ein mobiles Arbeitsgerät gebrauchen könnte (ipad ist super aber ja doch eher was zum daddeln).

Ist das komplett schwachsinnig im Zusammenhang mit dem programmieren und c++ (so ist ja dann erstmal windows für den Anfang)?

Mein Desktop ist noch recht neu und leistungsfähig,läuft momentan unter Win 7 und wird weiterhin mein Hauptrennen bleiben.
 
@Schnuffer:87: Wie tief willst Du einsteigen? Ich habe mit C angefangen, Variablen, Verzweigungen, Schleifen, Strukturen. Irgendwann später kam C++ und damit auch der objektorientierter Ansatz. Im Moment bin ich sehr viel in Java unterwegs. Ob für ein Projekt X die Sprache Y oder Z besser ist, kann man nicht sagen. Im Web würde ich nur Java nehmen, wenn ich irgendwas habe, wo es auf die Echtzeit ankommt, bzw. deterministisches Verhalten, nehme ich C++ oder gar C. Java nimmt einem viele Sachen ab, aber das ist nicht immer gut, ich sage nur Garbage Collektor.

Aber, wenn Du eine Sprache kannst, sagen wir C/C++, kannst Du auch andere, wie Java, C# und wie sie alle heißen. Ein Programmablauf besteht aus Schleifen und Verzweigungen. Die Sprache ist nur ein Werkzeug, mehr nicht.

Wenn Du im Mikrocontrollerumfeld arbeiten willst, dann schau Dir auf jeden Fall Assembler an. Du musst keine Projekte damit machen, nur anschauen. Ich finde es wichtig, weil dann verstehst Du wirklich, was auf der Hardware passiert. Da arbeitest Du direkt auf den Ports und Register, da ist nichts gekapselt. Privat bin ich viel mit Mikrocontroller beschäftigt, beruflich mit Java, SQL und PL/SQL.
 
Wie tief ich einsteigen will?
Kann ich schlecht sagen, das hängt von mehreren Faktoren ab... Prinzipiell kann das schon bis zur Perfektion gehen.
Für den Fall das mich das langfristig packt und ich beruflich evtl ja auch damit zu tun kriegen könnte ist da sehr viel Luft nach oben.

Ich find das einfach ungemein spannend, egal ob sich "nur" meine Schreibtischlampe selbst einschaltet sobald die Helligkeit den Wert x erreicht hat oder ob ich das gepäcksortiersystem vom BER mache. Mich fasziniert die Logik in den Systemen - den Anschein das die Maschine bzw das Programm mitdenkt und Entscheidungen nach Bedarf fällt.
Ich habe bspw. Mal ne befüllanlage im Studium programmiert. Die hat nach dem Chaos Prinzip unterschiedliche Gläser zugeführt bekommen, diese gescannt und unterschieden, daraufhin die befüllmenge, Art der Flüssigkeit, abtropfzeit und ablagemagazin unterschieden. Am Ende waren die Gläser dann sortiert nach Art und jeweils mit unterschiedlichen Flüssigkeiten befüllt (dem Fassungsvermögen der glasgröße angepasste Menge versteht sich). Automatisches stoppen bei vollen Magazinen bzw. Gewissen betriebsfehlern inkl.
Fach bedingt sind das aber eher die Ausnahmen, da ich ja quasi hardwarelastig ausgebildet werde ;-)

Web interessiert mich momentan nicht so wirklich, bis auf den Zugriff auf mein heimnetzwerk. Dabei spielt eben das sichere zugreifen für mich die wichtigste Rolle.

Das oben beschriebene läuft auch mit direkter Ansteuerung der Ports. Wobei ich vermute dass da auch einiges vereinfacht ist, aber es bedarf eben der definierend Anfangs durch einen programmkopf.
Werde mir assembler anschauen... So wie ich mir alles genauer anschaue was hier bisher geschrieben wurde.

Unterscheidet sich vba stark von C++?


Bin begeistert über die vielen Infos. Das erste mal das ich das Gefühl habe ungefähr zu wissen wonach ich suche!
 
Zuletzt bearbeitet:
Erstmal solltest du Programmieren wie Sprechen betrachten.
Erstmal musstest du über Jahre lernen zu Sprechen. Irgendwann kamen neue Sprachen dazu, aber du hast nicht noch einmal gelernt, wie man spricht, sondern nur die Grammatik und Wörter. Der Unterschied bei der Programmierung ist hier nur, dass es einfacher ist, weil du nicht bei jeder anderen Sprache so viel lernen musst, weil sich viele ähneln und du lediglich die Syntax und besondere Verwendung lernen musst, was einfacher ist als eine komplett neue Sprache zu lernen.

Daher ist die Wahl der ersten Programmiersprache zwar wichtig, aber wenn du die einmal beherscht, ist es halb so schwer eine neue zu lernen.

Ich empfehle dir direkt eine der "grossen" zu lernen.

C++:
DER Allrounder. Läuft überall (jedes OS) und es gibt die meisten Bibliotheken dazu. Grafische Oberflächen kannst du zB mit QT machen.
Ich persönlich benute als IDE am liebsten Visual Studio und desshalb nehme ich C++ selten für UIs

C#:
Für Microsoft Systeme und besitzt einfach die besten Möglichkeiten für Office und generell Windowsanbindungen. Hierfür sollte man Visual Studio benutzen und C# bietet 1A UIs, die perfekt mit Windows zusammen spielen.


Java:
Halte ich nicht viel von.


Als IDE würde ich dir wie oben erwähnt Visual Studio empfehlen und natürlich als OS Windows.


Zum Lernen von C# finde ich das galileo Open Book ganz gut. Bei C++ gibt es tausende Materialien, da habe ich den Einstieg über die Spiele Entwicklung gefunden. Ein super Buch für C++ ist "Der C++ Programmierer", aber ich denke als blutiger Anfänger ist es recht komplex.


Generell, solltest du vielleicht mal ein bisschen über die Sprachen im Internet suchen und dich dann entscheiden.



Zur Netzwerktechnik kann ich leider nur sagen, dass ich es in meiner schulischen Laufbahn gelernt habe. Vielleicht kannst du ja über Bekannte an einen CISCO Login kommen.
Ansonsten sidn wichtigee Stichpunkte (zufällige Reihenfolge):
- IPv4/IPv6
- Router, Switches
- Routingprotokolle
- VLANs
- VTP
- STP
- OSI Modell

Es gibt garantiert ne Milliarde andere wichtige Punkte, aber die fallen mir halt grade so spontan ein.


Ich hoffe ich konnte dir ein bisschen helfen. Stell einfach weitere Fragen zu spezifischen Dingen.
Nur mal als Frage nebenbei eingeworfen: wieso hälst du nichts von Java? Gerade für die Anfänge ist das doch super geeignet. Sich auf eine Sprache zum lernen zu versteifen halte ich übrigens mehr als falsch, da man sich so ja selber "festfährt" und danach nur noch schwer nach rechts und links schauen kann.
 
Web interessiert mich momentan nicht so wirklich, bis auf den Zugriff auf mein heimnetzwerk. Dabei spielt eben das sichere zugreifen für mich die wichtigste Rolle.

Mit Web meinte ich was komplett anderes.

Das oben beschriebene läuft auch mit direkter Ansteuerung der Ports. Wobei ich vermute dass da auch einiges vereinfacht ist, aber es bedarf eben der definierend Anfangs durch einen programmkopf.
Werde mir assembler anschauen... So wie ich mir alles genauer anschaue was hier bisher geschrieben wurde.

Bei den Ports habe ich über die Ports vom Mikrocontroller gesprochen :)

Unterscheidet sich vba stark von C++?

Kein Plan, ich kenne VBA nicht.

Nur mal als Frage nebenbei eingeworfen: wieso hälst du nichts von Java? Gerade für die Anfänge ist das doch super geeignet. Sich auf eine Sprache zum lernen zu versteifen halte ich übrigens mehr als falsch, da man sich so ja selber "festfährt" und danach nur noch schwer nach rechts und links schauen kann.

Genau das ist der Fehler. Java ist für den Einstieg evtl. interessant und nett. Mittlerweile hat Java auch im GUI-Umfeld massiv aufgeholt, wenn ich da an Java 1.1 oder sowas denke, na danke aber auch. Java ist objektorientiert, hat Millionen von Frameworks und etc. pp. Aber, genau hier liegt auch das Problem von Java. Unter anderem ist die Speicherverwaltung von Java absolut grausig und dieser verf....te Garbage Collector ist auch so eine Sache. In C/C++ muss ich mich selber drum kümmern und muss mir drüber Gedanken machen, in Java übernimmt es der Compiler für mich. Kann gut sein, kann aber auch absolut hässlich sein.

Java ist mir persönlich zu sehr objektorientiert. Wenn ich eine einfache Datenstruktur will, geht es nicht, ich muss eine Klasse mit dem ganzen Geraffel anlegen und dann davon eine Instanz anlegen. In C/C++ packe ich das ganze Zeug in ein Struct und fertig.
 
@Reaver1988
Wieso hältst du C++ für eine Sprache zum lernen? Keine Verwendung in der Praxis?

Dachte Java wär mehr so n web Ding, hatte ich irgendwie deswegen schon ausgeschlossen...
 
@ERROR134
Super, vielen Dank für die ausführliche Antwort, genau sowas hab ich gebraucht.
Dann soll es C++ und direkt danach dann C# für den Anfang erstmal sein.
Was sind denn Uls?

Was ist CISCO? Ne Art lernsoftware?

@exubiz
Dir auch vielen Dank für die Antwort! Ist der Unterschied zu C so groß das man die Sprache auch "neu" lernen muss, oder ist es mehr eine abgespeckte Version von C++ oder so? Womit fängt man in deinen Augen am besten an? Was ist mit strukturierte Programmieren gemeint? Ist µC jetzt wieder ne andere Sprache oder gehört es zu C? Zuletzt noch, was meinst du mit Datentypen?

Sorry wenn ich dir jetzt alles als Frage formuliert hier zurück schicke, aber das ist halt mein momentanes Problem. Ich hab von nichts ne Ahnung und es klingt wahnsinnig schnell nach Bahnhof und ich wills ja verstehen! Deswegen auch die Bitte nach bewährten Quellen zum Selbststudium ;-),

Davon rate ich ab. C++ ist keine einsteigerfreundliche Sprache, JAVA eignet sich für das Erlernen der Grundlagen der Objektorientierung weitaus besser. Wenn du JAVA beherrscht, kannst du C++ angehen.

Kann Reaver1988 nur zustimmen, dieses Gehate gegenüber JAVA kann ich nicht nachvollziehen. Der Großteil meiner Kommilitonen und ich waren sehr froh darüber, dass JAVA quasi die verwendete "Hauptsprache" während des Studiums ist. C++ wird im Vergleich nur minimal behandelt. Zurzeit brauche ich es allerdings, da es (noch )für die Computergrafik unerlässlich ist.
 
Zuletzt bearbeitet:
Davon rate ich ab. C++ ist keine einsteigerfreundliche Sprache, JAVA eignet sich für das Erlernen der Grundlagen der Objektorientierung weitaus besser. Wenn du JAVA beherrscht, kannst du C++ angehen.

Kann Reaver1988 nur zustimmen, dieses Gehate gegenüber JAVA kann ich nicht nachvollziehen. Der Großteil meiner Kommilitonen und ich waren sehr froh darüber, dass JAVA quasi die verwendete "Hauptsprache" während des Studiums ist. C++ wird im Vergleich nur minimal behandelt. Zurzeit brauche ich es allerdings, da es (noch )für die Computergrafik unerlässlich ist.

In der Theorie vielleicht.
 
Was genau meinst du damit?

Vielleicht wäre es sinnvoll sich vorher mit Pointern und Referenzen vertraut zu machen, denn auch wenn einem JAVA die Verwaltung übernimmt kann man Dinge falsch machen, weil man eben nicht weiß eine Referenz/ein Pointer ist.

Edit:

Wobei mir gerade einfällt, dass wir das auch in JAVA mit diesen Zeigerdiagrammen gemacht haben. (Stichwort shallow copy, deep copy)
 
Zuletzt bearbeitet:
Naja, in Java kommt ja nicht direkt mit Pointern und Referenzen in Berührung. Da übergibt man ein Objekt und fertig.

In C gibt es ja sowas:

Code:
int mach_was (char var);

oder aber auch sowas:

Code:
int mach_was (char *var);

oder aber auch sowas:

Code:
int mach_was (char &var);

alternativ sowas:

Code:
int *mach_was (char &var);

Und Java hat eigentlich nur sowas:


Code:
int mach_was (char var);

Was ich damit meine, hast Du eigentlich schon gesagt. Java ist doch anderes als C++, obwohl beide objektorientiert sind. In C++ habe ich sowohl einen Konstruktor als auch einen Destruktor, wenn ich richtig mache. In C++ muss ich mich komplett um die Speicherverwaltung kümmern. In C++ gibt es so wunderschöne Sachen wie verkettete Listen, was einem die Arbeit sehr erleichtern kann und und und.
 
Zuletzt bearbeitet:
Naja, in Java kommt ja nicht direkt mit Pointern und Referenzen in Berührung.

Was ich damit meine, hast Du eigentlich schon gesagt. Java ist doch anderes als C++, obwohl beide objektorientiert sind. In C++ habe ich sowohl einen Konstruktor als auch einen Destruktor, wenn ich richtig mache. In C++ muss ich mich komplett um die Speicherverwaltung kümmern. In C++ gibt es so wunderschöne Sachen wie verkettete Listen, was einem die Arbeit sehr erleichtern kann und und und.

Bin zwar kein Programmierprofi....Aber ich glaube mich zu erinnern das es in Java auch verkettete Listen gibt? Das war doch das mit dem Iterator ;-) (Stichwort JAva - einfach und doppelt verkettete Listen)


edit: gehört zwar nicht hierher ...aber erläutere mir mal bitte den Unterschied zwischen
int mach_was (char *var);
int *mach_was (char &var);
int mach_was (char var);
 
Zuletzt bearbeitet:
Eine verkettete Liste hat nicht direkt was mit Pointern in dem Sinne zu tun. Und ja, verkettete Listen gibt es auch in Java.
 
Haha, jetzt habt ihr mich schon komplett abgehängt... Aber das scheint mich ja in dem Fall auch garnicht mehr direkt zu betreffen ;-)
 
Bin zwar kein Programmierprofi....Aber ich glaube mich zu erinnern das es in Java auch verkettete Listen gibt? Das war doch das mit dem Iterator ;-) (Stichwort JAva - einfach und doppelt verkettete Listen)


edit: gehört zwar nicht hierher ...aber erläutere mir mal bitte den Unterschied zwischen
int mach_was (char *var);
int *mach_was (char &var);
int mach_was (char var);

int mach_was (char *var); // gibt ein int zurück und erwartet einen char pointer, call-by-reference

int *mach_was (char &var); // gibt einen pointer auf int zurück und erwartet eine Referenz auf einen char, call by reference

int mach_was (char var) // gibt einen int zurück und erwartet ein char, call by value.

In JAVA funktionieren Parameterübergaben immer per call-by-value. Wenn mach_was "char var" verändert dann siehst du das nicht, du musst es dazu in deinen return "int" speichern.
 
Natürlich ist C/C++ gut für Einsteiger, wenn sie WIRKLICH was wollen.

Man lernt ja nicht erstmal 1 Jahr lang was Zeiger,Referenzen, Container usw usw usw sind, sondern fängt klein an:

Rechnungen, Variablen, Kontrollstrukturen, Funktionen,..........

Man lernt Fahrradfahren auch nicht auf dem Home-Trainer oder Schwimmen im Waschbecken.

Alternativer Weg:
In der Schule, in der ich war, wurde zuerst VB (NICHT VBA) gelehrt um so erstmal überhaupt die ganzen Schüler an die Programmierung zu führen und grundsätzliche Dinge zu lernen. Ausserdem sind Dinge wie VB erstmal motivierender für einen Haufen fauler Schüler, weil es extrem einfach ist und GUIs von Haus aus hat. Danach kam dann C/C++ und somit die "richtige" Programmierung.

Java halte ich desshalb für unnötig, weil es weder eine extrem simple aber trotzdem "spassige" Sprache ist, um erstmal überhaupt zu lernen, was eine if-Abfrage usw ist, noch ist eine absolut mächtige Sprache wie C/C++ oder mittlerweile C#.
 
int mach_was (char *var); // gibt ein int zurück und erwartet einen char pointer, call-by-reference

int *mach_was (char &var); // gibt einen pointer auf int zurück und erwartet eine Referenz auf einen char, call by reference

int mach_was (char var) // gibt einen int zurück und erwartet ein char, call by value.

Absolut korrekt.
 
Dachte Java wär mehr so n web Ding, hatte ich irgendwie deswegen schon ausgeschlossen...

Was meinst Du mit Web Ding? Verwechsel Java nicht mit Javascript, die beiden haben außer 4 Buchstaben nichts gemeinsam.

Jede Sprache eignet sich imho zum Einstieg.

Letztenendes kommt es aber drauf an, das man die Konzepte versteht, der Rest sind Syntaxunterschiede.
 
Lass dich von den Profis mal nicht auf die eine oder andere Spur zwingen. Interessanter ist die Frage was du lernen willst:

Wenn du Spass an Elektronik, loeten und fummeln hast und dich wie ein Kind zu Weihnachten freuen kannst dass ein paar LEDs blinken ist wohl die uC Welt was fuer dich. Die kleinste Huerde waere da ein Arduino Uno fuer 20€, dazu ein Steckbrett fuer 10€ und nochmal 20€ fuer LEDs, ein bischen Draht, ein paar Standardwiderstaende usw. (erweitertes Pack waere dann ein ISP Programmer fuer 15€, ein Display fuer 10€ sowie ein Multimeter fuer 50€).
Dann bist du aber mit C (kein C++ oder C#) und ohne Bildchen auf nem Bildschirm unterwegs, sondern auf nem Steckbrett mit LEDs, widerstaenden, und auch mehr in der Elektronik (Strom, Spannung, Widerstand) als in der Programmierung. Und extrem hardwarenah, also eher in der Welt der Signale und Prozesse, als in der Welt von blink, bunt und klicki-klicki.

Wenn du dich lieber nur mit Programmiererei und weniger mit Elektronik auseinandersetzt, dafuer aber eventuell mit Grafikoberflaechen (Windows Taschenrechner nachbauen) auseinandersetzt wirds warscheinlich Java, C++ oder sowas werden. Wobei es wirklich keinen Unterschied macht was du zuerst lernst. Kostenlose IDEs wie Eclipse gibts im Netz, da kann man eigentlich recht schnell loslegen, ohne Kosten zu haben.


Und lass dich von Dingern wie Speicherverwaltungen und sowas nicht in die Irre fuehren. Damit kannste dich beschaeftigen wenn du den ersten Overflow produziert hast oder Pointer ins Nirvana gehen. Am Anfang gehts um sehr viel simplere Sachen die von den Profis garnicht mehr wahrgenommen wird.
 
Zuletzt bearbeitet:
Seht euch doch seinen Link bzgl. Wunschprojekt an, das Home Entertainment System. Für sowas ist Java/C# viel besser geeignet als C++. Lerne C++ nur noch, wenn absolut notwendig. Du schießt dir damit so schnell in den Fuß, das glaubt man nicht. Und dann diese ganzen anderen Hässlichkeiten... Header/Sourcecode getrennt und die unsäglichen Include-Guards erst!
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh