28 05 2016
Wywiad z Łukaszem Sałajczyk – programista JavaScript i twórca scraby.io
Pierwszy wywiad na ramach tego bloga. 🙂
1. Opowiedz nam o sobie. Czym się zajmujesz, gdzie można Cię znaleźć w sieci? Ewentualnie przedstaw nam jakiś produkt, który chciałbyś tutaj krótko zareklamować
Cześć, nazywam się Łukasz Sałajczyk i jestem developerem JavaScriptu. Jako programista pracuje od 6 – 7 lat. Trochę trudno to zliczyć dlatego, że na początku pracowałem jako freelancer. Przez większość tego czasu zajmowałem w mniejszym czy większym stopniu tworzeniem gier. Na początku były to aplikacja konkursowe i gry promujące marki na Facebooku, później pracowałem przez 4 lata w malutkim game studiu gdzie tworzyliśmy gry, głównie skierowane na urządzenia mobilne. Aktualnie nie zajmuje się już tylko i wyłącznie grami, choć obecnie pracuje nad dość sporym projektem gdzie ostatecznie mamy stworzyć kilkadziesiąt gier edukacyjnych. Ostatnio, udało mi się także wypuścić swoją własną grę Scraby. Jest to logiczną grą słowną dostępną zarówno przez przeglądarkę jak i jakoaplikacja Androidowa.
https://play.google.com/store/apps/details?id=io.scraby.pl
2. Z jakiego powodu zainteresowałeś się JavaScriptem i czy był taki moment, kiedyzastanawiałeś się, czy to może nie jest dla Ciebie?
Zaczynałem od języków Pascal i C++ na których uczyłem się programowania. Później pisałem w PHP, głównie chyba dlatego, że dużo łatwiej można było pokazać wynik swojej pracy i coś tam sobie dorobić. Od zawsze chciałem jednak stworzyć swoją własną grę. Były to czasy kiedy wielką furorę robił Ogame (https://pl.ogame.gameforge.com/) i zacząłem pisać swojego własnego Ogame`a, oczywiście ostatecznie nic z tego nie wyszło ale do wszystkich tych odliczań czasu, kiedy wybuduje się budynek etc. potrzebowałem JS`a.
Chyba od tego się zaczęło. Wtedy zauważyłem, że dużo więcej frajdy sprawiało mi pisanie czegoś co się rusza, miga, skacze i powoduje jakieś takie “wow” u normalnego użytkownika niż pisanie kodu którego działanie generuje jakieś tam dane którego zwykły użytkownik nie doceni.
3. Jakie błędy popełniłeś podczas nauki/rozwoju? Gdybyś mógł pogadać z młodszym sobą sprzed 5-10-20lat co byś doradził?
Myślę, że na pewnym etapie zatrzymałem się w rozwoju jako programista. Zaczynając prace w studiu tworzącym gry, gdzie pracowałem przez 4 lata, bardzo dużo się uczyłem od ludzi z którymi pracowałem. Na początku było to rozwój taki typowo programistyczny, później bardziej w kontekście UX`u, gamedesignu, monetyzacji, dotarcia do gracza czy prowadzenia projektu. Byliśmy małym studiem i wspólnie rozmawialiśmy na wszystkie te tematy ogólnoprojektowe. Ostatecznie sam kod nie był problemem, bardziej skupialiśmy się wymyślaniu lepszych mechanik, funkcjonalności, sprawieniem żeby więcej osób grało i żeby zyski były większe. Wtedy tez przestałem czytać na tematy strikte związane z technologią i programowaniem. Technologia ma to do siebie, że bardzo szybko idzie do przodu i po pewnym czasie człowiek zostaje w tyle. Aktualnie staram się dużo czytać na tematy związane z technologią próbując odrobić trochę ten zastój.
4. Twoja najważniejsza książka/strona, z której się uczyłeś?
Tak naprawdę trudno mi przypomnieć sobie swoje początki. Programowaniem zajarałem się gdzieś w ostatniej klasie gimnazjum, czyli miałem jakieś 16 lat. Na początku była to seria artykułów, chyba z “Komputer Świata” nt. Pascala, chodź już wcześniej, gdzieś w okolicach końca podstawówki, poznałem HTMLa. Uczyłem się głównie z książek. Taką pierwszą którą pamiętam to była “PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty” http://helion.pl/ksiazki/php-i-mysql-tworzenie-stron-www-wydanie-drugie-vademecum-profesjonalisty-luke-welling-laura-thomson,phms2v.htm.
Za najważniejszą dla mnie uważam książkę nt. JSa – “JavaScript dla webmasterów. Zaawansowane programowanie” http://helion.pl/ksiazki/javascript-dla-webmasterow-zaawansowane-programowanie-nicholas-c-zakas,jszapr.htm którą naprawdę szczerze polecam na początek jeśli chodzi o JSa. Jeszcze gdzieś w między czasie była książka o C++ ale tytułu nie jestem w stanie sobie przypomnieć.
5. W jakim kierunku starasz się dzisiaj rozwijać? Dlaczego ten, a nie inny?
Tak naprawdę dawno temu zdecydowałem w którą stronę chce iść i tego się trzymam. JavaScript jest jedną z najbardziej rozwijających się technologii. Aktualnie w JSie można pisać na prawie wszystko. Poza takim klasycznym pisaniem dla weba, jest Unity w którym poza C# można pisać w JSie, jest Electron czy NW.js gdzie możemy tworzyć aplikacje dekstopowe, jest chociażby Cordova dzięki czemu można tworzyć hybrydowe aplikacje mobilne, jest Node.js w którym możemy pisać backend, jest WebGL gdzie możemy tworzyć 3D czy WebVR. Oczywiście, nie zawsze JS jest najlepszym wyborem ale w dobie przenoszenie usług do internetowej chmury jak chociażby Google Docs JavaScript jest przyszłością.
6. Twój najciekawszy projekt/produkt?
Jeśli miałbym wybrać jeden to zdecydowanie byłoby to Scraby. Na pewno dlatego, że jest to prawie w całości mój projekt, od konceptu poprzez prototyp aż do finalnej gry. Bardzo fajnym uczuciem jest to kiedy pokazujesz coś swojego ludziom a oni mówią, że im się podoba. Nie chciałbym zanudzać, więc jeśli ktoś byłby zainteresowany historią powstania gry to zapraszam na wykop gdzie opisałem co nieco: http://www.wykop.pl/artykul/2890161/gra-scraby-jak-powstala-gra/
7. Najciekawsza przygoda lub najtrudniejsza przygoda/zadanie/wydarzenie w pracy?
Najtrudniejszym zadaniem ostatnio był chyba projekt stworzenia na stronie modelu 3D bijącego serca, które składało się wstążek gdzie nakładanymi teksturami były teksty tweetów tagujących konkretnym tagiem. Teksty tweetów były pobierane w czasie rzeczywistym. Dla mnie osoby która nie miała do czynienia z 3D było to wyzwanie, szczególnie, że w wykorzystywanym Three.js jest to dość toporne. Nie jest to Unity gdzie ustawiamy myszką pozycje elementów, rodzaj światła, padanie światła itd. W Three.js trzeba to robić z poziomu kodu. Na pewno było to fajnie doświadczenie.
8. Co byś polecił na sam początek przy rozpoczynaniu nauki programowania?
Odradzałbym naukę programowania od języków skryptowych (JavaScript, PHP) a raczej od języków z silnym typowaniem zmiennych. Zaczęcie od czegoś bardziej niskopoziomowego (ale nie za nisko!) daję większy pogląd na zagadnienie programowania. Nie chodzi o to, żeby zbudować jakąś rozbudowaną aplikacje ale nauczyć się myślenia algorytmicznego/programistycznego. Jeśli miałbym coś polecić to chyba byłby to C++, za którym jakoś nie przepadam ale dla nauki wydaje się jak najbardziej rozsądny. W samej nauce chodzi raczej o to, żeby umieć rozwiązać podstawowe problemy jak np. sprawdzenie czy podane słowo jest palindromem (palindromem = wyrażenie brzmiące tak samo czytane od lewej do prawej i od prawej do lewej). Polecałbym tutaj stronę http://www.spoj.com/ czy http://www.codewars.com/ gdzie możemy wybrać zadanie i spróbować je rozwiązać (nie tylko w C++ ale także w wielu innych językach).
9. Jak znalazłeś pierwszą pracę?
Początkowo udzielałem się sporo na http://forum.php.pl/ gdzie jest dział zlecań i tam szukałem pierwszych możliwości zarobków. Chyba ludzie byli zadowoleni z moich usług i nie wiadomo w jaki sposób kontaktowały się ze mną nowe osoby. Przeglądałem też stronę zlecenia.przez.net (aktualnie przejęte przez portal https://www.freelancer.pl/) w poszukiwaniu zleceń. Trochę była to farma chińczyków, gdzie zawsze znalazł się ktoś kto oferował naprawdę śmieszną cenę a w większości dla klientów to był wyznacznik wyboru. Z tego co pamiętam dostałem tam jedynie jedno zlecenie, które nomen omen wyceniłem najdrożej z wszystkich wyceniających i zrodziła się z tego dość długa współpraca przy kolejnych dość sporych zleceniach związanych z aplikacjami facebookowymi. W międzyczasie prowadziłem też bloga technicznego, dostępnego jeszcze online pod adresem: https://luq10.wordpress.com/ gdzie trochę pisałem o gamedevie i jakoś tak wyszło, że kiedyś dostałem maila z zapytaniem czy byłbym zainteresowany pracą przy grach w JSie. Zrodziła się z tego 4 letnie współpraca. Swoje pierwsze CV napisałem dopiero niespełna 2 lata temu.
10. Co myślisz o studiach informatycznych? Czy pomagają?
Jestem świeżo po studiach informatycznych, obroniłem inżyniera w marcu tego roku, i jestem zdania, że studia nie mają kompletnie znaczenia. Posunął bym się nawet dalej, że studia mogą w pewnym sensie przeszkadzać. Osobiście studiowałem w trybie zaocznym, pracując w tygodniu, studiując w weekendy wiedząc co chce zawodowo robić. Z studiami jest tak, że uczą masy rzeczy która gdzieś tam buduje niby takie ogólne pojęcie o informatyce, i trudno się z tym nie zgodzić, ale jeśli wiesz w którym kierunku chcesz iść, 90% przedmiotów jest nieprzydatna i nudna. Porównując to czego jest się w stanie nauczyć w pracy czy też sam w domu przez te 3 i pół roku studiów jest to niebo a ziemia. Drugą sprawą jest kadra, która niekonieczne chcę uczyć, nie mogę zarzucić braku wiedzy bo nie o to tu chodzi. Chodzi raczej o to, że ci ludzie niekoniecznie mają predyspozycje, umiejętności i chęci do przekazywania wiedzy. Na uczelni są dlatego bo chcą robić jakieś tam projekty badawcze które ich fascynują, natomiast ktoś wrzuca im przymus uczenia innych ludzi. Niekoniecznie muszą tu lubić, i zupełnie to rozumiem. Oczywiście poznałem kilku prowadzących który poza tym, że są w porządku osobami to i widać ich chęć do sprzedawania swojej niemałej wiedzy ale na pewno nie jest to reguła. Dlatego studia mogą być czasami po prostu stratą swojego czasu i energii. Może jeśli ktoś nie wie jeszcze w którą stronę chce iść, studia są dla niego dobre. Moim zdaniem zawsze jeśli jest się w stanie zdobyć doświadczenie kosztem studiów, w ciemno powinno wybierać się doświadczenie. Osobiście mnie nikt nigdy o wykształcenie nie pytał.
Kiedy videotutoriale z programowania mają sens? O co chodzi z tymi makami?
Wywiad spoko, ale jedna uwaga. Jest to wywiad z Łukaszem Sałajczykiem bo w języku polskim nazwiska się odmienia. Poza tym .git 🙂
[…] związanego z IT) mogą coś wynieść. Aktualnie udało mi się wrzucić tylko jeden. Tutaj w formie tekstowej, niż jako […]