[Suche]Buchtipp für Programmiereinsteiger

  • Ich persönlich finde Php ziemlich einfach.
    Es ist eben eine Websprache(c ähnlich).
    Bei C hast du das Problem, dass wenn du nur ein Windows Fenster machen willst du einen ewiglangen Quelltext schreiben musst.


    Bye Ls4


    P.S.:
    Habe auch mit C++ angefangen.
    Nachdem du das kannst duürften dir die meisten anderen Programmiersprachen kein Probleme mehr machen.
    Außer Assembler und einigen Ausnahmen

    Wär Rächtsräibphähler phindet darf sich phreuen

  • Java ist schon etwas langsamer als C/C++, weils halt etwas mehr Overhead durch die JVM und so hat.
    Allerdings musst du da schon ziemlich zeitkritische Routinen einsetzen, damit das auffällt.
    Ansonsten finde ich ist Java als Einsteigersprache besser geeignet als C++, weil man da weniger Fehler machen kann.
    Ich würde dir allerdings eher Pascal empfehlen, dann hast du erstmal keine Probleme mit OO und kannst dann auf Delphi/Kylix umsteigen, wenn du OO und Windows machen willst.
    Aber du hast dich ja schon entschieden :)


    PHP ist für mich keine echte Programmiersprache sondern nur ne Skriptsprache, aber darüber kann man sich streiten.

  • Also wen Du C++ lernen willst, kann ich "C++ lernen und professionell anwenden" von Prinz, Kirch-Prinz empfehlen. Bin gerade dabei das Buch durchzuarbeiten, bisher ist's echt gut und strukturiert geschrieben. Allerdings kostet es auch 45 Euro. Aber an das muss man sich bei Fachliteratur wohl gewöhnen :rolleyes:
    Achja, ich bin auch Anfänger.


    Gruß,
    Michael

  • Stimmt, insb. für Businessapplikationen ist der Overhead durch die JVM i.d.R. irrelevant Heutige JVMs sind schon reichlich ausgereift -- in den Anfängen von Java war es tatsächlich so, dass die Performance deutlich zu wünschen übrig liess, was Java heute noch teilweise in Form eines Vorurteils nachhängen mag. Aber inzwischen hat sich da sehr viel getan. Klar verursacht die JVM einen gewissen Overhead, aber wenn der JIT-Compiler den Bytecode erst mal übersetzt hat, fällt der kaum noch ins Gewicht.


    Aus Performancegründen beim Erst-Erlernen einer Programmiersprache C/C++ den Vorzug gegenüber Java zu geben, ist absolut nicht gerechtfertigt. Aber ich wiederhole mich :)


    Natürlich mögen andere ggf. persönlich Gründe für C/C++ sprechen, und wenn's einfach "mir sind direkte Pointer in den Speicher sympathisch" ist ;)

    History: Motorola e930, t720, RAZR V3, MOTORAZR maxx V6, MOTOROKR Z6, MOTOROKR E8, MOTOZINE ZN5, Samsung S8000 Jet

  • Zitat

    Original geschrieben von Sahib7
    [ich möchte nach Möglichkeit nur eine Sprache lernen]


    Eigentlich ist es total egal ob Du nun Java, C++ oder C# lernst. Mit einer Sprache kommt man nicht immer wirklich weit, je nach Anwendung muss man öfters über den Tellerrand schauen. Wobei das gar nicht so tragisch ist, wenn Du eine dieser Sprachen gut kannst, dann ist die Umstellung eine Kleinigkeit. Das gilt vor allem, wenn man mit C++ angefangen hat.


    Der Schwierigkeitsgrad ist bei C++ aber auch am höhsten, vor allem die Pointer dürften einem Anfänger Kopfzebrechen bereiten (ich hasse Pointer! :D ). Gerade als Anfänger fühlt man sich bei C++ sehr schnell überfordert. Dann macht es auch keinen Spass mehr und die Motivation ist auch sehr schnell dahin...


    Java ist da schon etwas einfacher zu erlernen. Auch ich würde Dir empfehlen zuerst mit Java anzufangen. Wenn Du in Java fit bist, dann wirst Du auch ohne weiteres den Umstieg auf C++ bewältigen.


    Die Performance ist für einen Anfänger das letzte wonach man sich richten sollte, es sei den Du willst direkt mit Hardwarenaher Programmierung anfangen, was ich sehr stark bezweifle...


    Alleine eine Sprache zu erlernen ist gar nicht so einfach. Zwischen der Theorie und den ersten realen Projekten liegen Welten. Ich würde Dir empfehlen irgendwelche Kurse/Veranstaltungen zu belegen. An vielen Unis werden oft Programmierkurse angeboten, ich würde Dir sogar empfehlen sich in ganz normale Veranstaltungen von den Informatikern oder E-Technikern mal rein zu setzen. Keine Bange, bei uns sitzen auch einige nicht Studis (auch Rentner) und die sind teilweise fitter als die Studis...


    Für die ersten Steps in C++ kann ich Dir folgendes Buch empfehlen:
    Jesse Liberty - Jetzt lerne ich C++
    (Vergiss die beiligende Software - ist Schrott, das Buch ist aber ganz ok)


    Für später empfiehlt sich die C++ Bibel:
    Bjarne Stroustrup - C++

    mfg supersiggi

  • zum Thema Performance und Java gibt es sicherlich die meisten Threads in Foren weltweit. Deswegen will ich mich darüber gar nicht lange auslassen, möchte aber vielleicht kurz zusammenfassen:


    Java wurde ursprünglich (!) als plattformunabhängige Sprache für Applets entwickelt, also kleine Programme, die auf der Zielplattform ohne Kompilierung laufen. Dooferweise war die GUI durch das Sandbox-Prinzip so langsam, dass Java insgesamt den Stempel "langsam" aufgedrückt bekommen hat. Welche Anwendungen sind denn Performance-kritisch ? Ich meine, auf jeden Fall (auch) GUI-Anwendungen, weil die einfach nicht hängen bleiben oder ins Stocken geraten dürfen.


    Jedenfalls ging der Trend in Java gegen Ende des 20.Jh. in Richtung serverseitige Applikationen. Die Sprache muss auf dieser Seite in erster Linie schnell sein, um Unmengen Strings zu verarbeiten, Datenbankverbindungen aufzubauen und abzufragen und verteilte Prozeduren aufzurufen. Java ist in allen drei Disziplinen so schnell, dass sich da kaum ein selbstgeschriebener C++-Client dran messen kann. So trat Java seinen Siegeszug im Netz an; ich mutmaße mal, dass weit über 50% aller serverseitigen Businessapplikationen auf J2EE laufen. Und das, was Java eigentlich so einzigartig genial macht, ist der Reichtum an frei zugänglichen APIs auf der Serverseite wie JSP, JAXP, JDBC, EJB (im weitesten Sinne auch ne API) oder RMI (um mal 1% von allen zu nennen).


    Mittlerweile hat die Welt sich weitergedreht und Microsoft hat mit .NET extrem harte Konkurrenz gegen Java aufgebaut. .NET läuft zwar auf Linux (Mono ), aber mit gewaltigen Einschränkungen. Viele Java APIs haben in .NET ihr Pendant (ADO.NET, ASP.NET, MSXML, ODBC, Biztalk). Das schöne an .NET: Man ist nicht mehr sprachgebunden: Man erzeugt mit C#, J#, VB.NET, (managed)C++ immer den gleichen IL-Code, der über einen JIT-Compiler auf der Ziel(Windows-)Plattform übersetzt wird. Das macht .NET-Kompilate im Allgemeinen schneller als Java, dafür aber nicht unabhängig. Zudem drängt sich mir beim Sichten der Klassenbibliotheken von .NET der Eindruck auf, dass da eine ganze Menge Overhead drinsteckt, den Java nicht hat. Beispiel: native Datentypen: Da .NET / CLR kompatibel zu allen Sprachen sein muss, werden selbst elementare Typen wie ints / bools / doubles etc in Wrapper (ValueType) verpackt. In Java ist ein Integer ein Java-Integer und naturgemäß erstmal kein Objekt. In .NET/CLR ist jeder elementare Typ ein Wrapper um einen nativen Typen der Runtime, was die Performance sicherlich nicht grade positiv beeinflusst (habe keine Benchmarks).


    Um beim Thema zu bleiben: erstmal entscheiden, welche Plattformen du wirklich nutzen willst. Linux ist ein relativ schweres Brot für langjährige Windows-Nutzer, und auf den ersten (nicht auf den zweiten ;) ) Blick um Längen komplizierter und weniger eingängig. Wenn Du Dich erstmal auf die Sprache konzentrieren willst, bist Du auf M$ sehr gut aufgehoben, auf Linux muss man erstmal seine 7 Buildskripte zusammensammeln und make kennen, um vernünftig C schreiben zu können.
    Die meisten freien Tools wirst Du aber für Java finden. Mein absoluter Favorit: Eclipse (http://www.eclipse.org). Java in a Nutshell ist ein exzellentes Buch für Einsteiger, alles was auf ...in 21 Tagen endet, ist zwar nicht unbedingt schlecht, aber auch nicht besonders empfehlenswert. Wenn Du mit C/C++ anfängst noch eine ganz ganz wichtige Warnung: MFC und COM sind reine Microsoft-Geschichten ! Sowas gibts nicht für Linux o.a. (jedenfalls nichts identisches ;) ) !! Wenn Du irgendwann mal an einen Punkt gerätst, an dem Du Container brauchst: schau Dir die STL an und _nicht_ die MFC-Arrays/Collections !! Das sind "Zauberfallen" von M$, die einem zwar ne Menge Arbeit abnehmen und hübsch aussehen, aber so nicht unter Linux etc. existieren.


    Softwaretechnik in C/C++ von Isernhagen fand ich sehr gut, auch wenns Uni-Niveau hat. Der Klassiker von Bjarne Stoustrup sollte in jedem Bücherregal eines C++-Entwicklers stehen.

  • ich bin auch anfänger und auf der suche nach dem richtigen einstieg. eure texte, dass man mit java anfangen sollte, klingen schon sehr überzeugend. nur ich frage mich, ob "Java in a Nutshell" da wirklich der richtige einstieg ist? was ich über dieses buch gelesen habe, klingt nicht sehr einsteigerfreundlich für jemanden, der vorher noch nie etwas mit programmieren am hut hatte.

  • Zitat

    Beispiel: native Datentypen: Da .NET / CLR kompatibel zu allen Sprachen sein muss, werden selbst elementare Typen wie ints / bools / doubles etc in Wrapper (ValueType) verpackt. In Java ist ein Integer ein Java-Integer und naturgemäß erstmal kein Objekt. In .NET/CLR ist jeder elementare Typ ein Wrapper um einen nativen Typen der Runtime, was die Performance sicherlich nicht grade positiv beeinflusst (habe keine Benchmarks).


    Das stimmt nicht, der Compiler optimiert das alles wieder so, dass das Kompilat mit echten Integern arbeitet. Übrigens sind bei Java ab 1.5 imho auch alles automatisch Objekte.
    Was auch echt praktisch ist, da sich so viel leichter Objektorientiert arbeiten lässt.

  • "Java in a Nutshell" und Einsteiger


    Zitat

    nur ich frage mich, ob "Java in a Nutshell" da wirklich der richtige einstieg ist? was ich über dieses buch gelesen habe, klingt nicht sehr einsteigerfreundlich für jemanden, der vorher noch nie etwas mit programmieren am hut hatte.

    Java in a Nutshell ist kein Tutorial oder Lehrbuch -- es handelt sich eher um eine Übersicht und Referenz. Zum Erlernen des Programmierens ist es weder gedacht noch tauglich.

    History: Motorola e930, t720, RAZR V3, MOTORAZR maxx V6, MOTOROKR Z6, MOTOROKR E8, MOTOZINE ZN5, Samsung S8000 Jet

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!