Interpretacja terminów z ogłoszeń o pracę

0

Witam,

Zdarza mi się przeglądać oferty pracy (programista PHP), w każdej pojawiają się dwa wyświechtane zwroty; PHP na poziomie zaawansowanym, dobra znajomość OOP (wiem co to OOP ;)).

Czy ktoś zechciałby powiedzieć, wyjaśnić, co z reguły autor ma na myśli? Ukończenie jakiego projektu/ów daje nam moralne prawo do nazywania się programistami na poziomie zaawansowanym?
Jakiś własny komentarz?

Będę wdzięczny.

0

Nie, jeden projekt nie pozwala na nazwanie się "zaawansowanym programistą w PHP". Chyba że byłeś bardzo doświadczonym koderem w innych językach i parę miesięcy temu zacząłeś intensywnie interesować się PHP. Czytałeś książki, specyfikacje, teksty w necie. Pisałeś sobie dla testów trochę kodu, ale nie można tego było nazwać "projektami". Wreszcie wziąłeś się od razu za porządny projekt o na np. 10k linii kodu (to nie jest olbrzym, ale w te parę miesięcy z PHP i tak nie miałeś czasu napisać czegoś większego). I od razu stosowałeś tam wzorce projektowe, zasady DRY, KISS, ogólnie zasady "pragmatycznego programowania", bo wszystko to wiedziałeś jeszcze zanim zabrałeś się za PHP. Aha, zrobiłeś małe badanie sytuacji, szukając w Sieci tego, co robią najlepsi koderzy PHP, pytając się o rady doświadczonych kumpli itp., dzięki czemu w tym pierwszym projekcie używasz już dobrych frameworków i bibliotek. Oczywiście dbasz o jakość tego swojego jedynego projektu przy pomocy testów jednostkowych (i innych), może nawet stosując metodologię programowania opartą o testowanie.

Wtedy pewnie mógłbyś nazwać się zaawansowanym programistą PHP z jako-taką pewnością, że nie przesadzasz. Ale to również dlatego, że PHP to jeden z tych języków, w którym średni poziom programowania jest żałosny ze względu na dużą liczbę (wiecznych) newbies i script-kiddies (hej! w przypadku JavaScriptu jest jeszcze gorzej!).

Pytanie tylko co o tym wszystkim myślą autorzy ogłoszenia? Czy oni wzięli poprawkę na ten żałosny poziom umiejętności PHP i tak naprawdę mają na myśli programistów średnio-zaawansowanych, lub po prostu już nie całkiem zielonych i potrafiących doskonale programować strukturalnie i znających wszystkie składniki programowania obiektowego (niekoniecznie sypiących z rękawa wzorcami)? A może wszyscy w ten firmie są profesjonalnymi programistami, ale mają tylko po kilka lat doświadczenia, więc potrzebują kogoś, kto by miał ponad 10? Niektórzy twierdzą, że programista z trochę ponad dziesięcioletnim stażem jest wciąż tylko "nastolatkiem" :).

Może powiem coś na swoim przykładzie, żebyś był w stanie sam siebie umiejscowić.

C# + .NET. Nie miałem z tym wiele do czynienia. Trochę ćwiczeń na studiach etc. Ale język mi się nawet spodobał. Widziałem w nim parę fajnych, wbudowanych rzeczy (oznaczanie parametrów jako out, gotowy model obsługi zdarzeń, anotacje etc.). Kodować już jako tako umiałem. W sumie na laboratoriach zrobiłem w tym jeden projekt, choć specjalnie przekroczyłem wymagania, żeby się więcej nauczyć. Był to kalkulator z GUI. Czekaj, czekaj, daj mi skończyć! To nie była ta lipa, co to robią początkujący na pierwszy projekt. Mój miał około 5k linii kodu. Rozumiał wyrażenia arytmetyczne, zawierał cały parser, tzn. lexer + parser, napisane przeze mnie od podstaw -- obiektowo i rozszerzalnie. I nie liczył żadnej dziwnej i łatwej w implementacji (odwróconej) notacji polskiej, tylko zwykłą, infiksową, z nawiasami i możliwością wprowadzenia nowych działań. Podkreślał też błędy. Pamiętał historię obliczeń i potrafił zapisać je w pliku XML (wypróbowałem dostępną w tym środowisku implementację DOM) i/lub w bazie danych (wykorzystałem ADO.NET), co zresztą kazał nam zrobić prowadzący (parser nie był chyba konieczny, a jeśli już, to można było zrobić ONP). Ogólnie poszło mi to łatwo i w miarę przyjemnie, bo znałem już bardzo dobrze C, nie najgorzej C++, dobrze Javę i jeszcze parę innych języków.

W żadnym razie nie nazwałbym się jednak zaawansowanym programistą C#. Szczególnie teraz, gdy od ostatniego projektu w tym języku minęło trochę czasu.

Ostatnio niewiele pisałem też w PHP i w ogóle mam stosunkowo niewielkie doświadczenie w tym języku (choć mam na koncie naturalnie pięciocyfrową liczbę linii kodu), więc tak z marszu na pewno nie powiedziałbym uczciwie, że znam PHP "bardzo dobrze". A zrobiłem w nim nie jeden, ale parę komercyjnych projektów. A jakby liczyć wszystko, to więcej niż parę. Od pewnego czasu zajmuję się głównie frontendem (JS/HTML/CSS) głównie z racji tego, że w pobliżu brakuje osób mających jakiekolwiek pojęcie o JS. Ale gdy integruję kod frontendowy z szablonami PHP, to nie boję się napisać jakiegoś pluginu np. do Smarty, czy innego używanego systemu szablonów. Jakbym trochę sobie potrenował to PHP, tj. był świeżo po jakimś projekciku, to napisałbym pewnie "dobra znajomość".

Tylko jak to się ma znajomość "dobra" do "zaawansowanej", to cholera jedna wie. Standardu chyba pod tym względem nie ma.

1 użytkowników online, w tym zalogowanych: 0, gości: 1