Posty

Sygnały, że JS rozwija się w tempie żółwia

Wbrew pozorom ekosystem JavaScriptu wyjątkowo powoli się rozwija. Pamiętacie, jak tworzyłem "alternatywę dla Reduxa"? W zasadzie kilka takich projektów miałem, a to chciałem zrobić alternatywę dla Reduxa, a to dodatek do Reduxa. A to całkowicie niezależną bibliotekę do reaktywności, nawet edytor wizualny zrobiłem, gdzie dało się połączyć boksy strzałkami, żeby zaznaczyć flow danych (tzw. node editor - trochę jak edytor shaderów w Blender czy edytor blueprintów w Unreal Engine). Na potrzeby tego wizualnego edytora zrobiłem bibliotekę do reaktywnych grafów. Inspirowałem się też takimi bibliotekami jak Mobx czy Rx.js. I cóż, robiłem to gdzieś między 2017 a 2019. Od tego czasu trochę się znudziłem tematem, plus uznałem, że w zasadzie problem "zarządzania stanem" jest już rozwiązany w środowisku JSowców lepiej lub gorzej i że może zbyt się zafiksowałem w ambicjach i rozwiązania małego problemu, a zatraciłem szerszy kontekst tworzenia oprogramowania. Słuchajcie, bo te c

Absurdy Rekrutacji 2023

Obraz
Oto absurdy rekrutacyjne, których doświadczyłem w tym roku: 7h robienia zadania domowego (trzeba było prostą apkę w Node.js zrobić), potem feedback, który nawet nie był słowny, ale punktowy. Firma oceniała kandydatów wg punktów. U mnie zabrakło im obsługi błędów (ale nie napisali, że to ważne), więc miałem mniej punktów, więc wypad XD Śmieszne to jest, bo pokazuje ogólne myślenie podczas oceniania, czyli "nie zrobiłeś czegoś? Pewnie tego nie umiesz. Mamy kandydatów, którzy to napisali, oni umieją". Zadanie domowe z tworzenia gier w Pixi.js. Nawet to ciekawe na początku było, bo potrzebowałem googlać, jak się robi pewne rzeczy z Pixi.js. Więc sam skorzystałem na tym. Jednak nie kontynuowałem tego zadania, ponieważ po 2 godzinach owszem, ruszyłem temat i może po 4h by mi się udało zrobić "jakoś" to zadanie. Jednak w wymogach było napisane, że wymogiem jest duża jakość kodu i sensowne podzielenie tego wszystkiego na klasy. Myślę, że jakbym chciał to dobrze zapro

Czy popełniasz te błędy szukając pracy?

Więc lecimy: lanie wody w CV. Jak napiszesz CV, to odłóż to na dzień i przeczytaj na świeżo. Czy na pewno nie powrzucałeś tam informacji, które są całkowicie nieadekwatne do stanowiska pracy? Jeśli aplikujesz na backendowca, to czemu wpisujesz obsługę Photoshopa w skillach? Czemu w każdym punkcie doświadczenia powtarzasz tę samą formułkę? W jednym miejscu "na rzeczonym stanowisku byłem odpowiedzialny za implementację apek w React", w drugim "na rzeczonym stanowisku byłem odpowiedzialny za implementację apek w Node.js"? Szum informacyjny. przyznanie się do niewiedzy HRom . Rekrutacje w IT zwykle odbywają się tak, że najpierw rozmawiasz z osobą nietechniczną, która nie ma pojęcia o programowaniu, a ma tylko za zadanie zrobić screening, czy się nadajesz na rozmowę o pracę. I załóżmy, że na danym stanowisku wymagana jest technologia X, którą słabo znasz. Błędem jest mówienie "a bo ja słabo znam tę technologię". Lepiej powiedzieć, że ją ogarniasz. Za

Przygody juniora (1)

Obraz
Zakodziłem swojego taska. Zakomitowałem i pusznąłem na serwer. Dałem merdż rekłesta. No i czekam. Nie wiedziałem, co ze sobą zrobić, więc wyłączyłem wifi w kompie, żeby włączył się dinozaur. Zacząłem grać. Tak mnie to wciągnęło, że aż pół godziny spędziłem na tym. Nagle stuka mnie w ramię kolega senior. - Czemu nie odpisujesz? Wysłałem ci wiadomość. - A no bo ja, no wiesz, wyłączyłem internet, żeby pograć w dinozaura. - Do tego nie musisz wyłączać internetu. Wystarczy wejść na chrome://dino - rzekł senior i byłem pod wrażeniem jego wiedzy. - O, nie wiedziałem tego! - No to jak masz jakiś problem, to pytaj. - To ty masz jakiś problem, bo przyszedłeś. - A, no tak. No bo dałeś mi tego merdż rekłesta, tak? Ale tam w ogóle nie ma napisanych testów. - A od kiedy muszą być pisane testy? - Od kiedy zmieniliśmy definiszyn ow don. Wcześniej rzeczywiście nie pisaliśmy testów, bo nie było tego w DoD. - A co to są testy i jak się je pisze? - może i głupie pytanie, ale nigdy wcześniej

Korzyści z robienia gier w przeglądarce

Obraz
Gry w przeglądarce jest to raczej hobbystyczna działka. Owszem, są firmy, które zarabiają na grach przeglądarkowych, czasem jakaś oferta pracy jest, ale powiedzmy sobie szczerze - to nie jest pewna ścieżka kariery. Jest to nisza, na dodatek niezbyt doceniana czy szanowana (a szkoda, bo wymaga często dużych skilli). Więc jeśli twoją motywacją jest to, że robienie gier jest ciekawe i chcesz po prostu je robić, to bardzo zachęcam... ...ale jak chcesz oprzeć na tym swoją karierę i znaleźć pracę, to raczej sugerowałbym znaleźć sobie inne, bardziej rynkowe zajęcie. Jednak tworząc gry przeglądarkowe łapiesz parę rzeczy, które mogą ci się przydać poza gamedevem: WebGL (i biblioteki obsługujące go takie jak Three.js) - w WebGL można robić różne wizualizacje czy demka, co czasem jest poszukiwane na rynku... chociaż rzadko i ciężko się dostać, bo jest duża konkurencja, więc również odradzam opieranie na tym swojej całej kariery, bo się przejedziesz. Tym niemniej fajnie to wygląda

Kod Jesieni 2023

Obraz
Programowanie jesienią ma wymiar pewnej takiej zadumy. Ciemno, zimno i ponuro. Gorące napoje takie jak kawa czy herbata albo kakao są pite. Siadasz pod kocykiem i piszesz kody magiczne jak te, o których marzyłeś wiele lat temu, ale których nie umiałeś wtedy jeszcze napisać, gdyż twoje umiejętności były daleko niższe niż te, które są dzisiaj. Jednak ponuro. I ta ponurość jest potęgowana przez ogólną listopadową aurę, która kojarzy mi się z jakimiś wycieczkami do muzeum. Nie wiem, czemu tak. Taki mam nastrój. Ale teraz mamy październik, nastrój póki co grobowy. Chandler z Przyjaciół umarł. Tyle wspaniałych chwil z tym serialem. Super postać. Wiem, że to już nie jest o programowaniu, ale warto wspomnieć. Z kodzeniem natomiast jest taki problem, że jak się zacznie, to ciężko skończyć. Okazuje się, że problemy są bardziej złożone, niż pierwsze przybliżenie. Motywacja spada, bo poczucie możliwości powodzenia spada. Można brnąć dalej, niczym po kałużach, jak masz dobre buty. Może do c

Lintowania stan, czyli pokemony na linterach

Obraz
Wchodzę w tematykę Eslinta. Uczę się go używać bardziej świadomie. Robić własne wtyczki i takie tam. A zaczęło się niewinnie. Od prób samodzielnej konfiguracji eslinta pod Reacta. Nie zastanawiałem się nad tym wcześniej, jeśli jakieś lintery były w projekcie, to były. Ale cholera, chcę robić dobrze, chcę robić profesjonalnie. Więc zacząłem rozkminiać konfigurację i co teraz polecają. Sprawdziłem eslint-plugin-react - chuja to sprawdza . No może tak się nie powinno pisać na poważnym blogu, ale takie moje pierwsze wrażenie, może mylne. A eslint-config-react-app lepszy? No nie, też nic to specjalnie nie sprawdza raczej. Sprawdziłem też AirBnB (reguły "airbnb", "airbnb/hooks"), ale tamtejsze reguły to już kompletnie są odklejone (i ostro krytykowane przez społeczność swoją drogą). Czepiają się o niemające znaczenia formatowanie, a taki kod uważają za poprawny w komponencie reactowym: export function Foo() { const [state, setState] = React.useState({ c: 1