Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Guten Tag,

ich mache derzeit eine 2 jährige Ausbildung zum Informatiker für Game- und Multimedia im Rahmen einer beruflichen Umschulung, die Kosten trägt die Deutsche Rentenversicherung. Über den Wert der Ausbildung will ich nicht diskutieren, ich weiß, dass es da kontroverse Meinungen gibt.

Meine Frage ist vielmehr folgende. Ursprünglich sah der Plan vor, JavaScript, CSS, HTML, PHP, Java und C# zu behandeln. Nun wurde kurz bevor das Thema dran ist, Java gestrichen. Der Teilbereich Android-Entwicklung soll nun mit C# abgedeckt werden. Ich bin darüber nicht sehr erbaut, denn ich habe fest mit Java gerechnet. Ich bin ein guter Autodidakt, deshalb gehts mir jetzt gar nicht um das Wissen ansich. Die Sprachen ähneln sich ja auch sehr. Trotzdem bin ich sehr skeptisch, da Java für Android nach wie vor Standard ist, denke ich.

Ich wäre sehr dankbar für eine fachliche Einschätzung ausserhalb der Schule, um entsprechend reagieren und arrgumentieren zu können.

Ich danke schon vorab jedem, der sich kurz die Zeit nimmt! Vielen Dank!

Beste Grüße Sebastian

 

Geschrieben

Aus Erfahrung in Android-Entwicklung sowohl mit Java als auch mit C# kann ich dir sagen, dass du dir da keine größeren Sorgen machen solltest. Ich halte es zwar auch nicht für sinnvoll, Android-Entwicklung mit C# beibringen zu wollen, aber es ist auch nicht so, dass die Konzepte nicht übertragbar seien.

Bei Spieleentwicklung wird's ja wahrscheinlich eh' um Unity gehen und das ist nunmal C#, auch auf Android. Wenn's um Xamarin geht, sind die Android-Strukturen ziemlich weitgehend 1:1 abgebildet (mit Ausnahme von Fragments und so Zeug, aber das kann man sich dann auch noch selber beitragen, wenn man unbedingt Java machen möchte).

Generell würde ich zwar immer empfehlen, Android-Entwicklung in Java zu lernen, kann es aber auch gut nachvollziehen, dass man die Zeit nicht damit verschwenden möchte, nach C# auch noch Java einzuführen, wenn sich die Sprachen zum einen sehr ähneln und C# auch zu den anderen Themen (wie bspw. Unity) passt.

Geschrieben

Sollen denn noch Android-Apps gebaut werden?

Sofern ihr Android-Apps noch bastelt, werdet ihr wohl C# und Xamarin verwenden und der Vorteil von Xamarin ist halt, dass ihr Apps schreiben könnt, die nicht nur auf Android laufen, sondern auch unter Windows und iOS. Im Spielebereich wird dann wohl Unity verwendet und unter Unity verwendet man ebenfalls C#. Da ist es schon Sinnvoll Java zu streichen und komplett auf C# zu setzen. So kann man Einarbeitungszeit einsparen und die Zeit in den relevanten Themen stecken. Von daher denke ich mal, passt das schon recht gut. Es sollte halt klar sein, dass eine Ausbildung oder Umschulung die Softwareentwicklung nicht vollumfänglich erfassen kann, denn dafür ist das Gebiet einfach zu groß und daher muss man eben Abstriche im Kauf nehmen. 

 

Geschrieben

Syntaktisch decken sich die beiden Sprachen größtenteils, die Feinheiten wie Generics, innere Klassen, LINQ usw. werdet ihr wahrscheinlich bestensfalls kurz streifen.

Von daher  kann der Fokus auf C# sinnvoll sein. So kann mehr Stoff abgedeckt werden.

Geschrieben

Hallo, vielen Dank für eure Antworten. Ok dann bin ich da ein bisschen klarer, danke. Ich glaube dennoch, für mich wärs gut gewesen, ich komme gut mit, lerne fast immer schon ein Stück vorraus. Es wäre halt eine Sprache mehr gewesen, die ich dann direkt in der Ausbildung hatte, wenn auch nicht tief, aber sie war Ausbildungsinhalt. Beibringen kann ich mir sowieso das meiste selbst, darum gehts ja nicht.  Dagegen ausrichten kann ich wohl ohnehin nichts. Gefallen tut es mir aber nicht.

Danke jedenfalls für die schnellen Antworten!

Geschrieben
vor 25 Minuten schrieb Se_bas_tian:

Es wäre halt eine Sprache mehr gewesen, die ich dann direkt in der Ausbildung hatte

Ich weiß, du meinst das nicht so, aber: Die Anzahl der Programmiersprachen, die jemand kennt, ist nahezu unerheblich später. Such' dir eine aus und gehe da tiefer. Wenn du gerne Java machen möchtest, ist das mit dem Grundlagenwissen aus C# wirklich kein Problem.

Geschrieben
vor einer Stunde schrieb arlegermi:

Ich weiß, du meinst das nicht so, aber: Die Anzahl der Programmiersprachen, die jemand kennt, ist nahezu unerheblich später. Such' dir eine aus und gehe da tiefer. Wenn du gerne Java machen möchtest, ist das mit dem Grundlagenwissen aus C# wirklich kein Problem.

Genau.

Tiefergehende Programmierkenntnisse in einer Sprache sind beileibe wertvoller als "Hello World" in zwanzig Sprachen hinzukriegen.

Geschrieben

Hallo,

ja, ich hab die Ausbildung nicht gestern erst begonnen, insofern ist das klar. Ich denke es kommt rüber, was ich sagen will oder? Zudem finde ich es auch merkwürdig, Ausbildungspläne sind nicht irgend ein Papier. Naja wie gesagt, kann ich nicht ändern. Vielen Dank nochmal!

Geschrieben

Die Schwierigkeit bei Android ist nicht die Sprache, sondern die Architektur. Wenn ihr für Android in C# programmiert, dann nehme ich an, dass ihr Xamarin verwendet. Auch hierbei musst du dich an die Androidarchitekur einarbeiten und ein Wechsel zu Java (oder besser noch: Kotlin) wird dann einfach sein. Also lass dich am besten einfach mal überraschen, das wird alles gar nicht so schlimm, wie du es dir im Moment vorstellst. 

Geschrieben
vor 7 Stunden schrieb pr0gg3r:

Die Schwierigkeit bei Android ist nicht die Sprache, sondern die Architektur. 

Sehe ich genauso. Es ist egal, ob man jetzt Xamarin.Android oder das Android SDK nimmt. Der Unterschied ist da nicht besonders groß. Die Methoden und Klassen sind da weitgehend gleich. Entscheidend ist, dass man versteht, wie Android tickt. Ein Umschwenken auf Java ist dann nicht mehr ganz so tragisch, wenn man unbedingt mit Java entwickeln möchte. 

Geschrieben

Hallo vlt. hab ich den Sachverhalt nicht ausreichend beschrieben. Ursprünglicher Plan war von Anfang Juli bis Mitte Oktober Androidentwicklung mit Java und Android-Studio. Der jetzige Plan ist Java und Android Studio sind gestrichen, C# wird vorgezogen (eigentlich ab Mitte Oktober) die Apps sollen mit Unity und C# erstellt werden.

Unity ist nunmal eine Game Engine und der Beruf dreht sich nur zum teil um Games, zuvor hatten wir 2 Projekte einmal ein Webshop und dann eine Uploadplattform mit Redaktion im Hintergrund. Um Xamarin gehts also nicht. Und eben auch nicht ausschließlich um Games. Ab Oktober bis nächsten Mai wäre Unity ohnehin dran gewesen, zwar mit Fokus auf Konsole, aber das ist ja egal. Besten Gruß

Geschrieben

Du machst also eine rein schulische Ausbildung an einer Fachschule. Und der Lehrkörper hat nun eine Änderung des Lehrplans entschieden? Oder hat ein einzelner Lehrer entschieden seinen eigenen Unterricht zu ändern und euch z.B. die objektorientierte Programmierung anhand von Java nun anhand von C# zu vermitteln? Und geht euch dadurch ein grundsätzliches Thema verloren oder passt es nur nicht in deine persönliche Planung?

Geschrieben (bearbeitet)
vor 4 Stunden schrieb Sullidor:

 Und geht euch dadurch ein grundsätzliches Thema verloren oder passt es nur nicht in deine persönliche Planung?

Naja wie zuvor beschrieben, es geht mir vor allem darum, dass Android Apps mit unity 3d gemacht werden sollen und nicht wir zuvor im Rahmenplan angekündigt mit Android Studio  und Java oder eben von mir aus auch c# und Xamarin. Die Ausbildung hat zwar Schwerpunkt auf Spiele, aber eben nicht nur,  zuvor gab sowohl Spiele-Projekte als auch andere, wie zuvor schon beschrieben. Und Unity 3d wäre dann ab Oktober planmäßig für 7 Monate sowieso dran gewesen. Die Entscheidung kommt von der Schulleitung.

Natürlich geht es in erster Linie um objektorientierte Programmierung. Und klar ist es nachrangig womit. Dass in einer 2 jährigen Ausbildung nicht  so viel gemacht werden kann, ist  auch klar. Ich bin auch so nicht eingestellt, habe Vorkenntnisse und investiere viel Zeit ausserhalb des Unterrichts. Ich bring mir das auch selber bei, was ich denke zu brauchen oder mich interessiert und hier nicht lerne.

Trotzdem der Weg gefällt mir nicht. Es ist auch kein Weltuntergang, wirklich gut und für mich von Vorteil find ich diese Entscheidung nicht. Und ich wollte wissen, ob ich das übertrieben sehe oder zu recht. Soweit mein Anliegen. Danke, dass Du dir Zeit nimmst.

Bearbeitet von Se_bas_tian
Geschrieben

Die Entscheidung ist eigentlich zu begrüssen denn Spiele macht doch heute niemand mehr für Android mit dessen Boardmitteln. Das ist ja so, als würde ich meine Spiele noch mit C++ und SFML schreiben. Da macht es Sinn, direkt ein Tool wie Unity3D zu nutzen das 1. Industrie Standard ist und 2. Ihr euch auf das Kernthema fokussieren könnt. Unity3D ist in seiner grundsätzlichen Architektur nämlich deutlich einfacher um loszulegen. Bei Android hättet ihr euch erstmal Tage durch die Architektur kämpfen müssen wovon ihr das meiste in der Praxis ohne solide Kenntnisse in Java und OOP sowieso nicht verstanden hättet.

In meinen Augen ist das besser für euch.

Geschrieben (bearbeitet)
vor 6 Stunden schrieb Arvi:

Unity3D ist in seiner grundsätzlichen Architektur nämlich deutlich einfacher um loszulegen. Bei Android hättet ihr euch erstmal Tage durch die Architektur kämpfen müssen

Nicht nur das. Mit dem Android SDK, wären sie im "Low-Level"-Bereich unterwegs. Sprich, sie hätten die OpenGL ES-Befehle selbst ausführen müssen. Dies ist zwar interessant, wenn man die Funktionsweise einer Grafik-API verstehen möchte aber dies würde dazu führen, dass man den Gaming-Bereich nie erreichen würde, weil man in der ganzen Ausbildung nur mit der Computergrafik beschäftigt wäre. z.B. mit der Linearen Algebra, Rendergleichung, Beleuchtungsmodellen, Reflexion, Rendering-Pipeline, Transformationen, Interpolationen, Triangulierung, Tessellation und dann fehlt noch der gigantische Teil der Physik.

In meiner Assistentenausbildung zum Medieninformatiker haben wir in der Computergrafikübung drei Spiele mit C und OpenGL entwickelt: Pong (2D), Pac-Man (2D) und Sokoban (3D) und das war schon recht aufwendig, weil wir u.a. selbst Datenstrukturen für die Levels in Pac-Man und Sokuban überlegen mussten und wie daraus Grafiken werden oder selbst berechnen mussten, wie der Ball in Pong an den Wänden abprallt. Das alles nimmt dir aber Unity 3D schon ab. Unity 3D ist nichts weiter als eine weitere Abstraktionsschicht über dem Android SDK, was eine Activity mit einem OpenGL ES-Fenster, dem Game-Loop und noch viele weitere Funktionen bereitstellt (Physikberechnung, Beleuchtung, etc.). Du brauchst dich also z.B. nicht mehr darum zu kümmern, wie jetzt nun die Implementierung eines Algorithmus aussieht, der ein Rechteck rotieren lässt, wie ein Kreis gezeichnet wird oder wie ein Objekt fällt. Du kannst dir ja mal dies durchlesen, was du alles mit dem Android SDK machen müsstest, nur um ein Dreieck zu zeichnen und das ist nur ein 2D-Objekt ohne Textur. Hast du echt Lust darauf, das alles zu entwickeln?

Das Android SDK ist in erster Linie nicht dafür gedacht Spiele zu entwickeln, sondern gewöhnliche Apps, die eine androidtypische GUI haben. Betrachte das Android SDK wie WinForms, WPF oder Qt. Keiner würde auf die Idee kommen, damit ein 3D-Spiel entwickeln zu wollen. 

Bearbeitet von Whiz-zarD
Geschrieben (bearbeitet)
vor 9 Stunden schrieb Whiz-zarD:

Du brauchst dich also z.B. nicht mehr darum zu kümmern, wie jetzt nun die Implementierung eines Algorithmus aussieht, der ein Rechteck rotieren lässt, wie ein Kreis gezeichnet wird oder wie ein Objekt fällt. Du kannst dir ja mal dies durchlesen, was du alles mit dem Android SDK machen müsstest, nur um ein Dreieck zu zeichnen und das ist nur ein 2D-Objekt ohne Textur. Hast du echt Lust darauf, das alles zu entwickeln? 

Ja ehrlich gesagt schon ja, denn so wars gedacht. Ausserdem, ich habe geschrieben, die Ausbildung dreht sich eben nicht allein um Spiele und ich hätte den Weg gerne wenigstens angeschnitten. Mit der Arrgumentation hätten wir auch nicht für s Web Spiele in JavaScript schreiben brauchen. Da gings auch nicht nur um Pong. https://seifenblasenblaeser.de/galactica/

Das  wäre eines von meinen. Naja ok seis drum. Mir gefällt es trotzdem nicht.

Bearbeitet von Se_bas_tian
Geschrieben
Am 8.7.2018 um 03:38 schrieb Arvi:

Die Entscheidung ist eigentlich zu begrüssen denn Spiele macht doch heute niemand mehr für Android mit dessen Boardmitteln. Das ist ja so, als würde ich meine Spiele noch mit C++ und SFML schreiben.

Du wirst lachen, aber es gibt genug Leute, die das mit Erfolg tun. Auch SDL ist noch ordentlich verbreitet, vor allem in v2. Abgesehen davon, dass SFML eine ziemlich leistungsstarke Bibliothek ist, die unter anderem Vertex-Arrays von Haus auf bietet und somit die Grundlage für effizientes Vertex-Batching. ;)

@TE: ich glaube nicht, dass du die Ansprüche an eine gewisse Programmiersprache stellen solltest. Dein Ausbildungsziel sollte sein, selbstständig denken und Probleme lösen zu können und nicht Android-Apps schreiben zu können. Kannst du mit C# umgehen, kannst du auch lernen, wie die JVM funktioniert. Es ist egal, wie du deine Basis schaffst, hauptsache, du tust es. Da ich beispielsweise verstehe, wie eine GPU und die Rendering Pipeline funktioniert, was Buffer sind und mit C umgehen kann, kann ich meine Programme mit OpenCL beschleunigen und mein Render-Backend von OGL auf Vulkan umstellen. Dazu gehört aber, sich mit der Materie an sich zu beschäftigen, nicht nur, mich auf eine Programmiersprache zu fixieren. Akzeptiere also am Besten die Änderung und mach das Beste draus.

Geschrieben
vor 34 Minuten schrieb D-eath:

Du wirst lachen, aber es gibt genug Leute, die das mit Erfolg tun. Auch SDL ist noch ordentlich verbreitet, vor allem in v2. Abgesehen davon, dass SFML eine ziemlich leistungsstarke Bibliothek ist, die unter anderem Vertex-Arrays von Haus auf bietet und somit die Grundlage für effizientes Vertex-Batching. ;)

Ich habe früher mit SMFL selber schon ein kleines RPG, einen dazu passenden Level-Editor und einen Plattformer umgesetzt. Und so wie bei mir ist es bei den meisten Nutzern dieser "Low-Level-Libarys". Wenn programmieren reiner Selbstzweck ist und man einfach Bock hat eine Engine zu bauen: Go for it. Wer hauptsächlich ein Spiel realisieren will, der überlässt das bauen von Engines lieber Profis und konzentriert sich auf das Wesentliche: Die Logik des Spiels und das Gamedesign. Deshalb ist zwar SDL und SFML noch weit unter "Fricklern" verbreitet, im Vergleich werden dazu aber kaum nennenswerte kommerzielle Produkte mit gebaut. Es ist natürlich eine intellektuelle Herausforderung, aber eben auch Schade um die Zeit, da sich Projekte mit vergleichbaren Netto Umfang mit einer Engine wie Unity3D eben mit einem Bruchteil des Aufwandes realisieren lassen. Das ist halt so, als würde ich jemanden der programmieren lernen will, erstmal ein Betriebssystem bauen lassen mit eigener Prozess- und Speicherverwaltung. Solche Freaks gibt es auch, aber ich sehe hier wenig Vorteile.

Auch für den Unterricht in dem es hauptsächlich um die Grundlagen der Programmierung geht halte ich eine Engine wie Unity3D für die bessere Wahl. Man kann dort wunderbar an Praxisprojekten üben und hat direkt sichtbare Ergebnisse, die widerum motivieren selber Dinge auszuprobieren. Bei dem Bau einer Engine geht es nicht um die Grundlagen der Programmierung, sondern letztendlich um die physikalischen/mathematischen Fragestellungen dahinter. Das nimmt in meinen Augen gerade bei Anfängern zu viel Raum ein und lenkt vom Wesentlichen ab. Außerdem muss erstmal eine riesige Verkettung von algorithmischen Einzelschritten implementiert werden, bevor man überhaupt etwas sieht. Bei einer Engine kann ich mich direkt auf die Logik stürzen und kleinere Aspekte nach und nach implementieren.

 

Geschrieben

Damit hast du auch vollkommen Recht. Es ist allerdings, wie ich oben geschrieben habe, absolut irrelevant, ob du mit C# oder Java anfängst. Auch ohne Implementierung komplexer Logik müssen Grundlagen erst mal sitzen, da man ansonsten zum Frickler wird, dem der Blick fürs Wesentliche fehlt: wie erstelle ich Software auf möglichst sinnvolle Art und Weise, ohne am Schluß unwartbaren Code zu bekommen? Genau deswegen sollte man nicht nur Praxisprojekte umsetzen, um möglichst schnell Ergebnisse zu bekommen, sondern auch klein anfangen - und wie gesagt, Programmiersprache und Framework ist da irrelevant.
Was die Vorteile davon betrifft, sich mit der Materie zu beschäftigen: um wachsen zu können, müssen Basics vorhanden sein. Basics heißt auch, Bucket Sort oder so mal selbst geschrieben und darüber nachgedacht zu haben. Oder ein Visitor Pattern zu entwickeln. Natürlich braucht das in der Praxis kein Mensch. Es hilft aber ungemein, es dennoch zu tun, da hier die Grenze zwischen Implementierern und Entwicklern gezogen wird. Meiner Ansicht nach ist es falsch, sich darauf zu versteifen, irgendetwas besonders gut und schnell zu können, statt sich aufs Wesentliche zu konzentrieren. Gerade in der Spieleentwicklung ist es relevant, algorithmisches Denken zu lernen. A* kann man so oder so implementieren. Hermite-Interpolation für Kamerafahrten? Alles toll, wenn man gelernt hat, selbstständig zu denken und nicht nur Tools anwendet. So baut man kein Wissen und Verständnis auf, man setzt nur zusammen. Auch mit Unity oder UE müssen gewisse Teile noch selbst gemacht werden. Was hilft es dir, wenn du mal Havok integrieren sollst (musst ja nicht dein Leben lang im selben Job bleiben) und nicht mal kapierst, warum deine Körper miteinander interagieren auf die Art und Weise, wie sie es tun oder du etwa Modifikationen vornehmen sollst?
Von daher meine klare Meinung: erst mal anfangen, dann Ansprüche an Umgebungsparameter wie Programmiersprachen stellen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...