Die 5 Coding-Skills, die sich jeder selbst aneignen kann
Zuletzt wurden laut Digitalverband Bitkom allein in Deutschland 124.000 Fachkräfte im IT-Bereich gesucht – darunter besonders häufig Programmierer. Diese Zahl ist an sich schon beeindruckend, in der aktuellen Krise bekommt sie jedoch eine noch größere Bedeutung: Mehr Menschen als sonst denken derzeit über eine berufliche Veränderung nach – ob freiwillig oder notgedrungen. Vielleicht überlegt auch ihr schon seit Längerem, ob die Softwareentwicklung das Richtige für euch sein könnte.
In diesem Fall lautet die wichtige Frage: Was sind die fünf wichtigsten Coding-Skills, mit denen man sich vertraut machen sollte, wenn man überlegt, ob man Programmieren lernen sollte? Wo und wie kann man in dieses komplexe Thema einsteigen, ohne sich gleich völlig zu überfordern?
Die gute Nachricht lautet: Es gibt im Netz extrem viele hilfreiche Ressourcen, die es euch ermöglichen, kostenlos und unverbindlich ein paar erste Schritte in Richtung Coding zu gehen. Damit ihr nicht den Überblick verliert, findet ihr im Folgenden fünf Empfehlungen. Man kann sie in dieser Reihenfolge durcharbeiten, muss man aber nicht.
1. Aller Anfang muss nicht schwer sein – die Grundlagen mit HTML, CSS und JavaScript
Zu Beginn stellt man sich meistens die Frage: „Es gibt unzählige Programmiersprachen – wo soll ich bloß anfangen?“. Allgemein sollte man darauf achten, dass die erste Sprache gut zugänglich ist und über eine große Community verfügt. Daneben kommt es natürlich darauf an, zu überlegen, was man mit der Sprache anfangen will. Mit dem „Dreiklang“ aus HTML, CSS und JavaScript liegt man allerdings selten völlig falsch. Das liegt daran, dass niemand, der fürs Web programmiert, an diesen drei Sprachen vorbeikommt. Sehr empfehlenswert ist dieser kostenlose Kurs der Duke University, denn es geht sowohl um einige ganz grundlegende Konzepte des Programmierens als auch um die drei erwähnten Sprachen.
2. Seid kreativ und habt Spaß – mit JavaScript
Danach könnte es sinnvoll sein, JavaScript noch ein bisschen zu vertiefen. Vor allem aber geht es um Folgendes: Habt Spaß! Findet heraus, was ihr mit eurem neuen Wissen anstellen könnt und wie ihr es kreativ einsetzen könnt. Ein Tipp: In diesem kurzen Tutorial lernt ihr, wie ihr euer erstes Spiel mit JavaScript programmiert – sogar ein allererster Ausflug in die künstliche Intelligenz ist mit dabei.
3. Denken, wie ein Entwickler – Ruby und Ruby on Rails
Ruby sollte auf dieser Liste nicht fehlen. Das hat gleich mehrere Gründe: Erstens ist Ruby – ganz besonders wenn man die Sprache in der Entwicklungsumgebung Ruby on Rails anwendet – extrem anwenderfreundlich. Die Sprache soll das Leben ihrer Anwender erleichtern und ist sowohl einfach zu lesen als auch zu schreiben. Wenn man Ruby lernt, lernt man auch, so zu denken und Probleme zu lösen, wie Softwareentwickler es in ihrer täglichen Arbeit tun müssen. Zweitens ist Ruby unschlagbar, wenn es darum geht, Prototypen von Websites oder Apps schnellstmöglich zu erstellen. Daher ist die Sprache die erste Wahl für Entrepreneure, die schnell ein MVP bauen wollen. Viele bekannte und innovative Unternehmen nutzen Ruby und bieten interessante Jobs für Entwickler, die diese Sprache beherrschen. Um nur ein paar zu nennen: Airbnb, Groupon, Couchsurfing, Shopify.
Absolut empfehlenswert ist der zehnstündige Ruby-Einsteigerkurs von Codeacademy (auch hier geht es um einige Grundlagen des Programmierens, daher könnte man als völliger Neuling auch mit diesem Kurs einsteigen). Dazu kommen sehr hilfreiche Anwendungstipps zu Ruby on Rails von der großartigen Organisation Rails Girls – einer Community von weiblichen Rails-Anwenderinnen, die sich vorgenommen hat, ihr Wissen weiterzugeben.
4. Daten sind das neue Öl? Dann braucht ihr Python, um die Raffinerie zu bauen
Es könnte natürlich auch sein, dass man sich schon sicher ist, dass der Weg in Richtung Data-Science führen soll. In diesem Fall sollte man sich definitiv auf Python fokussieren, denn diese Sprache ist darauf spezialisiert, große Datenmengen auszuwerten, statistische Methoden effizient anzuwenden und so am Ende konkrete Handlungsempfehlungen für euer Unternehmen oder eure Organisation zu erhalten. Auch auf dem Jobmarkt werden Data-Scientists immer häufiger und dringender gesucht. Sehr zu empfehlen ist der umfangreiche Python-Track von Dataquest, der aus etlichen Modulen besteht.
5. Last, but definitely not least – UX-Design
Zu guter Letzt solltet ihr euch mit einen Coding-Skill beschäftigen, der häufig viel zu sehr vernachlässigt wird: Es geht darum, dass man sich als angehender Entwickler möglichst früh mit den Grundlagen des User-Experience-Designs (UX) auseinandersetzen sollte. Denn wer von uns mag bitteschön schlecht nutzbare beziehungsweise unansehnliche Websites oder Apps? Sehr kurzweilig ist dieser Kurs, der von Accenture auf futurelearn.com angeboten wird. Er dauert drei Wochen, erfordert aber pro Woche nur zwei Stunden Zeitaufwand und vermittelt sowohl die Grundlagen des UX-Design als auch die nötigen Tools und alles, was man zum Thema Testing wissen muss.
Letztlich gibt es viele Wege, wie man zum Softwareentwickler werden kann. Eines steht aber ganz sicher fest: Sobald man sich die ersten Kenntnisse und Skills angeeignet hat, muss man vor allem eines tun: coden, coden, coden. Nur wenn man sein Wissen ständig wieder auf neue Probleme und Herausforderungen anwendet, kann man sich weiterentwickeln. Das Gute daran ist: Dann macht es auch am meisten Spaß!
HTML und CSS sind Quelltexte, man spricht von „Quelltext schreiben“ es sind keine „Programmiersprachen“, Javascript allerdings ist eine Scriptsprache und somit als Programmiersprache anerkannt. HTML und CSS sind im Zusammenhang mit Programmiersprachen, da eigtl. immer HTML und CSS mittels einer Programmiersprache erzeugt wird. z.B. mit einem Django (Python modul) Projekt.
Ich finde Python sollte an Zweiter stelle in so einem Artikel stehen, da Python die wohl Einsteigerfreundlichste Sprache ist nach Javascript. Zumindest die Basics sind Unkompliziert und leicht einzuprägen um etwas damit anfangen zu können, außerdem gibt es (für leute die eventuell eigene spiele Entwickeln wollen um mit dem Programmieren anzufangen) eine Gameengine die sehr auf Python aufbaut, sie benutzt die Sprache GD.script und heißt Godot (Sehr einsteigerfreundlich im bereich der Spieleentwicklung, Komplett OpenSource und Großartige Dokumentation, naja bis auf die High Level Network API). Auf jedenfall ist Python solange es nicht in die tiefere Materie geht, sehr einfach zu lernen. AppNee bietet übrigends 111 E-books zu Python gratis an (quelle: https://appnee.com/all-python-related-ebooks-collection-post/).
Einen Guten Morgen Gruß,
Tim Nätebus
Wenn ihr wirklich „Coding Skills“ wollt, dann lernt Programmieren (ist ein deutsches Wort, sorry) und nicht Programmiersprachen. JavaScript z.B. ist tatsächlich sehr speziell. Die Grundlagen könnt ihr lernen, womit ihr wollt. Ruby z.B. ist wunderschön (zu schön!), aber aus guten Gründen auf dem absteigenden Ast. Lernt die Grundlagen und dann macht euch die Hände schmutzig und programmiert was – am besten jedes neue Projekt mit einer anderen Technologie.
Nebenbei: RoR ist keine „Entwicklungsumgebung“ sondern ein Framework. Finger weg von Frameworks am Anfang! Die wirken leicht wie Magie, aber man lernt so nur auf harte Tour, dass einen das Framework nicht das Programmieren abnimmt. Copy’n’Paste-Framework-Skript-Kids braucht keiner. Oder anders: Verwendet kein Framework, dass ihr nicht auch selbst hättet schreiben können.
Ja ich weiß, dass ist wieder so eine arrogante Antwort eines Senior-Programmierers. Lasst euch dennoch nicht entmutigen. Einfach anfangen.
Verwende keinen Compiler, den du nicht auch selber hättest schreiben können!!
Die harte Tour bringt vor allem bei Anfängern eines. Das die sich nicht mehr für das Programmieren interessieren. Daher finde ich dien sanften Einstieg mit Auszeichnungssprachen sehr sinnvoll. Zumal die meisten Senior-Programmiere diese auch oft nicht richtig beherrschen.
Jede Programmiersprache hat Quelltexte. Das nennt man in unseren Fach Auszeichnungssprachen.
Selbst die beherrscht nicht jeder. ;)
Ich habe einen Beruf, in dem ich nichts mit HTML, CSS oder dem erstellen von Programmen zu tun habe. Aber aus privatem Interesse habe ich schon vor einigen Jahren angefangen HTML und CSS zu erlernen. Nun wollte ich mir im Selbststudium (Bücher) PHP beibringen. Da PHP aber nun mal ziemlich komplex ist bleiben Fragen natürlich nicht aus. Was liegt also näher als in Foren diese Fragen zu erörtern?
Da kamen jedoch von Forennutzern nur lapidare Antworten wie: “Lies das PHP – Manual, da steht alles drin“ oder arrogante Programmiererinnen, deren Überheblichkeit schon exponentiell ist, antworten: “Ich bin ja mal nicht so und verrate dir die Lösung. Du wirst aber damit nichts anfangen können. Das kannst du dir hinter die Ohren schreiben“.
Und da ich keine Lust habe diese literarischen Ergüssen solcher “Experten“ bzw. “Expertinnen“ über mich ergehen zu lassen, beschäftige ich mich jetzt eben NICHT mehr mit Variablen, Verzweigungen oder Schleifen.
Wieso sollte man Programmieren lernen? Um Geld zu verdienen?
Dann werdet Händler! Händler sind in Deutschland absolute Mangelware, und ich meine jetzt nicht Verkäufer, sondern echte Händler. Händler die beliebige Waren annehmen und gegen andere Waren tauschen. Einfach bei Unternehmen nach Werbegeschenken fragen und diese dann anderen Unternehmen anbieten. Aber nie den Fehler machen Geld dafür zu verlangen, immer nur andere Waren, welche die Firma produziert. Das Geld muss vom Händler zur Firma fließen! Früher oder Später wird es gelingen diese Einzelteile zu vermarktungsfähigen Produkten zu kombinieren, die einen Marktwert besitzen. Das erfordert eine gewisse Intelligenz, wer diese besitzt kann als Händler reich werden. Solange Händler Mangelware sind. Bringt die Wirtschaft wieder zum Laufen, Produkte gibt es gerade im Überfluss, der Handel versagt!!!
Programmierer sollte man nur werden, wenn dies seine persönliche Leidenschaft ist. Wer sich einen echten Eindruck vom Programmieren verschaffen will, um mitreden zu können, sollte C lernen. „Einfach“ mal ein Sudoku ausrechnen. Einsteigerfreundliche Sprachen vermitteln eine falsche Illusion! Man sollte den Wert der Waren, mit denen man handelt richtig einschätzen können!
Bei allem Respekt, aber dieser Artikel enthält meiner Meinung nach einige falsche (oder wenigstens fragwürdige) Aussagen. Ich würde den Empfehlungen nicht folgen, aus folgenden Gründen.
Implizit schwingt die Prämisse mit, als wäre es das Beste, mit Programmieren im Webbereich anzufangen. Die ersten Empfehlungen sind nämlich HTML/CSS/Javascript und die explizite Erwähnung von Ruby on Rails.
Gibt es dafür ausschlaggebende Gründe? Klar, Webprogrammierung ist ein gefragtes Gebiet, aber meines Wissens nach sicherlich nicht das Gefragteste (s. z.B. Apps). Ganz abgesehen davon empfehle ich *dringend* allen interessierten Menschen, die noch nie programmiert haben, erst einmal die Grundlagen sich anzuschauen, bevor sie anfangen, sich mit so einem unglaublich komplexen Feld wie dem Web zu beschäftigen.
Wieso sollte man sich außerdem ausgerechnet am Anfang mit Javascript auseinandersetzen? Eine Sprache, bei der aus x=y und y=z noch nicht einmal immer x=z folgt?? ;) Javascript hat ein paar Designschwächen, die meiner Meinung nach gerade Programmieranfänger verderben/verwirren. Es gibt wesentlich bessere Sprachen, die man zum Einstieg lernen kann. (In dem Zusammenhang: Finger weg auch von PHP!)
Nächster Punkt: „[…] sollte man sich definitiv auf Python fokussieren, denn diese Sprache ist darauf spezialisiert, große Datenmengen auszuwerten“. Ihr Ernst? Diese Aussage ist schlichtweg falsch. Python ist eine allgemeine Programmiersprache, sie ist definitv *nicht* darauf spezialisert. Sie ist auf gar nichts spezialisiert, und gerade das macht die Stärke von Python aus: Es gibt unglaublich viele, hochperformante Bibliotheken, die es erlauben, mit Python sehr vieleAufgaben anzugehen – darunter selbstverständlich auch die Bearbeitung großer Datenmengen (bspw. Pandas), aufwendige Simulation im technischen Bereich (NumPy/SciPy/Matplotlib, Fenics, etc. ), Machine Learning (Scikit Learn u.a.), Webentwicklung (z.B. Django) uvm. Übrigens sollte man nicht versuchen, ohne Bibliotheken solche Dinge anzugehen (außer vielleicht Web), da reines Python an sich relativ langsam sein kann.
Apropos: Ich muss gestehen, ich weiß nicht viel über die Verbreitung von Ruby, aber mein Eindruck ist, als beschränkt sich der Einsatz von Ruby in der Industrie aufs Web (eben mit Ruby on Rails). Man möge mich korrigieren, wenn ich mich diesbezüglich irre. Aber gerade deshalb würde ich von Ruby abraten, weil man sich damit sehr einschränkt. Als Einstieg würde ich, wie im letzten Absatz angedeutet, Python empfehlen, da Python an sich auch sehr einsteigerfreundlich ist und außerdem mit Django ebenfalls ein sehr umfangreiches Framework zur Webentwicklung mitliefert. Abgesehen davon, dass Python eben auch in sehr vielen anderen Bereich zum Einsatz kommt.
Wenigstens dem fünften Punkt im Artikel kann ich mich voll und ganz anschließen.
Also, wenn man programmieren lernen will, was ich gerade als Quereinsteiger gemacht habe, kann ich erst einmal nur empfehlen in einer Sache gut zu werden. Ich habe mich voll auf JavaScript fokussiert und schreibe das jetzt seit 2 Jahren. Nebenbei lernt man dann die Grundlagen von Css und html. Dann auch noch gleich Python, ruby und ux zu lernen ist aus meiner Sicht für Leute die Überlegen programmieren zu lernen einfach Quatsch. Dann lernt man einfach nichts richtig. Das sollte man dann vielleicht nach 5 Jahren ganz gut können, aber definitiv nicht in den ersten Jahren. Da wäre wohl sql sehr viel früher dran.
Gerade in Zeiten des Klimawandels und erschöpfender Resourcen sollten wir eigentlich von so Resourcen fressenden Technologien wie interpretierten Sprachen, am besten noch in VMs ablaufend, wegkommen.
Und ein guter Entwickler sollte verstehen, warum zB. Javascript so resourcenhungrig ist.
Zu viel Software wird geschrieben, die effektiv keine anderen Probleme löst als ältere Systeme, und sich im Wesentlichen durch gestiegenen Resourcenverbrauch von ihren Vorgängern abhebt.
Und am Besten noch von C, C++ oder moderne effiziente Sprachen wie Rust wegportiert zu Python oder noch besser: Javascript…
Allerdings ist diese Erkenntnis nicht neu – Niklaus Wirth hatte dazu schon vor 25 Jahren solche Beobachtungen in einem Paper dokumentiert.
Und ein solcher Artikel, der so tut als rotierte das gesamte Entwickleruniversum ausschließlich um Web und Skriptsprachen, macht mir da aber wenig Hoffnung auf Änderung in nächster Zeit…
Aber gut – Energie kostet nix, Entwicklerzeit schon, und Frickelsoftware, die halt irgendwie so läuft, weil von irgendeinem Scriptkiddie zusammengekloppt, kann man ja durch Virtualisierung und „absichern“ …
Als jemand, der seit 25 Jahren programmiert, die letzten 10 davon professionell im Raumfahrtbereich, muss ich da korrigieren:
Wenn man Programmieren kann, spielt die Sprache keine wesentliche Rolle.
Im Gegenteil: Wenn man sich zu stark auf eine Sprache konzentriert, hat man vermutlich von zu vielen Aspekten der Programmierung keine Ahnung, weil jede Sprache nur gewisse Kompetenzen erfordert.
Alle hier besprochenen Sprachen (HTML und CSS ignoriere ich mal – das ist eher Textsatz) sind bspw. ziemlich austauschbar: Schwach typisiert, interpretiert, mit Garbage Collector, Duck-Typing auf die ein-oder andere Weise, mit objektorientierten und funktionalen Koneźepten – da kann man ziemlich einfach von einer zur anderen wechseln – das kann ich sagen, weil mein Arbeitsumfeld genau sowas erfordert.
Ganz anders dagegen zB. C : Wenn man nur Skriptsprachen gemacht hat, wird man viel Blut, Schweiß und Tränen investieren müssen, bis man hier auf einen grünen Zweig kommt – die fordert sehr viel mehr Wissen und Geschick, um annehmbare Anwendungen zu bauen – und haben ihre absolute Berechtigung.
Und was man nicht vergessen darf: Der Umkehrschluss, dass das Kennen vieler Sprachen einen zu einem guten Entwickler macht, ist leider auch falsch – denn das heisst noch lange nicht, dass man größere, portable, wartbare Software in der Lage zu schreiben ist.
Mir ist zB. völlig unklar, wie man es bspw. in Java schaffen kann, Software zu bauen, die nur unter Windows läuft.
Oder 15000-Zeilen lange Sourcefiles mit Methoden, die sich über hunderte von Zeilen erstrecken, ernsthaft schreiben kann.
Oder denkt, es wäre eine gute Idee, über jede Methode einen Kommentar der Art „Das ist eine Methode“ zu schreiben.
Oder 3 Sprachen in einem Sourcefile mischt.
Oder Makros so extensiv einsetzt, dass man ohne den Praeprozessor drueber laufen zu lassen nicht mehr weiß, was für Code man eigentlich gerade geschrieben hat.
Oder Exceptions als Goto-Ersatz einsetzt.
Die Liste könnte ich ewig fortsetzen.
Naja, Ruby ist halt tot…
Wenn man wirklich programmieren lernen möchte, sollte man meiner Meinung nach eine Typisierte Sprache lernen. Um ertste Kontrollstrukturen und Schleifen kennen zu lernen sind JavaScript und Python sicherlich geeignet. Wenn man aber irgendwann wirklich verstehen will warum Dinge funktionieren und warum Dinge nicht funktionieren, sollte man sich mit einer stark Typisierten Sprache auseinandersetzen. Wenn man schon JavaScript gelernt hat, würde sich hier zum Beispiel TypeScript anbieten.
Starke Aussage. Das bedeutet, dass nur Jugendliche mit dem Programmieren anfangen dürfen, wenn Client-Applikationen bauen wollen. WebApps und MobileApps sind dann verboten, solange sie nicht mit C funktionieren. In diesem Sinne an alle Jugendlichen: Lernt Backend-Technologien wie facil.io (was kaum einer nutzt) – Sonst werdet ihr von Senior Programmierern nicht akzeptiert.
Ich habe in der Uni Java gelernt und Assembler sowie C nur am Rande gehabt. So wie viele andere Leute, die sehr früh wussten, dass sie in die Web-Entwicklung wollen. Nach der Logik einiger Kommentatoren, hätte ich Assembler und C lernen produktiv anwenden müssen (die meisten lernen und vergessen es) und danach erstmal noch eine Ausbildung machen müssen, um C-Profi zu werden, um dann noch eine Ausbildung zu machen und dann endlich Webprogrammierung machen zu dürfen. Als Hobby als Jugendlicher sollte man das dann erst recht nicht haben (dabei fangen viele gute Programmierer mit Schrottcodes als Jugendliche an). Solche Kommentare gab’s schon, als ich noch Jugendlicher war und wenn alle Jugendlichen sich davon hätten abschrecken lassen, gäb’s heute auch mehr Webdesigner und Product Owner als Coder und eine Mehrheit der
Webprojekte könnten gar nicht erst angegangen werden.
Als ich den Teaser zu dem Artikel las, dachte ich „Yeah, das brauche ich gerade“ und hab interessiert den Artikel gelesen. Sehr gut finde ich die kleine „Linksammlung“ zu passenden Tutorials & Co. Aber nach den überwiegend sehr ausführlichen Kommentaren bin ich allerdings ernüchtert. Als Laie, der in die Programmiererwelt hineinschnuppern möchte, um die Denkweisen eines Programmierers zu verstehen, weiß ich nun gar nicht mehr, was sinnvoll ist.
Ich möchte den Job nicht wechseln und auch keine umfassende Ausbildung in diesem Bereich machen, aber schon gerne die Arbeit eines Programmierers verstehen (auch im Sinne einer guten, lösungsorientierten Zusammenarbeit). Ich bin in Design und Projektmanagement zu Hause, mit HTML und CSS vertraut und gut in der Lage, mir etwas Neues eigenständig anzueignen. Was würden denn zum Beispiel mir die Kommentatoren empfehlen?
Hallo Ivy,
zunächst einmal vielen Dank für deinen Kommentar. Ich denke, wir können dich beruhigen: Am Anfang den Überblick zu verlieren, ist leicht und passiert vielen, die sich zum ersten Mal mit Coding beschäftigen. Dir den Weg zu zeigen und dir zu helfen die ersten Schritte zu gehen, ist letztendlich unser Job.
Die naheliegendste Empfehlung wäre natürlich: Denke über ein Coding-Bootcamp nach – z.B. unser Web Development Bootcamp. Danach bist du mit Sicherheit in der Lage, in deinen Projekten endlich die gleiche Sprache zu sprechen wie die Entwickler.
Da dieser Schritt jedoch sehr groß ist, würden wir dir empfehlen einfach mal einen unserer 1,5 – 2 Stündigen Workshops zu besuchen. Diese finden momentan komplett remote statt, sind kostenlos und geben dir eine kurze aber sehr praktische Einführung in das jeweilige Themengebiet. Schau doch mal vorbei und melde dich an:https://www.lewagon.com/webinars
Viele Grüße
Richard
Hallo,
im Grunde gebe ich Dir Recht.
HTML, CSS, PHP, SQL, Javascript sind keine Programmiersprachen die schwer zu erlernen sind. Es gibt haufenweise Tutorials im Netz.
ABER es dauert dennoch Jahre wenn nicht Jahrzehnte, um das Gelernte zu verstehen, geschweige denn umsetzen zu können. Besonders im Hinblick auf Sicherheit etc.
Ich will nicht sagen, dass es schlecht wäre das zu lernen. Ist es nicht! Aber deutlich aufwendiger als mit anderen Mitteln eine Webseite zu erstellen.
Schließlich gibt es da enorm viele Optionen, auch ohne Programmierkenntnisse. Zum Beispiel Homepage Baukästen oder doch ein kostenloses CMS, wie WordPress.
VG
Ronny
Mein Tipp: Am konkreten Projekt bzw. einfacher ausgedrückt einer konkreten Aufgabe eine Sprache lernen. Generell leicht zu erlernen ist Python, und wer in Richtung Webapplikationen entwickeln möchte, ist damit als Einstiegssprache gut beraten. Ansonsten einfach die Wahl an der gestellten Aufgabe festmachen, und damit beginnen. Ich habe mein Wissen dann über Youtube- und Udemy-Kurse vertieft, und erste Auftragsarbeiten dann via Freelancerportale bekommen. Schritt für Schritt wird man so auch als Quereinsteiger ein Profi.