I have been into web development from 2 decades (starting with static HTML websites back in 2001), and moving up the ladder by learning/implementing Photoshop/graphic design for 5 years, and from 2006 onward professional PHP (and related tech-stack) based development.
Seeing people struggling with basic know-how of core programming and related skills and ending up with confusion, lack of confidence, being less efficient/productive, filled with anxiety and stress etc, is a difficult thing to watch, and I see it(almost daily) and intend to help these young developers (and some experienced/seasoned ones as well) to do things faster than they are doing now, by teaching the tips, tricks and technologies that would help them do things in (may be) 2 years what I was able to do in, say, 5 (or more).
I speak often at devTalks (local meet-up group) where we talk/deliver-session about various topics from different layers of technologies : server, client, DevOps, DB, upcoming technologies etc and during the lock-down we conducted a lot of online sessions (open and free for all) helping people who are at home (and/or working-from-home) and continue to help a lot of young and mature developers alike, and I would want to focus on some specific sections (from the tech-stack that I know) that I believe will make things much easier/better for most of the developers.
If I were to start a course tomorrow, the title would be:
“How Docker could put your career on a fast track“
Class project (after/during the course):
Deploy a CI/CD pipeline on GCP Cloud Run using bespoke docker images created after learning Docker and related tech-stack(from the course) and using available services – for PHP and Nodejs.
Some key lessons to be included:
– The Why and What of Docker in brief : The introduction (~2 mins)
– Installation instructions (Ubuntu only, other OS instructions linked/referred) : docker, docker-compose, git (optional), hub.docker.com account (to push images to docker hub, to be used during CI/CD setups) (~5 mins)
– Docker images and containers “What are those?” : Names and tags, local images, pull-from/push-to docker hub, difference and similarity, context
– Build docker images : How to build from official/base versions, create your own images, why the need to create custom images
– Docker containers (details yet to be listed)
– “docker-compose” : Services, networks, volumes and containers. Using CLI and VS Code (non-CLI)
I might need following tools (already with me, or need to update/install):
Equipment : Smart phone, DSLR camera, silent space, lights.
Software : Screen recording tools, PhpStorm (and inbuilt tools), OBS studio (multi window/source management, streaming/recording) etc
Some of the links (from gist.github.com/jdecode) related to Docker/docker-compose:
– Dockerfile for PHP 8.0 RC2 with MySQL and Postgres support: https://gist.github.com/jdecode/77b554ba217c5dfcf5f78f89260c8561
– Setting up Dockerfile and docker-compose for a CakePHP project : https://gist.github.com/jdecode/f25b66b8993d5ca32c4a25353e9f2ec9
– Steps to run Docker project (similar to the above link, but different and important – uses MySQL): https://gist.github.com/jdecode/b2754547a461f289493df38a51776524
– Screenshots accommodating the content of the course : https://gist.github.com/jdecode/3dd9a6edd6c0411756681c0035b76c41