Ich bin ein Informatikstudent im vierten Jahr, an der Universität waren viele meiner Projekte Java-basiert, also bin ich ziemlich an die Sprache, die Plattform und die Apis gewöhnt. Jedoch habe ich lange Zeit viel über die Verbesserungen der .net-Plattform gelesen und es gibt große Karrieremöglichkeiten (zumindest in meinem Land). Jetzt überlege ich, in die Microsoft-Welt zu wechseln. Ich habe mehrere Fragen:
Wäre es schwer, auf die .NET-Plattform umzusteigen? Wenn ich meine Karriere anfange, fehlt mir die "4 Jahre Java Experiance" zu einem "1 Jahr c # /. net experience"?
Wie hart wäre die Transaktion von der Java-Welt zur .net-Welt?
Es fühlt sich an, als ob die Zukunft von Sun (und Java als Ergebnis) ein wenig verschwommen wirkt, kann es auf lange Sicht ein Problem sein?
BEARBEITEN: Entschuldigung für die Bearbeitung, ich möchte hinzufügen, dass ich mehr im Telekommunikationsbereich bin (auch wenn ich in diesem Bereich noch kein Praktikum / Berufserfahrung habe). Und tatsächlich ist Java nicht meine einzige Sprache. Ich bin wirklich an Python, LISP, Javascript, PHP und einige andere Auszeichnungssprachen gewöhnt.
Danke
Es wird sicherlich eine Veränderung sein, vor allem was das Erlernen des .NET-Frameworks betrifft, wenn Sie mit den Java-APIs vertraut sind. Viele der Konzepte sind die gleichen, aber es ist ein Fall zu lernen, wo man Dinge findet. Sie sollten nicht erwarten, dass Sie 4 Jahre C # /. NET Erfahrung haben - aber Sie werden 4 Jahre allgemeine Softwareentwicklung haben, was sicherlich an und für sich wichtig ist.
Der Wechsel von C # nach Java ist nicht allzu schlimm, obwohl Generika in C # sehr sind. In den letzten Versionen von C #, die sich nicht in Java befinden, gibt es viele Funktionen, und es lohnt sich, sie kennenzulernen, um die Sprache optimal zu nutzen.
Persönlich finde ich C # eine viel elegantere und mächtigere Sprache als Java - und sicherlich eine, die sich viel schneller entwickelt hat. Ich benutze beide regelmäßig, aber mein Herz ist mit C # ... und das kommt von einem Java-Hintergrund wie du selbst. Ich bereue es nicht, von Java nach C # zu wechseln, zumal es nicht so sehr ein "Zug" ist, sondern einfach nur eine Extra-Saite zu deinem Bogen hinzuzufügen. Es ist nicht so, als würden Sie > Ihre Java-Erfahrung aufgeben, um .NET zu lernen.
Nachdem ich all das gesagt habe, denke ich nicht, dass Sie sich darum sorgen müssen, dass Java in absehbarer Zeit verschwindet. Ich denke, es ist vernünftig, Bedenken hinsichtlich der Geschwindigkeit des Fortschritts der Kern-API und Sprache zu haben (obwohl Bibliotheken von Drittanbietern und tatsächlich Sprachen sich schneller bewegen), aber ich bin mir sicher, dass Unternehmen aktiv neue Produkte in Java für einige entwickeln werden Jahre später.
Wenn Sie nicht der nächste Cobol-Entwickler werden wollen, gewöhnen Sie sich daran, die Sprache zu wechseln. Java und C # werden es noch einige Jahre geben, ebenso wie die zugrunde liegenden Plattformen. Aber die Dinge werden sich ändern, also gewöhnt euch besser daran.
Sie haben genau 0 Jahre Erfahrung. Alles, was in der Schule oder Universität gemacht wird, zählt nicht. Der Grund ist: Die Anforderungen sind völlig anders. Das Schulmaterial könnte aus CS-Sicht viel schwieriger sein, aber es hat feste, ziemlich klare Anforderungen, und Sie müssen es seit 10 Jahren nicht mehr unterstützen. Also wieder daran gewöhnen: Es war hoffentlich eine schöne Zeit, aber es zählt nicht als Erfahrung.
C # war am Anfang fast eine Kopie von Java. Jetzt haben diese Leute viele interessante Features, denen Java fehlt. Aber trotzdem sollte es einfach sein, einen zu lernen, wenn du den anderen kennst.
Für einen Job: Es ist irrelevant, wie viele Jobs es gibt. Du willst nur eins, oder? Also sollten Sie überprüfen, welche Art von Job Sie interessiert sind? Web, Mobil, Eingebettet, Rich Client, Big Server.
Was ist der wahre Ratschlag? Geh, finde JETZT einen Arbeitgeber. Sagen Sie ihnen, dass Sie gern arbeiten würden, wenn Sie fertig sind, und Sie möchten, dass sie Ihnen sagen, was Sie in der Zwischenzeit lernen sollten.
Persönlich glaube ich nicht, dass Java in absehbarer Zeit verschwinden wird, also ist IMHO Java genauso ein Karriereschritt wie .NET, wenn nicht sogar besser. In jedem Fall würde ich sagen, dass beide Optionen Ihnen viele Beschäftigungsmöglichkeiten bieten.
Die Sprachen sind ziemlich ähnlich, so dass Sie den Übergang wahrscheinlich leicht finden, aber natürlich müssen Sie sich auch mit verschiedenen Bibliotheken und Frameworks vertraut machen (abhängig davon, auf welche Art von Anwendungen Sie sich konzentrieren).
>Vieles von dem, was Sie von der Java-Welt wissen, ist wirklich OO, Muster und so weiter und das wird genauso gut in der .NET-Welt gelten.
Ich arbeite für einen .NET-Shop, und ich kann sagen, dass ich als Einstellungsmanager / Interviewer nicht denke, dass ein Mangel an .NET-Erfahrung von einem graduierten College-Absolventen ein Problem ist - sehr wenige Colleges und Universitäten verwenden Microsoft-Tools, und wie andere Poster gesagt haben, sind die Plattformen konzeptionell ähnlich. Was ich von einem graduierten College-Absolvent erwarte, sind Energie, Enthusiasmus und ein solides Verständnis der CS-Grundlagen.
Das heißt, ich halte einen Vier-Jahres-Abschluss auch nicht für "4 Jahre Java-Erfahrung" - Studentenprojekte sind nett im Lebenslauf, und es ist gut, in Interviews darüber zu reden, aber wenn Sie es nicht getan haben eine Menge Programmierung für Miete nebenbei, ein Jahr "echte Welt" Erfahrung (wo Ihre Aufgabe ist, Software zu schreiben) lehrt mehr über Arbeitsmoral und Lieferung als 4 oder mehr Jahre in der Universität.
Es hängt ein bisschen davon ab, welche Art von Persönlichkeit Sie haben und auf welcher Ebene Sie Java verstehen. Allot von Konzepten sind die gleichen zwischen den beiden Plattformen nur mit verschiedenen Implementierungsdetails, Syntax, Namen etc .. auf einer Ebene finde ich .net einfacher, da Sie oft mit allen Microsoft-Produkten umgehen, die sich ziemlich gut als wo ausrichten Im Java-Bereich musste ich herausfinden, wie man Produkt A von Lieferant X bekommt, um mit Produkt B von Lieferant Y zusammenzuarbeiten. Wenn Sie also mehr als das haben, was ich als "wörtliches" Verständnis von Java bezeichnen würde, dann ziehen Sie um sollte sehr einfach sein.
Ich denke, Sie sollten in der Lage sein, Jobs auf beiden Plattformen zu finden, genauso einfach imho
Wenn dieser Schritt vielleicht auch durch den Eifer motiviert wird, neue Dinge zu lernen, dann würde ich Ihnen raten, sich für etwas anderes wie eine dynamische oder funktionale Sprache zu entscheiden.
Es gibt ein paar Bücher, die sich darauf konzentrieren, von Java zu c # zu wechseln (ich habe sie nicht gelesen, also kann ich sie nicht empfehlen), aber diese sollten dich wirklich in wenigen Stunden / Tagen auf den neuesten Stand bringen / p>
Ich würde mich nicht damit beschäftigen, C # für Karrierezwecke zu lernen. Und ich sage das als glücklich angestellter C # -Programmierer. :-) Oh, ich denke, eine Erklärung ist in Ordnung ...
Es ist viel wertvoller, verschiedene Sprachen zu kennen. Wenn ich eine Position besetze, die C # schreibt, würde ich eher jemanden mit viel Java-Erfahrung und auch etwas Scheme und Erlang (und überhaupt kein C #) einstellen, als jemanden mit nur Java und C #.
C # scheint wirklich zwei Dinge zu kombinieren: die statische Typisierung und Syntax aus der Java-Welt und eine Handvoll zusätzlicher Funktionen und Syntax aus der funktionalen Welt. Wenn Sie Java, Lisp, Python und Javascript kennen, können Sie C # - oder so ziemlich alles andere - in kürzester Zeit lernen. (Sie werden keine Architektenposition bekommen, aber Sie werden das sowieso nicht aus der Schule bekommen.)
Der einzige Trick besteht darin, einen Arbeitgeber zu finden, der genug erleuchtet ist, um dies zu erkennen, und nicht einfach einen, der Feeds durch einen Mustervergleicher füttert. Aber einfach "Lisp" in Ihren Lebenslauf zu setzen ist oft genug, um die richtigen Köpfe zu drehen.
Java und .net sind beide gut, denke ich.
Solange Sie die Portabilität auf Linux, Mac OS oder einem anderen System beibehalten möchten, können Sie Java beibehalten. Wenn Sie .net-Anwendungen für andere Plattformen möchten, müssten Sie sich auf Mono verlassen, was sicherlich ein großartiges Projekt ist, aber meiner Meinung nach noch nicht stabil genug für die Produktion.
Wenn Sie auf der Microsoft-Welt bleiben wollen, betrachte ich C # als eines der besten Entwicklungswerkzeuge, die ich je gesehen habe. Tatsächlich macht das Visual Studio, das viele wichtige Kodierungsfunktionen bietet, die Arbeit wirklich einfach.
sie sind beide vom Lernaspekt her ungefähr gleich. Java hat keine Bedienerüberlastung, was ein wichtiger Punkt in meinen Augen ist. .net könnte andere Funktionen fehlen Java ist besser bei ... und allgemein denke ich in den meisten Anwendungen, .net ist schneller als Java.
hoffe das hat ein bisschen geholfen
Grüße
Wenn Sie in C # schreiben, werden Sie viele Ähnlichkeiten mit der Java-Sprache finden, und die CLR teilt auch viele Konzepte mit der Java-Laufzeit.
Sie könnten auch beide schreiben. Für das Training habe ich ein Chat-Programm in C # und den Server dafür in Java erstellt und hatte eine Menge Spaß dabei. Sie könnten sich auf .NET konzentrieren und gelegentlich Java verwenden. Nichts ist damit verkehrt. Wichtiger als an eine Sprache gewöhnt zu sein, sind die Konzepte, die Sie im Laufe der Jahre gelernt haben, wie Designmuster, Best Practices und Algorithmen. Diese werden Ihnen helfen, ein neues Framework oder eine neue Bibliothek viel schneller zu verstehen, wenn Sie die Muster und den Zweck dahinter erkennen.
Ich stimme den meisten Ratschlägen zu, die andere bereits gegeben haben. Beide Plattformen sollen bleiben und beide sollten gute Karrieremöglichkeiten bieten.
Nur ein Wort der Vorsicht. Sie schreiben "zumindest in meinem Land" in Bezug auf .Net-Möglichkeiten. Ich denke, dass Sie auch "zumindest in meinem Land" berücksichtigen müssen, wenn Sie entscheiden, wie groß der Karriereeinfluss auf kurze Sicht sein wird.
Ich habe viel in den USA und in Deutschland gearbeitet. Meine Erfahrung ist, dass in den USA mehr Menschen für demonstrierte Fähigkeiten als für Resume-Punkte eingestellt werden, aber in Deutschland war die Situation umgekehrt. Sie müssen die kurzfristigen Auswirkungen in Ihrem Land abwägen, es sei denn, Sie möchten angeben, in welchem Land und hoffentlich jemand in SO Erfahrungen mit diesem Land hat.
Ihre Java-Erfahrung und -Konzepte werden sich als nützlich erweisen, wenn Sie zu C # wechseln, und sie sind nicht zu unterschiedlich (bis zu einem gewissen Grad natürlich). Ich werde nicht sehr detailliert auf diesen Aspekt Ihrer Frage eingehen, da andere gute Kommentare abgegeben haben.
Was ich hinzufügen möchte, ist, dass, obwohl Arbeitgeber die schulische Erfahrung nicht als gleichwertig mit der realen Welt betrachten, dies nicht davon abhalten sollte, sie in Ihrem Lebenslauf zu erwähnen. Bereiten Sie sich darauf vor, während des Interviews über sie zu sprechen, sowie über Nebenprojekte oder Interessen, die Sie haben. Diese sind gut für die "erzählen Sie mir von Ihrem Lieblingsprojekt?" und was hat dir an diesem Projekt am meisten gefallen? Art der Fragen. Sei begeistert zu lernen und zeige deine Bereitschaft, deine Fähigkeiten zu verbessern. Sie können auch zeigen, dass Sie bestimmte Aspekte von C # ansprechend finden (vielleicht im Gegensatz zu Java) und dass Sie sicher sind, dass Sie in der Lage sind, Dinge schnell aufzunehmen und sich selbst anzuwenden.
Die Berufserfahrung unterscheidet sich sehr von der Erfahrung, die Sie als Student machen.
Ich persönlich denke, du solltest so viel lernen wie du kannst, während du lernst - das beinhaltet DEFINITIV exotische Sprachen - und nur eine Sprache zu beherrschen, macht dich zu einem One-Trick-Pony.
Also, bringen Sie Ihre Lehrer dazu, Ihnen exotische Sachen beizubringen. Wie funktionale Sprachen mit Pattern-Matching, logische Sprachen für einen völlig anderen Ansatz, um viele Möglichkeiten zu evaluieren, Assembler-Sprache für das eigentliche Bit-Zeug und all diese anderen aufregenden Dinge, die Leute für SPASS und LERNEN tun:)