Becoming an Exceptional Software Engineer

MD. Arif Ahmed
2 min readDec 2, 2023
Becoming a better software engineer

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

  1. Basic of PHP
  2. How PHP works
  3. What’s new in PHP 8
  4. Composer
  5. PSR guideline
  6. Best Practice in PHP
  7. Journey of PHP

WEB

  1. How internet works
  2. Clint Server Architecture
  3. Networking Basic, HTTP, HTTPS, DNS, CDN, SSH
  4. Cookie, Sessions
  5. API
  6. HTML, CSS, JS

Framework Fundamentals

  1. Routing
  2. MVC
  3. Template Engine
  4. DI Container — Dependency Injection
  5. ORM
  6. Event Management
  7. Observers Concept
  8. Event Listener

Programming Paradigm

  1. Pillars of OOP
  2. SOLID
  3. DRY, YAGNI, KISS principles
  4. Design Patterns

Problem Solving

  1. Analytical Skill
  2. Basic data structures like array, queue, heap, hashtable, tree
  3. Basic algorithms like sorting, searching, graph traversal, dynamic programming

Database

  1. SQL
  2. Database Desing
  3. Join, sub-query, primary key, foreign key
  4. Indexing
  5. Transactions
  6. Normalizations
  7. How to write an optimized SQL query

MISC

  1. Clean code guidelines
  2. Testing — Unit test, Feature test
  3. Version Control — git

Advanced

  1. Software Architectures
  2. Authentication Mechanisms
  3. Caching
  4. Async Job Processing (Queue)
  5. Task Scheduling
  6. WebSocket
  7. Containers, Docker, Kubernetes
  8. Optimization techniques
  9. Logging, Monitoring, Debugging

--

--