Lernen

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
  • Laravel Docs, Laravel API Docs
  • Vue.js Docs, Vue.js Style Guide, Vuex, Nuxt
  • Bootstrap Docs
  • Dev Docs
  • vieles mehr
Video-Kurse
Newsletter
  • LaravelNews
  • Spatie/Murze
  • Vue
  • JavaScript Weekly
  • Laravel Daily
Git-Hub
  • Laravel Packages
  • Vue Apps
  • vieles mehr
Stack-Overflow
  • hilft immer wenn ich nicht weiterkomme
  • die ultimative Hilfe-Plattform für Entwickler
neue Techniken
Stichworte
  • Laravel
  • Vue
  • PHP 7.x
  • HTML5
  • Javascript (EC5, EC6, promises, Module)
  • CSS (BS4, Flex, Grid, SASS, responsive Design)
  • Webpack
  • Redis
  • MySQL
  • PHP Storm
  • Sublime
  • Emmet
  • Docker
  • Chrome DEV Tools
  • Python
  • SVG
  • GIT
  • Google
  • SPA Singe Page Apps
  • PWA Progressive Web Apss
  • AMP Accelerated Mobile Page

 

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