So I took these online assessments on PHP.

What a horrible way to gauge a programmer's knowledge.

To feed intentionally complex and tricky code to try and trick the taker into the wrong answer.

To assume the taker uses mysqli instead of PDO and would know the functions off the top of their head for mysqli is ridiculous.

There is so much wrong with these assessments I don't even know where to begin.

Just give me the specs of a program to write and let me write a program.

These recruiters really do not understand anything about programming, or how to rate a programmer's ability.

  • 8
    I don't even know PDO methods... Are there really companies still using raw PDO without any ORM or wrapper?

    I don't even know the order of arguments for array_map() and array_reduce(), because I only use ->map() and ->reduce() on collections.

    And as for writing a prime number sieve or a Fibonacci generator on a whiteboard... Yeah I tend to store search keywords leading to Rosetta code wiki instead of algorithms in my head.

    I'd prefer an employee who recognizes an N+1 query problem or has a feeling for writing useful tests over one who can cite sorting algorithms.
  • 5

    EXACTLY. The amount of questions based around knowledge of superglobals and raw db request was insane, I was like wtf? this is crazy that they would think a modern programmer would know this off the top of their heads!
  • 3

    No wonder probably the programmers that they consider "senior" are probably all shiite.

    I don't know the weight they give to these "assessments" they said I did good, but I did ask for my raw scores which they have yet to produce, just for my own knowledge.

    They can go suck on a wanker's egg for all I care.

    I wish I would have snapshotted all the questions, any modern programmer would be like wtf? why do I care what is in a $REQUEST super global, I would just look it up if I ever needed it. How many times do I use PUT? why the fuck would I remember anything about it?

    So if they don't like my scores, I really do not care. I just want to know my scores just to gauge myself against dinosaurs.
  • 4
    @Bitwise The test I made for new employees is as follows:

    We pay them a flat fee of 2 days salary for the exercise.

    I provide them with a super basic to-do app, setup using Laravel, and ask them to add a searchable tag system.

    That should not be too difficult for a backend dev with MVC framework experience, but it's kind of representative for common tasks. Add DB migration, setup crud controller, write a few tests.

    There's some bonus points when analytics are added displaying to-do completion rate and tag usage aggregated by time period.

    Some people will just define API endpoints, others grab D3 and build graphs and clouds, others write exactly what was asked with two dozen tests... Useful clues all over the place.

    It's all fine, as long as the basics are there.

    By analyzing how they set up routes and DB tables, whether they add JS, how they write tests — that's how I know their seniority and where they would fit in the company.
  • 1

    I completely agree, a multiple choice test that have multiple right answers and weights each one by complexity and intentionally tries to trick one into the wrong answer is so passe and 80's logic.

    I always do well with creating programs when given the specs. I always get callbacks when I submit my test results. Apparently my personality needs work though, because I always lose them when I talk to them in person. ;)
  • 1

    Also, the level of companies that you work for is way beyond the norm. Getting paid to go test would be sublime.

    These companies I deal with have no regard for your time. They figure if you want the job you will make the time and pay for it yourself.

    I guess most of the people they deal with are unemployed idk. I think that should be an indicator of a decent candidate when they are actually employed at the time and say their time is valuable.
  • 1
    Good. Those idiots aren't people you'd want to work for or have anything to do with anyway.
  • 0
    I mean does anyone still actually use PHP in production 😛
  • 1
    The only time I have a problem with tests, is when I need to actually physically be at the facility. I don't know if this is a problem now, but 4 years ago I went to an interview where I was to build the most basic app and I was so nervous my mind went totally blank. (ofc I was a total fresher at that time, which is why I don't think it would happen now)

    It was my very first interview in the industry and it went so badly ,lol. For the life of me my mind wouldn't work. My nervousness was pegged at +10, which told me a lot about myself, if I control my nervousness I control the outcome of situations.
  • 2
    @lunorian PHP is the most used backend language, used by about 43% of the top million websites, followed by ASP at 13%, Java at 4% and Ruby at 3%.

    Remember that cool, good or fun languages are not necessarily in demand... There are less sites powered by Node/Express than by Shockwave Flash.

    When people yelled that Rails would change the world, no one used it, now that blogs scream that Rails is dead there's actually a rising demand.

    No company should use PHP without any framework though, that's pure madness.
  • 1
    But frameworks are an overkill in some circumstances. Smaller or simpler projects could benefit from raw PHP.
    Although, I was surprised that e.g. laravel has extremley minimal overhead for most tasks.
  • 1
    @bittersweet PHP or Wordpress?
  • 3
    @lunorian I'd consider WordPress a PHP framework. A bad one.

    @nnee Without any framework, it's extremely easy to do extremely bad things in PHP. I think if you need a backend language, you are probably need to handle post/put requests. In which case you need request sanitizing & validation...

    At which point I would at the very least use Silex/Slim/Lumen.
  • 2
    @bittersweet Tbh, I'd fail that hard. I use PDO on a daily basis (the raw way I guess) and I've never learned how to do tests. MVC and backend I can do, though.
  • 4
    @linuxxx I'd recommend this one if you want to dive in deeper:


    It's a Laravel course, but it does demonstrate & explain pretty well how frameworks wrap queries using an ORM, and how PHPUnit testing can be integrated.

    Symfony & Laravel knowledge opens up a lot of jobs. Symfony is verbose and correct, while Laravel is easier, magical and a bit dirty.
  • 1
    @bittersweet Thanks! I thought you'd lecture me but instead you're giving resources, awesome.
  • 1

    After all these years, tests is where I still lack considerably, I have never been in a company that actually writes tests, hence, I have never written tests. I need to learn, so thanks for the link. I have a subscription to Laracasts, I guess I missed the unit testing section.
  • 3
    @linuxxx I only shame those who believe they're done learning.

    I think PHP is pretty unique in how big the difference is between old and new style of working: It went from inline html documents with some php tags sprinkled in and some unstructured scripts to handle form submission, to frameworks with templating engines like twig and blade, a very specific project structure, and strict OOP conventions.

    @Bitwise There is also a "testing laravel" series, which goes even deeper into testing!
Your Job Suck?
Get a Better Job
Add Comment