Praca Droptica

Jak zostać przyjętym na stanowisko programisty PHP

W drupalowej agencji, jaką jest Droptica, od dłuższego czasu stale prowadzimy rekrutację na stanowisko programista PHP. Często dostajemy pytania co właściwie trzeba umieć, aby dołączyć do naszego zespołu. Pytania pojawiają się głównie od osób, które zaczynają swoją karierę jako programista albo chcą się przebranżowić. 

Wiedza z zakresu “programowanie w PHP” jest bardzo obszerna i nie dla każdego jest jasne czego oczekujemy od kandydatów. Opiszę w tym wpisie co dla nas (i pewnie dla wielu innych podobnych firm) jest istotne podczas rekrutacji.

Solidne podstawy

Bardzo ważne jest płynne posługiwanie się podstawowymi elementami języka PHP. Od kandydatów oczekujemy szybkiego rozwiązywania podstawowych zadań programistycznych. Mam tutaj na myśli zadania pojawiające się na ćwiczeniach na pierwszym, drugim i trzecim semestrze studiów informatycznych. 

Kilka konkretnych przykładów to:

  • typy danych, instrukcje sterujące
  • znajomość pętli, zmiany jednej pętli na drugą, pętla w pętli, poruszanie się pętlami po tablicach wielowymiarowych
  • operacje na stringach, wycinanie fragmentów napisów, zmiany w napisach
  • funkcje, dobre praktyki tworzenia funkcji, 
  • rekurencja, dobre rozumienie zadań wymagających użycia funkcji rekurencyjnych
  • podstawy programowania obiektowego, tworzenie klas, dziedziczenie, interfejsy, klasy abstrakcyjne
  • proste algorytmy sortowania,
  • struktury danych jak kolejki lifo, fifo, drzewa

Uważamy, że ta lista wyżej to “must have”. Wychodzimy z założenia, że języków programowania czy frameworków można się dość szybko nauczyć jeśli ma się solidne podstawy. 

Jak się nauczyć rzetelnie podstaw? 

Zrobić dużo ćwiczeń. Bardzo dużo. Jeśli czytasz książkę o podstawach to przerób WSZYSTKIE ćwiczenia. Nie ścigasz się z nikim w nauce programowania. Nie spiesz się. Nieważne, że zrozumiesz przykład napisany przez autora. Musisz przećwiczyć inne przykłady, aż zaczniesz bardzo płynnie się posługiwać danym elementem języka. Jeśli trzeba to napisz hello world na 10 czy 20 różnych sposobów, aż zrozumiesz każdy znak pisanego kodu. 

Polecam użyć list zadań z jakiejś uczelni. Tam często było po 15-30 zadań dotyczących jednego zagadnienia, np samych pętli czy samych instrukcji sterujących. Taka ilość zadań utrwali w głowie posługiwanie się elementami języka programownia. 

Zrobienie 2-4 przykładów to zdecydowanie za mało.

Od szczegółu do ogółu, nie odwrotnie 

Opiszę to na przykładzie Drupala, bo tym się głównie zajmujemy (chociaż coraz więcej się pojawia u nas Symfony Framework). Przykład można odnieść od każdego innego większego systemu.

Przychodzi do nas wiele osób, które potrafią “poskładać” stronę internetową w Drupalu używając rdzenia, gotowych modułów i trochę pisząc kodu PHP. Jednak często go nie rozumieją. Wklejają fragmenty z Stackexchange czy innych stron i sprawdzają czy zadziała. Bez zrozumienia co wklejają. W ten sposób czasem się uda dostarczyć klientowi serwis internetowy czy aplikację, ale najczęściej nie będzie do końca działał tak jak klient chciał, czegoś się nie uda zrobić do końca itp. Często jednak w ogóle nie są w stanie dostarczyć systemu działającego zgodnie z oczekiwaniami klienta i spełniającego potrzeby biznesowe. 

Pojawiają się osoby na rekrutacji, które 5 lat tworzą serwisy internetowe w Drupalu ale nie potrafią np. zamienić pętli foreach na while. 

Znajomość Drupala jest cenną wiedzą jednak podstawy programowania są bardziej istotne. Dlatego jeśli chcesz się uczyć Drupala to ucz się też podstaw programowania. Jeśli już znasz Drupala, a nie znasz podstaw programowania to najwyższy czas zacząć :) 

Bądź projektantem aplikacji a nie klepaczem kodu

Uważamy, że programowanie to realizacja procesów biznesowych za pomocą kodu. Dlatego wymagamy umiejętności przekładania procesów biznesowych na kod aplikacji, czyli na interfejsy, struktury danych, diagramy klas, itp. 

Na rozmowie rekrutacyjnej pytamy o sposób zaprojektowania prostej aplikacji. Na przykład: “jak zaprojektowałbyś aplikację webową do rezerwacji wizyty u weterynarza”. Oczekujemy ogólnej odpowiedzi odnośnie budowy takiej aplikacji, użytych technologii, akcji dostępnych w systemie, itp. Rozpisania realizacji takiej aplikacji na zadania programistyczne. 

Nie wymagamy umiejętności projektowania bardzo złożonych systemów ale małe aplikacje oparte o kilka powiązanych ze sobą tabel danych kandydat powinien umieć wstępnie zaprojektować. 

Jakiego języka się uczyć

Angielskiego. Język angielski jest u nas bardzo ważny. Ponad 90% naszych klientów pochodzi z zagranicy. Chcemy robić dobre oprogramowanie dla klientów z całego świata. Tworzenie dobrego oprogramowania wymaga dobrej i ciągłej komunikacji z klientem po angielsku. Dlatego też na każdej rozmowie rekrutacyjnej sprawdzamy znajomość języka angielskiego. 

Podsumowanie 

Wymagamy tylko i aż 4 rzeczy: 

  • solidne podstawy
  • używanie większych systemów tylko rozumiejąc ich działanie
  • umiejętność projektowania aplikacji
  • znajomość języka angielskiego na poziomie B1/B2

Jeżeli chciałbyś/abyś dołączyć do zespołu programistów Drupala i spełniasz wyżej wymienione wymagania, zapraszam na stronę https://kariera.droptica.pl

Jeśli nie jesteś pewny/a czy spełniasz wszystkie wymagania to pytaj śmiało na [email protected] albo na messenger https://m.me/grzegorz.bartman  https://m.me/maciej.lukianski

Looking for a job as a PHP/Drupal Developer?