Day 1: New Developer Onboarding
Status: Active
Last Updated: 2026-01-30
Category: Basics - Onboarding
Prerequisites: None (absolute beginner)
Time: 4-8 hours (Day 1), 1-2 weeks (complete basics)
Tags: onboarding, getting-started, beginner, checklist, tools, environment-setup
Summary
Your complete first-day guide to server management and infrastructure work. This orchestrates all basics articles into a progressive learning path, gets your tools installed, and provides the foundation for everything else in the knowledge base.
๐ฏ What You'll Accomplish Today
By the end of Day 1, you'll have:
- โ Development environment configured
- โ SSH access to servers
- โ Basic Linux command proficiency
- โ Git repository access
- โ Understanding of next steps
- โ Confidence to explore further
๐ The Learning Philosophy
Zero to Productive:
Complete Beginner โ CLI Comfortable โ Infrastructure Ready
(Day 1) (Week 1) (Month 1)
This knowledge base assumes ZERO prior knowledge. Every concept builds on previous ones. You can't break anything by following along - that's what test environments are for!
๐ Day 1 Checklist
Morning: Environment Setup (2-3 hours)
1. Get Your Hardware Ready โฑ๏ธ 30 minutes
Local Development Machine:
- Windows, Mac, or Linux workstation
- 8GB+ RAM (16GB recommended)
- Stable internet connection
- Admin/sudo access to install software
Optional but Helpful:
- Second monitor (makes learning easier)
- External SSH access to a server (or use free tier: AWS, Azure, GCP)
2. Install Essential Tools โฑ๏ธ 1 hour
Terminal Emulator:
- Windows: Install Windows Terminal from Microsoft Store
- Mac: Built-in Terminal.app or install iTerm2
- Linux: Built-in terminal (GNOME Terminal, Konsole, etc.)
SSH Client:
- Windows: OpenSSH is built-in (Windows 10+), or install PuTTY
- Mac/Linux: openssh-client is already installed
- Test: Open terminal and run
ssh -V- you should see version info
Text Editor (Pick ONE to start):
- Visual Studio Code
[โโโโโโโโโโ]Recommended - Download from code.visualstudio.com- Install "Remote - SSH" extension
- Install "Docker" extension
- Sublime Text
[โโโโโโโโโโ]Alternative - nano
[โโโโโโโโโโ]Already installed on most Linux systems (CLI only)
Version Control:
- Install Git - git-scm.com
- Configure Git:
git config --global user.name "Your Name" git config --global user.email "your.email@example.com" - Test:
git --version
Docker (Optional for Day 1, but you'll need it soon):
- Windows/Mac: Docker Desktop
- Linux: Follow official Docker installation
- Test:
docker --versionanddocker ps
3. Get Server Access โฑ๏ธ 30 minutes
If you have a server:
- Get SSH credentials from your team lead
- Get server IP address or hostname
- Generate SSH key pair (see below)
- Send public key to admin for server access
If you're learning solo:
- Option A: Use free cloud tier (AWS EC2 t2.micro, GCP e2-micro)
- Option B: Run VM locally (VirtualBox, VMware, Hyper-V)
- Option C: Use WSL2 on Windows as your "server"
Generate SSH Key:
# Generate new SSH key pair
ssh-keygen -t ed25519 -C "your.email@example.com"
# Accept default location (~/.ssh/id_ed25519)
# Set a strong passphrase (recommended)
# Display your public key to send to admin
cat ~/.ssh/id_ed25519.pub
Test SSH Connection:
# Replace user and hostname with your info
ssh username@server-ip-or-hostname
# Example:
ssh john@192.168.1.100
# or
ssh john@dev-server.example.com
Afternoon: Linux Fundamentals (2-3 hours)
4. Master the Terminal โฑ๏ธ 2 hours
START HERE: Read linux-fundamentals
Key Concepts to Understand:
- Directory structure (
/,/home,/etc,/var) - Navigation:
cd,pwd,ls - File operations:
cp,mv,rm,mkdir - Viewing files:
cat,less,head,tail - Permissions:
chmod,chown,ls -l - Process management:
ps,top,htop,kill - System services:
systemctl status,journalctl
Practice Exercises (on your server):
# 1. Create a test directory
mkdir ~/learning
cd ~/learning
# 2. Create some test files
echo "Hello World" > test.txt
echo "Day 1 learning" > notes.txt
# 3. Check file permissions
ls -lh
# 4. Make a file executable
chmod +x test.txt
# 5. View system information
uname -a # System info
df -h # Disk usage
free -h # Memory usage
uptime # System uptime
# 6. Check running processes
ps aux | grep ssh # Find SSH processes
top # Real-time process viewer (press q to quit)
# 7. View service status
systemctl status sshd # SSH daemon status
journalctl -u sshd -n 20 # Last 20 SSH log entries
5. SSH Deep Dive โฑ๏ธ 1 hour
READ: ssh-basics
Key Concepts:
- Public key authentication
- SSH config file (
~/.ssh/config) - SSH agent for key management
- Port forwarding / tunneling
- Security best practices
Practice: Create SSH Config:
# Edit your SSH config
nano ~/.ssh/config
# Add an entry (replace with your server details):
Host devserver
HostName 192.168.1.100
User your-username
IdentityFile ~/.ssh/id_ed25519
Port 22
ServerAliveInterval 60
# Now you can connect with just:
ssh devserver
Advanced SSH Tasks:
# Copy files to server
scp local-file.txt devserver:~/remote-file.txt
# Copy directory recursively
scp -r local-directory/ devserver:~/remote-dir/
# Create SSH tunnel (forward local port 8080 to remote port 80)
ssh -L 8080:localhost:80 devserver
Evening: Command-Line Power Tools (1-2 hours)
6. Text Processing Essentials โฑ๏ธ 1-2 hours
READ: command-line-essentials
Key Tools to Learn:
-
grep- Search for patterns -
awk- Field extraction and processing -
sed- Stream editing and substitution -
find- File searching - Pipes
|and redirection>,>>
Practice Exercises:
# 1. Search system logs
journalctl -u sshd | grep "Failed" # Find failed SSH attempts
grep -r "TODO" ~/projects/ # Find TODO comments in code
# 2. Extract specific fields with awk
ps aux | awk '{print $1, $11}' # Print user and command
cat /etc/passwd | awk -F: '{print $1, $3}' # Print username and UID
# 3. Text replacement with sed
sed 's/old/new/g' file.txt # Replace in file (preview)
sed -i 's/old/new/g' file.txt # Replace in-place
# 4. Find files
find /var/log -name "*.log" -mtime -7 # Logs modified in last 7 days
find ~ -type f -size +100M # Files larger than 100MB
# 5. Combine tools with pipes
cat access.log | grep "404" | awk '{print $1}' | sort | uniq -c | sort -rn
# Translation: Find 404 errors, extract IPs, count occurrences, sort by frequency
7. Bash Scripting Basics โฑ๏ธ 30 minutes (skim for now)
SKIM: bash-scripting
Goal: Understand that bash scripts exist and you'll learn them soon.
Simple First Script:
#!/bin/bash
# Save as hello.sh
echo "Hello, $(whoami)!"
echo "Today is $(date)"
echo "You are on $(hostname)"
Make it executable and run:
chmod +x hello.sh
./hello.sh
Day 1 Takeaway: Scripts automate repetitive tasks. You'll dive deep into this later.
๐ End-of-Day Review
You've Accomplished:
โ
Development environment configured
โ
SSH access working
โ
Basic Linux CLI navigation
โ
Text processing fundamentals
โ
Understanding of system basics
Skills Acquired:
- Navigate Linux filesystem
- Manage files and permissions
- Connect to servers via SSH
- Search and process text
- Monitor system resources
- Read logs
Confidence Check:
Can you do these without looking them up?
- SSH into a server
- Navigate to a directory
- Create, edit, and delete files
- Search for a file
- Check disk space
- View running processes
- Search log files for errors
If YES: Congratulations! You're ready for Week 1 content!
If NO: That's okay! Review the sections where you're uncertain.
๐๏ธ Week 1: Continuing Your Journey
Day 2: Git Fundamentals โฑ๏ธ 4-6 hours
READ: git-fundamentals
Key Concepts:
- Version control basics
- Git workflow: clone, commit, push, pull
- Branching and merging
- GitHub/GitLab/Forgejo basics
- Collaboration patterns
Goal: Clone a repository, make changes, commit, push.
Day 3: Text Editors โฑ๏ธ 2-3 hours
READ: text-editors
Choose Your Path:
- VSCode (graphical, beginner-friendly)
- Vim (terminal-based, powerful)
- Nano (simple terminal editor)
Goal: Edit files comfortably in your chosen editor.
Day 4: Package Managers โฑ๏ธ 2-3 hours
READ: package-managers
Key Systems:
apt(Debian/Ubuntu)dnf(Fedora/RHEL)pacman(Arch)brew(macOS)
Goal: Install, update, remove packages confidently.
Day 5: Deep Dive - Bash Scripting โฑ๏ธ 6-8 hours
READ: bash-scripting (in-depth)
Key Skills:
- Variables and quoting
- Loops and conditionals
- Functions
- Error handling
- Real-world automation scripts
Goal: Write your first automation script.
๐งญ After Week 1: Where to Go Next
Path 1: Container Orchestration ๐ณ
Goal: Run Docker containers, deploy to k0s
Learning Path:
- kb/containers/README - Start here
- Docker basics โ docker-compose โ k0s
- Time: 2-4 weeks
- Outcome: Deploy containerized applications
Path 2: Infrastructure as Code ๐๏ธ
Goal: Automate server provisioning
Learning Path:
- kb/infrastructure/README - Start here
- Manual โ Bash scripts โ Ansible โ Terraform
- Time: 3-6 weeks
- Outcome: Provision infrastructure from code
Path 3: CI/CD Pipelines ๐
Goal: Automate build and deployment
Learning Path:
- kb/cicd/README - Start here
- Git โ Forgejo โ Woodpecker CI โ GitOps
- Time: 2-4 weeks
- Outcome: Automated deployment pipelines
Path 4: Security Hardening ๐
Goal: Secure your infrastructure
Learning Path:
- kb/security/README - Start here
- Passwords โ Firewalls โ VPN โ Secrets โ Zero Trust
- Time: 3-6 weeks
- Outcome: Production-grade security
Path 5: Monitoring & Observability ๐
Goal: See everything happening in your systems
Learning Path:
- kb/observability/README - Start here
- Uptime checks โ Prometheus/Grafana โ Loki โ Alerting
- Time: 2-4 weeks
- Outcome: Complete observability stack
๐ ๏ธ Essential Bookmarks
Quick Reference:
Documentation:
Community:
- r/homelab - Self-hosting community
- r/selfhosted - Self-hosted alternatives
- Awesome Self-Hosted
๐ก Learning Tips
Learning Strategies:
- Hands-On Practice: Reading isn't enough - type commands, break things, fix them
- Document as You Learn: Keep notes, you'll forget details
- Ask Questions: No question is stupid in infrastructure
- Start Simple: Don't jump to Kubernetes on day 2
- Iterate: Manual first, automate later
- Test in Dev: Never test in production first
When You're Stuck:
- Read the Error Message: It usually tells you what's wrong
- Google the Error: Someone has seen it before
- Check Logs:
journalctl,docker logs, application logs - Ask for Help: Team chat, forums, Reddit
- Take a Break: Fresh eyes solve problems faster
Common Beginner Mistakes:
- โ Using root for everything (use sudo instead)
- โ Not backing up before changes
- โ Forgetting to test commands before running
- โ Not reading documentation
- โ Copying commands without understanding them
- โ Giving up too easily - infrastructure is hard, that's normal!
๐ Your Learning Progress Tracker
Basics (Week 1)
- Day 1 onboarding completed
- Linux fundamentals mastered
- SSH configured and comfortable
- Command-line text processing
- Git fundamentals
- Text editor proficiency
- Package management
- Bash scripting basics
Intermediate (Weeks 2-8)
- Docker containers
- Infrastructure automation
- CI/CD pipelines
- Security hardening
- Monitoring setup
Advanced (Months 2-6)
- Kubernetes/k0s orchestration
- Production infrastructure
- Advanced security (Zero Trust)
- Complete observability
- Complex migrations
๐ฏ 30-60-90 Day Goals
30 Days:
- Comfortable with Linux CLI
- Can deploy Docker containers
- Basic Ansible playbooks
- SSH and Git workflow mastered
- Simple monitoring (Uptime Kuma, Netdata)
60 Days:
- Deploy to k0s cluster
- Write Terraform modules
- CI/CD pipelines working
- Prometheus + Grafana dashboards
- Security best practices implemented
90 Days:
- Run production workloads
- Infrastructure as code mastery
- Complete observability stack
- Zero Trust security posture
- Mentor new team members
๐ Welcome to Infrastructure!
You're at the beginning of an exciting journey. Infrastructure engineering combines system administration, software development, and problem-solving. It's challenging but incredibly rewarding.
Remember:
- Everyone was a beginner once
- Breaking things is how you learn (in dev, not prod!)
- The learning never stops - that's what makes it fun
- The community is incredibly helpful
- Your Day 1 confusion will be Day 90 confidence
You've got this! ๐ช
Now go complete your Day 1 checklist, and I'll see you in Week 1!
๐ Change Log
2026-01-30
- Created Day 1 onboarding guide
- Defined 4-8 hour Day 1 checklist
- Linked all basics articles
- Provided clear learning paths
- Added tool installation instructions
- Included practical exercises
- Defined 30-60-90 day goals
- Added learning tips and common pitfalls
๐ Next Article: git-fundamentals - Version control for beginners