Hallo Tom,
Einen sehr wichtigen Grundsatz beim Programmieren ist: Vermeide wann immer möglich „Code duplication“. Damit ist gemeint, dass du Code nicht zwei mal schreiben solltest, wobei copy & past (kopieren & einfügen) als Schreiben zählt. Der Grund hierfür ist vielfältig, einen davon ist, dass du bei Bugs (Fehlern) nur an einem Ort etwas korrigieren musst.
Daher siehst du es richtig, dass du besser eine Funktion dafür schreibst und diese mit verschiedenen Parametern aufrufst.
Wie du richtig bemerkt hast, führt dies bei einem etwas grösseren Code-Umfang dazu, dass du viele spezifische Funktionen hast. Du kannst Funktionen abstrahieren in dem sie andere Funktionen aufrufen etc. und dadurch generellere Funktionen schaffen.
Die Entscheidung ob du nun objektorientiert oder funktional programmierst ist schon fast philosophisch. Beides funktioniert und beides hat Vor- und Nachteile. Ich würde dir für den Einstieg empfehlen, zuerst einmal objektorientiertes Programmieren (OOP) zu lernen.
Da wirst du sehen, dass du z.B. mittels Vererbung abstrahieren kannst. Hast du dich einmal mit OOP vertraut gemacht, wirst du sehen, dass mittels Aggregation, Komposition und Vererbung viel „Code duplication“ vermieden werden kann.
Ich hoffe dies gibt dir eine erste Idee.
Gruss Robert