Als Anfänger Chat-App programmieren aka (Facebook)?
Eigentlich wollte ich eine vereinfachte Uber-App versuchen nachzubauen, habe aber in der ersten Frage viele Antworten bekommen, dass es zu schwer für einen Anfänger ist und z.B. eine Chat-App etwas einfacher wäre.
Deswegen will ich in drei Monaten mein erstes großes Projekt anfangen zu bauen und zwar so eine Chat-App, wo man mit Freunden schreiben und Fotos teilen kann. Also so eine Art Facebook (aber sehr sehr vereinfacht!).
Ich habe gestern auch den Film "The Social Network" nochmal geguckt und jetzt will ich noch mehr die App bauen.
Jetzt die Frage: Hat jemand schon von euch Erfahrung mit einer Chat-App?
Was müsste ich alles wissen (Webentwicklung)?
Und wie viele Stunden brauche ich circa für die einzelnen Themen, um sich an dieses Projekt zu trauen?
Ich finde, dass man beim Learning-by-doing sehr gut lernt und deswegen will ich auch nicht nur lernen, sondern einfach versuchen, auch etwas zu bauen und wenn ich nicht weiterkomme, dann kurz nachschauen, versuchen zu verstehen und zu lernen, was ich machen muss und dann umsetzen, usw..
Auch wenn es ein mega Fail und die App am Ende nicht gut wird, habe ich trotzdem dann viel gelernt und werde es beim nächsten Mal besser machen.
Also zwei Fragen: Was müsste ich alles dafür können und wie viele Stunden Lernzeit ungefähr braucht man dafür, um damit anfangen zu können?
5 Antworten
Für die Grundfunktionen eines einfachen Chat bedarf es nicht so viel und man schnell etwas in der Richtung umsetzen kann. Ohne fundiertem Vorwissen wird es jedoch schwieriger, wenn's um Themen wie Datensicherheit geht. Dasselbe gilt auch für den allgemeinen Umgang mit Datenbanken und der Absicherung von Nutzerdaten.
Ich finde dass man beim learning by doing sehr gut lernt (...)
Man kann durch „learning by doing” vieles lernen und es ist durchaus vorteilhaft, wenn man ein konkretes Ziel resp. eigene Projekte vor Augen hat. Dadurch lässt sich auch ein Rahmen setzen, welche Technologien dafür eher oder weniger infrage kommen. Dir nützten die besten Werkzeuge nichts, wenn du damit nicht umgehen kannst.
Beschäftige dich mit JavaScript (TypeScript) sowie Frameworks und Bibliotheken, die darauf basieren oder aufsetzen. Sei es Angular, React (React Native) oder Vue (Nuxt). Ebenso Technologien und Sprachen die im Backend nützlich sein können. Angefangen bei Node.js, über PHP, Go, Python, Java oder die Welt der „C-Sprachen.”
Das gilt ebenso für den Umgang mit APIs, unterschiedlichen Datenbanken oder ebenfalls fertige Bibliotheken und Systeme, die bereits Aufgaben übernehmen können. Sprich das Rad nicht komplett neu erfindest, sondern auf bestehende Systeme aufsetzt - und so auch in puncto Sicherheit bereits besser aufgestellt bist.
Also 2 Fragen was müsste ich alles dafür können und wir viele Stunden Lernzeit ungefähr braucht man dafür um damit anfangen zu können?
Du kannst dir zwar in relativ kurzer Zeit eine Menge an Grundlagenwissen anlesen, dass reicht aber bei weitem nicht dafür aus, um es auch effizient und sicher anwenden zu können. Alleine schon deshalb nicht, weil sich die vorhandenen Technologien stetig weiterentwickeln und heut gelerntes morgen obsolet sein kann.
Als es noch kein Facebook gab, hatten viele Webseiten ein Gästebuch. Ich habe damals ein eigenes Gästebuch mit PHP geschrieben. Dafür ist HTML, CSS, PHP und SQL notwendig. Wobei du sogar eine No-SQL-Datenbank aufbauen kannst, um den Umgang mit Daten und Dateien zu üben.
Ich würde jederzeit dieses Gästebuch schreiben. Soweit ich mich erinnere, war es ein sehr wichtiges Projekt, dem ich meinen Beruf zu verdanken habe.
Ein Forum wäre die nächste Möglichkeit. Auch hier dasselbe. SQL, PHP, HTML und heutzutage ist JS gar nicht mal so unwichtig wie früher.
Beim Chat brauchst du Grundlagen in der Socket-Programmierung (Netzwerk). Clients, die Chatten und der Server, der alles verarbeitet. Der Server läuft über deine Heimnetz-IP (192.*) und die anderen Geräte können über die IP auf die Seite zugreifen.
Auch wenn das Chatsystem komplexer ist, versuchs einfach. Übung macht den Meister. Du darfst dich bloß nicht entmutigen lassen, wenn es mal nicht klappt.
es gibt viele Methoden ein Chatsystem zu bauen, ich hatte selbst in den 90er jahren ein reines Chatsystem mit reloads des kompletten Chatfensters in frames gebaut, später (ende der 90er) dann (vor sockets und ajax) ein Pseudo Ajax mit einem unsichtbaren frame das reloaded hat und seine parameter dann via javascript in das chatfenster kopiert hat (ohne flackern dann).
Heute gibt es natürlich viel bessere methoden, aber selbst eine so einfache funktioniert heute immer noch und zum probieren eigentlich ok. Du hast ein Frame das die Nachrichten absendet, ein script welche die nachrichten in chatform bringt (am besten via MySQL Datenbank) und in einem anderen Frame ausliefert. Und dieses Frame lädst du dann alle 5 sek. neu.
Fang jetzt an, kleine Sachen zu machen. In FB stecken Milliarden Euro, das kann man nicht alleine nachbauen. Die sind doch nicht alle dumm, sondern ausgewählt gut. Du kannst auch nicht in 3 Monaten anfangen zu trainieren und den Weltrekord auf 100m um 5 Sekunden verbessern. Das wird einfach nicht passieren.
Du wirst kleine Teile nachbauen können und an denen Spaß haben.
Tatsächlich ist eine relativ umfangreiche Version von Facebook damals von lediglich Mark Zuckerberg und ein Paar "Freunden" entstanden. Alles weitere kam danach.
Es soll ja auch kein Facebook sein , hab ja geschrieben es soll in die Richtung gehen aber halt 500 mal vereinfacht , also so eine einfache Chat App wo man noch höchsten noch Bilder hochladen kann und Freunde hinzufügen kann und mit denen schreiben , so was meine ich ?
Oder wird es auch zu kompliziert?
Wenn ja was würdest du empfehlen zu bauen ?
wv stunden lernzeit ist abhängig von verschiedenen faktoren, vor allem deiner erfahrung.
als blutiger anfänger könnte es von 3 tagen bis 3 monaten dauern. und selbst dann ist es keine feste regelzeit.
und du musst zumindest dafür im besten fall wissen wie man ein backend/server schreibt. das heißt eine dementsprechende sprache (js,java,php,go,c#,python (eigentlich kannst du in gefühlt jeder sprache ein backend schreiben)).
das beinhaltet natürlich dann, dass du ein wenig über protokolle weißt wie beispielsweise http.
dann musst du wissen wie du den chat gestalten willst. was meine ich damit? na ob es über den browser aufrufbar sein sollte oder über eine einfache desktopanwendung, über das terminal etc.
als anfänger empfehle ich dir einfache desktopanwendung denn später kannst du immernoch auf den browser wechseln (vorausgesetzt dein server und dein chat GUI sind nicht gekoppelt).
für eine desktopanwendung gibts verschiedenes: tauri, electron, javafx, wpf, etc.
das wichtigste was du lernen musst: es wird wahrscheinlich nicht so (leicht) wie du es dir vorgestellt hast. kann sein, dass du aufgrund von fehlender erfahrung einige abstriche irgendwo machen musst wie beispielsweise sicherheit, komfort, design, funktionalität. aber du willst ja nur ein prototypen und deswegen ist es auch komplett fein.
außerdem: es ist wie in minecraft ein haus bauen -> ein haus kann jeder kek bauen aber nicht jeder wird zum meisterarchitekt und kann (direkt) schlösser bauen. was will ich damit sagen? du wirst vielleicht nicht zum meister programmierer aber jeder kann ein solides programm schreiben. und wenn man wirklich will kann man wirklich gut werden. lass dich nicht entmutigen