Einstieg in Programmiersprache?

AppleWorm²

Freiherr von Berlepsch
Registriert
08.08.07
Beiträge
1.120
Hallo Liebes Forum,

Ich habe ja etwas PHP an meiner Schule, jedoch will ich auchmal den bereich C unc C++ oder C# wagen und brauche tipps für einen guten einstieg. Bisher habe ich immer auf Bücher zurück gegriffen was haltet ihr von den Büchern hier.

Ich denke ihr werdet mir tipps geben können.

Mfg
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
Nach wie vor halte ich für den besten Einstieg in C den K & R.
 

mcxreflex

Zabergäurenette
Registriert
25.08.09
Beiträge
603
Bücher sind imo noch die beste Möglichkeit so etwas zu lernen.
 

ryu2k8

Macoun
Registriert
19.02.09
Beiträge
116
Habe eine super buch in der Schule bekommen, das heißt "Jetzt lerne ich ... C++" vom Markt+ Technik
ISBN:978-3-8272-4460-4
Kann es nur empfehlen ist super für Leute ohne Vorkenntnisse ;)
 

AppleWorm²

Freiherr von Berlepsch
Registriert
08.08.07
Beiträge
1.120
Wenn du der englischen Sprache noch nicht mächtig bist, dann mach dich am besten von Anfang an daran... Kommst eh nicht drumrum...

Nicht mächtig würde ich nicht sagen, bin sogar relativ gut in englisch, jedoch lerne ich eben besser mit deutschen werken^^
 

wdominik

Weißer Winterglockenapfel
Registriert
15.01.10
Beiträge
880
Gerade wenn man von PHP ausgeht wirkt C/C++ zunächst mal sehr trostlos. PHP hat den Vorteil, dass Du schnell produktive Ergebnisse sieht. Also der Weg von den ersten Kontakt mit der Sprache bis beispielsweiße einem funktionsfähigen Gästebuch ist relativ kurz. Dadurch ist die Motivation natürlich auch entsprechend groß. Bei C/C++ wirst Du Dich erst einmal längere Zeit mit Theorie und Kommandozeilen-Programmen zur Übung beschäftigen. Nur so als Vorwarnung. ;)

Laut Deinem Profil verwendest Du zwar keinen Mac, aber falls Du eine Anschaffung planst und dafür programmieren möchtest wäre „objective C“ natürlich die erste Wahl.

Wenn Du die Richtung C# einschlagen willst, würde ich Dir fast zu Java raten, da sich die Sprachen sehr ähneln und Java zumindest plattformunabhänig ist.

Prinzipiell würde ich Dir zu einer Objekt-orientierten Sprache (C++/Objective C/C#/Java) raten, denn diese Konzepte zu verstehen und anwenden zu können ist gerade bei der Softwareprogrammierung unerlässlich.

Auch ein englisches Buch zum Einstieg ist gar nicht verkehrt. Irgendwann stöberst Du dann sowieso in englischen Foren oder API Dokumentationen. Da ist das sicherlich ganz gut wenn man es von Anfang an gewohnt ist.
 
  • Like
Reaktionen: AppleWorm²

AppleWorm²

Freiherr von Berlepsch
Registriert
08.08.07
Beiträge
1.120
Gerade wenn man von PHP ausgeht wirkt C/C++ zunächst mal sehr trostlos. PHP hat den Vorteil, dass Du schnell produktive Ergebnisse sieht. Also der Weg von den ersten Kontakt mit der Sprache bis beispielsweiße einem funktionsfähigen Gästebuch ist relativ kurz. Dadurch ist die Motivation natürlich auch entsprechend groß. Bei C/C++ wirst Du Dich erst einmal längere Zeit mit Theorie und Kommandozeilen-Programmen zur Übung beschäftigen. Nur so als Vorwarnung. ;)

Laut Deinem Profil verwendest Du zwar keinen Mac, aber falls Du eine Anschaffung planst und dafür programmieren möchtest wäre „objective C“ natürlich die erste Wahl.

Wenn Du die Richtung C# einschlagen willst, würde ich Dir fast zu Java raten, da sich die Sprachen sehr ähneln und Java zumindest plattformunabhänig ist.

Prinzipiell würde ich Dir zu einer Objekt-orientierten Sprache (C++/Objective C/C#/Java) raten, denn diese Konzepte zu verstehen und anwenden zu können ist gerade bei der Softwareprogrammierung unerlässlich.

Auch ein englisches Buch zum Einstieg ist gar nicht verkehrt. Irgendwann stöberst Du dann sowieso in englischen Foren oder API Dokumentationen. Da ist das sicherlich ganz gut wenn man es von Anfang an gewohnt ist.

Hey,

Ich hab mir mal ein Buch C# bestellt für schlappe 4,97€ bei amazon. Ich weiß schon das es etwas dauert bis man die ersten ergebnisse gerade in diesen Sprachen sieht, jedoch ist gerade mit diesem Sprachen mehr zu erreichen als mit php. Danach werde ich mir auchnoch weitere werke von C unc C++ hohlen.
 

mcxreflex

Zabergäurenette
Registriert
25.08.09
Beiträge
603
Java ist für den Einstieg wirklich nicht schlecht. Sie ist klar strukturiert und man kann sie gut lernen. So ist später C bzw. C++ kein Problem.
 

AppleWorm²

Freiherr von Berlepsch
Registriert
08.08.07
Beiträge
1.120
Naja ich will sowieso in den bekanntesten sprachen einen kleinen überblick haben das man da etwas bewandert ist ist für den lebenslauf auf jedenfall nicht schlecht^^
 

wdominik

Weißer Winterglockenapfel
Registriert
15.01.10
Beiträge
880
Also C# war für den Einstieg vielleicht gar nicht so schlecht. Jedenfalls ist die Oberflächenprogrammierung durch Forms und einen grafischen Editor bei Visual Studio verhältnismäßig einfach. Die .NET Library ist auch recht umfangreich was beim Einstieg auch helfen wird. Danach kannst du ja einen Ausflug zu Java machen, was Dir, wenn Du C# kannst, nicht allzu schwer fallen sollte. Und irgendwann wagst Du Dich eben an C++ heran. ^^

Im Prinzip sind die genannten Sprachen alle nicht so grundverschieden. Einarbeitungszeit braucht man natürlich immer, aber wenn man Eine erstmal beherrscht fällt es einem leichter die Anderen zu erlernen.

Viel Erfolg dabei, für die Bewerbung natürlich wirklich sehr von Vorteil, und wenn man zusätzlich Interesse und Spaß daran hat definitiv nicht verkehrt.
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
Natürlich gibt es den K & R auch in deutsch, allerdings soll die Übersetzung nicht so der Hit sein. Ausserdem lernst Du Programmieren eher durch das Programmieren als durch das lesen und die Beispiele und Erklärungen im K&R sind sehr gut. Überhaupt ist der ganze Programmierstil den K&R lehren IMHO klar, sauber und verständlich und bei Programmierbücher für mich nach wie vor die Referenz. Naja und der Preis sollte bei Büchern IMHO überhaupt kein Argument sein, Du steckst Deine Zeit da rein und die ist im Zweifel mehr wert als ein paar EUR hin- oder her.

Ehrlich gesagt würde ich von C++ als eierlegenden Wollmilchsau lieber die Finger lassen und dann eher Objective C bevorzugen, letztere finde ich als Sprache um Welten schöner designed und sauberer und man merkt ihr nicht an jeder Ecke an, dass sie eigentlich nur aus einem C Precompiler hervorgegangen ist... Ausserdem sind wir ja hier in einem Mac Forum und da passt das wohl auch eher ;).

Meiner Meinung nach solltest Du auch um sämtliche IDEs erstmal einen Bogen machen und einfach mit der Commandline, einem "simplem" Editor (vim/Emacs/Textmate), make & ein paar Shelltools. loslegen. Aber vielleicht ist das alles etwas oldschoolmäßig ;).
 

mcxreflex

Zabergäurenette
Registriert
25.08.09
Beiträge
603
Dass C++ nicht die eierlegende Wollmilchsau ist dürfte klar sein, die gibt es nämlich nirgends. Man muss immer auf das Anwendungsgebiet achten. Ich sag es mal so, man kann vieles mit vielen Programmiersprachen machen, aber man sollte ich Fragen ist das effektiv Anwendung x mit Programmiersprache y zu programmieren? Schreib mal ein einfaches Programm mit GUI unter C++ und Java. Allein wegen der Systemunabhänigkeit würde ich Java vorziehen, auch ist es wesentlich leichter solche Sachen mit Java zu programmieren. Willst du hingegen einen Treiber programmieren, wird das mit Java nicht viel. Man muss sich halt immer nach der elegantesten Lösung umsehen, deren Umsetzung am wenigsten Zeit benötigt. Denn Zeit ist bekanntlich Geld. An sich nehmen und geben sich die ganzen C-basiernden Sprachen nicht viel. Kann man eine ist es nicht so schwer sich in eine andere einzuarbeiten. Beim Programmieren ist es eigentlich nicht das Befehle lernen, sondern wie man etwas umsetzt.
Kleines Beispiel:
Man entwickelt einen Algorithmus für irgendwas. Sobald man den in Pseudocodenotation geschrieben hat, dürfte es kein Problem sein diesen in verschiedenen Programmiersprachen (auch wenn teilweise unbekannt) umzusetzen. Wenn man weiß wie man "generell programmiert" dann sucht man sich einfach die passenden Befehle heraus. Hier bin ich nicht der gleichen Meinung die FrankR. Ich finde IDEs sehr nützlich aus 2.Hauptgründen.

1.Übersicht:
Man hat eine wesentlich bessere Übersicht über Pakete und Klassen
2. Echtzeitkorrektur
Viele Fehler werden dir schon beim Programmieren angezeigt und nicht später erst bei ausführen.(z.B. vergessene Semikolons, offene Klammern etc.) das spart Zeit und Mühe
3. Anzeige von Funktionen
Gibt man einen Klassennamen und dann einen . ein erscheinen alle zur Verfügung stehenden Methoden dieser Klasse mit Erklärung und Rückgabewert. Man sucht eine Funktion mit der man sein Problem am besten lösen kann, kann man dort mal durchsehen und meist findet man etwas Passendes.
Falls es meinem Vorposter rein um sehr ein-Klassen-Programme mit einfachem Inhalt ging, z.B. Ausgabe, kleine Berechnungen und ich ihm Unrecht getan hab, so möge er das jetzt sagen oder für immer schweigen ;)
Weiter zum Thema. Wenn man sich die Grundlagen angeeignet hat, lohnt es sich imo meist eher allg. Bücher zu wählen. Z.B. gab ich grad ein Buch über OOP durch, das zwar mit Java arbeitet, allerdings so allg. ist, dass es auch für andere Sprachen interessant wäre. Atm lese ich Algorithmen und Datenstrukturen, welches sich zwar auch auf Java bezieht, aber größtenteils auch allg. gehalten ist, was der Autor am Anfang auch betont. (Java bietet sich bei halt wegen der Schule und später der Uni an)
Wenn du Java lernen willst, kann ich nur das Buch "Java ist auch eine Insel empfehlen". Für den Einstieg imo keine schlechte Wahl. Gab es sogar mal als E-Book kostenlos zum Download.

Ps: Hast Pn.
 
  • Like
Reaktionen: Irreversibel

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
Mir ging es darum, erst mal die Grundlagen zu lernen und nicht gleich mit riesigen Klassenbibliotheken mit hunderten Klassenmethoden zu hantieren. Sicher ist da eine IDE sinnvoller, BTW: vergessene Klammern zeigt mir der vim auch an, Funktionsnamensergänzungen ebenso (wenn ich das will) - bei allem anderem habe ich bei vielen IDEs eher das Gefühl, dass sie mir im Weg rumstehen. Wenn ich etwas zu Funktionen wissen will, dann gebe ich "man" ein, oder schaue im Browser nach.

Systemunabhängigkeit und Java ist auch so ein anderes Ding, alle Applikationen mit GUI die ich bisher gesehen habe, sahen und fühlten sich auf keiner Plattform so richtig native an, waren arg langsam und meist enorm resourcenhungrig. Aber vielleicht ist mir nur noch nicht das richtige untergekommen.
 

Walli

Blutapfel
Registriert
06.01.06
Beiträge
2.605
Ich würde heutzutage einem Anfänger raten Python zu lernen. Klare Sprache, wenig Stolpersteine und trotzdem noch ziemlich mächtig. Was man danach lernt, ist ziemlich vom Anwendungsfall abhängig und deswegen würde ich mich noch nicht zu früh auf eine Sprache einschießen. Kennst Du eine, kennst Du alle ... mal Nischen-Paradigmen wie z.B. bei Prolog etc. ausgenommen. C++ ist so ein Projekt für sich: Es dauert eine Woche bis man Grundlagen drauf hat, aber Jahre und viele dicke Wälzer um wirklich oben mitzuspielen. Da ist C deutlich einfacher, jedoch könnte es einen für immer versauen, wenn man es zu früh lernt. Da der OP allerdings seinen Einstieg in PHP hatte ist es aber meiner Meinung nach ohnehin dringend nötig die programmiertechnische Notbremse zu ziehen und was richtiges zu lernen :) .
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
Würde mich da auch Walli anschliessen, zwar eher Ruby - aber egal ;) - der TS hatte ja aber explizit nach C gefragt.
 

Walli

Blutapfel
Registriert
06.01.06
Beiträge
2.605
Da er Anfänger ist, macht es ja nichts ihm zu raten sich auch mal was anderes anzuschauen. Wenn man irgendwann ernsthaft programmiert sollte man C zumindest mal gesehen haben. Will man ohne großen Frust Programme schreiben, dann sind Python oder meinetwegen auch Ruby mal ein sanfter Einstieg. Wo ich aber oben vom 'für immer versauen' gesprochen habe. Das könnte bei Python auch der Fall sein, denn es ist sicher schwer sich danach noch mal komplett auf was performanteres aber möglicherweise deutlich unkomfortableres einzulassen ;) .
 

mcxreflex

Zabergäurenette
Registriert
25.08.09
Beiträge
603
Mir ging es darum, erst mal die Grundlagen zu lernen und nicht gleich mit riesigen Klassenbibliotheken mit hunderten Klassenmethoden zu hantieren. Sicher ist da eine IDE sinnvoller, BTW: vergessene Klammern zeigt mir der vim auch an, Funktionsnamensergänzungen ebenso (wenn ich das will) - bei allem anderem habe ich bei vielen IDEs eher das Gefühl, dass sie mir im Weg rumstehen. Wenn ich etwas zu Funktionen wissen will, dann gebe ich "man" ein, oder schaue im Browser nach.

Systemunabhängigkeit und Java ist auch so ein anderes Ding, alle Applikationen mit GUI die ich bisher gesehen habe, sahen und fühlten sich auf keiner Plattform so richtig native an, waren arg langsam und meist enorm resourcenhungrig. Aber vielleicht ist mir nur noch nicht das richtige untergekommen.

Ja wenns von 0 auf geht, dann ist das keine schlechte Idee. Doch ab OOP empfehle ich eine IDE.
 

Walli

Blutapfel
Registriert
06.01.06
Beiträge
2.605
Was hat OOP mit einer IDE zu tun? Eine IDE macht das Leben an vielen Stellen einfacher, aber ein vermurkstes Code-Design redet die Dir auch nicht aus. Außerdem wissen die Kiddies dank IDEs heutzutage auch nicht mehr, was ein Makefile ist und wofür dieses configure noch gleich gut war. Ich finde eine IDE sollte man sich erst anschauen, wenn man die ersten Schritte mal im Terminal getan hat und sich langsam an die Bedienung eines Debugger-Frontends trauen will. Dann kann man so mit und mit auch die restlichen Annehmlichkeiten einer vernünftigen IDE erkunden.