In den letzten Monaten habe ich gelernt, iOS-Apps in Objective-C zu schreiben, und endlich beginne ich, meine Gedanken zu ordnen. Es war viel schwieriger, als ich mir vorgestellt hatte, und hat viel zu lange gedauert.
Ich bin oft auf Schwierigkeiten gestoßen und war frustriert, und das Beheben von Fehlern hat viel mehr Zeit in Anspruch genommen als das eigentliche Schreiben von Code. Aber es gibt ein erstaunliches Gefühl, wenn man mit einer App auf dem eigenen Telefon spielt, die man von Grund auf selbst gebaut hat.
Auf diese Weise habe ich viel gelernt – nicht nur über die Entwicklung von iOS-Apps, sondern über Programmierung im Allgemeinen. Ich bin auch auf einige Probleme gestoßen, die ich vielleicht vermieden hätte, wenn ich Objective-C anders gelernt hätte.
Rückblickend: Wenn ich heute Programmieren lernen würde, würde ich einige Dinge anders machen.

Finde einen Programmierpartner
Ich habe auch eine Lernmethode gefunden, die funktioniert: einen echten, lebenden Menschen zum Reden zu haben.
Mein Mitgründer Josh, der hauptsächlich Python-Entwicklung macht, lernte tatsächlich Objective-C gemeinsam mit mir und beantwortete viele meiner Fragen zur Programmiertechnik („Wie bekomme ich eine if-Anweisung wieder zum Laufen?“), und half mir beim Debuggen, als ich wirklich feststeckte.
Einen äußerst geduldigen Programmierpartner zu haben, der grundlegende Programmierprinzipien erklären konnte, war eine riesige Hilfe. Josh half mir oft, den größten Teil der Logik zur Lösung eines Problems durchzudenken, bevor ich die konkreten Details in Objective-C ausarbeitete.
Ressourcen gut nutzen
Wenn du nicht das Glück hast, einen geduldigen Programmierer in der Nähe zu haben, der Fragen beantwortet, gibt es andere Orte, an denen du Hilfe von echten Menschen bekommen kannst:
Bei Fragen zu bestimmter Syntax oder Implementierung ist Stack Overflow eine der Seiten, die ich in letzter Zeit am häufigsten besucht habe. Ich habe dort selbst noch keine Fragen gestellt (ich war vorsichtig beim Fragen, obwohl die Community recht freundlich zu Anfängern ist), weil ich es selten muss – wenn ich die Antworten auf die Fragen anderer durchstöbere, werden die meisten meiner Probleme gelöst.
Treehouse bringt Programmierung durch Videolektionen bei und hat außerdem ein Community-Forum, in dem du schwierige Bugs oder konkrete Übungen besprechen kannst, auf die du bei den Kursen stößt.
Wenn du Hilfe brauchst, kannst du dich mit askadev mit erfahrenen Entwicklern verbinden. Ich habe diesen Dienst noch nicht ausprobiert, daher weiß ich nicht, wie nützlich er ist oder ob er jede Programmiersprache abdeckt, aber er ist kostenlos, also kannst du es ruhig ausprobieren, wenn du das nächste Mal Hilfe brauchst.
Wenn du erfahrene Entwickler für Hilfe bezahlen möchtest, bringt Codementor dich mit Leuten zusammen, die mit der Sprache vertraut sind, die du lernst. Sie decken Android, iOS, HTML, CSS, PHP, Python und viele andere Technologien ab.
Problemlösen mit der Gummiente
Wenn du es noch nicht gesehen hast, ist der Blogbeitrag „Rubber Duck Problem Solving“ sehr nützlich. Die Idee ist: Erkläre dein Problem laut einer Gummiente oder einem anderen leblosen Gegenstand, wie einem Toaster. Der Prozess, das Problem laut durchzusprechen, hilft dir oft, die Antwort selbst zu erkennen (oder zumindest herauszufinden, wo etwas schiefgelaufen ist). Ich habe festgestellt, dass es eine unglaublich gute Angewohnheit ist, laut über meinen Code zu sprechen, und ich versuche es jedes Mal, bevor ich jemanden um Hilfe bitte.
Die Standards lernen
Was mich während meiner Zeit, in der ich Programmieren lernte, am meisten beeinflusst hat, war, dass ich die Technologie, die ich verwendete, missverstand und mit ihr nicht vertraut war. Zum Beispiel bedeutete die Arbeit mit APIs, dass ich verstehen musste, wie APIs funktionieren, wie man POST- und GET-Anfragen verwendet, wie man JSON-Daten parst und sogar, dass ich den Empfang von JSON-Daten handhaben musste.
Objective-C zu lernen ist nicht alles, was man wissen muss, um iOS-Apps zu entwickeln – zumindest nicht die Art, die ich entwickeln wollte. Ich habe den Fehler gemacht zu denken, dass es ausreichen würde, einfach Objective-C zu können. Noch schlimmer: Ich geriet oft in Schwierigkeiten, weil die Leute, die auf Stack Overflow Fragen beantworteten, in Online-Tutorials und Buchkapiteln alle erklärten, wie man in Objective-C entwickelt, dabei aber die webbasierten Prinzipien völlig übersprangen, von denen sie annahmen, dass ich sie bereits kannte.
Wenn ich heute von vorn anfangen würde, würde ich zuerst mein Wissen über HTML und CSS aufbauen. Wenn ich auf neue Technologien stoßen würde, über die ich nicht viel wusste, würde ich mir zuerst ein allgemeines Verständnis davon aneignen, bevor ich versuchen würde, sie in Objective-C umzusetzen.
Du kannst mit jeder Sprache anfangen
Wenn du dir wirklich nicht sicher bist, wo du anfangen sollst oder was du entwickeln möchtest, lass dich davon nicht aufhalten. Auch wenn ich Zeit damit verbracht habe, Ruby und Python zu lernen, ohne irgendwelche Projekte damit abzuschließen, betrachte ich diese Zeit nicht als verschwendet.
Ein üblicher Einstieg für Anfänger ist das Erlernen von HTML und CSS, um Websites zu entwickeln. Dabei handelt es sich eigentlich um Auszeichnungssprachen. Wenn du also mobile oder Web-Apps entwickeln möchtest, könnte das Erlernen von HTML und CSS wie Zeitverschwendung erscheinen. Aber in diesem Fall gewinnst du Wissen und Erfahrung, die dir helfen werden, wenn du weiter Programmiersprachen lernst.
Wenn du unbedingt mit dem Programmierenlernen beginnen möchtest, aber nicht weißt, wo du anfangen sollst, nimm einfach ein Buch, ein Tutorial oder einen Online-Kurs — was auch immer dir gefällt — und arbeite dich durch! Sobald du besser verstehst, was du bauen möchtest, kannst du dich jederzeit dafür entscheiden, eine andere Sprache zu lernen.
Finde ein Projekt, das dir wirklich am Herzen liegt
Für mich war die größte Lernkurve wahrscheinlich, die Motivation zu finden, weiter Programmieren zu lernen. Ich habe es in der Vergangenheit viele Male versucht: HTML und CSS als Kind zu lernen, ein paar Jahre später die Grundlagen von Ruby und vor kurzem Python.
Ich entschied mich, Objective-C zu lernen, nicht weil ich es mehr mochte als Ruby oder Python und nicht weil ich Leute kannte, die Objective-C lernten, sondern einfach weil ich eine Liste mit iOS-App-Ideen hatte, die ich umsetzen wollte — ich wollte sie wirklich bauen.
Meine Motivation, Objective-C zu lernen, war stärker als bei jeder anderen Sprache, die ich zuvor gelernt hatte, weil ich persönliche Projekte hatte, die ich entwickeln wollte und die mich motivierten.
Vor allem, als die Schwierigkeit zunahm und ich mich frustriert fühlte und auf Probleme stieß, gab ich nicht auf – weil ich ein Projekt entwickelte, das mir wirklich am Herzen lag. Jedes Mal, wenn ich es schaffte, eine neue Funktion zu implementieren und sie gut funktionierte, war die Belohnung sogar noch besser, weil sie Teil eines Projekts war, für das ich mich begeisterte.
Wenn du darüber nachdenkst, Programmieren zu lernen, und keine Einschränkungen bei der Wahl der Sprache oder Plattform hast, empfehle ich dir dringend, ein Projekt zu wählen, für das du dich wirklich begeisterst, und das die Grundlage für die Wahl der Sprache bilden wird, die das Projekt erfordert.
Jeder lernt anders, also wirst du möglicherweise andere Erfahrungen machen als ich, aber wenn du gerade erst anfängst oder darüber nachdenkst, Programmieren zu lernen, hoffe ich, dass meine Erfahrungen und Fehler dir helfen können, schneller zu lernen.
- Hinweis: Die Debugging-Methode mit dem kleinen gelben Entchen, auch bekannt als Rubber-Duck-Debugging oder Yellow-Duck-Debugging (Rubber Duck Debugging), ist eine der Code-Debugging-Methoden, die im Software-Engineering verwendet werden. Sie bedeutet, beim Debuggen, bei der Fehlerkorrektur oder beim Testen eines Programms geduldig den Zweck jeder Codezeile einem kleinen gelben Entchen zu erklären, um Inspiration zu wecken.
Artikelquelle:www.labazhou.net
Originaler englischer Text:Was ich anders machen würde, wenn ich heute Programmieren lernen würde