construct() is for construction, to load things you need.
__construct( ) public
Constructor
Parameters:
ComponentCollection $collection
A ComponentCollection this component can use to lazy load its components
http://api.cakephp.org/2.3/class-Component.html#___construct
beforeFilter() executes functions that you NEED to be executed before any other action
Controller::beforeFilter()
This function is executed before every action in the controller. It’s a handy place to check for an active session or inspect user permissions.
http://api.cakephp.org/2.3/class-Controller.html#_beforeFilter
Called before the controller action. You can use this method to configure and customize components or perform logic that needs to happen before each controller action.
Note:
The beforeFilter() method will be called for missing actions, and scaffolded actions.
http://book.cakephp.org/2.0/en/controllers.html#request-life-cycle-callbacks
Usually you will not need a constructor as, when following CakePHP conventions there are only very few scenarios where you actually have no other option than to "force" loading something manually...