I&#x27;d say they aren&#x27;t, because most software developers don&#x27;t write new algorithms to solve tiny problems in ten minutes.<p>They work within problem domains they know about and use libraries, frameworks and other useful abstractions. They edit existing code, they architect apps, they think about stuff for a long time, working things over in their mind or in code.  Being a fast coder is more about memorization and making every problem a nail for tools like memoization and big O analysis, then about long term sustained development skills. Real skills are not solving the problem in front of you asap.  It&#x27;s solving that problem and five other potential future problems using the same abstraction.  It&#x27;s not knowing the fastest solution, it&#x27;s knowing several solutions and applying the best one.<p>Real code tests would be like what engineers do everyday.:
Here&#x27;s some code we want to push to production, or plan to refactor for speed, write unit tests on the computer so we know it won&#x27;t break.<p>Here&#x27;s a design problem, how would you set up a db schema or object oriented design?  Okay, now we need to add this feature, how would your design change?<p>Here&#x27;s a problem involving calculating something based on a db call and returning it over the network... what&#x27;s the solution you use if network latency is an issue?  What about disk io in the db?  What about if it&#x27;s cpu bound? What about it uses too much ram?  What about if at some point this may need to be asynchronous code?  What if it&#x27;s distributed code? What if you need to catch every edge case?  What if things are breaking in production and you need to solve 80% of the problem now and worry about edge cases later?<p>Okay... here&#x27;s an api, write code to use it to solve the problem, even though the api isn&#x27;t meant to be used this way.<p>Here&#x27;s super complicated code... figure out what it does and document it.<p>These are all things a software developer may do... I guess I&#x27;m advocating testing their ability to work by using stuff as close to work as you can.