Hallo Wollte Mal Fragen wie ich Programmieren am besten lerne? Wie und mit welcher Sprache ich am besten anfange? Hat jemand von euch Typs an büchern, fernschulen, Websites etc.? Bin Anfänger und habe bis jetzt nur ein Ubuntu Betriebssystem installiert.
Unix/Linux Programmierung lernen?
Anmeldungsdatum: Beiträge: Zähle... |
|
Anmeldungsdatum: Beiträge: 1032 |
|
Anmeldungsdatum: Beiträge: 2943 |
Was möchtest du denn gerne programmieren (können)? Mit Ubuntu kannst du sofort mit Bash, C und Python anfangen, ohne etwas nachinstallieren zu müssen. Tutorials findest du zuhauf im Internet. Wenn du im Bereich (Server)Administration tätig sein willst, solltest du mit Bash anfangen. Wenn du von Grund auf programmieren lernen willst und hauptsächlich Programme für die Konsole schreiben willst, dann empfehle ich dir C und darauf aufbauend dann eine objektorientierte Programmiersprache (Python, Java, C++, etc). Viele empfehlen auch gleich Python von Anfang an. Python ist so etwas wie das Schweizer Sackmesser unter den Programmiersprachen. Hilfreich ist auch, wenn ein ein anderer Programmierer deinen Code anschaut und dir dazu Hinweise geben kann. |
Anmeldungsdatum: Beiträge: Zähle... |
Wie apt-ghetto schon schreibt, wichtig ist, dass Du Dir bewusst machst, was Du erreichen möchtest. Suchst Du einen allgemeinen und realtiv einfachen Einstieg, so würde ich Dir eine Scriptsprache wie zum Beispiel Python empfehlen. Hier hast Du schnell Erfolge und damit Motivation. Außerdem kannst Du das Gelernte auf andere Sprachen übertragen. Möchtest Du sehr hardwarenah programmieren, so ist C sicherlich der bessere, wenn auch schwierigere Einstieg. Was nun der richtige Weg für Dich ist, hängt davon ab was Dein Ziel ist.
Für den Anfang reichen sicherlich Tutorials auf Youtube, um festezustellen, ob Dir die Sache überhaupt liegt und Spaß macht. Danach würde ich mich nach einem guten Buch für die entsprechende Sprache umsehen.
Wenn Du firm in der Bedienung von Linux bist, dann wäre auch Bash-Programmierung eine Möglichkeit. Fazit: Werde Dir bewußt was Du machen willst. Willst Du nur einmal in die Möglichkeiten der Programmierung reinschauen, dann beschäftige Dich mit Python. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 31 |
Erst Mal danke für eure schnelle Antworten.. Was mich sehr interessiert ist das Thema Software, aber auch das ist wahrscheinlich ein zu großer Begriff. Als blutiger Anfänger werde ich mich mal näher mit phyton beschäftigen um mir die Möglichkeiten der Programmierung bewusster zu werden. Danke auch für den link |
Anmeldungsdatum: Beiträge: 11181 Wohnort: München |
Wenn englisch für dich kein Problem ist, kannst du dir auch mal Think Python (das gibt es als kostenloses PDF) als Einführung in die Sprache ansehen: http://greenteapress.com/wp/think-python-2e/ |
(Themenstarter)
Anmeldungsdatum: Beiträge: 31 |
Das ist ja mein größtes Problem im Netz aber danke Werde mal damit beginnen http://python4kids.net/ 👍 |
Anmeldungsdatum: Beiträge: 11181 Wohnort: München |
Dann setz Englisch lernen mal mit auf die Liste der nächsten Ziele - sonst tust du dir extrem hart, wenn du die Dokumentation zu irgendeiner halbwegs populären Programmiersprache lesen willst. |
Anmeldungsdatum: Beiträge: 17552 Wohnort: Berlin |
Nach Englisch wollte ich auch fragen, aber das ist für jede Sprache hilfreich. Für Nieschensprachen unabdingbar. Wenn Geld eine Rolle spielt: Bei Büchern ist es so, dass man alte Schinken oft für 'n Appel und 'n Ei bei Ebay und im Antiquariat findet, was bei alten Sprachen kein so goßes Poblem ist, da sich die Grundlagen nicht mehr so stark ändern. Bei jungen Sprachen kann ein 5 Jahre altes Buch aber Verdruss bringen, wenn sich seither die Hälfte geändert hat. Alle Software basiert auf Programmieren, und es gibt kein Programm, das nicht Software ist. Also diese Eingrenzung war keine. Ich entnehme dem, dass Du kein konkretes Ziel hast. Beruf, Uni, Schule, spezielle Geräte steuern, ... Videos gibt es sicher ein paar, aber ich schätze es wird nicht leicht auch gutes zu finden. Von kompetenter Seite ist mir jüngst am häufigsten "Learn you a Haskell..." - ich meine ein Onlinedings, empfohlen worden. Haskell ist bleeding edge, damit bist Du ganz vorne, bei den Exoten aber auch. Eher weniger Kontaktmöglichkeiten, aber besser als Cobol, was auch selten ist, aber aus Altersgründen. Ein gutes Tutorial gibt es auch für Scheme (alias DrScheme, Lisp, CommonLisp, ...) welches sehr sauber strukturiert ist, eine einfache Syntax hat, und dem funktionalen Programmierparadigma folgt (wie Haskell), welches in jüngster Zeit vermehrt Aufmerksamkeit erfährt. Leider habe ich den Namen des Tutorials vergessen. Für Python spricht, dass einige Programme unter Linux/Ubuntu python verwenden. Für C eigentlich nur, dass es Hardwarenah ist, und der Linuxkernel in C programmiert ist. Ob einen das interessiert kann man leider erst so richtig sagen, wenn man C kann und die Kernelquellen lesen kann. Abraten würde ich von PHP und Perl. Die Sprachen bieten keine Vorteile gegenüber irgendwas, außer dass man damit Programme ändern kann, die darin geschrieben sind. Für Java gibt es sehr viel Material, aber inzwischen ist die Sprache ziemlich aufgebläht. Vorteil: Man kann Code schreiben, der auf verschiedenen Plattformen (Linux, Mac, Windows, ...) läuft, es wird sehr oft eingesetzt, allerdings vorwiegend auf dem Server, man kann aber auch graphische Programme damit schreiben die plattformübergreifend funktionieren. Die strenge Typisierung hilft bei der Fehlervermeidung. Java folgt einem OOP-Paradigma, was mit Abstrichen sonst für C++ gilt. Ohne Abstriche für Smalltalk, was aber auch wieder eine Exotensprache ist. Für die Konsole, wenn Du auf Linux viel machst, ist es sehr nützlich Bash zu können. Ästhetisch aber ist es eine Katastrophe, nicht konsistent, man lernt kein sauberes, strukturiertes Programmieren. Für kleine Helferlein aber unverzichtbar. Wenn Du ganz verschiedene Ansätze kennenlernen willst (OOP, funktionales, logisches P.) dann fehlt Dir noch etwas wie Prolog, womit man auch wieder in einer Nische ist, interessant mal gesehen zu haben aber im Alltag habe ich dafür keine Verwendung gefunden. Etwas, das man früher oder später mal lernen sollte, ist sed und/oder AWK. Das sind Sprachen, gemacht um reguläre Ausdrücke zu verarbeiten. Extrem oft nützlich aber eher was, nachdem man schon Bash oder andere Shellscriptsprachen (ash, zsh, dash, ...) kann und mit einem sehr eingeschränkten Fokus.
|
Anmeldungsdatum: Beiträge: 29240 Wohnort: Germany |
Am schnellsten beginnen kannst du tatsächlich mit der Bash - einige Grundkonzepte wie Variablen, Bedingung, Wiederholung (Schleife) oder Endlosschleife findest du in fast allen Programmiersprachen wieder, weil sie praktisch die Grundlagen für jede Software darstellen: "Wenn dies passiert, dann wiederhole x mal das - überprüfe unendlich, ob das der Fall ist - und zähle bei jeder zehnten Wiederholung einen Zähler um eins hoch...". Du kannst ohne Vorkenntnisse über Variablen, Datenstrukturen, Programmlogik usw. sofort loslegen: Shell/Bash-Skripting-Guide für Anfänger. Und das hast du auf keinen Fall umsonst gelernt, weil du paar Grundlagen mitbekommst und es so oder so gebrauchen kannst, auch wenn du am Linux "nur" mal was bisschen anpassen musst - z.B. beim (Auto-)Start ein Programm starten, aber erst, wenn Bedingung xy erfüllt ist (bestimmtes Netzwerk ist verbunden oder so)... Da praktisch 80% des Systems aus Shell (oft Bash oder ähnlich) bestehen, kannst du damit fast alles anpassen - kleine Miniprogramme in der Konsole sind auch möglich, teils auch grafisch mit Zenity. Beispiel ohne Grafik: for i in {10..1}; do echo Wir haben nur noch "$i" Bier im Haus...; sleep 0.2; done Die Zeile kannst du einfach mal in ein Terminal kopieren und Enter drücken und schauen, was passiert. Es ist nichts gefährliches, hat was mit echo zu tun... Weitere Hilfen wie Befehlsübersichten und Auszüge von man befinden sich ebenfalls unter Shell. Viele man gibt es auch auf Deutsch. Nutze auch translate.google.com oder ähnliches und merke dir hier und da Wörter, vielleicht auch welche, die dem Deutschen gar nicht ähnlich sind. Lerne quasi durch Tun oder Lesen... Grüße, Benno |
(Themenstarter)
Anmeldungsdatum: Beiträge: 31 |
Wow die Infos von euch hauen mich um, 😲 bitte versteht das ich noch keine Ahnung von all den Sprachen und funktionen habe, mich jedoch schon seit längerem dafür interessiere. Also einen Leitfaden wie ich anfangen soll habe ich jetzt zugenügen. Noch eine Frage, sollte man im Jahr 2016 Programmieren nicht schon längst als Pflichtfach in der Grundschule Eingeführt haben? 😐 |
Anmeldungsdatum: Beiträge: 12067 |
Hallo! Ich werfe noch mal ein paar Ideen ein, Sprachen sind genug genannt worden ☺ Ich würde mit etwas striktem anfangen, wie C, C++ oder Python, die einen zwingen sauber zu Programmieren. Die ersten beiden sind optisch nicht so eingeschränkt, meckern aber bei jedem Fehler (beim Kompilieren) und durch die Fehlersuche lernt man auch einiges darüber, wie der Computer die Eingaben erwartet. Python hat zudem den Vorteil, dass man ordentlich einrücken muss und somit sauber lesbaren Quelltext hat - ob man will oder nicht. Zur Grundschule: Ich würde mir eher wünschen, würden wieder Rechtschreibung und das kleine Einmaleins gelehrt, damit die Abiturienten nicht beim Dreisatz schon verzweifeln. Von Kopfrechnen fange ich mal gar nicht an... Viel Erfolg ☺ |
Anmeldungsdatum: Beiträge: 29240 Wohnort: Germany |
Ich finde, mindestens 10-20 Unterrichtsstunden Programmierung und Shell gehören je Schullaufbahn dazu und sind ja "nix" - aber in unserer Bürokratie muss ja alles jede Woche laufen, was dann im Jahr ja ohne Ferien schon mal etwa 40 Stunden wären - allerdings a 45 min. So käme es auf 30h. Wenn aber nur 10 verfügbar sind, dann muss man das eben jede dritte Woche mit einem anderen Fach wie Werken abwechseln - oder in Informatik eben vor allem auch mal Medienkompetenz usw. lehren - und in Deutsch vertiefen: Welchen Quellen traut man mehr und warum. Deutsche Schüler fielen durch, sie trauten bunten Bildern mehr als "seriösen" Quellen - und selbst denen kann man heute nicht mehr trauen, außer man traut der Propaganda der Leitmedien und letztlich manchen konservativen Schulen, die das alte Bild vielleicht auch noch vermitteln. "Der Staat, der Staat, der hat immmer recht..." 😉 *sing* Hier aber offtopic, daher kurz. |
Anmeldungsdatum: Beiträge: 267 |
Hallo Zusammen, mein Vorschlag ist Python mit Ipython notebook im webbrowser aus den Packetquellen. man kann interaktiv arbeiten, in Textfeldern notieren was man getan hat, kurzum zum Python lernen einfach klasse. |
Anmeldungsdatum: Beiträge: 1603 Wohnort: Fernwald (Gießen) |
C und C++ sauber??? Es gibt so viele Programmiersprachen, die einen Anfänger beim Lernen unterstützen und bestimmte Fehler erst gar nicht zulassen. Versuche mal einem Einsteiger Pointer und Pointerarithmetik zu erklären. Und ohne diese kommt du in C und C++ keinen Meter weit.
Wobei die Fehlermeldungen nicht immer den Fehler anzeigen der die Meldung ausgelöst hat. Dazu kommen eben die Probleme mit der Pointerarithmetik und den Boundary Checking bei Arrays.
Nicht nur das. Ich programmiere im Moment ausschließlich in Python, einfach weil man mit deutlich weniger Code zum gleichen Ergebnis kommt. Ein Beispiel: Um in Java eine Map nach ihren Key (Eine Art Wörterbuch) zu sortieren, benötigt man dutzende Zeilen von Code. In Python lässt sich das mit einer einzigen Zeile erledigen. Mit C will ich erst gar nicht anfangen. Meine Empfehlung an donodono108: Nimm Python, falls du mehr am Scripting interessiert bist. Ansonsten würde ich dir C#, Java, Swift oder jede andere moderne objektorientierte, (C++ gehört eindeutig nicht dazu) kompilierte Programmiersprache empfehlen. Bei all diesen hast du moderne Konzepte ohne den Ballast ohne dich veralteteten Konzepten herumärgern zu müssen. Wichtiger ist es schnell zu erfolgen zu kommen und durch Erfolge zu lernen, als durch altertümliche Konzepte an den Erfolgen gehindert zu werden. |