niedziela, lipca 21, 2019

Dziś programista ma być teoretycznym algorytmistą, a praktycznym kleistą ;-)

Taki paradoks na dziś.
Od programisty w dzisiejszych czasach wymaga się by jednocześnie znał lub znała algorytmy i struktury danych, a z drugiej by ich nie używał czy nie używała i zamiast tego by odwoływali się do czegoś co już zostało napisane ;-)
Z jednej strony w trakcie rekrutacji można zostać poproszonym na jednym interview by napisać kod dla cache LRU, a na innym w tym samym dniu można musieć odwołać się do użycia memchached który wspiera LRU ;-) (chociaż teraz bardziej Redisa który wspiera jeszcze inne algo).
Wymagamy wiedzy ja działa garbage collector, pytamy o major i minor collections, ale oczekujemy projektowania mikroserwisów które będą używały GC zero...
Z jednej strony nam brakuje programistów i programistek, z drugiej podnosimy poziom interview tak, że cała masa jak już znajdzie pracę to w ogóle nawet nie myśli o zmianie...
Przez co mamy grupę która tak naprawdę ciągle jest w rekrutacji i chodzi na rozmowy nawet dla sportu....
Dziwne to ;-)

posted from Bloggeroid




Podobne postybeta
Samochód jako zmniejszacz temperatury.... GC i jak to możliwe, że Young Generation może być zbyt duże, strzeż się finalize() i muzyczka :-) Czyli potok świadomości....
Odrobina miłości i serwery działają ;-)
Nie jestem pewien czy zadania koderskie/algorytmiczne są dobrym elementem rekrutacji
Słuchawki bezprzewodowe dobre :-)
Go, a łatwość czytania kodu

sobota, lipca 20, 2019

Growing mindset vs fixed mindset, a wrodzone granice

Gdy czytam różne książki, to często przywoływane są badania Carolin Dweck i terminy growing i fixed mindset.
Jak ktoś nie zna terminów, to w skrócie fixed mindset to przekonanie, że właściwie rodzimy się z jakimś potencjałem i go nigdy nie przeskoczymy, nawet gdybyśmy ciężko pracowali nad tym, growing mindset mówi, że to nieprawda, że jeśli będziemy ciężko pracować to zawsze "urośniemy".
Do tego Dweck twierdziła (teraz już nie twierdzi tak bardzo), że jak się mówi dzieciom, że są smart czy sprytne/inteligentne to robi się im krzywdę bo ustawia im się fixed mindset, ale jak się je chwali za pracę to daje się im podstawy do growing mindset.

I ogólnie podoba mi się idea growing mindset.

Ale jak żyję już trochę na tej planecie, to przekonuję się, że są ludzie którzy są tak błyskotliwi i tak szybko łapią, że przez samo przebywanie przy nich człowiek czuje się lepszy i są ludzie tak tępi, że po kontakcie z nimi odechciewa się wszystkiego i z nadzieją patrzy się w niebo czy jakaś asteroida tu nie leci.
I to mi się kłóci z tym growing vs fixed mindset.

Wiem, że jestem inteligentny, wiem, że mam dobrą pamięć, ale mimo mówienia po angielsku od ponad 20 lat czy więcej nadal mam akcent i tego nie przeskoczę.
Nauczyłem się w miarę szybko żonglować, ale nawet jak włożę w to 10 tysięcy godzin to nie dojdę do poziomu ludzi z Cirque do Soleil.
Studiowałem fizykę, ale chromodynamika mnie przerosła.
Z drugiej strony wiem, że bez zbytniego problemu umiem zrozumieć złożone systemy w których umiem zejść do poziomu wzajemnej interakcji na najniższym poziomie.

Przypuszczam, że po kilkuset godzinach treningu w żonglowaniu czy chromodynamice mógłbym dojść do poziomu, z którym niektórzy ludzie się rodzą.

Złamię prawie każde zadanie algorytmiczne, tylko że mnie to może zająć parę godzin, albo i tydzień, a są ludzie, którzy zobaczą rozwiązanie w ciągu kilkudziesięciu sekund.

Ja potrafię patrząc na schemat elektryczny "widzieć" jak płynie w nim prąd i ja się gromadzi ładunek, są tacy, którzy patrzą na kod i widzą jak działa. Ja muszę dla tej drugiej rzeczy mocno się pilnować.

Gdy patrzę na kandydatów, z którymi prowadzę rozmowy, są tacy którzy momentalnie wszystko łapią i są tacy, którzy nie są w stanie zrozumieć najprostszych spraw.

OK, z tymi kandydatami wiem, że ważny jest stres, w końcu jak człowiek w danym momencie potrafi trzymać w głowie tylko 4 rzeczy, to jak jest przestraszony i w jednej jednostce pamięci trzyma "nie płakać", a w drugiej "nie uciekać" to zostają takiemu komuś tylko 2 "rejestry" na których może operować.

Pewnie to wyżej wszystko znaczy, że ja mam fixed mindset ;-)

W mojej ocenia to jest tak, że rodzimy się, czy bardziej jak rośniemy to rośniemy do jakiegoś potencjału i przy growing mindset'cie możemy bliżej dotrzeć do granic tego potencjału, jak mamy szczęście i mamy mistrza to może taka osoba pomóc nam nawet wejść wyżej przez nauczenie nas sztuczek i pokazując inne sposoby patrzenia na problem, ale nadal jest gdzieś jakaś granica do której można dojść stosując metodę "nie spieprz tego"*, dalej nawet bardzo ciężka praca daje tylko mały przyrost.


* - czyli nie zmarnuj swojego potencjału


Podobne postybeta
12 lat ;-)
Zła lojalność ;-)
Błysnęło, huknęło i zepsuło telewizje :-(
Czy Brillo czeka los tagów NFC?
A takie tam słowo na niedzielę ;-)

piątek, lipca 19, 2019

Instrukcje obsługi do ludzi

Twierdzę, że powinni dawać instrukcję obsługi do ludzi.

Szczerze, chciałbym mieć nawet taką dla samego siebie ;-)

Coś w stylu:
Przemek się nie odzywa -> najpewniej czeka na inicjację rozmowy bo nie wie czy może się odezwać

Albo:
Przemek ogląda batoniki -> najpewniej jest głodny -> nakarmić

To by mogło działać tak, że każdemu z nas robiono by test co kilka lat i dostawalibyśmy instrukcję do danego typu.
Gorzej jak ktoś by nie pasował do typowej grupy... wtedy albo tak jak w Divergent trzeba by było takiego kogoś odstrzelić ;-) [raczej zły pomysł], albo zesztukować instrukcję obsługi z kilku innych ;-)

W Dolnie Krzemowej jest teraz moda na to, żeby managerowie/team leadzi pisali instrukcję obsługi siebie dla teamów.
Dzięki temu nowi pracownicy wiedzieliby czego się od nich oczekuje i jak osiągnąć to co chcą.

Taka osobista instrukcja mogłaby mieć kilka "kręgów".
Na najbardziej zewnętrznym byłaby instrukcja dla interfejsu publicznego ;-)
Na drugim od zewnątrz dla znajomych, później przyjaciół i tak dalej, ta na ringu 0 jak w CPU byłaby dla samego zainteresowanego ;-)

A, co pomarzyć można ;-)


Podobne postybeta
Okrutniki ;-)
"Zostaw, zostaw. Tamtego świata się nie da uratować." - czyli syndrom Maksa
Kody źródłowe JPC - emulatora x86 w Java'ie
Postęp
Google Friend Connect - pierwszy "test" ;-)

Wheel emotion hacking ;-) [pomysł ;-)]

Istnieje coś takiego jak Wheel of Emotions, stworzone przez Roberta Plutchika.
Teoria zakłada, że istnieją 4 diady emocji i że jednocześnie z danej diady możemy odczuwać tylko jedną emocję (przynajmniej w kierunku jednej rzeczy, zjawiska czy osoby).
Do tego, że poszczególne emocje w połączeniu (z 2 różnych diad) tworzą nowe emocje.

Nie wiem czy Plutchik to badał, ale wydaje mi się, że między "sąsiednimi" emocjami można spróbować się świadomie przesuwać.
Skoro znudzenie wraz z irytacją tworzą pogardę, to jeśli ze znudzenia chcemy przejść do radości to można próbować w sobie wzbudzić pogardę dla źródła nudy, z czego może się zrobić irytacja lub gniew, które w połączeniu z oczekiwaniem czy zainteresowaniem mogą stać się agresją, która może stać się już samym oczekiwaniem czy zainteresowaniem, a stąd już krok do optymizmu (czyli połączenia oczekiwania/zainteresowania z radością).

Zastanawiam się czy dałoby się zrobić apkę na komórkę, która mogłaby próbować pomagać w hackowaniu emocji używając właśnie koło emocji ;-)

Wyobrażam sobie to tak, że wybieramy, że jest nam np. smutno bo*, i chcemy czuć radość.
I teraz apka mogłaby zacząć zadawać pytania, których celem byłoby wywołanie kolejnych emocji w drodze do celu.

Idea już jest, ale ciągle mam wątpliwości czy takie coś udałoby się zbudować ;-)



* - to jest właśnie trudność, bo my możemy wiedzieć co jest źródłem, ale jak to przerobić na coś bardziej komputerowego żeby móc np. zadawać pytania by prowadzić do celu?


Podobne postybeta
Dieta pączkowa.... to zły pomysł ;-)
Klauzula samoluba?
Web 2.0, czyżby opowieść o tym jak oddaliśmy Internet idiotom?
Kino, a w nim Harry Potter i Książę Półkrwi ;-)
Pomysł antypiracki ;-)

środa, lipca 17, 2019

Chcę do Ameryki ;-)

No nie jest dobrze ;-)
Powoli zbliżam się do najdłuższego czasu w mojej obecnej firmie bez wyjazdu do USA...
To już 208 dni....
Jeśli dobrze liczę to 15 sierpnia 2019 będzie dzień w którym obecna moja przerwa w bytności w USA zrówna się z najdłuższą....
A po 16 sierpnia to już będzie najdłuższa przerwa....

Uważam, że to co najmniej niepokojące.
Do tej pory ponad 18% czasu pracy w firmie spędziłem w USA, a teraz każdego dnia tych procentów ubywa!

Szczerze rozsmakowałem w USA ;-)
Podoba mi się tam. Nie jest idealnie, ale nigdzie nie jest.
Kalifornijska pogoda jest genialna.
Niebo bez chmur jest genialne.

Tak, to, że trzeba mieć samochód genialne nie jest, tłok w SF też nie jest genialny.
Ale zaczyna mi tego brakować ;-)


Podobne postybeta
[Wikipedia fun facts] Coraz więcej stacji kosmicznych
Gdzie by się tu przenieść...
AST w akcji - zamieniamy źrodło w Java'ie w "rysunek" ;-)
Zaburzenie "pola przyczynowości" :-)
[Updated] Największe zagadki wszechświata - imieniny, kto ustalił, że taka Grażyna ma imieniny 1 kwietnia?

wtorek, lipca 16, 2019

Zaćmienie Księżyca :-)

Byłem przed chwilą oglądać zaćmienie Księżyca.
Wziąłem lornetkę, choć obawiałem się, że nie będzie to zbyt spektakularny widok.
W końcu nie będzie terminatora (który wygląda genialnie, jak dostrzeże się szczyty "gór" które są oświetlone, a ich doły są ciemne)... ale jednak wygląda ciekawie taki księżyc.
Widać, że tam jest ;-)

Tak się zastanawiałem i pierwsze zaćmienie Księżyca oglądałem chyba mając jakieś 7-8 lat, zimno było.
Drugie na zimowisku i zamiast na zebraniu, na które miałem iść (nie wiem, czy byłem "grupowym" czy coś w ten deseń) siedziałem w oknie i oglądałem :-)
Z takich pamiętnych pamiętam jeszcze jedno ze stycznia albo lutego tamtego roku, jak siedziałem w Stanach, ale było mało widowiskowe.

Fajnie się składa, że jest w 50 rocznicę startu Apollo 11 :-)

Chociaż nie do końca wierzę w to, że ludzie wrócą na Księżyc już w 2024 roku, niby 5 lat to masa czasu, ale nie wiem... chociaż mam nadzieję :-)


Podobne postybeta
Nie ma Księżyca :-(
To jednak było zaćmienie ;-)
Jowisz, mglawica i Księżyc
Chrome2ChromeV2, TabCast czy może TabHermes albo Tabcury? ;-)
Motocosie

poniedziałek, lipca 15, 2019

Nie jestem pewien czy zadania koderskie/algorytmiczne są dobrym elementem rekrutacji

Ostatnio robiłem jakieś testy koderskie, tzn. robię je dość często tak sam dla siebie, tu mnie o to poproszono.
Sam wybierałem testy, którymi my ludzi testujemy i zaczynam mieć wątpliwości. Czy takie testy są dobrym narzędziem rekrutacyjnym.
Tego się można nauczyć, choć fakt, niektórzy się z tym rodzą, inni nie ;-)

Ale nie jestem pewien do końca co to sprawdza. Czy X umie programować?
To wtedy pytanie jak wysoko ustawimy poprzeczkę.

Niby idea pierwszego etapu rekrutacji jest taka by odfiltrować tych, którzy się nie nadają nawet na phone interview. Ale nie wiem, w takim przypadku sam wybierałem zbyt ostre zadania.

Do tego ja się zawsze przy takich testach denerwuję.
Znam ludzi, którzy panikują przed rozmową telefoniczną czy twarzą w twarz, ja panikuję przed takim testem.

To pewnie przez osobowość, ale wolę polec przed ludźmi (moje defaultowe założenie w jakiejkolwiek rekrutacji gdziekolwiek, nawet jak tak trochę grzecznościowo się rekrutuję ;-)) niż przed maszyną.

Z tego co wiem niektóre firmy zaczynają też rezygnować z takich testów, bo podobno nie widziały korelacji między ich wynikami, a późniejszą rekrutacją.

Chyba sam jestem bardziej zwolennikiem dawania ludziom prostego problemu, gdzie algorytm jest prosty jak konstrukcja cepa i wystarczy niemal użyć wbudowanych struktur danych i sprawdzić jak tego użyją.


Podobne postybeta
70000 km za mną
Dziś programista ma być teoretycznym algorytmistą, a praktycznym kleistą ;-)
Nie rozumiem, czyli czemu niektórzy ludzie pytają jak przejść z Windows 7 na XP?
Znajomości
Jak wywołałem kryzys....

niedziela, lipca 07, 2019

Szybki hack dla podejmowania decyzji

Każdy znalazł się w sytuacji gdy nie do końca wiedział co zrobić.
Pojawiła się jakaś okazja i trzeba podjąć decyzję, ale nie do końca wiadomo jaką...

Zaprosić kogoś na randkę? Zmienić pracę? Pojechać na urlop do X? Kupić Y?

Odpowiedź jest prosta ;-)

Losowanie :-)

Co najlepsze wcale nie musisz robić tego co każe Ci los. Sprawdź jak Ci się ta odpowiedź podoba.
Jeśli Ci się podoba to to zrób, jeśli Ci się nie podoba to prawdopodobnie nie chcesz jednak tego zrobić.

Działa to bo gdzieś w środku masz kawałek Ciebie który ma zdanie w danej sprawie i jak los wskaże coś przeciwnego to ten kawałek zacznie głośno krzyczeć.

OK, a co w sytuacji gdy wynik losowania jest Ci obojętny? Może czujesz lekką radość, albo lekki niepokój, ale bez niczego silnego?

To wtedy zadaj sobie pytanie "co najgorszego może się zdarzyć gdy to zrobię?" i dokładnie odwrotne "co najgorszego może się zdarzyć jeśli tego nie zrobię".
To też powinno pomóc.

Jeśli nadal obie strony są tak samo równe... to podejmij decyzję, która będzie wymagała najmniejszego wysiłku.

Nadal nic? Obie możliwości wymagają tyle samo wysiłku?

Poczekaj, albo losuj jeszcze raz i zrób to co wskazał los ;-)


Podobne postybeta
Life hacki z obrazka ;-)
"Promocja homoseksualizmu" co to niby ma być?
O wyższości podejmowania decyzji partiami zamiast per sztuka ;-)
Myjnia
Comfort zone to zło!

sobota, czerwca 22, 2019

Java 8 + lambdy = wolno ;-)

Używamy w pracy Codility to testowania kandydatów, używamy go też czasem w ramach konkursów na różnych konferencjach.
I okazuje się, że Codility niechcący kara ludzi, którzy znają nowszą Java'ę ;-)

Jeśli ktoś operuje na kolekcji przy pomocy pętli to może dostać ocenioną złożoność O(n), jeśli użyje strumieni i lambd to może dostać ocenioną złożoność O(n*log(n)).

A wszystko przez to, że w Java 8 lambdy nie są najszybsze.

Widać to świetnie gdy używa się computeIfAbsent, zamiast getOrDefault w mapach.
Bo kod z computeIfAbsent wykonuje się zwykle wolniej, mimo tego, że getOrDefault tworzy nowy obiekt za każdym razem gdy jest wołane.

A wszystko przez to, że lambda musi być najpierw zbudowana ;-) i po to kompilator dodaje wywołanie metody LambdaMetafactory.metafactory, które jest wołane przy pomocy invokedynamic.

A w Java 8 wywołanie tego trwa wieki....
Coś co wykonuje się w mniej niż 10 ms, może się wykonywać nawet 80 ms.

Na szczęście w Java 11 wydaje się, że wszystko jest szybsze i nie widać znaczącej różnicy w wykonaniu kodu z lambdami i bez.


Podobne postybeta
Zaczynam woleć Map nad Map ;-)
Sztuczki tropiciela błędów - breakpoint na sterydach ;-)
No i z lambdy nici
Wyniki do Sejmu na podstawie wyników do PE
Java 32 bit vs. Java 64 bit

czwartek, czerwca 13, 2019

Upał promuje mniejszych?

Kiedyś tłumaczyłem tutaj czemu małe pieski noszą w zimę ubranka.

Przypomniało mi się to i tak się zacząłem zastanawiać czy rozmiary mają wpływ na radzenie sobie z upałem....

Przyjmijmy, że mamy dwie osoby, jedną o wzroście 184 cm, drugą 161 cm.
Przyjmijmy, że mają obie te osoby BMI równe 22.5.

Czyli pierwsza waży 76.2 kg, druga 58.3 kg.

Dla ułatwienia przyjmijmy, że każda z tych osób ma gęstość 985 kg/m3.

I zamodelujmy obie osoby jako cylindry ;-)

Pierwsza osoba ma promień 11.6 cm, druga 10.8 cm.

Obie mają temperaturę 36.6 stopni C.

Powierzchnia 1 osoby to 1.43 m2, drugiej to 1.16 m2. To daje strumień całkowity mocy z pierwszej osoby 61.4 W, a z drugiej 50.2 W (strumień wychodzący-strumień wchodzący, w końcu powietrze ma 30 stopni C).

Teraz policzmy ile, gdyby nie utrzymywały temperatury, ile by im ubywało... przyjmiemy ciepło właściwe dla człowieka równe 3.49 kJ/(kg*K).

Mamy w końcu, że w ciągu sekundy mniejsza osoba straciłaby o 1.6 stotysięcznej stopnia więcej od osoby większej.

Znaczy to, że małym lepiej w upale, szybciej się chłodzą.


Podobne postybeta
Czemu małe pieski noszą ubranka, a duże psy nie?
A mnie tam jednak prosty model klimatyczny przekonuje do twierdzenia, że mamy wpływ na zmiany klimatyczne i że globalne ocieplenie może być faktem
Kupić bilet czy nie kupić? Oto jest pytanie....
I tak żle i tak niedobrze
Pokrowiec - zdeużytecznik ;-)