Meine Lern-Methoden
Lernen ist ein andauernder, systematischer Vorgang der organisiert werden muss
Vor ca. 3 Jahren beendete ich ein grösseres Projekt, das sich selbst über mehr als ein Jahr hinzog. Es ging um das Redesign einen Shops unter PHP 5.6. Der Auftraggeber hatte eine lange Wunschliste die ich kontinuierlich umsetzte, zur vollen Zufriedenheit des Kunden.
Nach Beendigung dieses Projekts beschloss ich mich Laravel zuzuwenden und alle zuvor gemachten Entwicklungen in das Laravel-Framework zu portieren. Die Idee war eine Boilerplate die als Backend für Anwendungen aller Art dienen kann.
Informations-Quellen finden
Als ich mich daran machte Laravel und dessen Umfeld neu zu lernen hatte ich zunächst ein Problem mit der riesigen Menge der verfügbaren Informationen. Ich hatte diverse einschlägige Websites ausgemacht, hatte Newsletter abonniert und Online-Kurse durchgearbeitet.
Dokumentationen |
|
Video-Kurse | |
Newsletter |
|
Git-Hub |
|
Stack-Overflow |
|
neue Techniken Stichworte |
|
Informationen konsumieren – Lesen bzw. Video-Kurse anschauen
Jeden Tag verbringe ich einige Zeit mit dem Aufnehmen der Informationen. Ca. 1 Stunde Newsletter lesen, abends einige Stunden Video-Kurse anschauen statt Fernsehen. Die andere Zeit praktisch programmieren. Die so aufgenommenen Informationen sind natürlich noch nicht wirklich im Gehirn verankert, daher ist es wichtig die Informationen systematisch zu sammeln. Bei Video-Kursen sammle ich auch das Inhaltsverzeichnis der Kurse um direkt auf einzelne Abschnitte zugreifen zu können.
Sammeln und speichern der Informationen – wieder auffindbar machen
Die Lösung ist die verfügbaren Informationen strukturiert zu sammeln um später darauf zurückgreifen zu können. Nach einigen Fehlversuchen mit Excel-Dateien oder Window-Ordnern kam ich auf Pearltrees. Das ist ein SAAS zum sammeln von Links und Dokumenten. Mein Pearltrees ist mittlerweile auf einige tausend Links angewachsen, gegliedert in Ordner und Unterordner mit Suchfunktion. Allein zum Thema Laravel habe ich ca. 2k Links gespeichert. Das permanente Einfügen weiterer Links ist sehr einfach. Meine Pearltrees sind öffentlich zugänglich.
Diese Sammlung ist meine Knowledge-Basis und gibt mir das Vertrauen jeder Anforderung hinsichtlich dieser Themen gerecht werden zu können. (Da hab ich doch mal was gelesen – wie geht das gleich noch?)
Meine Lern-Themen grafisch darstellen
Vor einiger Zeit habe ich eine Grafik angefertigt um die Struktur meiner Knowledge-Basis zu visualisieren. Hier können Sie diese Grafik ansehen, sie ist direkt verlinkt mit meinen Pearltrees-Bereichen. Sie zeigt auch weitere, noch nicht genannte IT-Bereiche an, mit denen ich mich beschäftige.
Die Grafik klicken für die Live-Version.
Praktische Anwendung
Praxis ist ohne Frage unverzichtbar bei der Aneignung neuer, erweiterter Kenntnisse. Seit 2-3 Jahren arbeite ich mit Laravel. Ich habe diverse Backend-Boilerplates erstellt, wieder verworfen und neu erstellt.
Meine aktuelle Version finden Sie bei Gith-Hub.
Laravel-Packages kennenlernen und ausprobieren
Von Anfang an war ich fasziniert von der Möglichkeit das Laravel-Framework mit Composer beliebig zu erweitern. Ich habe dutzende Packages integriert und getestet. Danach habe ich begonnen meine eigene PHP-Boilerplate auf Basis Laravel 5.5 zu erstellen. Dabei habe ich alle Packages integriert die mir nützlich erschienen. Diese Boilerplate hat bislang nur ein minimales Frontend. Meinen Schwerpunkt habe ich auf die Entwicklung eines universalen Backends gelegt unter Verwendung wichtiger Packages.
Die Laravel-Packages in meinem aktuellen Projekt gemäß composer.json sind:
"require": { "php": ">=7.0.0", "appstract/laravel-blade-directives": "^0.7.0", "arcanedev/log-viewer": "^4.4", "arcanedev/no-captcha": "^5.0", "awssat/str-helper": "^1.4", "barryvdh/laravel-elfinder": "^0.3.11", "barryvdh/laravel-snappy": "^0.4.0", "brian2694/laravel-toastr": "^5.5", "brotzka/laravel-dotenv-editor": "^2.0", "browner12/helpers": "^2.1", "creativeorange/gravatar": "~1.0", "davejamesmiller/laravel-breadcrumbs": "^4.1", "doctrine/dbal": "~2.3", "dompdf/dompdf": "^0.8.1", "elibyy/tcpdf-laravel": "^5.5", "fideloper/proxy": "~3.3", "garygreen/pretty-routes": "^1.0", "google/cloud-translate": "^1.1", "hieu-le/active": "^3.5", "illuminated/helper-functions": "^5.5", "infinety-es/config-manager": "^1.1", "infyomlabs/adminlte-templates": "5.5.x-dev", "infyomlabs/laravel-generator": "5.5.x-dev", "infyomlabs/swagger-generator": "dev-master", "jenssegers/date": "^3.2", "jlapp/swaggervel": "dev-master", "laracasts/utilities": "^3.0", "laravel/framework": "5.5.*", "laravel/socialite": "^3.0", "laravel/tinker": "~1.0", "laravelcollective/html": "^5.4.0", "lubusin/laravel-decomposer": "^1.2", "maatwebsite/excel": "~2.1.0", "marabesi/laration": "^1.1", "nikaia/translation-sheet": "^1.2", "predis/predis": "^1.1", "spatie/laravel-activitylog": "^2.3", "spatie/laravel-artisan-dd": "^2.0", "spatie/laravel-backup": "^5.1", "spatie/laravel-blade-javascript": "^2.0", "spatie/laravel-cookie-consent": "^2.1", "spatie/laravel-db-snapshots": "^1.1", "spatie/laravel-glide": "^3.2", "spatie/laravel-html": "^2.4", "spatie/laravel-link-checker": "^2.2", "spatie/laravel-mailable-test": "^2.0", "spatie/laravel-medialibrary": "6.0.0", "spatie/laravel-menu": "^3.0", "spatie/laravel-newsletter": "^4.1", "spatie/laravel-partialcache": "^1.2", "spatie/laravel-permission": "^2.5", "spatie/laravel-sitemap": "^3.3", "spatie/laravel-sluggable": "^2.1", "spatie/laravel-tags": "^2.0", "spatie/laravel-tail": "^2.0", "spatie/laravel-translatable": "^2.1", "themsaid/laravel-langman": "^1.3", "unisharp/laravel-filemanager": "~1.8", "unisharp/laravel-settings": "^2.0", "webpatser/laravel-uuid": "^3.0", "yajra/laravel-datatables-buttons": "3.0", "yajra/laravel-datatables-html": "3.0", "yajra/laravel-datatables-oracle": "~8.0" }, "require-dev": { "barryvdh/laravel-debugbar": "^3.0", "barryvdh/laravel-ide-helper": "^2.4", "filp/whoops": "~2.0", "fzaninotto/faker": "~1.4", "laravel/browser-kit-testing": "^2.0", "mockery/mockery": "~1.0", "phpunit/phpunit": "~6.0", "sven/artisan-view": "2.0", "xethron/migrations-generator": "^2.0" },
Praktische Erfahrungen
Ich verfüge wie gesagt über 18 Jahre Erfahrung bei der Entwicklung von Webanwendungen und über einen hohen Grad an Spezialisierung in den Bereichen Content-Management, E-Commerce, Backend, APIs und User-Interfaces. Dabei waren meine Schwerpunkte PHP, Javascript, CSS3 und HTML5. Als Freelancer war ich dabei nicht in einem Team tätig sondern allein im direkten, persönlichen Kontakt mit meinen Auftraggebern.
Ich bin daran interessiert meine Kenntnisse auf den neuesten Stand zu bringen. Laravel und sein Öko-System (PHP7, ES6, Vue, SASS, Webpack usw.) will ich zusammenbringen mit meinen zuvor erworbenen Kenntnissen. Hier bin ich bereits weit fortgeschritten.
Weiter zu: Projekte