Laden...

In Schule Java, zu Hause C#, gute Idee ?

Erstellt von RoboFun vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.194 Views
R
RoboFun Themenstarter:in
1 Beiträge seit 2012
vor 11 Jahren
In Schule Java, zu Hause C#, gute Idee ?

Guten Tag C#-Community 😄,

ich habe eine kurze Frage, nämlich folgende :

In der Schule programmiere ich im moment 7Stunden in der Woche(315Min) mit Java, seit diesem Schuljahr. ZuHause möchte ich aber mit C# Arbeiten, aufgrund mehrerer Faktoren (IDE, WP 7/8, Gadgeteer und AntMe 😉 )

Wenn ich mir die beiden Sprachen so ansehen, kommt mir der Verdacht das sie sich sehr ähnenln, und ich miene mal gelesen zu haben das C# nur das Java von MS ist xD 😉.

Nun frage ich mich natürlich ob das gut geht wenn ich zu Hause nicht mit Java arbeite sondern mit C#.

Ich habe mir dazu überlegt, das je mehr ich in C# kann auch besser mit Java zuracht komme, da es beim Programmieren erstmal ja um das Logikverständniss geht, also wie ich etwas schreiben muss. Dazu kommt noch das sie sich ähnenln deswegen denke ich das ich für Java dann größtenteills nur andere Kommandos benutzen muss.

Ist das korrekt ? Was meint ihr dazu ?

Freundliche Grüße

1.002 Beiträge seit 2007
vor 11 Jahren

Hallo RoboFun,

herzlich Willkommen auf myCSharp.de!

Ich sehe darin überhaupt kein Problem, im Gegenteil: Je mehr Programmiersprachen du kennst, desto mehr hast du einen Blick über den Tellerrand und verbesserst damit deine (sprachunabhängigen) Programmierfähigkeiten. Abgesehen davon sind sich Java und C# sehr ähnlich, von daher sollte das auch vom Lernaufwand her überhaupt kein Problem darstellen.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

5.941 Beiträge seit 2005
vor 11 Jahren

Hallo zusammen

Da kann ich beistimmen. Bei mir war es C# privat und VB.NET auf der Arbeit. Es war ein gewöhnen, gab also am Anfang die eine oder andere Verwechslung - aber es ist in jedem Fall ein Vorteil.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

799 Beiträge seit 2007
vor 11 Jahren

Wenn ich mir die beiden Sprachen so ansehen, kommt mir der Verdacht das sie sich sehr ähnenln, und ich miene mal gelesen zu haben das C# nur das Java von MS

Das war mal so. Was die parametrische Polymorphie, vulgo Generics, angeht, gibt's erhebliche Unterschiede.

Wenn du von Java zu C# kommst, wirst du dich freuen dass so vieles in C# besser ist als in Java. Der umgekehrte Weg ist allerdings steiniger, da man sich erst an die Beschränkungen des Type Ereasure gewöhnen muss. (Ich hatte jedenfalls einige Kopfschmerzen beim Umstieg ...)

Nun frage ich mich natürlich ob das gut geht wenn ich zu Hause nicht mit Java arbeite sondern mit C#.

Was soll schlecht daran sein? Man könnte sich natürlich fragen ob es nicht bessere Beschäftigungen für einen Jugendlichen gibt (z.B. die Freundin besuchen.) aber ansonsten ist das wohl kein Problem. 👅

Dazu kommt noch das sie sich ähneln deswegen denke ich das ich für Java dann größtenteils nur andere Kommandos benutzen muss.

Das stimmt zum großen Teil. Neben den angesprochenen Unterschieden der Generics, gibt's da noch die in die Sprache eingebackenen Events bei C# und Closures die es in Java noch nicht gibt. Außerdem unterscheidet sich die Klassenbibliothek erheblich, da in Java viel öfter externe Libs (Apache Projekte, etc.) verwendet werden und bei C# viel mehr von MS beigesteuert wird.

Außer von den Sprachunterschieden bekommst du in der normalen C# JavaSE Welt aber nichts davon mit.

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
49.485 Beiträge seit 2005
vor 11 Jahren

Hallo Peter Bucher,

Bei mir war es C# privat und VB.NET auf der Arbeit.

sofern du wirklich VB.NET und nicht VB6 meinst, hat man da dann aber zwei Sprachen, die nicht nur bis auf den syntaktischen Zucker im wesentlichen die gleichen Features bieten (auch bei der Weiterentwicklung beider Sprachen wurde viele neue Features in beiden Sprachen eingebaut), sondern die vor allem beide die gleiche Bibliothek, nämlich eben das .NET-Framework, benutzen. Bei C# und Java hat man mit vollkommen unterschiedlichen Bibliotheken zu tun und wir alle wissen, dass der Hauptaufwand nicht das Erlernen des Sprache selbst, sondern das der verwendeten Bibliotheken ist.

Hallo RoboFun,

ob es eine gute Idee ist, hängt vor allem davon ab, wie (un)sicher du (noch) bist. Natürlich kann es sein, dass einen die Unterschiede verwirren und man (ständig) versucht, was man in der einen Welt so gemacht hat, in der anderen Welt genauso zu machen und dann merkt, dass es in der anderen Welt nicht funktioniert oder man es dort zumindest gar nicht so machen würde. So ist es z.B. keine gute Idee, in C# Get- und Set-Methoden schreibt; in C# würde man stattdessen Properties verwenden; die es aber in Java nicht gibt. Es gibt also durchaus stilistische Unterschiede, die - wenn man sie überträgt - in der anderen Welt nicht funktionieren oder nicht gut ankommen.

Anderseits bekommt sieht man dann aber auch schneller, dass der in Welt A gewählte Weg nicht unbedingt der beste ist und kann sich seine eigene Meinung bilden, was das beste ist, und auch aus beiden Welten das beste herauspicken und - falls möglich - in die andere Welt übernehmen.

Vor allem wird man es auch im späteren Berufsleben als Informatiker mit verschiedenen Sprachen zu tun bekommen. Es ist also durchaus sinnvoll, sich früh mit verschiedenen Sprachen/Konzepten auseinanderzusetzen.

herbivore

849 Beiträge seit 2006
vor 11 Jahren

Hallo,

Sinnvoll ist es auf alle Fälle, Du solltest aber Dir auch darüber Gedanken machen das Du dadurch eventuell Zeit in Prüfungen verlierst.
Jedes mal als ich von Java/Eclipse zu VS/C# (oder anders rum) gewechselt bin dachte ich ich hätte "Scheiße an den Fingern" (hoffe ihr nehmt meine Ausdrucksweise nicht übel..)

Grüße

5.742 Beiträge seit 2007
vor 11 Jahren

Bei C# und Java hat man mit vollkommen unterschiedlichen Bibliotheken

"Vollkommen unterschiedlich" würde ich in keinem Fall unterschreiben; grundlegend sind die schon recht ähnlich (Collections, Streams, grundlegende Datentypen, usw. sind in beiden recht ähnlich aufgebaut). Und ob ich jetzt GetHashCode oder hashCode aufrufe, ist recht egal - wichtig ist, dass alles von Object ableitet und folglich so eine Methode anbietet (wenn auch in Java mit Ausnahme der Primitiven Typen).
Und auch bei externen Bibliotheken hat man halt Hibernate / NHibernate; JUnit / NUnit, usw. 🙂

Ich sehe darin überhaupt kein Problem, im Gegenteil: Je mehr Programmiersprachen du kennst, desto mehr hast du einen Blick über den Tellerrand und verbesserst damit deine (sprachunabhängigen) Programmierfähigkeiten.

Im Prinzip stimme ich da zu.

Gerade zu Beginn kann das parallele Beschäftigen mit zwei Programmiersprachen IMHO jedoch einen deutlich erhöhten Aufwand darstellen, dessen man sich in jedem Fall bewusst sein sollte.
Evtl. kann es da also sinnvoll sein, sich erst einmal der einen Sprache zu widmen, bis man diese (zumindest einigermaßen) beherrscht und erst später eine weitere Sprache in Angriff zu nehmen.

Die Ähnlichkeit von Java / C# sehe ich in diesem Kontext dabei sogar eher problematisch: Wenn man noch keine der beiden Sprachen wirklich "drauf hat", steigt das Risiko von Verwechslungen gewaltig; bei zwei verschiedenen Sprachen hat man das eher weniger.

Insbesondere mit Blick auf Klausuren sollte man das nicht unterschätzen: Die sind (leider!) meist nach dem Schema "Wie lautet Signatur der Methode X von Klasse Y? Trage die fehlenden Klassennamen in die Hierarchie ein" usw. aufgebaut, wo man dann weniger Punkte für's Verständnis, sondern mehr für's Auswendiglernen kriegt. Aber gut, muss man sich wohl damit abfinden...

Mein Rat daher: Wenn du viel Zeit hast, kannst du durchaus beide Sprachen parallel beginnen.
Ich würde aber eher dazu raten, dich auch privat erst einmal etwas mit Java zu beschäftigen (das, was ihr im Unterricht macht, anhand ein paar kleinerer Programme zu Hause vertiefen oder ein Java-Buch selber durchgehen; je nach Lehrer). Damit solltest du (programmiertechnisch) - glaube ich - genug ausgelastet zu sein 😉

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo winSharp93,

grundlegend sind die schon recht ähnlich

mag sein, dass es Ähnlichkeiten bei den grundlegenden Klassen wie Collections gibt (die gibt es aber sicher auch zu den Collection-Klassen der C++-Standardbibliothek), aber schon alleine die Tatsache, dass es in .NET ein großes zentrales Framework gibt, das fast alles abdeckt und man bei Java sich seine Bibliotheken zusammen suchen muss und es auch für Bereiche, die vom .NET Framework abgedeckt werden, oft mehrere konkurrierende gibt, aus den man erst einmal eine auswählen muss, macht schon einen riesen Unterschied. Im Java-Umfeld ist das bei weitem nicht so homogen wie beim .NET Framework. Und auch wenn es in der Praxis vielleicht nicht ganz so schwarz-weiß ist, wie ich es hier der Klarheit wegen dargestellt habe, bleibe ich dabei, dass es in dieser Hinsicht sehr große Unterschiede zwischen der C#- und Java-Welt gibt. Letztlich muss sich da aber jeder seine eigene Meinung bilden.

Im Prinzip stimme ich da zu.

Dass das Prinzip nicht uneingeschränkt gilt, insbesondere solange noch (größere) Unsicherheiten bestehen, hatte ich ja selbst schon geschrieben. Wir sind uns also darin einig, dass es auf den richtige Zeitpunkt ankommt, zu dem man beginnt, sich mit anderen/weiteren Sprachen zu beschäftigen.

herbivore