🛠️ Learning Environment Setup
This document provides detailed instructions for setting up a complete development environment for the entire learning journey from Module 1 to Module 8.
📚 Tools by Module
Module 1: Self-Learning Skills
- 🌐 Web Browser (Chrome/Firefox/Edge)
- 📝 Note-taking tools (Notion, Obsidian, or Markdown editor)
- 🔍 Search engines (Google, Stack Overflow, GitHub)
Module 2-3: Java & OOP
- ☕ Java Development Kit (JDK 17+)
- 🏗️ IDE: IntelliJ IDEA Community / Eclipse / VSCode
- 📦 Build tools: Maven / Gradle (optional)
- 🧪 JUnit (testing framework)
Module 4: SQL & Database
- 💾 MySQL Server (or MariaDB)
- 🔧 MySQL Workbench / phpMyAdmin
- 📊 Database clients: DBeaver / TablePlus (optional)
Module 5: DSA (Data Structures & Algorithms)
- Use Java environment already installed (Module 2)
- 📈 Visualization tools (optional): Algorithm Visualizer
Module 6: Web Frontend
- 📝 HTML/CSS/JavaScript (built-in browser support)
- 🌐 Modern browsers with DevTools
- 🔧 VSCode with extensions for Web
- 🎨 Live Server extension
Module 7: Backend (PHP)
- 🐘 PHP 8.0+
- 🌐 Web server: Apache / Nginx
- 🗄️ MySQL (already installed in Module 4)
- 📦 Composer (PHP package manager)
- 🔧 Postman / Thunder Client (API testing)
Module 8: DevOps
- 🐳 Docker Desktop
- ☸️ Kubernetes (k3s/minikube for local)
- 🔄 Docker Compose
- 📊 Portainer (optional - Docker GUI)
🖥️ Supported Operating Systems
- 🪟 Windows 10/11 (recommended using WSL2)
- 🐧 Linux (Ubuntu 20.04+, Debian, Arch Linux)
- 🍎 MacOS (Big Sur and newer)
⚠️ Important Notes
- ✅ Technology changes rapidly, always check for latest versions
- ✅ Refer to official documentation when encountering problems
- ✅ Some tools can be installed after starting the corresponding module
- ✅ Prioritize installing basic tools first: Git, VSCode, JDK, MySQL
🚀 Quick Installation Guide
Recommended installation order:
- 🔧 Basic tools: Git, VSCode
- ☕ Java JDK (Module 2-3-5)
- 💾 MySQL (Module 4)
- 🐘 PHP + Composer (Module 7)
- 🐳 Docker (Module 8)
🪟 Windows (WSL2 - Recommended)
Windows - Step 1: Install WSL2
Requirements: Windows 10 (version 2004+) or Windows 11
Open PowerShell with Administrator privileges
Install WSL2 and Ubuntu:
powershellwsl --installRestart computer
Open Ubuntu from Start Menu, create username and password
Check version:
wsl --list --verboseWindows - Step 2: Install Basic Tools
Open Ubuntu terminal in WSL:
# Update system
sudo apt update && sudo apt upgrade -y
# Install Git
sudo apt install -y git
# Configure Git
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
# Install build essentials
sudo apt install -y build-essential curl wgetWindows - Step 3: Install Java (Module 2)
# Install JDK 17
sudo apt install -y openjdk-17-jdk
# Check installation
java --version
javac --versionInstall Maven (optional for large projects):
sudo apt install -y maven
mvn --versionWindows - Step 4: Install MySQL (Module 4)
# Install MySQL Server
sudo apt install -y mysql-server
# Start MySQL
sudo service mysql start
# Setup security
sudo mysql_secure_installationCreate user for access:
sudo mysql
# In MySQL shell:
CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;
EXIT;Install MySQL Workbench on Windows:
- Download from MySQL Downloads
- Connect to
localhost:3306
Windows - Step 5: Install PHP (Module 7)
# Install PHP 8.x and necessary extensions
sudo apt install -y php php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-gd
# Check version
php --version
# Install Composer (PHP package manager)
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# Check Composer
composer --versionInstall Apache (optional for web development):
sudo apt install -y apache2 libapache2-mod-php
sudo service apache2 startWindows - Step 6: Install Docker (Module 8)
Recommended: Install Docker Desktop on Windows instead of in WSL.
- Download Docker Desktop for Windows
- Install and enable WSL2 integration
- Start Docker Desktop
Check in WSL:
docker --version
docker compose versionTest Docker:
docker run hello-worldWindows - Step 7: Install VSCode
- Download VSCode from code.visualstudio.com
- Install extension Remote - WSL
- Open VSCode and connect WSL:
Ctrl + Shift + P→WSL: Connect to WSL
🐧 Linux (Ubuntu/Debian)
Ubuntu - Step 1: Install Basic Tools
# Update system
sudo apt update && sudo apt upgrade -y
# Install Git and build tools
sudo apt install -y git build-essential curl wget
# Configure Git
git config --global user.name "Your Name"
git config --global user.email "[email protected]"Ubuntu - Step 2: Install Java (Module 2)
# Install JDK 17
sudo apt install -y openjdk-17-jdk
# Check
java --versionUbuntu - Step 3: Install MySQL (Module 4)
# Install MySQL
sudo apt install -y mysql-server
# Start and enable
sudo systemctl start mysql
sudo systemctl enable mysql
# Security
sudo mysql_secure_installationUbuntu - Step 4: Install PHP (Module 7)
# Install PHP and extensions
sudo apt install -y php php-cli php-fpm php-mysql php-mbstring php-xml php-curl
# Install Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composerUbuntu - Step 5: Install Docker (Module 8)
# Install Docker
curl -fsSL https://get.docker.com | sh
# Add user to docker group
sudo usermod -aG docker $USER
# Start Docker
sudo systemctl start docker
sudo systemctl enable docker
# Install Docker Compose
sudo apt install -y docker-compose-pluginUbuntu - Step 6: Install VSCode
# Add Microsoft repository
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
# Install
sudo apt update
sudo apt install -y code🐧 Linux (Arch Linux)
Arch - Step 1: Install Basic Tools
# Update system
sudo pacman -Syu
# Install Git and base-devel
sudo pacman -S git base-devel
# Configure Git
git config --global user.name "Your Name"
git config --global user.email "[email protected]"Arch - Step 2: Install Java (Module 2)
# Install JDK
sudo pacman -S jdk-openjdk
# Check
java --versionArch - Step 3: Install MySQL (Module 4)
# Install MariaDB (MySQL replacement)
sudo pacman -S mariadb
# Initialize database
sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
# Start
sudo systemctl start mariadb
sudo systemctl enable mariadb
# Security
sudo mysql_secure_installationArch - Step 4: Install PHP (Module 7)
# Install PHP
sudo pacman -S php php-apache
# Install Composer
sudo pacman -S composerArch - Step 5: Install Docker (Module 8)
# Install Docker
sudo pacman -S docker docker-compose
# Start
sudo systemctl start docker
sudo systemctl enable docker
# Add user to docker group
sudo usermod -aG docker $USERArch - Step 6: Install VSCode
# Install from AUR or official repo
sudo pacman -S code
# Or from AUR (visual-studio-code-bin)
yay -S visual-studio-code-bin🍎 MacOS
MacOS - Step 1: Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"MacOS - Step 2: Install Basic Tools
# Install Git
brew install git
# Configure Git
git config --global user.name "Your Name"
git config --global user.email "[email protected]"MacOS - Step 3: Install Java (Module 2)
# Install JDK
brew install openjdk@17
# Add to PATH
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# Check
java --versionMacOS - Step 4: Install MySQL (Module 4)
# Install MySQL
brew install mysql
# Start
brew services start mysql
# Security
mysql_secure_installationMacOS - Step 5: Install PHP (Module 7)
# Install PHP
brew install php
# Install Composer
brew install composer
# Check
php --version
composer --versionMacOS - Step 6: Install Docker (Module 8)
# Install Docker Desktop
brew install --cask docker
# Open Docker Desktop
open /Applications/Docker.appMacOS - Step 7: Install VSCode
# Install VSCode
brew install --cask visual-studio-code💻 VSCode Configuration
Extensions by Module
Module 1 (Self Learning):
Module 2-3-5 (Java, OOP, DSA):
Module 4 (SQL):
Module 6 (Web Frontend):
Module 7 (PHP):
Module 8 (DevOps):
General utilities:
Settings Configuration
Open Settings (Ctrl/Cmd + ,) or edit settings.json:
{
// Editor
"editor.fontSize": 14,
"editor.fontFamily": "'JetBrains Mono', 'Fira Code', Consolas, monospace",
"editor.fontLigatures": true,
"editor.tabSize": 2,
"editor.wordWrap": "on",
"editor.formatOnSave": true,
"editor.minimap.enabled": true,
"editor.bracketPairColorization.enabled": true,
// Files
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000,
"files.exclude": {
"**/.git": true,
"**/.DS_Store": true,
"**/node_modules": true,
"**/.class": true
},
// Terminal
"terminal.integrated.fontSize": 13,
"terminal.integrated.fontFamily": "monospace",
// Java
"java.configuration.runtimes": [
{
"name": "JavaSE-17",
"path": "/usr/lib/jvm/java-17-openjdk-amd64"
}
],
// PHP
"php.validate.executablePath": "/usr/bin/php",
// Code Actions
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.organizeImports": true
},
// Prettier
"prettier.semi": true,
"prettier.singleQuote": true,
"prettier.tabWidth": 2
}🔧 Additional Tools (Optional)
⚠️ Important Note:
- The tools below are optional, not required
- Only choose one tool in each category suitable for your needs
- Study thoroughly about the tool before installing (read documentation, watch reviews)
- Install one tool at a time and test before installing another
- Don't install everything at once to avoid conflicts and resource waste
Database GUI Tools
Choose one of the following tools:
- MySQL Workbench: Download - Official from MySQL, suitable for MySQL
- DBeaver: Download - Supports many database types, open source
- TablePlus: Download - Beautiful interface, lightweight (paid for full version)
API Testing
Choose one of the following tools:
- Postman: Download - Most popular, many features
- Insomnia: Download - Lighter, simple interface
- Thunder Client (VSCode Extension) - Integrated in VSCode, convenient
Container Management
- Portainer:
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce- Web interface for managing Docker, suitable for beginners
Java IDEs (Alternatives)
Choose one IDE (if not using VSCode):
Terminal Emulators
Choose by operating system:
- Windows Terminal (Windows) - Already available on Windows 11
- iTerm2 (MacOS) - Best for MacOS
✅ Check Installation
Run the following script to check all tools:
#!/bin/bash
echo "🔍 Checking environment..."
echo ""
# Git
echo -n "✓ Git: "
git --version
# Java
echo -n "✓ Java: "
java --version 2>&1 | head -n 1
# MySQL
echo -n "✓ MySQL: "
mysql --version
# PHP
echo -n "✓ PHP: "
php --version | head -n 1
# Composer
echo -n "✓ Composer: "
composer --version | head -n 1
# Docker
echo -n "✓ Docker: "
docker --version
# Docker Compose
echo -n "✓ Docker Compose: "
docker compose version
echo ""
echo "✅ Check complete!"Save script to file check-env.sh, grant permissions and run:
chmod +x check-env.sh
./check-env.sh🎉 Wishing you effective studying!
If you encounter problems:
- 🔍 Search for errors on Google/Stack Overflow
- 📚 Read official tool documentation
- 💬 Ask in communities (GitHub Issues, Discord, Reddit)
- 📧 Contact instructor
