guter einstieg
-
Moin,
ich habe mich jetzt seit mehreren Wochen umgeschaut was es für Programmiersprachen gibt. Musste aber feststellen, dass man wenn man ganz neu ist so gut wie sich garnicht entscheiden kann. Ich wollte jetzt einfach mal hier fargen, welche Sprache am besten zum einsteigen unter Linux ist um später noch aufzubauen.
Dann stellt sich natürlich die Frage. Wie lerne ich das am Besten und womit. Also wäre nett wenn ihr mir Bücher nennen könntet, die halten was auf dem Buchrücken steht und auch ihr Geld wert sind.Danke
Suppimen
-
das kommt immer darauf an, was für programme du schreiben willst bzw. was du machen willst. prinzipiell bist du mit C/C++ unter Linux immer richtig. Das Erlernen ist nicht ganz einfach, dafür hast du dann eine äußerst leistungsstarke Programmiersprache. Ansonsten kannst du dich auch der Script-Programmierung widmen, damit kannst du aber nicht so viel machen. Für Pascal/Delphi-Umsteiger kann man Kylix empfehlen. Mit KDevelop hast du auch eine hervorragende RAD-Programmierumgebung für Linux, es kommen also schnell Ergebnisse zum Vorschein.
-
Hallo,
bei der Frage nach der geeigneten Einstiegssprache wirst du auf viele unterschiedliche Meinungen treffen.
Ich persönlich kann Java als sehr gute Einstiegssprache empfehlen weil man damit die Objektorientierung sehr gut erlernen kann und die Sprache einige "kompliziertere" Sprachkonstrukte wie z.B. Zeiger nicht unterstützt. Ein späterer Wechsel zu C++ ist dann meiner Meinung nach auch nicht sehr schwer weil sich die beiden Sprachen in vielen Punkten doch sehr ähneln. Speziell unter Linux bietet sich auch Perl an, was ich aber zum Einstieg eher nicht empfehle. Du kannst dir ja mal Sprachen wie Java, C, C++ oder Perl näher ansehen und dann entscheiden welche für dich am geeignetsten ist.Sehr gute Online-Bücher zu Java gibts hier:
http://www.javabuch.de
http://www.galileocomputing.de/openbook/javainsel3/Aber wie gesagt ist nur meine persönliche Meinung.
MfG
-
achso, für C++ unter Linux kannst du dir das Buch von Martin G. besorgen, ein link ist ein paar threads weiter unten
-
Also ich würde auch sagen, dass c/c++ unter Linux/Unix absoluter Standart ist. Allerdings halte ich beide Sprachen für einen Programmieranfänger für zu komplex und schwer.
Wenn Du mit etwas leichtem anfangen willst, z. B. kleine Kommandozeilentools(womit Du unter c/c++ auch anfangen solltest!) empfehl ich dir Python oder Perl. Wobei ich Python aufgrund der Objektorientiertheit und dem saubereren Codedsign den Vortritt lassen würde.
Ist Dir eine Skriptsprache zu wenig, nimm Java. Diese Programme laufen auch unter anderen Plattformen(wo das JDK installiert ist). Java ist sehr mächtig, Syntax ähnlich c++.
Aber die Entscheidung liegt bei Dir. Ich würde Dir Python oder Java empfehlen.
Beste Grüße
-
als Programmiersprache definitiv C aber ich würde an deiner Stelle mit C++ anfangen, weil C leicht zu einem schlechten Stil führt
-
IMHO sollte man sich beim erwerben der Fähigkeit "Programmieren" garnicht so sehr von dem Zielsystem oder einer konkreten Sprache leiten lassen, sondern man sollte sich lieber an Konzepten orientieren. Vor diesem Hintergrund finde ich eigentlich den gängigen Ansatz vieler Unis garnicht verkehrt:
1. Funktionale Programmierung:
Hier kommen dann solche Sachen wie Haskell in Frage, oder wenn man es etwas kleiner mag, dann gibt es von der TU-Berlin eine Sprache namens "Opal", welche nur zu didaktischen Zwecken erfunden worden ist. Auch wenn letzt genannte Sprache zum lernen doch ganz nett ist würde ich aufgrund der besseren Informationslage (Bücher, Newsgroups, I-Net allg.) doch für den Einstieg zu Haskell raten. Hat man dieses Thema durch, so werden Rekursionen, Schleifen und jegliche andere Formen der Ablaufsteuerung nie wieder ein Problem darstellen. Zusätzlich erhält man hier auch schon durchaus brauchbare Einblicke in das arbbeiten mit Variablen (Typisierung, Zuweisung, etc.) und verinnerlicht aufgrund der gängigen Anwendungsgebiete funktionaler Sprachen auch noch den Zusammenhang zwischen Informatik und Mathematik. Ist man in diesem Fachgebiet ausreichend beschlagen (1/2 bis 1 Jahr mind.), so kann man sich dann Punkt zwei widmen.2. Die Imperative Programmierung:
Für die Imperative Programmierung eignen sich wohl Basic und Pascal für Einsteiger am besten, man kann aber auch gerne gleich mit C beginnen. Ich persönlich halte es allerdings für ratsam, sich in diesem Fachgebiet mindestens zwei Sprachen genauer anzuschauen. Ist man mit der funktionalen Programmierung gut klar gekommen, so sollte maximal ein weiteres Jahr reichen, um alle gängigen Konzepte der imperativen Programmierung erfasst zu haben. Ist man auch damit durch, so kann bei Punkt drei weiter gemacht werden.3. Low-Level-Programmierung:
Hier giebt es nur eine Sprache, und die heißt Assembler. Hier schaut man sich dann an, was die Schleifen, Konstrukte und Variablen im Computer eigentlich auslösen. All das, was einem von den bekannten Hochsprachen normalerweise abgenommen wird - und was man jetzt ja schon kennt - muss nun per Hand erledigt werden. Im wesentlichen lernt man in diesem Abschnitt, wie man performant programmiert, da man erlernt, einen direkten Zusammenhang zwischen seinen Programmen und den internen Ablaufen vermittelt bekommt. Will man nicht grade sein Heil in der Treiber- und OS-Programmierung suchen, so sollte hier ein halbes Jahr reichen.4. Objektorientierte Programmierung:
Hier handelt es sich um die wohl neueste Methodik der Programmkonzeption. Die Konzepte orientieren sich nicht an der Ablaufsteuerung eines Programms, sondern an der thematischen Zugehörogkeit der einzelnen Programmbestandteile. Als Sprache eignen sich hier vor allem Smalltalk, mit Abstrichen aber evtl. auch C++ und Java. Da es sich hier um einen Denkansatz handelt, der konträr zur gängigen Lehre steht, empfiehlt es sich, diesen ans Ende zu stellen. Zeitlich würde ich auch hier nochmal etwa ein Jahr ansetzen. Ist das erledigt, so kommt Punkt 5.5. Projekte und Libraries:
Jetzt kann man sich an größere Projekte wagen. Je nach Projektausrichtung kommen jetzt die diversen Libraries dran und möglichst auch die Zusammenarbeit in größeren Teams. Hier besteht das Lernziel hauptsächlich darin, gängige Stile und Design-Patterns zu erlernen, und zusätzlich die Wartbarkeit des eigenen Codes zu erhöhen, in dem man die Lesbarkeit auch für andere Teammitgllieder sicher stellt. Auch erlernt man erst bei solchen Projekten, die eigene Arbeit vernünftig und professionell zu kommunizieren.Gruß Jens
-
Ja aber wenn man so viele Sachen lehrnt. Kann man sich das denn alles merken?
-
Suppimen schrieb:
Ja aber wenn man so viele Sachen lehrnt. Kann man sich das denn alles merken?
Sicherlich kann man sich das alles merken. Das eine baut ja thematisch auf den vorherigen Themen auf, so daß man mit allen Sachgebieten auch immer wieder in Berührung kommt. Außerdem geht es auch garnicht darum, sich jede Kleinigkeit merken zu können, sondern eben um die höheren Prinzipien. Hast Du einmal begriffen, wie so ein Computer "tickt", dann wirst Du nie wieder mit einer neuen Programmiersprache oder mit einer neuen Programmierkonzeption Probleme haben. Letztendlich wird es für Dich dann völlig egal sein, ob Du nun grade mit Java oder mit Bash-Skript arbeitest - Du erlangst das Handwerkszeug für beides und musst Dich nur noch mit dem unterschiedlichen Syntax auseinander setzen.
Gruß Jens
-
Ja danke. Das ist das erste Forum, wo es mir endlich mal was genutzt hat zu fragen. Ich bin jetzt viel weiter, danke.
-
kingruedi schrieb:
als Programmiersprache definitiv C aber ich würde an deiner Stelle mit C++ anfangen, weil C leicht zu einem schlechten Stil führt
gibt es da so richtlinien bezüglich dem stil?
vielleicht auch online doku??
mfg
flogging molly
-
ich finde Python ist ne sehr gute Einstiegsprache, es ist von der Simplizität
mit Basic vergleichbar, hat aber meiner Meinung nach viel mehr Funktionalität, da sehr viele Erweiterungsmodule existieren. Auch für grafische Benutzeroberflächen unter verschiedensten Betriebssystemen.
Bei Python ist auch ein sehr ausführliches Tutorial mit dabei.
Python ist zwar in erster Linie eine Scriptsprache, aber ich glaube man kann irgendwie(interpreter inclusive?) auch ausführbare Dateien erstellen (siehe bittorrent). Ausserdem ist Python auch OOP.
Link:
http://www.python.org/
http://www.heise.de/ix/artikel/1999/11/184/Guter Stil in C, ist, behaupte ich einfach mal:
+ descriptive Variablen,
+ locale Variablen immer initialisieren, (besonders Pointer)
+ neu angelegte structs mit memset auf 0 setzen,
dasselbe bei neu angelegten Speicherbereichen von malloc.
+ Returnwert immer prüfen.
+ keine allzugrossen Variablen (structs) an Funktionen übergeben (Stack),
stattdessen lieber Pointer einsetzen.
+ aufpassen beim speichern (in Dateien) von structs mithilfe von fwrite und einlesen mit fread(alignment), elemente einzeln speichern.
+ fgets anstatt gets benutzen.
+ kurze, erklärende Komentare benutzen.
+ grössere Programme (> 500 Zeilen Code) unbedingt modularisieren.ich schätze die Liste liesse sich noch erheblich erweitern, aber ich denke das ist bisher so das wichtigste was mir( als fortgeschrittenen Anfänger
) für einen guten Stil an C aufgefallen ist.
Für umsteiger von C auf C++ hab ich folgendes gefunden:
http://www.icce.rug.nl/documents/cplusplus/
richtet sich allerdings eher an fortgeschrittene Programmierer als an Anfänger.mfg.