Bring dich bei, wie man programmiert

Du wolltest schon immer selbst lernen, wie man Software selbst schreibt – oder einfach nur gelegentlich ein Skript erstellen, wusstest aber nie, wo du anfangen sollst? Zum Glück ist das Web voll von kostenlosen Ressourcen, die dich in kürzester Zeit zu einem Programmierer machen können.

Seit der Erfindung des Internets wird dieses von Programmierer verwendet, um Software-Entwicklungstechniken zu diskutieren, Tutorials zu veröffentlichen und Code-Beispiele mit anderen zu teilen. Wenn du also neugierig sind, wie du einen Programmierer werden kannst, kannst du diese vielen, kostenlosen webbasierenden Tutorials und Ressourcen für einen Schnellstart nutzen.

Das wichtigste zuerst: Lass dich nicht durch die Wahl einer Sprache aufhalten

Ein typischer Fallstrick für Anfänger besteht darin, herauszufinden, welche Programmiersprache am besten zuerst gelernt wird. Es gibt viele Meinungen, aber es gibt keine „beste“ Sprache. Hier ist die Sache: Am Ende spielt die Sprache keine Rolle. Es ist sehr wichtig, Daten und Kontrollstrukturen und Entwurfsmuster zu verstehen. Jede Sprache, sogar einfache Skriptsprachen, wird Elemente enthalten, die du auch in anderen Sprachen verwenden wirst und die dir beim Lernen helfen werden. In meinem Informatikstudium programmiere ich in Java. Ich habe mir jede Sprache beigebracht, die ich in meiner Karriere benutzt habe, habe Konzepte, die ich bereits kannte, wiederverwenden und mich auf Dokumentationen und Bücher bezogen, um dessen Syntax zu lernen. Also, lass dich nicht in der Sprache aufhängen, die du zuerst lernen musst. Wähle die Art der Entwicklung, die du machen möchtest, und fange einfach an, eines zu verwenden, das für dich funktioniert.

Es gibt verschiedene Arten von Software-Entwicklung, die du für verschiedene Plattformen nutzen kannst, vom Web über deinen Desktop zu dein Smartphone bis hin zu einer Befehlszeile. In diesem Artikel werden wir einige unserer beliebtesten Einstiegstutorials und Ressourcen vorstellen, um dir zu vermitteln, wie du für jede wichtige Plattform programmierst. Wir gehen davon aus, dass du ein cleverer Benutzer sind, aber ein Neuling, wenn es darum geht, Code-Snippets zu manipulieren, also behalten wir die Dinge auf Anfängerniveau. Auch wenn du nur ein Anfänger-Programmier-Tutorial folgst, wirst du dich freuen zu sehen, wie weit du kommen kannst.

Desktop Scripting


Der einfachste Weg, sich an der Programmierung für Ihren Windows- oder Mac-Desktop zu versuchen, besteht darin, mit einem Skript- oder Makroprogramm wie AutoHotkey (Windows) oder Automator (Mac) zu beginnen. Gerade jetzt schreien Hardcore-Programmierer der gesamten Leserschaft ihre Monitore an und sagen, dass AHK oder AppleScript keine „echte“ Programmierung sind. Das mag wahr sein – technisch machen diese Arten von Tools nur High-Level-Scripting. Aber für diejenigen, die neu in der Programmierung sind, die einfach nur ihre Füsse nass machen wollen, indem sie Aktionen auf ihrem Desktop automatisieren, sind diese kostenlosen Tools ein fantastischer Start – und du wirst überrascht sein, wie viel du damit machen kannst.

Zum Beispiel hat Adam die autonome Windows-Anwendung, die wir alle kennen und lieben, Texter, mit AutoHotkey entwickelt, sodass diese Skriptsprache weit mehr als nur kleine Automatisierungsprojekte ermöglicht. Um mit AutoHotkey zu beginnen, lies Adams Tutorial, wie du mit AutoHotkey eine Aktion in eine Tastenkombination umwandeln kannst. (Dann schauen dir den Quelltext von Texter an, um die Innereien einer vollwertigen AHK-basierten Windows-Anwendung zu sehen.)

Web Development

Anstatt an bestimmte Programmiersprachen und das Aussehen eines bestimmten Betriebssystems gebunden zu sein, kannst du deine Killer-Anwendung im Browser laden und als Webanwendung in der Cloud ausführen. Willkommen in der wunderbaren Welt der Webentwicklung.

HTML und CSS: Das erste, was du wissen musst, um eine Website zu erstellen, ist HTML (das Seiten-Markup, aus dem Webseiten bestehen) und CSS (die Stilinformationen, die dieses Markup schön aussehen lassen). HTML und CSS sind keine echten Programmiersprachen, sie sind nur Seitenstruktur und Stilinformationen. Du solltest jedoch in der Lage sein, einfaches HTML und CSS von Hand zu erstellen, bevor du mit dem Erstellen von Webanwendungen beginnst, da eine Webseite das Frontend für jede Webanwendung ist. Dieses HTML-Tutorial ist ein guter Anfang.

JavaScript: Jetzt, da du eine statische Webseite mit HTML und CSS erstellen kannst, beginnt der Spass, denn es ist Zeit, JavaScript zu lernen. JavaScript ist die Programmiersprache des Webbrowsers, die Magie, die dynamische In-Page-Effekte ermöglicht. JavaScript ist auch der Stoff von Bookmarklets, Greasemonkey-Scripts und Ajax, also ist es der Schlüssel, um alle Arten von Web-Goodies zu machen. Fange an JavaScript zu lernen.

Server-seitiges Scripting: Sobald du die Dinge auf einer Webseite erfolgreich umsetzen kannst, benötigst du etwas Serverseitige Action dahinter – und dafür musst du zu eine serverseitiges Scriptingsprache wechseln wie PHP, Python, Perl oder Ruby. Um beispielsweise ein webbasiertes Kontaktformular zu erstellen, das eine E-Mail basierend auf dem, was ein Benutzer eingegeben hat, sendet, ist ein serverseitiges Skript erforderlich. Skriptsprachen wie PHP können auch mit einer Datenbank auf deinem Webserver kommunizieren. Wenn du also eine Website erstellen möchtest, auf der sich Benutzer anmelden und Informationen speichern können, ist dies der richtige Weg. Webmonkey ist eine exzellente Web-Entwicklungsseite voll von Tutorials für verschiedene Web-Programmiersprachen. Schau dir das PHP Tutorial für Anfänger an. Wenn du bereit bist, schau wie du mit PHP mit Datenbanken kommunizieren kannst (WebMonkey’s PHP und MySQL Tutorial). Die Online-Dokumentation von PHP ist die eine der besten im Internet. Jeder Eintrag (wie dieser auf der strlen-Funktion) enthält Benutzerkommentare, die oft genauso hilfreich sind wie die Dokumentation selbst.

Web-Frameworks: Im Laufe der Jahre mussten Webentwickler dieselben Probleme lösen und ähnlichen Code neu schreiben um dynamische Websites zu erstellen. Um zu vermeiden, dass jeder das Rad für jedes neue Web-Entwicklungsprojekt neu erfindet, haben einige Programmierer Entwicklungs-Frameworks entwickelt, die einige repetitive Arbeit für dich erledigen. Das beliebte Ruby-on-Rails-Framework beispielsweise verwendet die Ruby-Programmiersprache und bietet eine webspezifische Struktur, um gängige Webanwendungsaufgaben zu erledigen. Tatsächlich hat Adam mit Rails seine erste ernsthafte (und beeindruckende!) Webanwendung, MixTape.me, erstellt. Andere beliebte Web-Entwicklungs-Frameworks sind CakePHP (für PHP), Django (für Python), jQuery (für JavaScript) und p5js (für JavaScript).

Web-APIs: Eine API (Application Programming Interface) ist eine programmatische Methode, mit der verschiedene Software-Komponenten miteinander kommunizieren können. Wenn du beispielsweise eine dynamische Karte auf Ihrer Website platzieren möchtest, wirst du eine Google Map verwenden, anstatt eine eigene benutzerdefinierte Karte zu erstellen. Die Google Maps-API erleichtert das programmatische Einbinden einer Karte in eine Seite mit JavaScript. Fast jeder moderne Web-Service, den wir kennen und lieben, hat eine API, mit der du Daten und Widgets in deine Anwendung integrieren kannst, wie Twitter, Facebook, Google Docs, Google Maps, und die Liste geht weiter. Die Integration anderer Webapps in deine Webanwendung über APIs ist die letzte Grenze der Rich-Web-Entwicklung. Jede gute, grosse Web-Service-API bietet eine gründliche Dokumentation und eine Art Kurzanleitung zum Ausprobieren (hier ist zum Beispiel Twitter).

Command Line Scripting

Wenn du ein Programm schreiben möchtest, das Text- oder Dateieingaben macht und etwas Nützliches ausgibt, ist die Befehlszeile der richtige Ort dafür. Während die Befehlszeile nicht so sexy oder gut aussieht wie eine Web-App oder Desktop-App, ist die schnelle Entwicklung schneller Skripts, die Prozesse automatisieren, unübertroffen.

Mehrere Skriptsprachen, die auf einem Linux-basierten Webserver funktionieren, funktionieren auch in der Befehlszeile, wie Perl, Python und PHP. Wenn du also einen dieser Bösen lernst, bist du in zwei Kontexten vertraut.

Wenn es zu deinen Programmierzielen gehört, ein Unix-Ninja zu werden, dann musst du mit shell scripting mit bash gut werden. Bash ist die Kommandozeilen-Skriptsprache einer *nix-Umgebung und kann alles von dich bei der Einrichtung automatischer Backups deiner Datenbank und Dateien unterstützen, bis zum aufzubauen vollwertiger Anwendungen mit Benutzerinteraktion. Ohne Erfahrung in der Erstellung von Skripten über ein Dutzend Zeilen hinaus entwickelte ich einen vollständigen User-Setup-Assistenten.

Add-ons

Heutzutage sind moderne Webapps und Browser erweiterbar mit Software-Bits, die an diese angehängt werden und Funktionen hinzufügen. Add-On-Entwicklung gewinnt immer mehr an Popularität, da immer mehr Entwickler auf existierende Software wie Firefox oder WordPress schauen und denken: „Aber wenn es nur DAS könnte…“

Du kannst eine Menge in jedem Webbrowser mit nur einer Beherrschung von HTML, JavaScript und CSS tun. Bookmarklets, Greasemonkey-Benutzer-Scripts und Stylish-Benutzer-Styles werden mit den gleichen Code-Bits erstellt, die normale Webseiten erstellen. Sie sind also lohnenswert, auch wenn du nur eine vorhandene Website mit einem kleinen Codeschnipsel optimieren möchtest.

Mit erweiterten Browser-Add-Ons, wie Firefox-Erweiterungen, kannst du mehr tun. Das Entwickeln von Firefox-Erweiterungen erfordert beispielsweise, dass du mit JavaScript und XML vertraut bist (Markup, das HTML ähnelt, aber im Format viel strenger ist).

Viele kostenlose und beliebte Web-Anwendungen bieten ein Erweiterungs-Framework, wie WordPress und MediaWiki. Beide Apps sind in PHP geschrieben, daher ist Komfort mit PHP eine Voraussetzung für den Einstieg. So schreibst du ein Plug-in für WordPress. Entwickler, die die Spitzenleistung von Google Wave nutzen möchten, können mit dem Schreiben von Gadgets und Bots in HTML, JavaScript, Java und Python mit diesem Schnellstart-Tutorial beginnen.

Web Development für den Desktop

Der beste Teil, wenn du in einem Kontext mit dem Programmieren beginnst, ist, wenn du diese Fähigkeiten anderswo anwenden kannst. Zunächst ist das Lernen von Web-Entwicklung ein guter Anfang, denn jetzt gibt es Möglichkeiten, diese Fähigkeiten auch für Desktop-Anwendungen nutzbar zu machen. Beispielsweise ist Adobe AIR eine plattformübergreifende Laufzeitumgebung, mit der du deine Anwendung einmal erstellst und für die Ausführung auf dem Desktop für jedes Betriebssystem freigeben kannst, auf dem AIR ausgeführt wird. AIR-Apps werden in HTML, Flash oder Flex geschrieben, sodass du deine Webentwicklungsfähigkeiten in einem Desktopkontext anwenden kannst. AIR ist eine grossartige Option für die Bereitstellung von Desktop-Apps.

Mobile App Development

Mobile Anwendungen wie die, die du auf deinem iPhone oder Android-Smartphone ausführst, sind derzeit im Trend, so dass du davon träumst mit der nächsten Killer-App im iTunes App Store reich zu werden. Für den neuen Coder kann jedoch der Sprung in die mobile Entwicklung eine grobe Lernkurve sein, da es Komfort mit fortgeschrittenen Programmiersprachen wie Java und Objective C erfordert. Es lohnt sich jedoch, zu sehen, wie die iPhone- und Android-Entwicklung aussieht. Sieh dir dieses einfache iPhone-Anwendungsentwicklungsbeispiel an, um einen Eindruck davon zu bekommen, was iPhone-Entwickler tun. Android-Apps sind in Java geschrieben, und in diesem Video-Tutorial siehst du, wie ein Android App entsteht.

Geduld, Ellbogen, Trial & Error

Gute Programmierer sind eine besondere Art von hartnäckigen Problemlösern, die von den kleinen Siegen abhängig sind, die auf einem langen Pfad von Trial & Error kommen. Programmieren zu lernen ist sehr lohnend, aber es kann auch eine frustrierende und einsame Erfahrung sein. Wenn du kannst, besorg dir einen Kumpel, der auf dem Weg mit dir arbeitet. Um wirklich gut im Programmieren zu sein, ist es genauso wichtig, dabei zu bleiben, Dinge auszuprobieren und Erfahrungen zu sammeln.

Erfahrene Programmierer: Was habe ich verpasst? Unabhängig von deinem Können, schreibe deine Gedanken und Empfehlungen für Anfänger in den Kommentaren.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: