An welchen Skills mangelt es häufig Programmierern, die sich das Programmieren selbst beigebracht haben?
Algorithmen
Vielfach wird der bekannteste Weg eingeschlagen ohne sich bewusst zu sein, dass es bessere Algorithmen gibt als der Standard-Pfad welcher bei mittelgrossen Datenmengen zwar ausreicht aber irgendwann zu langsam und / oder komplex wird.
Hier ist es vielfach einfach das nicht-wissen.
Konzepte der Sprachen
Funktionale Sprachen vs. OO vs Prototyp vs Prozuderal...
Für Personen ohne Basis-Hintergrundwissen ist jede Schraube ein Nagel solange man nur den Hammer kennt.
Auch der konzeptionelle Aufbau der Sprache erklärt viele Verhalten und Ideen wie es genutzt werden soll. JavaScript als Good- und Bad-Beispiel. Die Konzepte hinter JavaScript finde ich in vielen Teilen gut und logisch. Die meisten Entwickler aus der OO-Welt können mit diesem Konzept nicht sofort umgehen.
Projekterfahrung
Wie Michael Ringlein schreibt: Erfahrung aus realen Projekten sind anders als das Üben durch Tutorials oder eigene Projekte. Sei dies in Umfang, Deadlines, geforderter Code Qualität, Testbarkeit usw.
PS: Wer mir das fehlende ß ankreidet: Als Schweizer ist mir dieses komische Zeichen gänzlich unbekannt