- Wer programmieren lernen will, sollte zunächst aus einer Idee das passende Anwendungskonzept entwickeln.
- Online-Anbieter wie Udemy, Pluralsight und Edley bieten jede Menge Tutorial-Kurse rund um Softwareentwicklung an.
- Je nach geplantem Einsatzfeld findet die eigentliche Entwicklung in bestimmten Programmiersprachen statt.
Programmieren lernen ja, aber welche Sprache und wie? Die Auswahl an Möglichkeiten ist riesig. Ganz gleich, ob Sie sich für Java, Python, eine der C-Varianten oder gar KI-Programmierung interessieren: Am Anfang steht die Qual der Wahl, wie Sie überhaupt anfangen sollten und wo es die besten Lernangebote gibt. Wir zeigen Ihnen, wie Sie sich im Dschungel der Programmierung bestens zurechtfinden.
Während HTML, CSS, PHP und Java vor allem im Web-Umfeld beliebt sind, können Sie mit Python, C und C++ nicht nur Desktop-Anwendungen, sondern sogar IoT- und KI-Vorhaben umsetzen. Weitere Spezialsprachen wiederum haben ihren ganz eigenen Einsatzzweck. Unser Überblick soll Ihnen helfen, die richtige Programmiersprache für Ihr Projekt zu finden und zeigt, wie ein typisches Programmierprojekt abläuft.
Programmieren lernen: Wie am besten anfangen?
Ein Computer ist immer nur so „schlau” wie seine Programmierung. Was wie eine Binsenweisheit klingt, verursacht so manchem Entwickler in der Praxis oft das meiste Kopfzerbrechen. Sämtliche denkbaren Anwendungs- und Bedienfälle müssen berücksichtigt werden, damit das neu erstellte Stück Software sich nicht mit einer kryptischen Fehlermeldung nebst Programmabsturz verabschiedet – und den oder die Anwender frustriert zurück lässt.
Ganz egal, ob Sie für ein einmaliges Projekt die passenden Fähigkeiten erwerben, Informatik studieren und/oder ein Softwareunternehmen gründen wollen: Der Ablauf eines typischen Programmierprojekts ist meist ähnlich. Er beginnt normalerweise mit einer Idee, auf die dann ein möglichst detailliertes Anwendungskonzept folgt. Erst dann geht es daran, die richtige Programmiersprache zu erlernen. Programmieren lernen ist somit selten reiner Selbstzweck, sondern fast immer an konkreten Anforderungen ausgerichtet.
Das Konzept ist entscheidend für Ihren Erfolg
Wenn Sie programmieren lernen wollen, sollten Sie vor allem eines bedenken: Je mehr Zeit Sie vorab in Ihr Programm- oder App-Konzept stecken, umso einfacher ist hinterher die Umsetzung. Grob gesagt, sollten sie mindestens ein Drittel Ihrer Entwicklungszeit in die Konzeption stecken, ohne bis dahin auch nur eine Zeile Code geschrieben zu haben.
Skizzieren sie also vorab am Besten sowohl das Ziel Ihrer Software („was soll entwickelt werden”), als auch die Plattform („wo soll die Software laufen?”), die hierzu notwendigen Benutzereingaben, Eingabemasken und die Abhängigkeiten der geplanten Programmbestandteile (und eventueller Sensoren) untereinander. Entscheiden Sie sich erst danach fest für eine Programmiersprache – oder setzen Sie (bei einfacheren Konzepten) eventuell auf eine Entwicklungsumgebung mit bereits bestehenden Programmen, die Sie dann nur noch individuell anpassen müssen.
Eventuell ist es sinnvoll, für diese Konzeptphase ein großes Whiteboard, mehrere Seiten DIN-A0-Papier oder ein sogenanntes Mockup-Tool zu nutzen. Meist fallen schon während der Entwurfsphase Abhängigkeiten zwischen Teilbereichen auf, die Sie sonst vielleicht erst während der Entwicklung bemerkt hätten. Außerdem dient Ihre Projektskizze während der gesamten Programmierphase als verbindlicher Leitfaden für die Umsetzung. Speziell in größeren Teams ist eine Projektskizze als gemeinsame Referenz unabdingbar.
Einen besonderen Fokus sollten Sie außerdem – je nach geplantem Vorhaben – auf das Thema Bedienbarkeit legen. Das Stichwort hier lautet UI/UX-Design, welches wir Ihnen ebenfalls in diesem Magazin vorstellen. Auch das Thema grafische Gestaltung und Responsiveness, also die optimale Darstellung auf verschiedenen Geräten, spielt eine wesentliche Rolle.
Entscheiden Sie sich nun für eine oder mehrere Programmiersprachen, die für Ihr Projekt in Frage kommen (mehr dazu unten) und lernen Sie konsequent jeden denkbaren Aspekt durch Lektüre, Programmierung einfacher Testprojekte und jede Menge Übung. Erst danach sollten Sie Ihr eigentliches Vorhaben in Angriff nehmen. Möglicherweise erfordert Ihr Projekt sogar, dass Sie gleich mehrere Programmier- oder Skriptsprachen erlernen.
Während der Entwicklung: Scrum, Kanban und agile Methoden
Die meisten Entwickler-Teams arbeiten heutzutage nach sogenannten agilen Methoden. Dies bedeutet, dass Sie Ihr Projekt in viele Teilschritte aufteilen, die Sie jeweils umsetzen. Dann können Sie überprüfen, ob das System sich so verhält, wie Sie dies erwarten oder sich wünschen. Stimmt etwas nicht, lassen sich mit Hilfe dieser Vorgehensweise mögliche Fehlerquellen sehr früh beheben und gefährden nicht am Ende das Gesamtprojekt.
Video: YouTube / Programmieren Starten
Nach der Entwicklung: Software ist eigentlich nie „fertig”
Die erste Version Ihrer interaktiven Webseite, Ihrer App oder Ihrer Netzwerkanwendung steht bereit und wird gut angenommen? Dann haben Sie bis hierhin vermutlich sehr viel richtig gemacht. Doch eine Schwierigkeit beim Thema Programmierung liegt darin, dass sich die Technologie, die Anforderungen der Kunden und die eventuell verwendeten Programmbibliotheken ständig weiterentwickeln. Dem sollten und müssen Sie Rechnung tragen, damit sich nicht im Laufe der Zeit doch noch Fehler in die Anwendung einschleichen – oder diese einfach nicht mehr auf dem aktuellen Stand der Technik ist.
Nicht ohne Grund erscheinen fortlaufend Updates für Apps, Desktop-Anwendungen oder Betriebssysteme. Hierdurch werden diese nicht nur sicherheitstechnisch auf dem neuesten Stand gehalten – auch der Funktionsumfang wird häufig erweitert.
Wo kann ich programmieren lernen?
Gerade in der heutigen Zeit spielen beim Erlernen einer Programmiersprache natürlich Online-Kurse, Webcasts, Webinare und ähnliche Angebote eine große Rolle. Dennoch bieten auch Volkshochschulen häufig gute Einsteigerprogramme an; speziell für Themen wie HTML-Grundkenntnisse oder den Einstieg in die Java-Programmierung. Mit oder ohne Programmierkenntnisse können auch der Besuch von öffentlichen Hochschulvorlesungen, Fernuniversitäts-Angebote und entsprechendes Material in Buchform eine wichtige Rolle spielen.
Zu den wichtigsten Anbietern von Online-Lernangeboten für Programmiersprachen gehören:
- Udemy: 130.000 Online-Kurse (in englischer Sprache) rund um Python, Web-Anwendungen und JavaScript bieten eine Menge Lernstoff für jeden Kenntnisstand
- Pluralsight (vormals Codeschool): Kurse in Softwareentwicklung werden hier durch entsprechende Zertifizierungsmöglichkeiten und Selbsttests begleitet
- Mozilla Developer Network: Mehr zum Selbststudium und mehr in Textform bietet das Mozilla Developer Network wertvolle Hilfe zum Einstieg in die Welt der (Web-)Programmierung
- Edley: Bei Edley gibt es viele Kurse in deutscher Sprache, insbesondere zu Python, C++ und Java, sowie zum Thema App-Entwicklung
- Edukatico: Kein eigenes Kursangebot, aber einen sehr umfassenden Überblick über Online-Lernangebote bietet dieses Suchportal für Online-Kurse. Nach eigenen Angaben listet Edukatico alleine im Bereich Informatik mehr als 2.000 Online-Kurse auf
Welche Programmiersprache eignet sich für welchen Zweck?
Bevor Sie sich für eine passende Sprache entscheiden, ist es wichtig, dass Sie die einzelnen Felder der Programmierung kennen. Zu diesen zählen:
- Programmierung von Webseiten
- App-Entwicklung für mobile Geräte
- Desktop-Anwendungsprogrammierung
- Netzwerkprogrammierung
- Systemprogrammierung
- KI-Entwicklung
Webseiten programmieren lernen: Das brauchen Sie
Wer im Web-Umfeld entwickeln möchte, beschränkt sich heutzutage in den seltensten Fällen auf die Seiten-Programmiersprache HTML („Hypertext Markup Language”). Immerhin gibt es eine Vielzahl an Web-Editoren wie WordPress, die mit Hilfe von klickbaren Umgebungen bereits brauchbaren HTML-Quellcode für eine einfache Webseite erzeugen können. In diesem Umfeld existieren jedoch eine ganze Reihe weiterer Programmiersprachen, je nach gewünschter Anwendung:
- HTTP, HTML, XHTML und XML sowie CSS: Zur Webseiten-Programmiersprache HTML gehört HTTP, das Hypertext Transfer Protocol. Es sorgt dafür, dass Webbrowser – egal, ob mobil oder desktopbasiert – den Quellcode einer Webseite von einem entfernten Rechner abrufen und an den Browser zur Darstellung übergeben können. Mit HTML, XHTML und XML wiederum können Sie steuern, wie Ihre Webseite für den Anwender dargestellt werden soll. Gleiches gilt für die Cascading Style Sheets (CSS). Aktueller Standard in der Webprogrammierung ist HTML5, das sowohl das klassische HTML, als auch XML unterstützt.
- PHP: Mit PHP (ein Akronym für „Hypertext Preprocessor”) können Sie dynamische Webanwendungen erstellen. Die Skriptsprache basiert auf C und PERL und verarbeitet Daten im Hintergrund, ohne dass diese auf das abrufende System übermittelt werden. Ein typisches Beispiel für PHP-Skripte ist ein Webseiten-Kontaktformular.
- FTP: Das sogenannte File Transfer Protocol arbeitet ähnlich wie HTTP, dient aber vor allem zur betriebssystemunabhängigen Übertragung von Dateien zwischen entfernten Standorten.
- POP3, SMTP, IMAP und MAPI: Diese Protokollsprachen steuern den Umgang mit E-Mails. Während POP3 (zum Empfangen von E-Mails) und das zugehörige SMTP (zum Versenden von E-Mails) inzwischen als veraltet gelten, arbeiten die meisten aktuellen E-Mail-Server entweder mit IMAP („Internet Message Access Protocol”), oder MAPI („Messaging Application Programming Interface”, vor allem im Outlook- und Exchange-Umfeld verbreitet).
- ASP, ASP.NET und JSP: Mit Active Server Pages (ASP) und Jakarta Server Pages (JSP) können Sie ähnlich wie in PHP serverseitige Anwendungen auf Webseiten bereitstellen. Während PHP kostenfrei nutzbar ist, basiert ASP auf Microsoft-Technologie und gilt als flexibler, aber auch komplexer.
Eine App entwickeln: So gehen Sie vor
Ihre Webseite läuft gut, doch eine passende App fehlt? Sie haben das nächste süchtig machende Freemium-Spiel im Sinn, oder planen eine nützliche Alltags-App für Jedermann? Dann sollten Sie lernen, Apps zu entwickeln. Die beiden gängigen Plattformen unterscheiden sich hierbei in den zugrunde liegenden Programmiersprachen:
- Android: Die Apps basieren auf der Programmiersprache Java und die Entwicklung erfolgt häufig im Android Studio.
- iOS: Die Apps basieren auf Objective-C (einer C-Variante) oder der Apple-Programmiersprache Swift und die Entwicklung kann beispielsweise über Xcode für den Mac erfolgen.
Bevor Sie sich jedoch bis ins kleinste Detail mit den genannten Sprachen beschäftigen, sollten Sie einen Blick auf unseren Beitrag zum Thema iOS- und Android-App-Entwicklung werfen: Diverse Tools bieten hier einen hervorragenden Einstieg, viele Funktionen und ermöglichen sogar die parallele Entwicklung für iOS und Android.
Wie Sie Ihre App in Googles Play Store und im Apple App Store veröffentlichen und anschließend promoten können, stellen wir Ihnen ebenfalls an separater Stelle in unserem Magazin vor.
Video: YouTube / STARTUP TEENS
Desktop-Anwendungen entwickeln: Diese Sprachen eignen sich besonders gut
Zu den wichtigsten Programmiersprachen im Desktop-Umfeld zählen bis heute Java, C++ und Python. Zu ihnen existieren jeweils eigene, sogenannte Frameworks, die Sie herunterladen und für die App-Entwicklung nutzen können. Hierzu sind allerdings fortgeschrittene Kenntnisse in objektorientierter Programmierung ebenso vonnöten wie Erfahrung mit Modellierungstechniken wie beispielsweise UML (Unified Modeling Language) und ORM (Object Relational Mapping).
Während es bei Apps häufig um eine Abfolge von Klicks auf diversen Screens geht und die Komplexität häufig überschaubar ist, gibt es Desktop-Apps mit fast schon beliebigem Funktionsumfang, oder wie der Programmierer sagt, beliebiger Mächtigkeit. Gerade das Thema grafische Oberflächengestaltung, Grafikprogrammierung (im Bereich von Spielen) und eventuelle Datenbankanbindungen sind hier von besonderer Bedeutung. Eine häufig genutzte Programmierumgebung ist hier Microsofts Visual Studio, das sowohl C++, als auch Java, aber auch Visual Basic .NET und sogar C# (C-Sharp) unterstützt.
Netzwerkprogrammierung: So bringen Sie verschiedene Systeme zusammen
Die Welt der Netzwerkprogrammierung beschäftigt sich, wie der Name schon sagt, vor allem mit dem Aufbau von Computernetzen und der verteilten Datenhaltung. Egal, ob Sie Client-Server-Anwendungen entwickeln, einen Router programmieren oder eine VPN-Einwahl einrichten wollen – erweiterte Kenntnisse in den gängigen Protokollstandards wie IPv4 und IPv6, sowie TCP, UDP und HTTP sind hier meist Grundvoraussetzung.
Außerdem sind Kenntnisse in Windows Script Host-Umgebungen, in Linux, in Perl und einer der objektorientierten Programmiersprachen wie C, Java oder Python vorteilhaft. Weitere wichtige Aspekte in der Netzwerkprogrammierung sind Architektur- und Protokollstandards wie CORBA, SOAP, AJAX und XML.
Systemprogrammierung: Mit IoT-Projekten zum Geschäftserfolg
Ein Programmierfeld, das in den letzten Jahren zunehmend an Bedeutung gewonnen hat, ist das der eingebetteten Systeme, beziehungsweise des Internet der Dinge (IoT). Durch immer kleinere Bauteile mit immer mehr Leistung und der Möglichkeit der Gerätevernetzung via Mobilfunk entstehen derzeit jede Menge neue, spannende Anwendungen mit großem Erfolgspotenzial.
Mit dem Raspberry Pi und dem Arduino existieren in diesem Bereich Kleinstcomputer, die fast alle gängigen Schnittstellen eines handelsüblichen Desktop-Computers aufweisen – dabei aber kaum größer sind als eine Packung Spielkarten. Darüber hinaus bieten sie verschiedene sogenannte Ports für die „freie” Ansteuerung angeschlossener Sensoren und Aktoren.
Wie Sie Windows 10 IoT Core auf dem Raspberry Pi installieren, welche spannenden Projekte es für den Kleinstcomputer gibt und wie Sie mit dem Narrowband-IoT Development Kit Ihr IoT-Vernetzungsprojekt entwickeln und testen können, erfahren Sie ebenfalls hier und in unserem Geschäftskunden-Portal.
Video: YouTube / codefuchs
KI-Entwicklung: Wie Sie Maschinen das Lernen beibringen
Auch das Thema künstliche Intelligenz erobert inzwischen mehr und mehr unseren Alltag. Wenn Maschinen das Lernen lernen, liefert normalerweise der Mensch die Grundlagen – und man spricht von KI-Programmierung.
Meist spielen hier Aspekte wie Mustererkennung, Sprachsynthese oder -analyse und neuronale Netze, sowie Themen aus der Robotik eine Rolle. Wer sich nicht auf Cloud-Plattformen wie IBM Watson oder Microsoft Azure verlassen will, sollte auf jeden Fall tiefgreifende Kenntnisse in Themen wie Big-Data-Analyse und Cloud-Technologien erwerben.
Inzwischen können Computer sogar Bilder malen und diverse Unternehmen haben sich einen Namen im Bereich KI-Entwicklung gemacht. Dennoch ist gerade hier noch viel Spielraum für innovative und nützliche Ideen, die das Leben der Menschen vereinfachen werden. Entwickler sollten sich bei diesem gesellschaftlich heiß diskutiertemThema allerdings auch mit Ethikfragen im Bereich der KI auseinandersetzen.
Welche Programmiersprache möchten Sie erlernen und warum? Wir sind gespannt auf Ihren Kommentar.
Kommentare