Welche Programmiersprache als erstes lernen?
-
Dany5 schrieb:
Ist C nicht C#?
C, C++, C++/CLI und C# sind 4 unterschiedliche Programmiersprachen. Zwischen C und C# gibt es sogar einen RIESIGEN Unterschied
Grüssli
-
Ja ich bin immer noch verwirrt, was soll ich lernen damit ich dann später die anderen Sprache leichter lerne, weil eig. möchte ich mit der Zeit alle wichtigen Sprachen lernen mit welcher soll ich anfangen?
Das was jetzt di mehrehit sagt werde ich lernen!
Sagt bitte nur 1 Sprache und nicht mehrere
-
Dany5 schrieb:
Ist C nicht C#?
Nein, weit gefehlt.
C ist eine low level- Sprache, mit der Betriebssysteme wie Windows in großen Teilen geschrieben werden. C++ ist als Erweiterung von C zu sehen, neue Konzepte wurden hinzugefügt, sodass moderner C++-Quelltext sich erheblich von reinem C unterscheidet.
Zur Sache mit der GUI: C und C++ sind an sich schon dermaßen komplex, dass man die erste Zeit eigentlich nur mit der Konsole arbeiten sollte. Wenn man die grundlegen Konzepte verstanden hat, kann man sich an Betriebssystemfunktionen heranwagen. Bei Windows wäre dies die WinApi (application programming interface).
Bei Java hat man diese Probleme nicht. Es gibt eine riesige "Standard-" Bibiothek, die der WinApi um Jahrzehnte voraus ist (ein Ziel von Microsoft ist es, stets abwärtskompatibel zu bleiben, in der jetzigen Form der WinApi sind immer noch viele Konzepte von Windows 3.1 zu finden). Daher kann mit Java eigentlich fast schon sofort mit der GUI-/Grafik-/Netzwerkprogrammierung begonnen werden.
Aber meiner Meinung nach lohnt sich der längere Weg, C++ zu lernen.Edit: Grundlegende Dinge des Programmierens (Schleifen, Bedingungen etc.) müssen natürlich immer am Anfang gelernt werden und gleichen sich in allen Sprachen mehr oder weniger.
-
C++ 1
weiter...
-
Und meiner Meinung nach ist Scheme durch nichts zu ersetzen.
-
Dany5 schrieb:
C++ 1
weiter...
Wir können nicht für dich abstimmen, welche Sprache du lernen solltest.
Jede Sprache, die sich in den letzten Jahren durchgesetzt hat, hat Vor- aber auch Nachteile, die "perfekte" Programmiersprache gibt es nicht.
Du selber musst entscheiden, welche Prioritäten du hast, was möchtest du für Anwendungen schreiben, wieviel Zeit hast du, eine Sprache zu lernen?
Wie hoch ist deine Frustrationstoleranz? Willst du schnelle Erfolge, nimmt Java oder C#, willst du viel über die Prozessorarchitektur kennen lernen, nimm Assembler, möchtest du systemnah programmieren, nimm C.
Für C++ kannst du auch mal einen Blick auf den C++ Primer werfen.
-
Ich hab noch knapp 2 Jahre Zeit bevor vlt. die Lehre anfange, also habe ich 2 Jahre um Sprachen zu lernen.
Ja um was geht es den bei der Prozessarchitektur? Beispiele für systemnahe-sachen die man programmieren kann.
-
Vll lernst du jetzt etwas und brauchst es in der ausbildung garnicht, dass könnte dir auch passieren. Wenn du wirklich komplett neu in dem thema bist wäre vll eine scriptsprache interessant mit der du die kontrollstrukturen usw. lernst.
-
Dany5 schrieb:
Ich hab noch knapp 2 Jahre Zeit bevor vlt. die Lehre anfange, also habe ich 2 Jahre um Sprachen zu lernen.
Dann fang mal lieber an anstatt hier blöde fragen zu stellen, mit welcher sprache du anfängst ist scheißegal.
-
Dany5 schrieb:
Ist C nicht C#?
Nein, genauso wenig wie viele Bücher die ein "Visual C++" im Namen haben nicht C++ sondern häufig C++/CLI (was wieder eine andere Sprache ist) lehren.
C ist eine prozedurale Sprache, die zumindest von der Sprachsyntax her keine direkte objektorientierte Programmierung zulässt (auch wenn man diese mehr oder weniger gut simulieren kann). C wird häufig in der Treiberentwicklung, im Embedded Bereich (Mikrocontroller...) und bei Betriebssystemen verwendet.
C# ist eine Sprache die wiederum in diesen Bereichen weitgehend ungeeignet ist, und das .Net Framework verwendet (und damit hauptsächlich unter Windows relevant ist, auch wenn Mono einen großen Teil des .Net Frameworks abbildet). C# spielt seine Stärken eher in großen Anwendungen aus, wo es meist kurze Entwicklungszeiten und hohe Wartbarkeit wichtiger, als die Performance ist.
Wobei ich glaube, das man dieses Thema eh schließen kann, wenn du diese Frage stellst nachdem bereits in Posts eindeutig C, C++, C#... als getrennte Sprachen erwähnt wurden, und du dir imho noch garnicht genug klar darüber bist, was du eigentlich willst.
-
Wie möchte ich wissen was für eine Sprache ich lernen möchte, wenn ich nicht weiss um was es geht bei "Prozessorarchitektur"? Oder bei "systemnahes programmieren"?
-
Jede Sprache, die sich in den letzten Jahren durchgesetzt hat, hat Vor- aber auch Nachteile, die "perfekte" Programmiersprache gibt es nicht.
Ein sehr theorethische Ansatzpunkt
Eigentlich muesst man dieses Zitat in Stein meiseln und den Stein den Projektmanagern auf den Kopf schlagen bis sie laut schreien : "ja ich hab es verstanden !"
Die Parxis sieht halt etwas anders aus
@Dany5
Aber Du bist jung und nicht mit den Altlasten des berufslebens vorbelastet !
Nimm irgendeine Programmiersprache (+1 fuer jede zur Wahl stehende Option :p ) und bau ein oder zwei simple Anwendungen, ohne Dich in die Feinheiten der Programmiersprache zu verbeissen. So solltest nen Gefuehl fuer grundlegende ProgrammierDinge bekommen (Code kommentieren, Umgang mit variablen, schleifen, bedingungen .... vielleicht schon einige weiterfuehrende DesignThematiken/Techniken .... Iteratoren bspw. )Danach kannst DIch immer noch für eine Sprache entscheiden und da richtig tief einsteigen. Dann waehlst Du deinen wahren Weg !!!
Zur Auswahl stehen:- Script Kiddie (auch mit RL-Level über 30 möglich, besonders beliebte Sprachen: Java, PhP, perl ... vom Anwender gehasst weil immer irgendwelche besonderen runtimes mit installiert werden muessen)
- Active X / .Net Sklave (beliebte Sprachen: c#, visual basic, visual basic script ... vom Anwender gehasst weil, siehe Script Kiddie, ok die meisten runtimes installiert windows nun per auto-update funktion, deswegen hassen die Anwender vielleicht eher M$, aber bleiben tut die Neigung zur extensiven verwendung fremder ActiveX/Net Komponenten mit optisch aufwendigen Effekten, die beim Anwender oft frühzeitig zu Augenkrebs fuehren ! beliebtestes Visualisierungs-Instrument: die Sanduhr von Windows !)
- (semi)proffesioneller Programmierer (C++ fast pflicht, Anwender hassen Ihn, weil gerad die wichtigsten Funktionalitaeten auf Grund von Project-Fehlplanung oder Zeitdruck oder Rueckgang finanzieller Mittel, rausgekuerzt wurden, begleitet vom staendigen gedudel des Projektverantwortlichen "in der naechsten Version" ... welche wahrscheinlich nie erscheinen wird
)
- Hacker/Computer Nerd(mindestens C, besser Assambler, Anwender hassen den nicht, weil sie seine Programme ignorieren(wer will heutzutage schon auf kommandozeile arbeiten), oder die Programme so ausgelegt sind, dass der User auf keinen Fall mitbekommen soll dass die ueberhaupt laufen
)
Du hasst die Wahl
P.S. nicht so Ernst nehmen und bitte keiner sich auf den Schlips getreten fuehlen
P.S.S. willst du beruflich programmieren, gibts mehrere Hauptrichtungen eigentlich ... HTML Programmierer/Webseiten Admin (Web Sprache ala php, perl + Techniken ala Web2.0 ... ), Anwendungsentwickler(meist c++), Datenbankentwickler (SQL, PLSQL ... ). Themen dazwischen wird meist durch nicht IT Abteilungen zelebriert, also Fachabteilungen/kleinere Firmen wo nicht Programmierer sich Hilfmittel / Tools zusammenstricken bzw vorhandene Anwednungen erweitern/Scripten wenn diese das zulassen ...
Aber selbst als Anwendungsentwickler solltest neben C++ mindestens noch eine scripstprache beherrschen, bzw schnell einarbeiten koennen und auch in der lage sein, C-Interfaces zuschreiben und bedienen.
-
Dany5 schrieb:
Ich hab noch knapp 2 Jahre Zeit bevor vlt. die Lehre anfange, also habe ich 2 Jahre um Sprachen zu lernen.
Ja um was geht es den bei der Prozessarchitektur? Beispiele für systemnahe-sachen die man programmieren kann.
Systemnahe Sachen.
Versuch' mal das folgendes Programm zu entwickeln:
- Ein Prozess erzeugt zuerst zwei temporäre Dateien A und B.
- Danach erzeugt er einen Thread 1, der sich damit beschäftigen soll, beispielsweise am Port 25000 auf Datenpakete zu warten.
Wenn ein Datenpaket kommt, soll er es in die temporäre Datei A kopieren.
- Ein Thread 2 wird auch noch erzeugt. Er soll sich damit beschäftigen,
irgendwelche Antwort-Daten, die er in der temporären Datei B findet, über den Port 25001 zu versenden.
- Ein Thread 3 soll pro Sekunde 25 mal die momentane Zeit in die Datei A
schreiben.
- Nachdem der Haupt-Thread die beiden Threads 1 & 2 gestartet hat, schaut er immer in der temporären Datei A nach, ob Thread 1 Daten vom Port 25000 oder Thread 3 die momentane Zeit dort abgespeichert haben, verarbeitet sie, und erfindet ein Datenpaket 'Antwort' oder 'Broadcast', das er in in die Datei B schreibt, damit sie Thread 2 versenden kann.
- Weil alle drei Threads natürlich gleichzeitig ablaufen sollen, wäre es ungünstig, wenn Thread 1 gerade etwas in die Datei A schreibt, während der Haupt-Thread versucht, daraus zu lesen. Tja, und da hätten wir schon eine Problemstellung, die mit den 'Standard-Sprachmitteln' - egal welche Sprache -
überhaupt nicht lösbar wäre. Was man allerdings durchaus zur Verfügung gestellt bekommt, sind entsprechende Betriebssystem-Funktionen und -Eigenheiten, die in DLLs lagern, und die bei der Lösung der Problemstellung unumgänglich sind.
Weil man diese Funktionen so bequem mit C - Syntax aufrufen kann, ist es nur naheliegend, ein derartiges Programm in C und nicht in irgendeiner phantasievollen Mode-Sprache zu schreiben, die ihrerseits nichts anderes tut, als den DLL - Funktionen andere Namen zu geben (und damit zur allgemeinen Verwirrung beizutragen), und das dann als 'eigenes' Sprachkonstrukt dem Verwender der Phantasie-Sprache unterjubelt. Wozu eine Funktion über Umwege aufrufen, wenn's auch direkt == systemnahe geht, könnte man da sagen.--> Das ist jetzt nur ein Skizze für so eine typische Aufgabe, wo es einfach kontraproduktiv wäre, etwas anderes als C zu verwenden. Und wenn Du mal 'nen
Server für ein (MM)Online-Game basteln möchtest, könnte es durchaus passieren, dass derartige systemnahe Sachen interessant werden.
In allen anderen Fällen findet man wohl auch mit C#, Java, C++ usw. das Auslangen. Das Problem dabei: Man ist halt sehr unflexibel mit diesen Sprachen und im Falle von C# und Java davon abhängig, welche Neuheiten sich irgendwelche proprietären Sprachentwickler in der nächsten Zeit so einfallen lassen oder nicht. Für C++ gilt ähnliches.mfg
-
Ehrlich: Du gehst das ganze falsch an. Wenn du programmieren lernen willst, dann lern programmieren und diskutier nicht in einem Onlineforum darüber welche Programmiersprache du lernen solltest :p. Wenn du ernsthaft programmieren willst, dann wirst du im Leben eh nicht mit einer einzigen Programmiersprache auskommen. Daher ist die Wahl der Programmiersprache am Anfang gar nicht so wichtig. Vermutlich ist es sogar besser, wenn man mit einer Programmiersprache anfängt, die man später nicht mehr benutzt. Viele hier dürften zB mit BASIC oder Pascal angefangen haben.
Schau dir halt zu den Sprachen die dich interessieren ein paar Tutorials an und die die dir am besten gefällt nimmst du einfach.
C++:
http://www.stroustrup.com/Programming/Python:
http://docs.python.org/tutorial/
http://www.greenteapress.com/thinkpython/html/index.html
http://inventwithpython.com/chapters/Scheme:
http://docs.racket-lang.org/quick/index.html
http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-1.html#node_toc_start(Und nimm kein C#, wenn du kein Sklave von Microsoft werden willst :p)
-
RHBaum schrieb:
...Anwendungsentwickler(meist c++)...
Das "meist c++" war mal. Ich programmiere zwar beruflich noch immer mit C++, aber kenne kaum noch eine Softwarefirma im Bereich der Anwendungsentwicklung die für neue Projekte nicht auf Java oder C# gewechselt ist.
Die Ausnahme hierzu ist eigentlich nur alten Anwendungen der Fall, wo ein Wechsel teuer wird (aber selbst dort habe ich schon einige Migrationsbemühungen festgestellt). Sehr selten habe ich den umgekehrten Weg erlebt (oder dem Wechsel zum Konkurrenzprodukt wie z.B. Java nach C++ oder C#).
-
Gut meine Entscheidung fällt auf C++ kann mir jemand zu dem ein gutes E-Book geben? Das möglochs in Deutsch geschrieben ist. und wie ist es bei C++ mit den Compilern etc.? Gibt es auch so ne IDE wie bei Visual Basic zu herunterladen?
-
Dany5 schrieb:
Das möglochs in Deutsch geschrieben ist.
Nein, Du brauchst kein deutsches Buch...
-
meine Entscheidung fällt auf C++ kann mir jemand zu dem ein gutes E-Book geben
OK, C++ ist eine Wahl für echte Kerle.
Tuts:
http://www.cpp-tutor.de/
http://www2.fh-augsburg.de/informatik/vorlesungen/XX/c_cplus/tutorial/henkel/
http://eitidaten.fh-pforzheim.de/daten/labore/i1lt/ckurs.pdf
http://www.henkessoft.de/C++/Cpp_school/__header.htm
http://www.henkessoft.de/C++/C++ Fortgeschrittene/C++_Fortgeschrittene.htmLetzte Warnung:
http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/c++_lernsprache_de
(Didaktisch ist C++, durch die Wurzeln in C, das es noch voll umfasst, eine Katastrophe)
-
Dany5 schrieb:
Gut meine Entscheidung fällt auf C++ kann mir jemand zu dem ein gutes E-Book geben? Das möglochs in Deutsch geschrieben ist.
In Deutsch gibt es kaum ein Umfassendes, was eine Empfehlung wert ist, im Englischen gibt es Thinking in C++ (kostenlos verfügbar).
-
Dany5 schrieb:
Wie möchte ich wissen was für eine Sprache ich lernen möchte, wenn ich nicht weiss um was es geht bei "Prozessorarchitektur"? Oder bei "systemnahes programmieren"?
So etwas realisiert man in der Regel in C.
Alte Hasen nehmen dafür auch Assembler oder Fortran, aber C ist eigentlich für die Systemnahe Programmierung die gängige Sprache.
Sowohl auf einem PC als auch im embedded Bereich.