Developer Blog

  • Blog
  • /
  • Things a Senior PHP Web Developer Should Know - Part 3
By Dracony on 29 September 2014

I’m continuing my list of useful topics for web developers, especially those using PHP. Now let’s tackle some things that would separate a Senior level developer. While one might easily argue that a Senior is first and foremost defined by experience and not theory, it’s really hard to measure experience on its own.

Can a person who has been solving the exact same problem in the exact same framework or CMS for a long time be truly considered a Senior Developer? Well maybe if we add the name of the CMS to the title and name him a Senior WordPress Developer that would be more fitting then. To be considered truly experienced a developer must have a wide range of knowledge and skills that he could consult and apply. Just being able to “google it” is good enough for a mediocre programmer, while a Senior one should have a lot of knowledge under his belt. So here goes:

Memory management

  • Memory Data Segments
  • Virtual Memory Allocation

Data Structures

  • Tail recursion
  • Dynamic arrays memory allocation
  • Linked List, Queue, Stack performance comparison
  • Priority queue
  • Hash table implementation
  • Hash table collision protection
  • Heap data structure
  • Any non-comparison sort (Radix)
  • Self balancing trees

Programming paradigms

  • Lambdas, currying
  • Rock solid pattern knowledge
  • G.R.A.S.P. principles
  • UML diagrams for GOF patterns

Architectural

  • Multitier architecture
  • UML class and use case diagrams
  • Message based architecture

Networking

  • Network masking
  • Network packet contents
  • Difference between HTTP 1.0 and 1.1
  • DNS/DDNS
  • Network analysis tools (Wireshark)
  • SOAP
  • RPC

SQL

  • ACID
  • Transaction isolation levels
  • Advanced search engines (Elasticsearch, Sphinx)
  • Normal forms up to fifth
  • Table partitioning
  • Master-slave setup

NoSQL

  • MongoDB aggregation framework
  • MongoDB sharding

XML

  • XML Namespaces
  • XSLT
  • XML Schema

Security

  • HTTPS Certificates
  • Digital signatures
  • Key exchange algorithms

HTML, CSS
I’m really lost as to what include here, since the whole field seems to be more experience driven than any other. If you have any ideas, please comment those.

Optimization

  • Client side data caching
  • Delayed execution
  • Replication
  • Separate static server as page load time booster
  • Reverse proxy (Varnish)

PHP

  • Being able to read opcodes
  • Opcodes
  • Custom stream handlers
  • Sockets
  • Generators
  • Internationalization and localization

If you disagree on some points or would like to add your own please comment, I’d love to hear your opinion.

comments powered by Disqus