As PHP developer, you need to know some common concepts and techniques that help you to write better code and provide solid solutions. It is also important to implement the right tools for the job. Tooling, development practices and development process methodology. If you’re not already familiar with the below content, then perhaps is a good idea to broaden your knowledge. Let me know what other stuff would you add to the list below.
Know PHP data types (8)
1) Integer, 2) Floating point number or Float, 3) String, 4) Booleans, 5) Array, 6) Object, 7) resource 8) NULL. See examples.
How to write Object Oriented Programming in PHP (OOP)
Be familiar with PHP Evolutions over years
Know common development principles
DRY – Don’t repeat yourself.
KISS – KEEP IT SIMPLE STUPID
- Single Responsibility Principle
- Open-Close Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle (*Dependency Injection)
YAGNI – YOU AIN’T GONA NEED IT
TDA – TELL DON’T ASK
Software development methodology
AGILE (Scrum) – often used with Jira & Asana (or with both)
Fallow good codding practice
Use design patterns
Knowing data structures
- struct (can be implemented with array)
- array (Just a classic array we know from C or Java. PHP array is not an actually array structure… it is a implementation of map data structure).
- linked list
- doubly linked list
- stack (LIFO – what’s come last comes out first)
- queue (FIFO whats come last comes out last)
- priority queue (uses heap)
map (PHP array is a map implementation)
Understanding Algorithms and Big-O notation
See the PDF presentation on Big-O. Explained by examples, with quiz & answers here.
PHP Development Tools
PHP Framework of a choice:
Best Tutorial Platforms
Get to know PHP librarys
PHP Libraries are collections of pre-written code that users can use to optimize tasks. The Standard PHP Library (SPL) is a collection of interfaces and classes that are meant to solve common problems.
Other stuff you should to learn
MySQL / MariaDB / Postgres / SQL / query optimization / database normalisation
Elastic Search + Kibana or Open Search (Elastic open src fork)
Queueing the job with RabbitMQ
Know how to run PHP with docker Docker
Use Kubernetes with your docker images (keep services as standalone containers for better scaling)
Apache / NginX
Linux (Ubuntu, Debian, Fedora)