• Moin zusammen,

    da ich ein bisschen Langeweile habe, wollte ich mir selbst nebenbei beibringen zu programmieren.

    Welche Arbeitsmaterialen/Bücher könnt ihr empfehlen? Welche Programmiersprachen könnt ihr empfehlen? Eventuell hat einer Zeit mir etwas in der Praxis zu zeigen?

    Bitte gerne um Rückmeldungen! Gebt einfach euren Kram bei.

    "Auf Euch Alle, Euch Schaumschläger, auf Euch geheuchelte Freunde, ihr kriecherischen Schleimer mit Eurem verlogenem Gewinnerlächeln.."

    Bruce Wayne

    giphy.gif

  • programmieren ist nichts was man eben so mal lernt wie z.B. Schuhe zubinden. Wenn du wirklich Interesse hast daran kannst du dir eine Programmiersprache anhand dessen was du am liebsten selbst kreieren willst

    was?

    "Auf Euch Alle, Euch Schaumschläger, auf Euch geheuchelte Freunde, ihr kriecherischen Schleimer mit Eurem verlogenem Gewinnerlächeln.."

    Bruce Wayne

    giphy.gif

    • Offizieller Beitrag

    Ich kann dir NodeJS / Javascript und Python sehr ans Herz legen, es ist mittlerweile eine gängige Sprache die man in Zukunft wahrscheinlich öfters nutzen wird.

    Es gibt darüber einige Bücher aber meiner Meinung nach lernt man besser und schneller wenn man "Learning by doing" anwendet.

    Kannst dich ja in Discord bei mir melden schnuggel.

    ,,Besser es fehlt eine Spalte in der Datenbank als im echten Leben"

    - manatee, 03.12.2016

    Gebl8Se.png

  • wenn du programmieren lernen möchtest, dann nimm irgendeine sprache die dir zusagt und lerne algorithmen zu programmieren und dein abstraktes / logisches denken zu fördern. du willst ja nicht nur eine programmiersprache lernen, sondern das programmieren.

    ich persönlich empfehle dir c oder gleich c++, da es nach meiner erfahrung, dort mehr über das system an sich zu lernen gibt, als bei moderneren programmiersprachen. ist aber geschmackssache.

    wichtig ist nicht welche programmiersprache, sondern - das hat holyfuture schon erwähnt - dass du kontinuierlich daran arbeitest.

    w3schools vermittelt alle grundlagen die man braucht und rheinwerk verlag openbooks hat vollumfängliche handbücher (beide kostenlos).

  • Einfache Fragen, auf die es viele Antworten gibt. Zunächst mal sind Programmiersprachen - genau so wie Mathematik - symbolische Sprachen. Sie helfen dir, komplexe Gedanken strukturiert zu erfassen, und sind nur das Werkzeug, mit dem du deine Denkprozesse niederschreibst.

    Dementsprechend ist es wichtig, dass du viele Konzepte der Programmierung verstehst, dazu zählen hauptsächlich Algorithmen und Datenstrukturen (unter dem Begriff "Algorithmen und Datenstrukturen" findest du viel Videomaterial auf YouTube). Diese Konzepte bilden die Basis, sie helfen dir, kritisches, abstraktes und logisches Denken zu gewinnen. Um auf diesem Gebiet Erfahrung zu sammeln, gibt es viele kostenlose Aufgaben auf Seiten wie bspw. HackerRank oder LeetCode.

    Solltest du mittlere, bis schwere Probleme mit Leichtigkeit lösen, solltest du ein kreatives Projekt beginnen. Was wolltest du schon immer mal programmieren? Eine Webseite? Einen Alexa-Skill? Such es dir aus. Es ist wichtig, schnell produktiv zu werden, denn nur wenn du reale Projekte programmierst, lernst du wichtige Eigenschaften einer Programmiersprache kennen. Konzepte wie die parallele Verarbeitung von Sequenzen oder asynchrone Benachrichtigungen sind sehr wichtig, lernt man aber oft nur, wenn sie zur Lösung eines bestehenden Problemes beitragen. Projekte sollten mithilfe einer Versionsverwaltung verwaltet werden (siehe Git).

    Später dann, ist es wichtig, zu verstehen, wie man nachhaltig programmiert. Code muss wartbar, lesbar und erweiterbar sein (Clean Code). Ansonsten läufst du in das Problem, welches man "Big Ball Of Mud" bzw. auf einer tieferen Ebene "Spaghetticode" nennt. Eine chaotische Ansammlung von Codezeilen, wo das Beheben eines Problemes nur weitere verursacht und man den Überblick verliert.

    Dafür muss man verstehen, wie Softwaresysteme aufgebaut sind, welche Architekturen es gibt und welche Charakteristiken diese besitzen (Sofware Architecture, Sofware Engineering).

    Code wird später mit sogenannten Entwurfmustern (Design Patterns) strukturiert, welche abstrakte Ansätze für gelöste Probleme in der Objektorientierung bieten (falls es dich interessiert, kannst du dich auch mit Programmierparadigmen auseinandersetzen, es gibt nämlich nicht nur die objektorientierte Programmierung). Man kann auch ganze Teile eines Systems nur mit Diagrammen darstellen, ohne eine Zeile zu programmieren (UML).

    Programmiersprachen gibt es allerhand, für das Lernen von Algorithmen bietet sich wahrscheinlich eher eine dynamisch typisierte Sprache wie Python oder JavaScript, für Projekte empfehle ich C, C++, C#, Java oder jegliche andere Sprache, die statische bzw. explizite Typisierung aufweist. Datentypen sollte man nie vernachlässigen.

    Du merkst, das Themengebiet ist wirklich allumfassend, das bedeutet aber auch, dass es sehr viel Zeit beansprucht, bis du an den Punkt kommst, an dem du gute Software schreiben wirst. Du solltest dich auf keinen Fall von Frustration überwältigen lassen, auch wenn es oft so scheint, als ob man keinen Fortschritt machen würde. Ich wünsche dir viel Erfolg!

    Ich habe versucht, so viele Fachbegriffe wie möglich einzubringen, damit man danach sofort googeln kann.

  • Wie hier jeder tut als wäre coden & programmieren schwer topkek LUL

    Mach einfach habber cms und dank mir später LG

    empfehle dir assembly übrigens, lass gleich die finger von so einem schrott wie c, cpp oder so crap is ja peinlich was hier empfohlen wird rr

    Einmal editiert, zuletzt von Rapamycin (28. September 2020 um 15:22)

  • Solltest du mittlere, bis schwere Probleme mit Leichtigkeit lösen, solltest du ein kreatives Projekt beginnen. Was wolltest du schon immer mal programmieren? Eine Webseite? Einen Alexa-Skill? Such es dir aus. Es ist wichtig, schnell produktiv zu werden, denn nur wenn du reale Projekte programmierst, lernst du wichtige Eigenschaften einer Programmiersprache kennen.

    Sehr guter Ratschlag und auch erst einmal das einzige was du beherzigen solltest, wenn es darum geht in die Welt der Informatik einzutauchen :) Such dir ein Wunschprojekt raus und informiere dich welche Programmiersprache dafür geeignet ist und der Rest wird dann kommen. Mach es dir also nicht komplizierter als notwendig.

    "Programmieren lernen" ist aber nichts was man nebenbei lernt. Ich finde daher deine Motivation "weil dir gerade langweilig ist" fragwürdig in Hinsicht darauf, ob du am Ende am Ball bleibst oder ob es doch nicht besser wäre etwas anderes zu lernen. Du solltest es auf jeden Fall versuchen, aber im Regelfall ist das "erlernen" einer Programmiersprache ein steiniger Weg der gerade am Anfang viel Hingabe erfordert. Sowieso bin ich der Meinung dass die Aussage "Ich lerne eine Programmiersprache" etwas zu kurz gegriffen ist und nicht dem programmieren gerecht wird. Hierzu hat ja Firesky einen sehr guten Beitrag geleistet.

  • Es kommt drauf an, in welche Richtung du einspringen möchtest.

    In deinem Fall wird dies sehr wahrscheinlich Software- oder Websiteentwicklung sein. Dafür kann ich dir persönlich C# ans Herz legen.

    Die Sprache ist sehr mächtig und hat eine saubere Syntax, eine große Community und mit .NET Core und der .NET Base Class Library hast du sehr gute Werkzeuge, um durchzustarten. Ein weiterer Vorteil mit C#: du brauchst keine weiteren Sprachen lernen, wenn du später Websites oder Mobile Apps entwickeln möchtest. Dafür gibts ASP.NET Core und Xamarin. Gerade mit C# 8 und dem kommenden .NET 5 kommen vieeele Verbesserungen und neue Features mit sich. (Neues in C# 8.0, Performanzverbesserungen in .NET 5) (auch, wenn die Links dir wahrscheinlich keinen Mehrwert bieten werden, wollte ich sie trotzdem anfügen, damit du es überfliegen kannst oder die ein oder anderen hier sich das ggf. durchlesen wollen)

    Ansonsten kannst du dir auch F# angucken. F# ist eine funktionale Sprache (anders als bei bspw. C#, die eine stark objektorientierte Sprache ist).

    Dort musst du entscheiden, ob du objektorientiert oder funktional arbeiten willst. Beides hat seine Vorteile und das eine ist für gegebene Fälle mal besser, mal schlechter geeignet. Siehe Functional Programming vs. Object-oriented programming.

    Python wird sehr oft von Leuten für Anfänger empfohlen, da die Syntax sehr einfach und gut lesbar ist und für Anfänger "besser" verständlich.

    Ich rate aber dagegen. Python mag zwar angenehm für die Augen sein, aber sie hat genau so viele Macken. Für Anfänger ist sie aus dem einfachen Grund schlecht, dass du nicht richtig programmieren lernen wirst. Du wirst an dieser Simplizität hängen bleiben und Schwierigkeiten haben, dich fortzubilden. Weitere Faktoren, die für dich eher weniger relevant sein werden, sind die Langsamkeit und Fehleranfälligkeit, weil Python eine interpretierte Sprache ist, d.h. sie wird Zeile für Zeile vom Interpreter interpretiert. Zudem werden Fehler dann nur in der Runtime, also während der Ausführung evaluiert. Darüber hinaus gibt es einige weitere Faktoren, die hier ausführlicher beschrieben werden.

    Zum Schluss fällt mir noch Rust ein. Habe ich gutes von gehört und scheint ziemlich stabil zu sein (und ist auch low-level anwendbar!).

    Warum ich nicht C oder C++ aufgelistet habe - sehr wahrscheinlich willst du mit einer High-Level Sprache starten und hast keine Ziele, maschinennah zu programmieren. (d.h. Treiber programmieren, mit dem Arbeitsspeicher rumspielen (kannst du auch mit C# 8)), und was weiß ich nicht was.) Dort wirst du nämlich nicht den Komfort haben, dass dir viele gewöhnliche Funktionen schon bereit stehen und den Luxus eines Garbage Collectors hast du dann auch nicht. Aber klar, wenn dich das anspricht, dann gerne C oder C++.

    Bezüglich des Lehrmaterials kann ich dir Pluralsight ans Herz legen (Pluralsight - mach dich schlauer). Ich bin dort schon seit einem Jahr dabei und habe einige Kurse belegt und kann dir versichern, dass die Autoren und Mentoren dort keine halben Sachen machen und kompetent sind, um mal nur an der Oberfläche zu kratzen. Wenn du einen Vorgeschmack haben willst, kann ich dir gerne paar Kurse zu C# (und zu HTML, CSS, ..) zeigen.

    Wenn du eher der Büchertyp bist, dann muss ich einfach O'Reilly (o rly?) erwähnen. Da kommst du irgendwann einfach nicht drum rum. Einfach mal nach seinen E-Books suchen, der Rest erklärt sich von selbst. :)

    Ich hoffe, dass ich dir und anderen hiermit helfen und etwas geben konnte, mit dem du weitermachen kannst.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!