Ich habe meine berufliche Entwicklungskarriere als Webentwickler mit PHP begonnen. Bald darauf wechselte ich zum .NET-Ökosystem und setzte die Webentwicklung mit C# und dem ASP .NET MVC-Framework fort. Bis vor kurzem habe ich nur Web-Apps erstellt...
Vor ein paar Monaten habe ich angefangen, mobile Apps mit Android und iOS zu entwickeln, und dank Xamarin kann ich dann immer noch C# verwenden. Der Grund, warum ich diesen Artikel geschrieben habe, besteht darin, meine Gefühle nach dieser Änderung mitzuteilen.
Warum ich diese Entscheidung getroffen habe
Sie fragen sich vielleicht, warum ich mich entschieden habe, von der Webentwicklung zur mobilen Entwicklung zu wechseln. Weil ich etwas Neues machen und neue Fähigkeiten erlernen möchte, obwohl ich noch viel über Webprogrammierung lernen muss.
Ich denke, dass mobile Apps eine glänzende Zukunft haben, obwohl es bereits viele Apps in Online-Shops gibt. Es kommen jedoch neue mobile Geräte wie Smartwatches, die den Entwicklern neue Möglichkeiten bieten. Dies ist eine großartige Gelegenheit zu lernen, wie man Anwendungen für mobile Geräte erstellt.
Ganz zu schweigen davon, dass das Unternehmen, für das ich derzeit arbeite, zufällig die Möglichkeit hat, neue Android- und iOS-Anwendungen in meiner Lieblingssprache (C#) zu entwickeln. Warum also nicht diese Gelegenheit nutzen?
Neues Programmiermodell
Ich weiß, dass sich die Art und Weise des Programmierens ändern wird. Dies habe ich aus einem Projekt namens Windows Phone gelernt, das ich zuvor erlebt und an der Entwicklung mobiler Anwendungen beteiligt war . Aber ich war nicht bereit für das, was ich tun würde, und glaubte nicht, dass ich es sein könnte.
Im Gegensatz zu Anwendungen auf Websites, die einen bestimmten Lebenszyklus haben, können Sie auf eine Anfrage nicht einfach mit einer Antwort antworten. Fast alles, was ich über das Erstellen von Webanwendungen gelernt habe, hilft mir nicht weiter – das Paradigma ist völlig neu.
Asynchrone Programmierung ist in diesem Bereich obligatorisch, da die Anwendung ins Stocken gerät, wenn alles auf dem Benutzeroberflächen-Thread (UI-Thread) ausgeführt wird. Ich wollte schon immer meine Fähigkeiten in diesem Bereich verbessern und habe einen tollen Weg gefunden, dieses Ziel zu erreichen.
Die Trennung der Belange ist ebenfalls anders. Es gibt keinen Model View Controller (MVC) mehr, sondern es wird das Model View ViewModel (MVVM)-Muster verwendet. Obwohl ich es verwendet habe (in WPF und Windows Phone), ist es nicht auf dem gleichen Niveau und ich muss noch viel lernen.
Natürlich müssen Sie auch einen Simulator verwenden, um die Anwendung zu testen. Jedes Mal, wenn Sie testen möchten, müssen Sie den Simulator erstellen und bereitstellen. Sie können die Seite nicht einfach aktualisieren, um die Änderungen zu sehen. Die Rückkopplungsschleife ist lang und dauert meist mehrere Minuten, sodass das Debuggen langsam und kritisch ist.
Verlassen Sie Ihre Komfortzone
Ich habe vor etwa zwei Monaten mit der Arbeit an der App begonnen und es gibt noch viel zu lernen. Ich musste mich mit zwei Ökosystemen (Android und iOS) auseinandersetzen, mit denen ich keine Erfahrung hatte, zwei Frameworks, von denen ich nichts wusste (Xamarin und MvvmCross) und einigen Geschäftsanforderungen, die nicht einfach zu erfüllen waren. Glücklicherweise weiß ich zumindest, wie man C# verwendet.
Jetzt kämpfe ich jeden Tag mit vielen Dingen, die ich bedenken muss. Die wichtigsten sind einige „Wie mache ich das?“ im Zusammenhang mit meiner neuen Entwicklungsumgebung. Es gibt auch viele „Was wäre, wenn?“-Fragen: „Was ist, wenn das Netzwerk nicht verfügbar ist“, „Was ist, wenn diese Lösung zu langsam ist?“, „Wie kann man den Kunden das beste Erlebnis bieten?“…
Manchmal kann ich den ganzen Tag über nichts produzieren. Um ehrlich zu sein, fühle ich mich dann wirklich nutzlos und ein Betrüger – da ich bei der Arbeit nichts Wertvolles produzieren kann Sie bezeichnen sich als professionellen Softwareentwickler?
Nun, ich denke, dieses Gefühl ist, als würde man seine Komfortzone verlassen und sich auf dem Höhepunkt und im Tal der Lernphase befinden.
Lernrate mit Höhen und Tiefen
Gib nicht auf
Aber ich bin nicht der Einzige, der den Wechsel vornimmt, ich bin nicht allein in diesem Kampf. Jeder im Team muss sich dem gleichen Lernaufwand stellen, Senior-Entwickler und Junior-Entwickler gleichermaßen.
Wenn ich jetzt auf meine Reise in den letzten zwei Monaten zurückblicke, wird mir klar, dass ich immer noch verschiedene Mängel habe und noch ein langer Weg vor mir liegt, aber ich habe auch viel gelernt, so wie ich es jetzt tue Ich bin mit den Konzepten der asynchronen Programmierung und diesen MVVM-Mustern relativ vertraut.
Wenn ich ein professioneller Mobilentwickler werden möchte, muss ich noch weiter lernen, meine Reise fortsetzen, die Fähigkeiten erlernen, die mir fehlen, und Werte schaffen, die den Erwartungen der Kunden entsprechen. Auch wenn mir mein Job von Zeit zu Zeit unglücklich macht, bereue ich es nicht, denn es ist eine großartige Gelegenheit zum Lernen. Egal wie lange es dauert, ich werde Erfolg haben.