Posty

Wyświetlanie postów z luty, 2019

Jak nie sprawdzać wiedzy technicznej: platformy online

Obraz
Platformy quizzowe dla programistów (Codility czy inne). Hit czy kit? Teoretycznie obiecują szybkie sprawdzenie wiedzy i weryfikację, czy kandydat jest dobry. Teoretycznie. Bo teoria często rozmija się z praktyką. Poczytajcie szokującą relację ze zdawania testów na platformach on-line. Zadania zamknięte gone wrong Kiedy pytania zamknięte są do dupy? Wtedy, kiedy pytanie jest źle sformułowane i nie wiadomo co wybrać (pomimo posiadania wystarczającej wiedzy). Kiedy pasuje kilka odpowiedzi naraz. Szczególnie jeśli to zadanie, które bada rzeczy subiektywne. Np. który CSS bardziej pasuje? (pytanie raczej z webdesignu, projektowania graficznego stron, niż sprawdzające wiedzę techniczną). Wybrałem odpowiedź, która wydała mi się najbardziej rozsądna, i używała stonowanych kolorów.  I figa, okazuje się, że wg nich źle wybrałem, bo "prawidłową" odpowiedzią było wybranie CSSa w bardzo jaskrawo-oczojebnych kolorach. Aha. To dużo tłumaczy. Zakładam, że jeśli to była prawi

Co jeśli nie mogę znaleźć nazwy?

Co jeśli nie możesz znaleźć nazwy dla funkcji? (ew. dla zmiennej, klasy itp.). Zadaj sobie pytania - co funkcja robi? Jakie jest jej przeznaczenie? Jaka jest metafora, która by pasowała (wszystko jest pewną metaforą)? Czasem też sprawdza się taka metoda, żeby najpierw pomyśleć o metaforach/koncepcjach, tzn. najpierw wymyślić nazwę dla funkcji, jej argumenty, sposób wywołania, a dopiero potem zabierać się za implementację. Ja jak mam zrobić "publiczne" API  (przez publiczne mam na myśli wszystko to, z czego się używa w wielu miejscach - np. klasa, która będzie używana przez 20 różnych modułów w projekcie) - to najpierw staram się wymyślić ładne i wygodne API, wtedy myślę o abstrakcjach, nazwach itp. Otwieram sobie oddzielny plik i po prostu "piszę na sucho" przypadki użycia danej funkcji (w momencie kiedy jeszcze implementacja nie jest napisana). A potem staram się dostosować implementację do nazw i do API, które sobie wymyśliłem. (zauważ, że im bardziej &quo

Moje próby zrozumienia Reacta (1)

Jak działają haki(hooks) w React? Ale tak na serio, jak to się dzieje, że jak dasz useState, to się robi stan? Zobaczmy w źródełko, w kodzik: ReactHooks.js wygląda na to, że każdy hak działa pod spodem tak samo - i jest tylko wrapperem na daną metodę dispatchera. Każdy hak bowiem wywołuje sobie na początku funkcję resolveDispatcher , która pobiera aktualnego dispatchera (cokolwiek miałoby to znaczyć w praktyce - czy dispatcher jest zawsze ten sam, w danej apce, czy się zmienia? To pewnie jedno z tych pytań, które bym zadał na początku swojej pracy w Facebooku. Gdybym tam pracował oczywiście. I gdyby mi kazali dorabiać nowe haki do Reacta). Ale nic to, znalazłem po nitce do kłębka taki kodzik w pakiecie `react-reconciler`, wygląda na to, że oni tam zmieniają tego dispatchera dynamicznie: https://github.com/facebook/react/blob/267ed981466ef323b1461b013b5db8db31e31772/packages/react-reconciler/src/ReactFiberHooks.js#L1266 I czasem w wersji DEV jest inny. Po co tak? Nie wiem,

Nauka programowania 2019

Obraz
Ten rok spędzam na nauce różnych rzeczy. Najpierw był blockchain, a dokładniej Ethereum. Trochę hello worldów zrobiłem. W ogóle dziwnie - bo wcześniej oglądałem różne teoretyczne wprowadzenia o blockchain i byłem pewny, że wiem mniej więcej, o co tam chodzi. Tutorial do Ethereum też wydawał się łatwy, prosty kodzik, bez problemu. Okazało się jednak, że o ile koncepcyjnie ogarniam, to zakodować i uruchomić prawdziwy program w blockchain to już nie jest takie proste. Nie umiałem odpalić apki czy zdeployować kontraktu. Chociaż jakoś to potem oczywiście odpaliłem, ale chyba tylko dlatego, że wystarczająco długo próbowałem ;) Ale nic to, myślę, że do tego jeszcze wrócę. Jednak i tak mimo wszystko oceniam blockchain za coś łatwiejszego od np. machine learning (tam to dopiero masakra. Więcej teorii trzeba zakumać). Potem zacząłem powracać do Three.js i robić grę (którą dalej robię i zamierzam ją jeszcze długo robić, aż zrobię do końca, czyli pewnie z rok albo i więcej), przy okazji po