Common Skills for Cybersecurity Study Plan
This page is updated based on jassics/security-study-plan/common-skills-study-plan
Whichever domain you choose in the cybersecurity umbrella - Application Security, Cloud Security, DevSecOps, or anything else - there are common skills you must learn to excel. See the common skills breakdown in the cybersecurity-roadmap repo for the full picture.
This page focuses on where to study and how much time to devote to each of these 5 common skills so you're job-ready and interview-ready.
ToC
- Linux Basics and Linux Commands - 1-2 weeks
- Networking Fundamentals - 2-4 weeks
- Programming Skills - 4-8 weeks
- Cloud Computing - 3-4 weeks
- Git Commands - 1 week
- Networking Matters
Linux Basics and Linux Commands
Duration: 1-2 weeks
It should not take more than a week to be comfortable with basic Linux commands for day-to-day activities. Once comfortable, move to networking and other security-related commands.
Week 1: Basic Commands
Bug bounty hunters, penetration testers, and almost all tech-focused security professionals use an OS like Kali Linux, Parrot OS, or BlackArch Linux, which come loaded with security tools. But you need to know the basic workings of Linux and its commands first.
Some common (50) commands, in alphabetical order:
awk,cat,cd,chmod,chown,cp,curl,dig,du,dfecho,export,find,grep,head,history,host,ifconfig,kill,lesslocate,ls,man,mkdir,more,mount,mv,nslookup,ping,pspwd,rm/rmdir,scp,sed,service/systemctl,sort,ssh,sudo,tail,tartop,touch,uname,uniq,wget,whois,whatis,w,wc,zip
See the site's own Linux Commands reference for detailed usage.
Week 2: Security-Focused Commands
Beyond the basics, commands security professionals (mainly AppSec and pentesters) rely on:
netcat,nslookup,host,dig,netstat,traceroutenmap,nikto,fierce,dirb- install/uninstall/update/upgrade package management
find,grep,ifconfig- Basics of regular expressions
- Starting and stopping services
- Basic understanding of
/opt,/tmp, and log server locations - Comfort running scripts written in Python, Ruby, Go, etc.
Resources
Books
- Linux Basics for Hackers - Recommended
- The Linux Command Line
- How Linux Works
Courses
- Introduction to Linux Commands and Scripting
- Linux Fundamentals for Security Practitioners - Recommended
Networking Fundamentals
Duration: 2-4 weeks
Except for Audit and Compliance roles, almost every security professional needs a basic-to-intermediate understanding of computer networks.
Week 3-4: Core Concepts
- IPv4/IPv6, CIDR, IP addressing and subnetting
- Public vs private IPs, TCP/IP model
- DMZs, Zero Trust networks
- Common ports and protocols (22, 25, SSH, HTTPS, and so on)
- Understanding of common cryptographic modules and functions
- How DNS works, how SSL works
Week 5-6: Network Security
- Common network threats
- MiTM, network sniffing
- Various TCP attacks
- DoS and DDoS attacks and prevention
- Firewalls and software-defined networks
- Basic network troubleshooting (why the internet is slow/down, Wi-Fi issues, etc.)
Resources
Books
Videos
- Basics of Computer Networking
- Computer Networking Full Course - Recommended
Courses
- Computer Networking by Georgia Tech on Udacity - Recommended
- Bits and Bytes of Computer Networking by Google on Coursera
Also see this site's own Network Security Overview and the dedicated Network Security Study Plan.
Programming Skills
Duration: 4-8 weeks
A decent knowledge of at least one programming language is now mandatory for most tech security roles. Common languages that attract security folks: Python (recommended), Go (gaining popularity), Ruby.
Week 7-10: Basics & Projects
What to try when learning any of these languages:
- Learn basic concepts
- Try a few basic projects, such as:
- Connecting to a DB and fetching data
- Extracting data from a webpage
- Displaying info from the cloud, e.g. AWS instance details region-wise
- Automating security tasks - a docker monitor, fetching public IPs, server details, etc.
- Working with CSV/JSON
- Using crypto modules
- Simulating a few Linux/other commands to build comfort with the language, e.g. a small
nmapsimulation
Week 11-14: Security Focus
- Understand OOP concepts well enough to comfortably read others' code
- Review source code from a security perspective
- Read Python Security Best Practices
This site's Python Track and the jassics/python-for-cybersecurity repo have hands-on code you can work through directly.
Resources
Books
- Learn Python 3 the Hard Way - Recommended
- Violent Python
- Black Hat Python - Must read
- Full Stack Python Security - Must for AppSec professionals
- Mastering Python for Networking and Security
Videos
- Python Security Best Practices
- Security Checks for Python Code
- Intro to Python for Security Professionals
Courses
- Python for Cybersecurity Specialization
- SEC573: Automating Information Security with Python
- Python for Pentesters
Cloud Computing
Duration: 3-4 weeks
Cloud computing is everywhere - industrial, pharma, finance, IT, and more. Sooner or later, it will be a mandatory skill for any cybersecurity job role.
Week 15-18: Cloud Fundamentals
Learn any of the major CSPs (AWS, Azure, or GCP) and:
- Understand how it solves traditional infrastructure challenges
- Understand what new security challenges it introduces
- Understand the various service and deployment models
- Understand the Shared Responsibility Model
- Understand microservices
- Master IAM functionality (must understand very well)
- Understand data encryption
- Understand cloud networking - critical to succeed in cloud security
For a deeper focus on identity and access, see the IAM Security Study Plan.
Dedicated cloud security study plans on this site:
Resources
Books
- Cloud Computing for Dummies
- AWS in Action
Videos
Courses
Git Commands
Duration: 1 week
You must understand a version control system, and Git is the standard today. Skip GUI clients like SourceTree and learn the terminal-level commands - they transfer everywhere.
Week 19: Git Basics
Most basic Git commands to understand:
git clone,git add,git commit,git branch,git pullgit fetch,git merge,git push,git config,git log
Many job roles require this as a mandatory skill: Application Security, Penetration Testing, DevSecOps, API Security, Security Engineering. See this site's own Git Essentials with Examples.
Resources
Books
- Pro Git - Highly recommended
- GitHub cheatsheet
Videos
- Git and GitHub for Beginners - Crash Course by freeCodeCamp
- Git Fundamentals for Beginners - Full Course by Flexmind
Courses
- Git Fundamentals for Everyone on Udemy
- Version Control with Git by Atlassian on Coursera
- Learn Git and GitHub by Codecademy
Networking Matters
Once you're on track and understand the fundamentals, it's time to:
- Make good LinkedIn contacts in the security domain you're targeting
- Find a mentor, or follow someone who shares blogs, tutorials, and talks on these topics
- Make connections through security conferences, online or offline
- Publish a few good security articles - basic concepts are fine, but publish
- Join webinars, conferences, and newsletters
- Help a beginner who's struggling - you learn better while teaching others
By the time you've worked through this checklist, you'll already be on your way to a strong start in a security job role. All the best!
Practice next: Common Security interview questions for common interview questions, and the security-study-plan repo for the latest updates to this plan.