Knowledge requirements before learning swote
Basic Requirements
- Proficient in basic knowledge of PHP language
- Familiar with OOP object oriented
- Familiar with dependency injection and inversion of control
- Proficient in PDO and mysqli
- Familiar with NoSQL such as redis
- Familiar with composer dependency management tools
- Familiar with MVC layered thought
- Familiar with PHP cli mode
- Specific basic code debugging and troubleshooting capabilities
Multiprocess / multithread / coroutine
- Familiar with Linux operating system
- Basic knowledge of unix network programming
- Understand the concept of Linux operating system process and thread
- Understand the concept of coprocess
- Understand the basic knowledge of Linux Process / thread switch scheduling
- Basic knowledge of interprocess communication, such as pipeline, unixsocket, message queue, shared memory
SOCKET
- Understand the basic operation of socket, such as accept / connect, send / recv, close, listen, bind
- Understand the concepts of socket such as receive buffer, send buffer, block / non block, timeout, etc
IO multiplexing
- Understand the concepts of IO, bio, NiO and AIO
- Learn about select, poll, epoll, kqueue
- Understand the event loop and reactor model based on select, epoll and kqueue
- Read and write events
TCP / IP network protocol
Debugging tools
- Debugging Linux programs with GDB
- Using strace to track system calls of processes
- Tracking network communication process with tcpdump
- Other Linux system tools, such as PS, lsof, top, vmstat, netstat, SAR, SS, etc