Becoming an Exceptional Software Engineer
2 min readDec 2, 2023
Software Engineering isn’t a destination, it’s a journey. In my path, I’ve chosen PHP as my primary companion. While being a software engineer can be straightforward, striving to become exceptional demands dedication, persistence, and experience. To achieve excellence in this field, I’ve compiled a list of essential knowledge tailored for PHP. Remember, this list isn’t complete and can be customized by adding or removing elements based on individual preferences and goals.
PHP
- Basic of PHP
- How PHP works
- What’s new in PHP 8
- Composer
- PSR guideline
- Best Practice in PHP
- Journey of PHP
WEB
- How internet works
- Clint Server Architecture
- Networking Basic, HTTP, HTTPS, DNS, CDN, SSH
- Cookie, Sessions
- API
- HTML, CSS, JS
Framework Fundamentals
- Routing
- MVC
- Template Engine
- DI Container — Dependency Injection
- ORM
- Event Management
- Observers Concept
- Event Listener
Programming Paradigm
- Pillars of OOP
- SOLID
- DRY, YAGNI, KISS principles
- Design Patterns
Problem Solving
- Analytical Skill
- Basic data structures like array, queue, heap, hashtable, tree
- Basic algorithms like sorting, searching, graph traversal, dynamic programming
Database
- SQL
- Database Desing
- Join, sub-query, primary key, foreign key
- Indexing
- Transactions
- Normalizations
- How to write an optimized SQL query
MISC
- Clean code guidelines
- Testing — Unit test, Feature test
- Version Control — git
Advanced
- Software Architectures
- Authentication Mechanisms
- Caching
- Async Job Processing (Queue)
- Task Scheduling
- WebSocket
- Containers, Docker, Kubernetes
- Optimization techniques
- Logging, Monitoring, Debugging