Programmieren lernen?
Guten Morgen zusammen, wahrscheinlich liest man diese Frage sehr oft. Dennoch muss ich sie leider stellen.
Ich habe mich für C# entschieden, da diese Sprache "einfacher" zu lernen scheint und ich trotzdem einen großen Bereich abdecken kann. Bin aber für andere Sprachen offen, falls die Vorteile gegenüber C# haben.
Nun zu meiner Frage, wie fange ich am besten an? Was sollte man am Anfang lernen? Am Anfang möchte ich dies alles in Eigenregie machen, falls ich dabei bleibe und es mir Spaß bereitet, wäre ich auch bereit dafür Geld zu bezahlen.
Ich habe gute PC Grundkenntnisse was Hardware angeht, Probleme mit dem PC konnte ich bisher bis auf wenige Ausnahmen selbstständig beheben. Mein Englisch ist ganz OK, sollte nicht das Problem sein. Ich arbeite viel mit dem PC und würde mir am Anfang erstmal Anwendungen schreiben, die mir den Alltag erleichtern oder diverse Dinge ausführen.
Vielen Dank im Voraus
4 Antworten
Zum lernen muss man am Anfang bescheiden bleiben und zunächst einfache Algorithmen trainieren, bis man das Prinzip verstanden hat.
Für echte nutzbare PC-Anwendungen braucht man Sprachen mit "Visual-" im Namen.
Für die Programmierung sind nicht Kenntnisse der Hardware wesentlich, sondern Software-System-Kenntnisse. Windows, linux, Datenbank
Danke für deine fixe Antwort.
Ich tue mich halt etwas schwer den Anfang zu finden. Sollte ich erst mal die Basics lernen, á la Befehle lernen oder wie starte ich da am besten? Ggf. hast du da den ein oder anderen Tipp für mich.
Ich arbeite viel mit dem PC und würde mir am Anfang erstmal Anwendungen schreiben, die mir den Alltag erleichtern oder diverse Dinge ausführen.
Sich das vorzunehmen, ist genau der richtige Weg.
- Kaufe dir dazu aber auf jeden Fall ein passendes Lehrbuch. Als erstes dieses hier: C# und dieses Buch — der derzeit einfachste Weg, programmieren zu lernen. /Buch /M /MM
- Microsofts Lernmaterial zu C#
- Mit GUI-Programmierung würde ich mich lange Zeit gar nicht befassen. Programme, die sich gegenseitig per API oder Systemcall (natürlich auch aus Batch Files heraus) aufrufen können, sind viel nützlicher.
- Ein noch umfangreicheres Buch zu C# (1400 Seiten) — und Paladins Kommentare
Ich nutze am liebsten einen C++ Compiler, als Sprachumfang aber nur C erweitert um das Klassenkonzept aus C++ (das geht, da C ja Subset von C++ ist).
C++ in vollem Umfang ist für Anfänger nicht zu empfehlen, da es Unmengen von Dingen enthält, die man nicht wirklich braucht, als Anfänger aber nicht als solche erkennt.
Das GNU Handbuch zu C — sehr hilfreich.
Jetzt bin ich wieder im Zwiespalt. Weiter mit C++ oder wie du empfiehlst auf C zurück. Ich bin zwar noch nicht sehr weit, mache aber Fortschritte, was ich auf den Umstieg auf C dann wohl wieder neu erlernen müsste.
Darf ich fragen, was du beruflich machst ( gern auch Privat-Nachricht ) ?
Nachteil von C ist vor allem, dass die Standard-Bibliothek dazu im Vergleich zu der, die mit C# kommt, extrem klein ist. Die von C# ist ja das gesamte .NET (in neuester Version .NET Core).
Umfangreich, aber leider ein allzu unübersichtliches Sammelsurium, ist de facto BOOST zu C++ ( https://www.boost.org/ ).
STL – die eigentliche Standard Library zu C++ – empfand ich als Zumutung. Sie wurde entworfen von Abstraktionsfanatikern. Damit geschriebener Code kann schwer verstehbar sein.
Vorteile von C# sind:
- Man kann darin gut auch C-Code einbetten und sogar auch den schon mit C kommenden Preprozessor nutzen (was ein großer Vorteil sein kann, wenn man die Ursache logischer Fehler im eigenen Programm zu finden sucht – z.B. dann, wenn das Programm nicht abstürzt, aber falsche Rechenergebnisse liefert.
- Bei Absturz eines in C# geschriebenen Programms erhält man Stacktrace (was in C oder C++ nicht der Fall ist).
Je nach Projekt verwende ich deswegen C (wie oben erklärt) oder gleich C# .
Da C# in Nachahmung von Java entstand, wird jeder der C# beherrscht fast sofort auch in Java programmieren können. Leider wird Java, seitdem es Oracle gehört. kaum noch fortentwickelt.
... und mit C ist Java nur schwer kombinierbar. Schade.
Für große Enterprise-Applikationen (insbesondere ERP-Anwendungen) wird Java noch viele Jahre, wenn nicht sogar Jahrzehnte lang, die alles dominierende Programmiersprache sein. Langfristig aber könnte C# die wichtigste werden. C wird in seiner Bedeutung kaum abnehmen, da es ohne den gewaltigen Overhead auskommt, den C++ und C# mit sich bringen.
In Summe ist mein Ratschlag: Befasse dich vor allem mit C und C# .
Ich danke dir für deine ausführliche Antwort und nehme es mir zu herzen. Dennoch werde ich erst das Kapitel C++ zu ende führen und anschließend C ankratzen und mich dann entscheiden was mir mehr liegt am Anfang. Ich finde es halt schwierig einen Anfang zu finden, wenn ich jetzt wieder hin und her switchen würde. Ich kann mir auch vorstellen, das der Wechsel von C++ zurück nach C schwieriger wird, als umgekehrt. Wie gesagt ich bin jetzt leider in einem Zwiespalt.
Ich möchte das programmieren wirklich lernen und es bereitet mir bis dato auch jede menge Spaß, auch wenn ich noch kein richtiges Programm geschrieben habe, sondern nur mit den Quellcode experimentiere, was wo passiert, wenn ich welche Werte usw. ändere.
Ich würde mich später gern in der Software Entwicklung, sei es App oder Spiele usw. sehen, aber das ist Zukunftsmusik und wer weiß, vllt. gebe ich auf halben Wege auch wieder auf ( was ich nicht hoffe ). Deswegen bin ich auch über jeden Ratschlag dankbar.
Ich wollte dich nur warnen:
Als Anfänger erfolgreich mit C++ zu sein, kann eigentlich nur gelingen, wenn Du dich i.W. auf das Subset "C erweitert um das Klassenkonzept aus C++" konzentrierst.
Es steht dir dann ja offen, hin und wieder auch noch das eine oder andere nur in C++ gegebene Feature mit zu nutzen. Compiler sollte immer ein C++ Compiler sein. Die durch ihn unterstützte Version von C ist von ANSI C kaum zu unterscheiden.
Ich selbst (mit 30 Jahren IT-Erfahrung) habe aufgegeben, C++ insgesamt nutzen zu wollen. Das tun wirklich nur C++ Spezialisten. Sogar der Lead Developer von C++ hat mal zugegeben, dass er nicht alle Details des aktuellen C++ Standards kennt und versteht. Zudem muten einige der unterschiedlichen Versionen von C++ an wie weitgehend unterschiedliche Sprachen (sagte mir mal jemand).
Wisse also, auf was Du dich da einlassen möchtest.
Als tipp ich lerne gerade c++ und finde es relativ angenehm, da du anwendung programierst die du ohne weiteres benutzen kannst. Zudem ist es relativ einfach.
Hey, vielen Dank für deinen Beitrag.
Darf ich fragen, ob du dir C++ selber beibringst oder gewisse Seiten in Anspruch nimmst?
Ich lerne es in der Schule. In meiner freizeit lerne ich dazu noch python.
Wer auf Schul-Niveau "programmiert" befasst sich nur mit ganz elementaren Kontrollstrukturen, die es in jeder Programmiersprache gibt. Man bekommt einen ersten Eindruck, was in etwa Programmieren sein könnte, wird hinterher aber noch sehr weit davon entfernt sein, es zu beherrschen — oder auch nur zu wissen, was Programmieren denn so schwierig und zeitaufwendig machen kann.
Mit anderen Worten: Man wird danach noch sehr weit davon entfernt sein, Programme schreiben zu können, die tatsächlich jemand nützen.
Eigentlich ist die Wahl mit C# nicht schlecht. Aber wenn schon, dann C++. Nachteil ist, dass C# von Microsoft entwickelt und man daher etwas von diesen Herstellern abhängig ist,d.h. Portierungen und Lizenzierung für andere Betriebssysteme vom guten Willen von MS abhängt, Anders C++, diese Sprache ist für alle Plattformen verfügbar.
Alternativ könntest du auch python lernen.
Hey LeBoyt, danke für deine Antwort.
Werde ich mir mal anschauen, habe nur gelesen, das es einfacher ist von C# auf C++, als umgekehrt.
Hast du ggf. ein paar Tipps, wie ich am besten starten kann, unabhängig von "Hello World" :-D
ich habe damals Turbo Pascal gelernt, um chemisch physikalische Berechnungen von Übungsaufgaben während mein Hauptstudiums der Chemie auszuführen. Ich habe noch mit einem Buch Turbo Pascal und später BorlandPascal gelernt und die dort vorgestellten Projekte meinen Bedürfnissen angepasst. Die Zeiten haben sich geändert. Arbeite einfach die Tutorial von w3School durch.
https://www.w3schools.com/cs/index.php
Vielleicht kannst du mir auch eine weitere Frage beantworten, da du aus der Branche kommst. Derzeit möchte ich das ganze nur für mich tun, aber wenn ich merke, das ich dass gerne vertiefen möchte um irgendwo Fuß zu fassen, reicht eine Programmiersprache aus oder muss man mehrere können, damit man als Entry Programmierer arbeiten kann?
Hey grtgrt, vielen Dank für deine Antwort.
Ich werde mir das Buch kaufen, aber das für C++, weil ich mir das schon etwas genauer angeschaut habe und die einfachen Funktionen verinnerlichen konnte. Es ist zwar nicht viel für den ein oder anderen, aber ich nenne mal die Basics von den Basics wie Text ausgeben/eingeben, sowie kleine Rechenaufgaben mit Ergebnis kann ich schreiben ohne nachzuschlagen/nachzusehen.
Ich danke dir vielmals :)