Anfängerfragen

#1
Moin zusammen!

Ich bin gelernter Sysadmin, kenne mich in der IT also recht gut aus.
Ich möchte meinen Horizont, privat, sowie beruflich aber erweitern und möchte mir das Programmieren beibringen (Powershell mal abgesehen!).
Ich habe nebenberuflich eine kleine IT-Firma und dort könnte das in ferner Zukunft auch relevant sein.
Ich habe mir Racket als Grundlage rausgesucht: Wurde mir empfohlen und ich finde die Syntax für mich als Anfänger äußerst "neutral".
Später möchte ich aber gerne in Elixir als funktionale und C# reinschauen. Das nur am Rande.

Meine Frage sind aber außerhalb dieser Sprachen, sondern eher allgemeiner:

1. Wie bzw. wo kann ich am besten lernen, WIE man ein Programm am besten gestaltet?
Damit meine ich eher die Architektur an sich, sodass das Programm langlebig ist und gut gewartet werden kann. Welchen Teil der Software setze ich lieber am Anfang, welche in die Mitte etc. pp. Ich hoffe Ihr versteht mich :)
Ich habe von einem Kollegen das Buch "Clean Code" bekommen, aber konnte noch nicht reinschauen, erfüllt das diesen Zweck?

2. Würdet Ihr empfehlen am Anfang direkt mit einer größeren IDE, wie VS Code zu schreiben, oder die fundamentalen Dinge in der "eigenen" Shell zu lernen?

3. Habt Ihr noch irgendwelche Tipps für mich als Anfänger? Was sollte ich vermeiden? Was sollte ich tun? Bin für jeden Tipp dankbar!

Grüße aus HH,
Nopp
 
#3
Hm ist schwierig zu sagen ich bin ein "Normalo" hab ursprünglich was ganz anderes gelernt aber mich fasziniert seit Kindheitstagen Computer und (Videospiele). Desswegen hab ich jetzt angefangen oder schon seit Zwei Jahren das Buch "Grundkurs C" zu lesen von Jürgen Wolf hatte nicht immer Zeit das Buch zu studieren deswegen zieht sich das bei mir so lang außerdem ist das ein harter Stoff bzw mit den Flieskommerzahlen und das ganze mathematische war eh nie so meine Stärke egal ich schweife ab. Was ich eigentlich sageb wollte ohne das ganze bla bla von mir ist das mir das Buch trotzdem hilft da der Autor die Schwierigkeit immer erhöht zu jeden Kapitel außerdem werdem im viele Beispiele gezeigt und alles gut erklärt. Zum Schluss jedes Kapitel sind immer Aufgaben die man lösen sollte um zu wissen ob man alles verstanden hat das und einen Fehler im Coding finden. Sollte man es nicht verstehen so empfiehlt der Autor das Kapitel noch Mals zu lesen bis man's versteht. Also sein lern Konzept finde ich persönlich ganz gut und mit dem Buch lern. Es gibt zum Buch Zusatzkapitel online die man Downloaden kann da sind noch hilfreiche Dinge beschrieben und Funktionen usw. Also Fazit das mit dem Buch lernen ist eine gute Idee und ist hilfreich und auf jeden Fall weiter zu empfehlen.

PS. Ich würde mir keine Kopf machen wenn du die Frage erst gepostet hast da antworten bestimmt auch noch andere ich bin ganz zufällig drauf gestoßen.

MfG
Slayers
 

-AB-

Well-Known Member
c-b Team
c-b Experte
#4
Von Racket hab ich noch nie gehört ;)

1. Wie bzw. wo kann ich am besten lernen, WIE man ein Programm am besten gestaltet?
Die Frage "wie lerne ich richtig Programmieren?" wird hier immer wieder gestellt, und ist nicht so einfach zu beantworten. ist vergleichbar mit "wie lerne ich Häuser zu bauen?"
Ein Buch zu lesen hilft IMO eben nicht allzu viel. Klar, man lernt die Grundlagen, wie man ein Fundament gießt, oder Grundlagen der Statik.
Ein Tutorial spricht hingegen durch, wie man ein Haus baut, eben exakt dieses. Baut man dann ein anderes, greift ma oft auf Bauteile vom ersten zurück, oft mit katastrophalem Ergebnis, weil man ein Hochhaus eben nicht auf einem Fundament für einen Bungalow bauen kann.

Am besten/schnellsten lernt man es IMO immer noch, wenn man dabei ist und mit anpackt. Fragen stellen kann, wieso dies, wieso das, und jemanden neben einem hat, der einem sagt, wenn man Unfug baut.
Helfen tut es natürlich, wenn man mal Statik und Betonkompositionen studiert hat. Aber das allein reicht eben nicht...

2. Würdet Ihr empfehlen am Anfang direkt mit einer größeren IDE, wie VS Code zu schreiben, oder die fundamentalen Dinge in der "eigenen" Shell zu lernen?
Das ist ziemlich egal.
In C oder C++ lernt man durchs "händische" Kompilieren ganz schön, was genau eine Übersetzungseinheit jetzt ist und so. Aber letztendlich ist es auf dem Jobmarkt wichtiger, mit den nötigen Tools umgehen zu können.
 

asc

Well-Known Member
c-b Experte
#5
Ich habe mir Racket als Grundlage rausgesucht: Wurde mir empfohlen und ich finde die Syntax für mich als Anfänger äußerst "neutral".
Neutral? Was meinst du damit? Ich kann dir den Tipp geben und in F# einzusteigen. Die Syntax ist an Haskell angelehnt mit dem Unterschied, dass es in die .NET Welt eingebettet ist.

Als Sysadmin der sich Powershell angetan hat, vermute ich, dass du bei Windows bleiben möchtest, oder? :D
 
#6
Danke für all die Antworten :) !

Die Frage "wie lerne ich richtig Programmieren?" wird hier immer wieder gestellt
Ja, das glaube ich aufs Wort. Ich meine damit aber nicht die bestimmte Syntax einer Sprache, sondern speziell den "Unterbau". Wie hat eine Software aufgebaut zu sein (Backend/Frontend), damit sie langfristig, gut funktioniert.

Hmmm, mit neutral meine ich, dass es für mich nicht direkt nach unverständlichem "gebrabbel" aussah. Ich konnte sehen, was eine Funktion ist und was in leichten Befehlen ausgeführt wurde. Da hätte ich mit C++mehr Probleme ;)

Ich kann dir den Tipp geben und in F# einzusteigen
Also ist der große Unterschied zwischen F# und C#, die Herkunft und die damit verschiedene Syntax? Mehr nicht?
Ist F# denn Anfängerfreundlich? Racket wird ja als Einsteigersprache empfohlen und auch gelehrt.

Als Sysadmin der sich Powershell angetan hat, vermute ich, dass du bei Windows bleiben möchtest, oder?
Definitiv ist Windows mein Steckenpferd. Linux ist mir natürlich als Admin (gezwungenermaßen) nicht fremd, grade Die RedHat- (CentOS/Fedora) Schiene.
 

asc

Well-Known Member
c-b Experte
#7
Nein, F# ist nicht Anfängerfreundlich. Gibt es überhaupt anfängerfreundliche funktionale Programmiersprachen? :p
Es ist schwierig dir da einen guten Tipp zu geben, da du mit einer Lisp-artigen Sprache beginnen möchtest und dann später eine funktionale Sprache dazunehmen willst ... hmm

Anders gefragt: Was möchtest du später mal damit machen? Also was für Projekte möchtest du umsetzen?
 
#8
Gibt es überhaupt anfängerfreundliche funktionale Programmiersprachen?
Elixir soll "freundlich" sein :D

Was möchtest du später mal damit machen? Also was für Projekte möchtest du umsetzen?
Hauptsächlich Windows Server-Client Anwendungen, und Webanwendungen.
Da werden alle zu C# raten, aber ich habe mich wirklich an C# versucht, ich komme aber einfach nicht mit der Syntax zurecht. Das sträuben sich mir immer die Haare....
 
Oben