Welche Programmiersprache als erstes lernen?
-
Also mit welche Sprache kann mann denn was Programmieren und wozu werde ich das dann brauchen? Erst dann wenn ich das weiss kann ich dir auch sagen welche Sprachen ich lernen möchte.
Da ich im moment eben keine Ahnung von alles dies haben, habe ich mir gedacht ich lerne mal langsam und mit der Zeit alle wichtigen Sprachen die zu unterschiedlichen Kategorien wie Internet etc. gehören.
-
Alle Sprachen können alles. Manche können aber bestimmte Sachen gut und andere weniger gut.
Python würde ich dir empfehlen, weil da vieles schon mitgeliefert wird (die Standardbibliothek ist riesig) und du dich nicht mit Dingen wie Compilern, Linkern, etc. beschäftigen muss. Du kannst dich also auf das Wesentliche beschränken: Das Lernen der Sprache und der Konzepte.
Die Sprache selbst hat außerdem eine recht schöne Syntax und forciert in gewissen Maßen einen lesbaren Code.
Natürlich ist Python weniger gut geeignet, wenn du zeitkritische Programme schreiben musst, aber das wird für dich als Anfänger eher selten ein Problem darstellen.
-
Was wären dann die Programmierer-Sprachen die zusammen passen oder in der gleiche Kategorie gehören wie z.B Diese Sprache kann besser Internet-Sachen diese Sprache ist besser für zeitkritische Programme etc. ?
-
Möchte mir niemand das erklären?
-
Dany5 schrieb:
Möchte mir niemand das erklären?
Zeitkritisch: Direkt Assembler (man muss aber momentan verfügbare Compiler erst einmal ausstechen).
Grafik/GUI/Internet: Sehr einfacher Einstieg mit Java und C#.
Bester Kompromiss (imho) : C++, da es sehr gute Bibiotheken für praktisch Alles gibt.
Außerdem: komplette Freiheit (direkte Verwaltung des Speichers, mit allen Problemen), Zugriff per OS C-Schnittstelle auf alle Systemgeräte möglich.
-
ih fang glaub einfach mal mit C# an, kennt jemand ein gutes E-book?
-
Dany5 schrieb:
ih fang glaub einfach mal mit C# an, kennt jemand ein gutes E-book?
davon gibt es nicht allzuviele, hier sind zwei:
http://www.c-plusplus.net/tuts/cpp/vcppk.zip
http://book.realworldhaskell.org/äh, ach ja, das ist ja gar kein Visual Basic Zeugs, aber Marc++us hat auch etwas für Visual Basic übrig und hat zumindest zwei davon in seiner Tutorialsammlung hier aufgelistet: http://www.c-plusplus.net/cms/modules.php?op=modload&name=Downloads&file=index&req=viewsdownload&sid=10 (kommische Addi,.. aber egal...)
Zum Thema verwirrt:
http://www.dmoz.org/Computers/Programming/Languages/ und da fehlen noch so einige...zu den neuern produktiv Sprachen hier könnte man noch Ruby erwähnen...
http://www.ruby-lang.org/de/downloads/ ist ein ganz gute Eingangsseite und einen Blick drauf wert.Für Java spricht übrigens, dass du damit auch dein Handy programmieren kannst und es an der Uni von Java Einführungskursen nur so wimmelt, und das Java auch sehr multimediafreundlich ist und auch hackerfreundlich ist usw.
zu diesem Thema gibt es sogar ein nettes Video bei Youtube: http://www.youtube.com/watch?v=kLO1djacsfg
das hatte ich dank Tim der das hier im Videofredthread gepostet hatte entdecken dürfen...
-
Also wie ich verstanden habe kann C# sehr gut Grafik/GUI/Internet.(Kann mir jemand das genauer erklären was für Internet/Grafik/Gui-Sachen)
C++ ist für ziemlich alles gut.
Pyhton kann was denn sehr gut?
-
Pythonic schrieb:
Alle Sprachen können alles. Manche können aber bestimmte Sachen gut und andere weniger gut.
Eher nicht. Sprachen an sich können eigentlich überhaupt nichts.
Es ist der weit verbreitete Irrtum, dass irgendwelche Programmiersprachen dafür verantwortlich wären, dass man beispielsweise Dateien öffnen und daraus lesen, und dann die Daten in irgend einer Weise irgendwohin (Datei, Bildschirm, Socket) wieder ausgeben könnte. Alle diese Dinge werden aber nicht durch die Programmiersprache an sich bewerkstelligt, sondern z.B. von kernel32.dll,
ws2_32.dll und vielen weiteren DLLs, die das OS bereitstellt, damit auch nur irgendeine Funktionalität in einem 'Programm' vorhanden ist
Den Funktionen in diesen DLLs ist es allerdings weitestgehend egal, ob sie aus einem C, C++, Visual Basic, Delphi, C#, von der Java Virtual Machine oder einem Skript-Sprachen Interpreter aufgerufen werden - Sie funktionieren in jedem Fall (d.h. soferne auf dem Rechner überhaupt die notwendigen Hardware-Voraussetzungen vorhanden sind, bzw. solange sich die Vorgangsweise des EXE-Loaders des OS nicht urplötzlich drastisch ändern sollte).
Weil alle diese DLLs in einem C - Dialekt abgefasst wurden, ist es sehr naheliegend, auch selber C zu verwenden, um die vielen tollen Funktionen, die diese DLLs bereitstellen, aufzurufen.
C hätte zudem den großen Vorteil, nicht gar zu kompliziert zu sein, man wird trotzdem zu einer gewissen Sorgfältigkeit und Genauigkeit beim Arbeiten 'erzogen' (die man sich vielleicht in anderen Programmiersprachen nicht so sehr angewöhnen würde, weil's dort entweder keine Pointer gibt oder diese nicht verwendet werden sollen, obwohl sie vorhanden sind).
Eine weitere Idee, was man möglichst am Anfang tun sollte, wäre, sich auch einmal mit dem allgemeinen Bauplan des Portable Executable Formats näher zu befassen, um eine Vorstellung davon zu bekommen, warum ein Kompilat überhaupt 'funktioniert'. Das Wissen um die prinzipielle Vorgangsweise des Loaders beim Lokalisieren von externen Abhängigkeiten wäre auch noch sehr wichtig. UND: Man gebe sich erst gar nicht der Illusion hin, dass auch nur irgendein Programm 'plattformunabhängig' ablaufen könnte (oder dergestalt implementierbar wäre). Aber das sagt eigentlich schon der Hausverstand,
dass ein Programm, das eine System-DLL wie z.B. ws2_32.dll zum Funktionieren benötigt, nicht wirklich auf einem Rechner funktionieren kann, wo es diese DLL nicht gibt (oder gar auf einem Rechner, wo der OS-Loader noch nie was von DLLs
gehört hat). Was auch immer man programmiert - es wird nicht ausführbar sein,
wenn es das OS nicht will (oder die Voraussetzungen dafür hat). Und das hat
mit der konkret verwendeten Sprache nichts zu tun.
Trotzdem bleibt C die erste Wahl. Bei fast allen anderen Sprachen ändert sich der grundlegende Standard-Sprachumfang (und damit verbunden: Die zur Ausführung notwendigen Laufzeitbibliotheken) alle paar Monate, sodass große Teile von Python- oder C#- usw. Java-Quellcode, den man vor 5 Jahren vielleicht verfasst hat, heutzutage einfach nur noch als verbuggt und nicht ausführbar (genauer: inkompatibel mit der neuen Laufzeitbibliothek!) anzusehen sind. Das ist in den
seltensten Fällen das, was man haben möchte (im Normalfall möchte man funktionierenden Quellcode wiederverwenden können, möglicherweise auch in 10 Jahren noch). Derartigen Problemen geht man mit C jedenfalls aus dem Weg, und man kann oft Quellcode problemlos wiederverwenden, der vor sagenhaften 20 Jahren oder noch mehr entstanden ist. Nun - DAS nennt sich Wiederverwendbarkeit.
Lernt man C, wird man's auch in 20 Jahren noch brauchen können.
Bei den Mode-Trends Python, Perl, C#, Java, PHP und (große Teile von) C++ wird man mit heute geschriebenem Quellcode in 20 Jahren wohl nicht mehr viel anfangen können, und man wird das Rad mit diesen Sprachen dann wieder neu erfinden müssen (soferne es dann Perl/Python überhaupt noch geben sollte).Conclusio: Nimm C, da haste lange was davon.
MFG
-
Ist C nicht C#?
-
20 Jahre alten Code würde ich gar nicht mehr anfassen wollen, ansichten, einstellungen, erfahrungen und neuentwicklungen führen dazu das der alte Code nicht mehr in die bessere Architektur passt.
Neuere algorithmen können auch viel besser mit der jetzigen Hardware umgehen, was bringt eine 20 Jahre alte Applikation die ein Oktocore nicht richtig nutzen kann, so bleibt man auf alten Kram hängen der schon lange abgelöst gehört. Nur weil es noch funktioniert, heißt das nicht das es immernoch gut ist. Code gammelt zwar nicht offensichtlich, so wie lebensmittel, aber auch Code wird schlecht...
-
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.