Gdybym zatrudniał programistę…

Jedno z pytań jakie musiałbym zadać byłoby następujące:
Dane są dwie metody w klasie. Kod prawidłowo się parsuje i wykonuje. Jednak zawierają one pewien błąd. Czy jesteś w stanie go znaleźć?

	function archive_lists() {
		$this->layout='admin';

		$user=$this->Auth->user();
		$userId = $user['User']['id'];

		$entry = $this->Car->Entry->User->find('first' ,
		              array(
		                      'conditions'=>array('User.id'=>$userId),
							  'contain'=>array('Entry')
		              )
		);
		$entryId = $entry['Entry']['0']['id'];

		$entry_name = $this->Car->find('first' , array('conditions'=>array('Car.entry_id'=>$entryId)));
		$this->set('entry_name' , $entry_name['Entry']['name']);

		$this->Car->recursive = 0;
		$data = $this->paginate('Car', array('Car.entry_id' => $entryId, 'Car.deleted'=>1));

		$this->set('cars', $data);
	}

	function index_archive() {

		$this->layout='admin';

		$this->Car->recursive = 0;
		$data = $this->paginate('Car', array('Car.deleted'=>1));

		$this->set('cars', $data);
	}

Jestem pewien, że gdybym miał dwóch kandydatów: jednego z dwuletnim doświadczeniem w pracy z PHP i frameworkiem CakePHP i drugiego po studiach informatycznych (czyli pewnie nieźle zna C ;)), ale tylko widział PHP. Gdyby pierwszy nie był w stanie odpowiedzieć poprawnie na moje pytanie w przeciągu kilku minut, a drugi wręcz przeciwnie – wybrałbym drugiego.

Byłbym wniebowzięty, gdyby go znalazł po kilku chwilach patrzenia na kod. Oznaczało by to, że nie jest rzemieślnikiem, który nauczył się korzystać z narzędzi oferowanych przez język. Byłby żółtodziobem, który ma potencjał do tworzenia świetnych systemów. Ma predyspozycję do szybkiego wzrostu umiejętności niezależnie od tego, czy jeździ na kosztowne szkolenia, czy nie. Po prostu “małe dziadostwa” w kodzie przeszkadzałyby mu na tyle, że z własnej nieprzymuszonej woli nauczyłby się ich unikach. Odkrywałby kolejne i doszlifowywał swoje umiejętności. Nie raz na jakiś czas, ale ustawicznie!

Share Button

Leave a Reply

Your email address will not be published. Required fields are marked *