Welche IT-Kenntnisse braucht man für die Entwicklung / Programmierung einer Website wie Reddit oder Gutefrage.net?

3 Antworten

Von Experten whgoffline und NicolasHelbig bestätigt

Nun da stellt sich die Frage, ob es bei der Programmierung bleibt, auch ist die geplante Größe ein Thema. Frage ist dann ob du den Kram selbst auf die Server bringen willst oder ob sowas jemand anders macht.

Für die reine Programmierung eben das normale Frontend, sprich HTML, CSS und JavaScript. Je nach geplanter Umsetzung macht natürlich ein Frontend Sinn, sowie SCSS, sofern hier viel zusammenkommt bei den StyleSheets.

Dann natürlich eine Sprache für das Backend, sei es nun Node.js, PHP oder anderes. Auch hier kommen meist Frameworks zum Einsatz. Natürlich sind auch da drüber hinaus Fragen der Architektur vorhanden. Ein normales Stateful System in einer Datenbank oder gar etwas ala Event Sourcing?

Dazu brauch es natürlich ein wenig Kenntnisse zum Netzwerkverkehr, HTTP Status Codes, bei heutigen Anwendungen etwas Wissen bzgl. APIs wie Fetch und Promises, sofern nicht noch Ajax zum Einsatz kommt. Da sollte man auch mit asynchronen Code umgehen können.

Gespeichert wird natürlich in eine Datenbank, ggf. SQL, ggf. NoSql. Je nach Größe und co. kommen da natürlich noch Caching Layer zwischen, sei es etwas wie Memcache oder gar ein Redis Server. Mit Serverbetriebsystemen sollte natürlich auch irgendwer umgehen können. Und natürlich kommen auch Kenntnisse der einzelnen IDEs, Debug- und Analysetools, Build-Tools oder der Versionsverwaltung dazu.

Sofern wir mal davon ausgehen, dass du alles alleine stemmen willst, kommen neben den Sprachen und Frameworks in Frontend und Backend natürlich noch weitere Kenntnisse dazu. Design, von Grafiken über Konvertierung dieser zwecks Minimierung der Filesize, entfernen der Metadaten, Kenntnisse zum Responsive Design, der verschiedenen Browsern und Geräten. SQL als Query-Language, sofern nicht alles relativ leicht und flach ist und mit entsprechenden APIs der Programmiersprachen abgebildet werden kann.

Mit der Datenbank sollte sich natürlich auch wer auskennen, sprich DBA Kenntnisse brauch auch irgendwer. Backupstrategien? Indexstrategien? Das generelle Schema Design.

Je nach Größe sind natürlich auch Kenntnisse zum System Design wichtig. Welcher Webserver? Loadbalancer? Background Jobs? Was läuft Synchron, was Asynchron. Der Cache als Write Through oder nicht? API Design sollte man natürlich auch verstehen. Was wird nach dem Webserver getrennt? Wie viele Webserver gibt es? Wird ein CDN verwendet? Replicas? Wie werden die Daten abgefragt? Eine REST API oder etwas wie GraphQL? Für die Suche ggf. noch etwas extra wie Elasticsearch? Wie sieht es aus mit DDoS Protection? Authentifizierung? Mails an die User? Externer Mailserver oder eigener?

Natürlich brauch auch irgendwer Wissen bzgl. Hardware, Netzwerke etc. pp. Und auch Datenschutz ist ein großes Thema, neben der generellen IT-Sicherheit.

Am Ende ist also die Frage, reden wir davon eine ähnliche Anwendung zu schreiben, die man lustig im LAN betreibt oder reden wir davon als One-Man-Army so ein Projekt zu stemmen. Das geht ggf. in den Anfangszeiten in sehr amateurhafter Form. Das was hinter GuteFrage steckt wirst du als Einzelner vermutlich nicht fertigstellen, bevor sämtliche Techniken dahinter total veraltet sind.

Und natürlich auch Kenntnisse bzgl. Marketing und co. als auch wie man sowas monetarisiert. Je nachdem was man auf der Seite anbietet und welche der erwähnten Sachen man extern abgibt, kommt da monatlich auch eine nette Rechnung rein.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012
NicolasHelbig  09.08.2021, 15:16

Zusammenfassung:

Vielleicht ist es doch einfacher, einfach einen Discord Server zu erstellen mit den gegebenen Tools. :D

1

Wie apachy schon sehr gut beschrieben hat sind große Plattformen wie gutefrage oder reddit sehr komplex und von einer Vielzahl von Entwicklern über 10+ Jahre gebaut worden. Da sammelt sich einiges an Komplexität an.

Wenn man aber nicht die komplette Plattform nachbauen will, sondern sich auf eine extrem eingeschränkte Liste an features beschränkt (= "Minimum Viable Product"), dann kann man das durchaus mit einem simplen Ansatz wie Phoenix + Heroku realisieren. 🙂

Dabei müsste man nur eine Programmiersprache lernen/verwenden und hat auch einen Großteil der sonstigen Komplexität nicht. An Grundlagenwissen wie HTML, CSS, SQL, HTTP, und TCP/IP, kommt man aber natürlich trotzdem nicht vorbei.

https://www.phoenixframework.org/
https://www.heroku.com/

Woher ich das weiß:Berufserfahrung
verreisterNutzer  03.05.2022, 17:12

> Da sammelt sich einiges an Komplexität an.

Altlasten wolltest du vermutlich sagen, oder? 🙂😁

0
verreisterNutzer  03.05.2022, 19:48
@Felix, Software Dompteur bei gutefrage

Ich finde, wenn ein System komplex ist, dann fängt es an, unübersichtlich zu werden. Ein Softwaresystem muß aber eher den Anspruch haben, wartbar zu sein. Komplexe Systeme sind das eher nicht.

Deshalb lehne ich persönlich komplexe Systeme ab und bevorzuge eher, Komplexität aufzuteilen.

0
@verreisterNutzer

Natürlich sollte man danach streben unnötige Komplexität zu vermeiden, allerdings hat jede Firma gewisse Anforderungen an Software (z.B. um Gesetze einzuhalten wie die DSGVO) und diese Komplexität ist damit nötig und kann auch nicht einfach entfernt oder wegdiskutiert werden.

1

Html, css, Sql bzw. Datenbanken, backend als z.B. php oder js uvm.

Woher ich das weiß:Studium / Ausbildung – Informatikstudent