Nach wie vielen Monaten kann man anfangen, eine Uber-App zu programmieren?

6 Antworten

Hi Gesichterbuch,

hinter der App von Uber stecken ganze Entwicklungabteilungen mit mehreren Teams. Um in solechen Teams zu arbeiten braucht man unheimlich viel Fachwissen und am besten noch ein Uni-Abschluss dazu.

Um in die Nähe dieser App zu kommen, müsstest du mindestens 5 bis 6 Stunden am Tag üben und das die nächsten 3 Jahre, wenn du von Null anfängst. Meine Erfahrung sagt mir das es viel Zeit und Nerven benötigt, um hochwertige App zu erstellen.

Ich wünsche dir Gesichterbuch aber viel Erfolg und ich glaube wenn du am Ball bleibst, kannst du viel erreichen.

Woher ich das weiß:Berufserfahrung – Ich bin gelernter Mediengestalter Digital und Print(IHK)

Gesichterbuch 
Beitragsersteller
 11.06.2024, 13:23

Alles klar , vielen Dank !!

Ja du hast Recht , habe ja auch nicht vor genau so eine App alleine zu bauen ..ich meinte ja so eine ähnliche App die 500 mal vereinfacht ist zum üben

Oder was ich auch gerne programmieren möchte , so eine Chat App ,wo man mit Freunden schreiben und Bilder teilen kann ( also so was wie Facebook aber auch 500-1000 mal vereinfacht ....

Ich glaube nach 3-6 Monaten ,könnte man versuchen so was in Richtung zu bauen oder ?

0
Mirko Marek  11.06.2024, 14:04
@Gesichterbuch

Wenn du fleißig genug bist und auch schnell viel umsetzen kannst was du gelernt hast, kannst es sogar unter drei Monaten schaffen.

0
Erzesel  11.06.2024, 17:44
@Gesichterbuch
Ich glaube nach 3-6 Monaten ,könnte man versuchen so was in Richtung zu bauen oder ?

Anhand Deiner Frage nehme ich mal an, dass Du bisher noch nicht mal die Grundlagen der Programmierung angegangen hast. (geschweige denn der Softwareentwicklung). Sonst würdest Du den Zeitaufwand realistischer beurteilen.

In 3..6 Monaten wirst Du einigermaßen die Grundlagen beherrschen.

Programmieren ist nicht nur:

if (dies == dass) {tue jenes}

Du musst wissen wie Datentypen "zusammenpassen" oder "passend gemacht werden. Du musst jede mögliche Reaktion deines Programms vorausdenken und entsprechende Reaktionen zur Verfügung stellen. Bei Programmen mit Nutzereingaben musst Du vorhersehen, welchen Mist ein Nutzer eingeben könnte, und wie das Programm auf "Blödsinn" reagiert. (Ich programmiere seit fast 40 Jahren und Nutzer machen prinzipiell immer etwas anderes als sie sollen)

Aber es genügt nicht, wenn ein Programm/App sich allein mit Nutzerreingaben und sich selbst beschäftigt, es muss auch mit Schnittstellen/APIs kommunizieren , Aktionen im System auslösen.

Was Dir da vorschwebt, sind allein für die Nutzerschnittstelle (Frontend) GUI-Anwendungen. Dafür musst Du Sachen wie Eventhandling und Objekte verstehen.

(Das nur mal bezogen auf C#. GUIs funktionieren in anderen Sprachen nach sehr ähnlichen/gleichen Prinzipien.)

...und Dein GUI muss dann auch noch mit dem Backend kommunizieren. damit begibst Du Dich aus dem "Dunstkreis" Deiner App heraus und musst die Regeln Deines Servers/Datenbank/anderer Sprachen kennen und befolgen.

Bis Du das alles kennst vergehen nicht nur Monate, sondern Jahre. Währenddessen entwickeln sich Sprachen/Betriebssysteme/APIs weiter und Du musst Dich an neue Features anpassen und auch immer wieder Sachen üben von denen Du meinst sie zu können. Auch Leute wie ich können nicht jede irgendwann mal verwendete Methode oder Property ewig im Kopf behalten und muss gelegentlich mal zurück zu den Wurzeln.

 jeden Tag so 3-4 Stunden lernt?

Und wovon lebst Du?

  • 8 Stunden Schlaf
  • 8 Stunden arbeiten/Geldverdienen/Schule
  • 2 Stunden Wege (von/zur Arbeit, Einkaufen, etc.)
  • 3 Stunden Essen/Körperpflege/Haushalt
  • 1 Stunde Freizeitaktivitäten/Socialmedia/andere Interessen, Aufgaben als Programmieren/Kopf freibekommen
  • 3..4 Stunden Programmieren lernen

...ups der Tag hat nur 24 Stunden...

was das lernen selbst angeht: Du kannst Dich nicht einfach hinsetzen und den "Schalter" im Kopf umlegen. Manch mal musst Du auch einige Sachen wiederholen/rekapitulieren oder Dokumentationen suchen, lesen und deren Kontext ausprobieren/üben. da sind 3..4 Stunden oft verflogen ohne dass man auch nur eine Zeile Code geschrieben hat.

Fang doch einfach mal mit den Grundlagen in einer Programmiersprache an und wenn der ganze "Kleinkram" so gut im Kopf ist, das Du einfach aus dem Stehgreif ohne groß zu überlegen für ziemlich jedes kleine Problemchen eine Lösung aus dem Ärmel schütteln kannst, ist es relativ einfach sich an größere Probleme heranzuwagen.

Für eine App wie sie Dir augenblicklich vorschwebt, reicht eine Programmiersprache nicht aus. Soll sie auch noch auf verschiedenen Beriebssystemen/Architekturen laufen, musst Du auch noch deren Eigenheiten kennen.

0

Kommt massiv darauf an was du im Detail machen willst.

PErsönlich würde ich erstmal mit etwas anfangen das überschaubarer im Umfang ist und wo sich der Aufwand tatsächlich auf Programmieren beschränkt und nicht noch Datenbanken, Datenschutz usw.

Dann beschreib das etwas so genau wie möglich und teil dir das in Packete auf.

Nicht ist ätzender als nicht zu wissen wo man anfängt oder dinge umzusetzen und dann festzustellen das die art der umsetzung dinge die später gemacht werden super Kompliziert machen weil man es falsch angefangen hat.

Sowas kann man quasi ab Stunde 2 oder 3 machen und das Klassische anfängerprojekt ist der Taschenrechner. Der kann anfangen in dem du nur 2 Werte entgegen nimmst, + rechnest und nen Ergebnis ausgibst. Schritt 2 wäre dann auch die Operation entgegen zu nehmen und auszuwerten. Schritt 3 wäre dann komplexere aufgaben zu rechnen mit mehr als 2 Zahlen und einer Operation. Dann mehr als 2 Zahlen und mehr als eine Operation.

Das kann man beliebig weit treiben und ist halt tatsächlich verwendbar und hat relativ schnell nen greifbares ergebnis.

Ist aber nur nen beispiel. Du kannst auch direkt mit deiner Idee anfangen solange du es so runter brechen kannst das das einfachste start Packet mit deinem aktuellen Wissensstand machbar ist. Die Packete für die du viel mehr brauchst kommen dann halt nach hinten


Gesichterbuch 
Beitragsersteller
 11.06.2024, 13:37

Vielen Dank für so eine ausführliche Antwort !

0

Kommt drauf an, wie schnell Du bist und wie genau Du Dir diese App vorstellst. Die grundlegende Funktionalität ist an sich nicht so schwer. Kritisch wirds dann erst mit dem Thema Sicherheit und Zuverlässigkeit. Das ist aber ein Thema mit dem Du Dich in Deiner Position noch nicht so stark beschäften musst^^

Grundsätzlich kann man damit schon nach ein paar Wochen anfangen. Es ist sehr wahrscheinlich dass Du das Projekt aber irgendwann in den Müll hauen wirst, weil Du schnell feststellt dass das was Du noch vor einer Woche geschrieben hast Blödsinn ist :D Aber an sich: Lernen tut man vor allem durch Projekte. Das ist also ein vollkommen natürlicher Verlauf.

Hör nicht auf die Miesepeter hier die Dir irgendwas von Jahren erzählen. Es ist selbstredend, dass eine einzelne Person nicht das Projekt eines Milliardenschweren Unternehmens mit mehr als 30.000 Angestellten 1:1 umsetzen kann. Das schafft auch niemand mit "Jahren" an Erfahrung.


Gesichterbuch 
Beitragsersteller
 11.06.2024, 12:07

Vielen Dank für die Ausführliche Antwort!

Ja du hast Recht , deswegen will ich bald so schnell wie möglich was interessantes bauen weil man ja dadurch viel besser lernt , glaub dadurch lernt man auch sehr gut wenn man einfach anfängt etwas zu bauen !

Und klar, wird es nie im Leben so aussehen auch nicht nach Jahren , es soll zwar in die Richtung gehen wie die Uber App aber halt 500 mal vereinfacht ..

Und noch eine Frage :

das zweite Projekt was ich auch sehr gerne bauen würde , wäre so eine kleine App wo man mit Freunden im Chat schreiben kann und vlt paar Bilder hochladen ( also so was wie Facebook aber auch 500 mal vereinfacht )

Was glaubst du welches von den beiden Projekten soll ich für mein Projekt als erstes nehmen bzw was glaubst du welches einfacher ist umzusetzten ?

0
FlockeFindet  11.06.2024, 12:19
@Gesichterbuch

Der Chat ist definitiv einfacher. Da kannst Du dann auch gleich lernen mit Datenbanken zu arbeiten. Die Uber App wird eine deutlich kompliziertere Datenbank haben^^

0

Deine Ambitionen in allen Ehren, aber hinter Apps wie Uber oder Flaschenpost etc. verbirgt sich jede Menge Backendsoftware.

Die meisten Anfänger sehen lediglich ein Paar Bilder, Buttons und Eingabefelder, welche die App bereitstellt . Allerdings ist die App nur die Schnittstelle zwischen Nutzer und den Servern in der Zentrale.

Dort laufen riesige Managementprogramme, Datenbanksysteme und Finanztranaaktiomssoftware. Dergleichen kann kein einzelner Entwickler programmieren und warten.

Es ist ja nicht nur das Schreiben von Code, sondern man benötigt auch das nötige Wissen zu Personalmanagement, muss Verkehrsnezwerkpläne erstellen/verwalten/aktualisieren, Finanzen verwalten, Zahlungsverkehr abwickeln, nicht zu vergessen rechtliche Aspekte und Datensicherheit.

Das alles zusammen kann kein "Einzelkkämpfer" bewältigen (auch wenn das Projekt 500 mal kleiner ist). Derartige Projekte kann man auch nicht beliebig klein halten. Es erfordert eine gewisse "kritische Masse" um solche Projekte funktionieren zu lassen.

Ich möchte Dich keineswegs in Deinem Tatendrang entmutigen, aber das was Du Dir da "ausgesponnen" hast ist selbst für einen einzelnen Profi viel zu groß.

Ich selbst habe fast 15 Jahre eine Steuerungssoftware für eine chemische Prozesssteuerung entwickelt und gewartet. Dafür musste ich neben der eigentlichen Programmierung auch noch ein gewisses Basiswissen im Bereich Organochemie und Elektrotechnik erwerben. Man kann keine Steuerung bauen, ohne zu wissen unter welchen Voraussetzungen "Dinge" funktionieren/ablaufen.

Vor einigen Jahren bekam ich das äußerst lukrative Angebot die Leitung für die Entwicklung einer Nahverkehrsmanagemetsoftware zu übernehmen. ...und habe dankend abgelehnt. (Man sollte die Finger von Sachen lassen, welche man nicht überschauen kann)

Was Dich betrifft, so versuche Dir einfach mal eine Liste zu machen, was alles nötig wäre, um eine App wie Uber zu erstellen betreiben.

zB.:

  • Du musst wissen wo sich freie Fahrer zu welchem Zeitpunkt befinden.
  • In welcher Zeit können diese beim Kunden sein.
  • Wie lange benötigen diese bis zum Ziel.
  • Wie planst Du Anschluss-/Leerfahrten.
  • Welche Streckenführung ist Optimal.
  • Wie wird bezahlt/abgerechnet.
  • Welche APIs welcher Finanzprovider/Banken stehen Dir zur Verfügung.
  • Finazamt?
  • Versicherungen?
  • Datensicherheit (Fahrer-/Kundendaten)?
  • Fehler-/Problemmanagement ? (Wird oft unterschätzt)

Das war nur erstmal das Minimum!

Optional käme noch hinzu:

  • Anbindung an Netzpläne anderer (Nah)Verkehrsnbieter.
  • Werbung (+Einahmen) für Hotels/Restaurants am Zielort.

...ein ganz hübscher Berg von Aufgaben, welche auf den Servern am Standort erledigt werden muss ohne die Deine App lediglich bunte Knöpfe ohne Nutzen wäre.

Du hattest in den Kommentaren als Alternative eine Chat-App erwähnt. Auch da kommst Du nicht ohne Server uns Datenbanken aus. Selbst wenn Du auf P2P-Vebindungen setzt, musst Du Teilnehmer /IP-Adressen/Authentifizierungen/Verschlüsselung etc. verwalten/koordinieren.

...und wieder musst Du auch juristische Belange berücksichtigen... (was passiert, wenn Deine App für kriminelle/terroristische Aktivitäten genutzt wird?

Alles nicht so einfach wie ein Laie sich die Sache vorstellt.


iSc0field  12.06.2024, 13:35

Besser hätte man darauf nicht antworten können, danke.

0

Ein Projekt wie Uber, auch wenn es vom Umfang her kleiner und unkomplizierter ist, erfordert schon einige Jahre an Programmiererfahrung, um das vernünftig umsetzen zu können, da ist meiner Meinung nach nichts nach paar Monaten. Alleine die ganzen Sicherheitsaspekte, die so eine App erfüllen muss, nehmen einen nicht unerheblichen Teil der Arbeit ein.

Versuche es lieber mit etwas unkomplizierteren Projekten und steigere dich mit der Zeit.

Woher ich das weiß:Berufserfahrung – Full-Stack Entwickler bei Mercedes-Benz

Gesichterbuch 
Beitragsersteller
 11.06.2024, 00:31

Alles klar , danke

und was glaubst du wie eäre es mit so einer Lieferdienst App wie Flaschenpost / Lieferando könnte man sich nach sagen wir 3-4 Monaten an so ein Projekt sich trauen ? Wenn nein , kannst du paar Alternativen nennen , welche man dann nach paar Monaten bauen könnte ?

0