Programmieren lernen... Wo fange ich an?

Header und Source GEHÖRT getrennt. Das nennt man modulare Programmierung und ist ein essentieller Punkt in der Programmierung allgemein!
Und wer die 3 zeilen für den Includeguard nicht versteht, sollte sich lieber ein anderes Aufgabenfeld suchen, als die Programmierung

Ausserdem war C# in meiner Liste unter den empfohlenen Sprachen. Die Liste beruht jedoch auf meiner subjektiven Wahrnehmung.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Es ist redundante Information, daher gibts das zum Glück nur bei C/C++. Es geht beim Includeguard mir nicht um das verstehen, sondern es ist umständlicher Müll um Probleme einer Programmiersprache zu lösen.
 
redundante Information?!? Also ich bitte dich, wo ist das denn redundant?
 
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.



Also mit ein bisschen Digitaltechnik rumzuspielen und nen digitalen Würfel oder Ähnliches zu programmieren ist nicht das was ich will dann schon eher Richtung Taschenrechner. Also ein klares nein zu ein paar blinkenden LEDs.

Wie ein Kind zu weihnachten freuen kann ich mich dann, wenn ich das Gefühl habe das etwas praktisch anwendbar ist, oder aber das Potenzial dazu hätte (weiß nicht ob das klar ist was ich damit meine?). Dazu ist eine Hardware Anbindung nicht zwingend nötig. Mit vba eine benutzerdefinierte Berichtvorlage in word zu erstellen und mittels Plugin ein passendes Tab zu erstellen fand ich z.b. Auch extrem fesselnd. Es ist ja irgendwie auch eine Automatisierung.

Ich interessiere mich, wie ihr ja gemerkt habt, auf jedenfall für das Zusammenspiel mit Elektronik deutlich mehr als das ich irgendein Spiel entwickeln wollte. Darauf möchte ich mich aber nicht reduzieren... Das home Entertainment aus dem Video will ich nicht so umsetzen, finde nur die Idee super, fasst es doch das zusammen was ich unter anderem im ersten Post auch beschrieben hatte (unter einem GUI zusammengefasste Teilprogramme mit dem Bsp. des Regensensors glaub ich).
Bevor ich aber großartige Technik Projekte umsetze, möchte ich also mit Sicherheit ein paar Tools wie Office vorlagen oder kleine Programme schreiben und eben beim programmieren sicherer zu werden. Daher ja auch meine Frage womit man anfängt wenn es langfristig diese Richtung bekommen wird.
Als erstes soll aber eben auch die Netzwerktechnik bearbeitet und verstanden werden!
Ich will die Kommunikation zwischen meinen Geräten gezielt einrichten und nicht darauf hoffen müssen das es klappt. Ein komplexes netzwerk soll kein Problem mehr darstellen. Ich habe jetzt schon alles vernetzt (Handy,tablet,Laptop,desktop1, desktop 2, tv, Hi-Fi), nur ist es eben gefühlt gestümpert.

Ich will mir fundiertes Wissen aneignen und mich damit langfristig auseinandersetzen. Es geht hier also nicht darum xy zu realisieren und der Rest ist mir egal. Ich will das lernen und gut darin sein. Ich glaube dass mir das Spaß macht und beruflich wird mir die Qualifikation mit Sicherheit nicht weh tun. Ein Basiswissen welches mir das erschließen der beschriebenen Bereiche nach und nach ermöglicht ist also eig das was ich anstrebe im Moment.

So wie ich das jetzt verstanden habe ist C++ etwas komplexer als bspw. Java. Hat man es verstanden ist der Wechsel oder gezielte Einsatz von Java oder anderen aber einfacher als andersrum. Kann man also sagen, dass C++ eine bessere Basis bietet als andere Sprachen, da der spätere Umstieg einfacher ist? Und ist meine Annahme soweit korrekt, dass C++ (und anschließend Java) für mich der richtige Weg für den Einstieg ist?

Ansonsten muss ich mich für meine durcheinander Beschreibungen mal wieder entschuldigen, hoffe der ein oder andere findet diesen Beitrag an dieser Stelle noch schlüssig ;-). Finde es extrem schwierig das alles in Worte zu fassen, habe ich doch letzten Endes keine Ahnung worauf es ankommt. Fast als ob man ein Gefühl beschrieben müsste, das ist auch nicht greifbar. Danke für eure Geduld!
 
In Sachen Netzwerktechnik verweise ich auf meinen ersten Post.

Naja, ehrlich gesagt sehe ich keinen Grund auf Java umzusteigen, wenn du C/C++ kannst. Sicher, solltest du Java BRAUCHEN, ist es gut, abr solange du es nicht unbedingt brauchst, kannst du bei C/C++ bleiben :)

Jedoch wenn du auch am Anfang schöne GUIs machen willst, dann lege ich dir C# ans Herz, zumal du damit deine gewünschte Office Anbindung in perfektion hast.
 
In Sachen Netzwerktechnik verweise ich auf meinen ersten Post.

Naja, ehrlich gesagt sehe ich keinen Grund auf Java umzusteigen, wenn du C/C++ kannst. Sicher, solltest du Java BRAUCHEN, ist es gut, abr solange du es nicht unbedingt brauchst, kannst du bei C/C++ bleiben :)

Jedoch wenn du auch am Anfang schöne GUIs machen willst, dann lege ich dir C# ans Herz, zumal du damit deine gewünschte Office Anbindung in perfektion hast.



Dazu vielleicht noch mal ne schnelle Rückfrage: C# im Anschluss an C++ oder als einstieg? Mir fällt nämlich gerade nix ein was ich auf die schnelle sinnvolles ohne GUI machen könnte... Hat vielleicht jemand n Beispiel für mich? Mit C++ sind guis schon möglich! nur nicht so simpel zu gestalten wie in C#, korrekt?
 
Reihenfolge bleibt dir überlassen, das musst du einfach entscheiden.

Also für C++ gibt es QT, welches schon schwieriger als die Windows Forms von C# sind. Das ist eben das gute an C#, es ist eine tolle Sprache, die aber relativ einfach schöne GUIs ausspucken kann. Das mag ich einfach so an Windows Sachen, wie C# und VS (Visual Studio). Um C# zu lernen gibt es glaube ich Galileo Open Books. Hatte mal von irgendner Uni ziemlich geniale Lernhefte, aber weiss nicht mehr woher leider, deswegen empfehle ich die Galileo Dinger. Die gibt es auch in Video Form, aber die sind kostenpflichtig, wenn du sie legal haben willst ;) .

Wie gesagt erstmal musst du überhaupt lernen zu Programmieren und in "Programmierer-Logik" zu denken, das Sprachen lernen geht dann von alleine und wenn du einmal eine kannst, ist die zweite viel einfacher und danach ist es immer leichter, weil du einfach viel Vorwissen hast und die Unterschiede und Gemeinsamkeiten "ermitteln" kannst.

C/C++ und C# sind beides schöne Sprachen. Entscheiden musst du selber.

nochmal ganz knapp:
C/C++ der Allrounder (soll NICHT heissen, dass andere Sprachen zu speziell sind)
C# irgendwie einfacher und man kommt schneller zu "greifbaren" Ergebnissen

Als IDE empfehle ich dir bei beidem Ausdrücklich Visual Studio. Gibt es in der Express Version kostenlos (zumindest weiss ich, dass es bei älteren Versionen so war, ie es bei der 13er Version ist, weiss ich nicht).
Willst du unbedingt C/C++ mit Forms haben, dann nimm halt QT als IDE, ist aber nciht so schön.


Alles wieder subjektive Sicht der Dinge.
 
Fur C++ kann ich nur den Stroustrup empfehlen. Da lernt man gleich guten Stil und in der letzten Ausgabe dann eben auch sofort C++11.
 
Dass das subjektive Auffassungen sind will ich doch wohl meinen... Etwas anderes in einem Forum zu erwarten wäre doch irgendwie..., ne?!

Ich mach das jetzt so wie du sagst. Für mich klingt das nach nem guten Weg... Komme dann evtl nochmal auf dich zu wenns soweit ist, ok? (Diese Drohung gilt auch für den ein oder anderen der hier seine Meinung Kund getan hat ;-))
Sollten dir diese UNI- Bücher über den Weg laufen, dann denk bitte an mich!
Gibt es vielleicht sonst noch jemanden, einen Studenten oder so, der ein paar gute Unterlagen für mich hat?

Tausend Dank an dieser Stelle nochmal für die Hilfe... Soll natürlich nicht heißen das jetzt niemand mehr sein Wissen hier mitteilen soll :-P!

Schönen Abend noch...
 
Bevor du dir das kaufst, wäre mal ein reinschnuppern ganz sinnvoll. So wie bei vielen Lehrbüchern kann einem der Stil natürlich nicht liegen. Ich bin damit sehr zufrieden. Zuvor hatte ich ein Videotutorial genutzt, was sich für mich als kompletter Reinfall erwiesen hat, da dort C++ als C mit Klassen verkauft wurde und genau so auch programmiert wurde und die Zielgruppe für mich nicht passend war. Im Stroustrup habe ich in den ersten 100 Seiten dann schon deutlich mehr gelernt als im gesamten Video.
 
Es ist redundante Information, daher gibts das zum Glück nur bei C/C++. Es geht beim Includeguard mir nicht um das verstehen, sondern es ist umständlicher Müll um Probleme einer Programmiersprache zu lösen.

Was für redundante Information? In der Header-Datei sind die Funktionsprototypen (bzw. Deklarationen) drin, ggf. die Inline-Funktionen (die Teile liebe ich, neben Macros) und in der Source-Datei hast Du dann die Methoden als solche. Was da redundant sein soll, ist mir gerade ein Rätsel. In Java hast Du ja auch die Interfaces, ist ja auch nichts anderes.
 
Also als erstes würd ich mir ein Buch kaufen - so hab ich es damals gemacht. Habe mich dann 6 Monate intensiv mit PHP beschäftigt kleine Scripts zusammengebastelt und verbessert. Gibt viele gute Tutorials im www. Desweiteren hab ich mich danach dann mit den Grundlagen des Webdesign auseinander gesetzt und ein wenig in Dreamweaver Mx8 ausgetobt.

Wichtig ist Zeit lassen - Gute Fachliteratur online oder als Buch kaufen und einlesen. Und das allerwichtigste ist nie die MOTIVATION verlieren ;)
 
Ich würde zu Beginn einen kleinen Ausflug in die Welt der Grundlagen heutiger Prozessoren machen. Danach lohnt es sich einen Blick auf Assembler zu werfen um zu verstehen wie Computer mit Zahlen, Adressen, Speicher & Co umgehen. C und später auch C++ sind in ihrer Grundform erstmal eher rudimentär und verlangen vom Programmierer eine besonders sorgfältige Programmierung. Möchte man Daten im Speicher ablegen, so muss man selbst freien Speicher finden, adressieren, entscheiden wie die Daten abgelegt werden sollen und den Speicher anschließend auch wieder bereinigen und freigeben.
Viele neuere Sprachen (Java, C#, Ruby, Python...) kümmern sich hingegen automatisch um einen großen Teil dieser Schritte und verfügen über eine automatische Speicherverwaltung (Stichwort: Garbage Collection).
Ich würde einige Grundlegende Erfahrungen mit Assembler und C / C++ empfehlen und mich dann für eine erste Sprache zur Vertiefung entscheiden.

Einen Taschenrechner kann man im Grunde mit jeder Sprache Programmieren, ob nun mit C++, Java, C#, Visual Basic, Delphi / Turbo Pascal, Ruby, Python, Perl, PHP oder in einer Webseite mit HTML und Java Script.
All diese Sprachen sind im Grunde Mehr- oder Allzweck-Sprachen mit Stärken und Schwächen in bestimmten bereichen, sowie positiven und negativen Eigenarten.
Je nachdem in welche Richtung man gehen möchte, bieten sich einige Sprachen besonders an. Mehr dazu etwas später.
 
Zuletzt bearbeitet:
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