Sztuczna inteligencja
Etyka w AI – równoważąc innowacyjność i odpowiedzialność w IT
W nowoczesnym miejscu pracy pracownicy szukają czegoś ponad relacje czysto biznesowe. Chcą się czuć kimś więcej niż tylko zasobem i siłą roboczą. A od postawy lidera w dużej mierze zależy, jak pracownicy będą postrzegać środowisko, w którym pracują. Inwestycja w rozwój ludzi w firmie przynosi efekt w postaci jej sukcesu jako całości.
Ludzie to najcenniejszy kapitał każdej firmy. Bez jego wzmacniania i doskonalenia nie ma rozwoju organizacji. Dlatego w celach strategicznych i planach merytorycznych firm powinno znaleźć się miejsce na stałe dbanie o rozwój pracowników.
Każdy rozwój podnosi samoocenę. Ludzie wierzą wówczas w swoje kompetencje i chętniej z nich korzystają, podejmują wyzwania i dzielą się doświadczeniem z innymi. Dbanie o rozwój pracowników:
O tym, jak dbać o wartość pracownika w firmie, więcej w naszym artykule pt. Jak zatrzymać w firmie wartościowego pracownika?.
Sposobem na planowanie rozwoju w firmie może być przygotowanie indywidualnego planu rozwoju zawodowego. To proces, który powinien być przeprowadzony wspólnie przez pracownika i lidera, a składa się z 3 kroków:
Posiadając plany rozwojowe wszystkich osób w zespole, warto spojrzeć na nie pod kątem potrzeb całej organizacji i zobaczyć, czy są jakieś wspólne obszary dla wszystkich.
Nie ma znaczenia, ile pieniędzy firma zainwestuje w rozwój, jeśli wybierze niewłaściwą formę. Wybór ten jest ważną decyzją, warto więc konsultować plany w tym zakresie z samymi pracownikami, bo to oni są beneficjentami programu rozwoju. Należą do nich np.:
W celu systematycznego dbania o rozwój swoich pracowników nasza firma stworzyła tzw. Laboratorium Wiedzy i Rozwoju. W jego ramach powołała do życia cykl spotkań pod nazwą eLWiRa (przybierając tym samym formę wdzięcznego imienia żeńskiego).
Ma ono na celu wymianę wiedzy i doświadczenia między pracownikami. Poszczególne spotkania mają najczęściej charakter wykładów, ale również praktycznych laboratoriów. Obecnie odbywają się w formie zdalnej, coraz bardziej jednak angażują uczestników i pokazują, jak omawiane kwestie wyglądają w praktyce. Wszyscy pracownicy spotykają się online na około dwie godziny w piątki. Wówczas jeden z pracowników prezentuje jakiś wybrany temat związany z zakresem jego pracy.
Im lepsi są nasi ludzie tym, co robią na co dzień, tym więcej zyskuje cała organizacja
Mimo że spotkania te są na ogół jednostronnymi wystąpieniami, często przeradzają się w żywe dyskusje, które trwają jeszcze po zakończeniu prezentacji. Z radością zauważamy u naszych pracowników dużą otwartość na zdobywanie wiedzy i nowych umiejętności czy dzielenie się swoim doświadczeniem.
Takie spotkania są integrujące i pozwalają na ciekawe dyskusje i kontakt ze współpracownikami – ogólnie zawsze staraliśmy się, żeby w jeden dzień w tygodniu była okazja na pracę nad projektami innymi niż te dla klientów. Takie wewnętrzne inicjatywy dają pracownikom możliwość rozwoju w wybranym przez siebie kierunku, a nie narzuconym przez potrzeby projektu tworzonego dla klienta – mówi Julia Wasilewska, Marketing & Event Manager w firmie WEBSENSA.
Inicjatywa takich spotkań wyszła we wrześniu 2019 roku od Jana Twardowskiego – Software Architekta w naszej firmie, przy wsparciu i akceptacji jej CEO – Michała Paluśkiewicza.
Jan Twardowski tak wyjaśnia motywy swojego pomysłu:
Początkowo miała to być forma poszerzania wiedzy w ramach małego zespołu projektowego. Jednak pomysł przerodził się w coś szerszego, ogólnofirmowego. Doszedłem do wniosku, że nie ma sensu ograniczać tego tylko do wybranej grupy osób skoro prawie każdy w firmie może na tym skorzystać.
Zaczęliśmy od budowania fundamentów, czyli doskonalenia podstawowych umiejętności, których oczekujemy od ludzi, z którymi współpracujemy. Dalej pojawiły się bardziej zaawansowane tematy związane z konkretnymi specjalizacjami, architekturą systemów albo po prostu w jakiś sposób związane z naszą branżą.
Spotkania te mają na celu podnoszenie kompetencji, jak również budowanie kultury dzielenia się wiedzą. Z punktu widzenia słuchacza wydaje się, że jest to atrakcyjna forma rozwijania własnej wiedzy i poznawania nowych obszarów. Niesie ze sobą także sporo korzyści dla osoby, która prowadzi dane spotkanie.
Przygotowanie wykładu/laboratorium wymaga dogłębnej znajomości tematu i często jest najlepszą formą usystematyzowania wiedzy na dany temat. A regularność tego rodzaju spotkań szerzy wśród pracowników naszej firmy kulturę ciągłego uczenia się i dzielenia się wiedzą z innymi, na której twórcom pomysłu bardzo zależy. Jego animator, Jan Twardowski, dodaje: Zauważam zadowolenie osób, które w tym uczestniczą i ich otwieranie się na zdobywanie nowych umiejętności. Bardzo cieszy mnie też zaangażowanie wielu osób w przygotowywanie spotkań, bo to pokazuje otwartość do dzielenia się wiedzą.
Poniżej podsumowaliśmy tematy naszych dotychczasowych wykładów i warsztatów – od najnowszych do najstarszych.
Kuba po raz kolejny zaprezentował nam swoje flagowe wystąpienie. Opowiedział o tym, w jaki sposób można szybko i efektywnie korzystać ze swojego środowiska pracy, zaczynając od wykorzystania skrótów klawiszowych, przechodząc przez wybór sprzętu i oprogramowania, aż do sprawnego programowania w Vimie.
Istotą prezentacji Szymona było ukazanie podstawowych zasad rządzących dostępnością w sieci. Autor wyjaśnił nam, jak prezentować informacje i elementy interfejsu użytkownika w produktach cyfrowych, by umożliwiały odbiór przez osoby z różnymi niepełnosprawnościami i były dla nich zrozumiałe. Szymon w szczegółowy sposób poruszył wiele aspektów związanych z tematem Web Content Accessibility i zwrócił uwagę na jego rosnące znaczenie.
Ta prezentacja zbiorowa poruszała główne kwestie związane z realizowanym przez nas projektem DCU (Deep Content Understanding). Zespół przedstawił składające się na niego elementy architektoniczne oraz te z obszaru machine learning. Opisali, w jaki sposób stworzony przez nas system pomaga np. w rozpoznawaniu twarzy czy wyszukiwaniu podobnych obrazów na podstawie konkretnych cech.
Krzysiek przybliżył nam 12 zasad Agile i dokonał opisu na tle innych metodyk tradycyjnych i zwinnych (Agile vs Waterfall, Scrum, Kanban, Scrumban). Porównał ich wady i zalety oraz wytłumaczył, w jakiego rodzaju projektach sprawdzą się najlepiej poszczególne z nich.
Podczas spotkania Rafał przedstawił wzorzec projektowy kolejki oraz jego typowe zastosowania w systemach informatycznych (np. event driven programming, asynchroniczna komunikacja między wątkami, batching). Następnie zaprezentował architekturę środowiska RabbitMQ oraz zalety i wady zastosowania kolejek w praktyce.
Ta prezentacja zbiorowa miała na celu wprowadzenie do tematyki sztucznej inteligencji i uczenia maszynowego. Nasz firmowy zespół data science rozpoczął od przedstawienia rozwoju dziedziny sztucznej inteligencji, przechodząc do obszarów zastosowania uczenia maszynowego, aż do sposobu działania sieci neuronowych. Był to wartościowy wstęp do tematyki machine learning dla tych z nas, którzy na co dzień nie pracują w projektach opartych na ML.
Alicja z perspektywy grafika poruszyła kwestię wizualnego odbioru produktów cyfrowych. Omówiła zasady działania ludzkiego mózgu oraz zmysłu wzroku, a następnie przedstawiła dobre praktyki tworzenia materiałów na potrzeby komunikacji wizualnej w świecie cyfrowym.
Bartek wprowadził nas w tematykę Go Modules. Przedstawił sposoby zarządzania i dystrybucji kodu źródłowego w Go oraz czym różnią się pakiety, moduły i repozytoria. Omówił wersje Go wspierające korzystanie z modułów. Objaśnił, jak stworzyć i uruchomić moduł w Go oraz jak powinna wyglądać jego prawidłowa struktura.
Damian ukazał nowe funkcje Vue 3 poprzez m.in. porównanie z Vue 2. Spośród najważniejszych nowości wymienił: większą szybkość, wielkość, reaktywność, łatwość w rozwoju czy przyjazność dla platform natywnych.
Autor prezentacji opisał nam swoje doświadczenia z pisania kodu w Go na podstawie rocznego doświadczenia pracy nad jednym z naszych projektów. Wyróżnił takie tematy, jak: dependency injection + komponenty, testowanie, monitoring, fallback, dwa deploye z jednego kodu, porównanie z Pythonem, oraz code review.
Krzysiek zawarł w prezentacji część teoretyczną, w której wstępnie wyjaśnił zagadnienie asynchroniczności i równoległości oraz przedstawił koncept wątków i procesów w systemach operacyjnych. Następnie omówił GIL w Pythonie, porównał biblioteki threading, multiprocessing, asyncio; ostatnią szczegółowo (Event Loop, async/await, Tasks/Futures/Couritines). Część warsztatowa dotyczyła tworzenia loopów perkusyjnych za pomocą asyncio.
Temat obejmuje głównie zagadnienie bugów i ich rodzajów. Rafał wymienił wśród nich literówki, błędy składniowe (niezgodność z gramatyką języka), logiczne (błędna implementacja algorytmu), funkcjonalne (niezgodność z wymaganiami), “heisenbugi” (trudne do replikacji błędy, głównie przy przetwarzaniu wielowątkowym); omówił ponadto: defensive programming, proces debugowania i dostępne narzędzia.
Bartek przedstawił nam zasady działania bazy ClickHouse pokazując, jak efektywnie z niej korzystać. Omówił, jak przetwarzać informacje z wykorzystaniem wielowymiarowej bazy danych oraz generować raporty analityczne w czasie rzeczywistym oraz za pomocą zapytań SQL. Wspomniał też jak radzić sobie z błędnymi danymi.
Prezentacja przybliżyła zagadnienie algorytmów i ich wykorzystania w programowaniu. Marek podszedł do tematu od praktycznej strony i zadał uczestnikom kilka zadań algorytmicznych dostępnych na platformie LeetCode (służącej nauce i doskonaleniu umiejętności kodowania). Warsztaty dały nam okazję do poćwiczenia na problemach algorytmicznych i strukturach danych.
Celem prezentacji Janka było wytłumaczenie, czym jest frontend, ukazując go jako obszar pomiędzy użytkownikiem a backendem. Wymienił elementy składające się na frontend (np. JQuery, HTML, CSS, UX, UI, Responsive WDA, MDV, HIG, PHP). Omówił krótko budowę wyszukiwarek internetowych oraz opisał narzędzia i sposoby na zbudowanie własnej, funkcjonalnej aplikacji.
Rafał zaprezentował tajniki backendu w odniesieniu do aplikacji webowych. Omówił szerzej zagadnienie komponentów typowych dla aplikacji backendowej (aplikacja, serwer, bazy danych, kolejki, storage), możliwości komunikacji (CRUD, REST, synchroniczna i asynchroniczna) oraz najczęściej spotykane formaty wymiany danych (HTTP, WSDL, gRPC).
Janek podsumował dotychczasowe spotkania od początku istnienia eLWiRy – zdobytą wiedzę w zakresie m.in. sprawnego korzystania z systemu i linii poleceń, działania Gita i Dockera, czy własnego środowiska pracy. Następnie zaproponował wykonanie (głównie indywidualnie) miniprojektów, które pozwoliły uczestnikom sprawdzić w praktyce, czy tematy okazały się dla nich jasne i zrozumiałe.
Autor prezentacji – Janek, przekonuje, że zrozumienie podstaw Dockera pozwala na korzystanie z gotowych obrazów lub tworzenie własnych. W ramach warsztatów zaproponował wykonanie trzech ćwiczeń z wykorzystaniem Dockera. Były to: 1. wyświetlanie daty; 2. serwowanie plików; 3. korzystanie z Registry.
Celem prezentacji Janka było pokazanie bardziej praktycznych aspektów używania Dockera. Podkreślił że znajomość Dockera jest bardzo ważna w naszej codziennej pracy. Opisał takie elementy, jak stawianie bazy danych, tworzenie aplikacji w django i podłączanie się do nowej bazy danych. Na koniec zachęcił uczestników do zgłębiania dokumentacji we własnym zakresie.
Kilkoro z naszych pracowników (Bartek Wiśniewski, Jan Siemiński, Marek Wawreniuk, Rafał Klusek, Jakub Szumski i Kateryna Rozanova) podzieliło się swoim doświadczeniem, związanym z organizacją własnego środowisko pracy i narzędziami, z jakich korzystają, by je usprawnić. Opowiedzieli m.in. o tym, jakich używają skrótów klawiszowych, o przydatnych w ich pracy narzędziach, sposobach organizacji okien czy uruchamiania kodu.
Prezentacja Janka miała na celu wytłumaczenie sposobu działania Gita i naszego podejścia do używania go w projektach. Poruszył on takie tematy, jak: rozproszony system kontroli wersji (ang. DVCS), staging area, świadome commitowanie, czy elementy składające się na właściwy workflow.
Prezentacja Janka wprowadziła nas w zagadnienie korzystania z terminala. Janek wyróżnił elementy składające się na sprawne poruszanie się po nim: przeglądanie, pliki, symbole, systemy, edytory, SSH, zmienne środowiskowe, następnie omówił ścieżkę do jego uruchomienia i dał uczestnikom zadanie praktyczne, aby sprawdzili zdobytą wiedzę.
Praca freelancera wymaga dobrej organizacji, ale istnieją narzędzia wspierające w zarządzaniu czasem. Przeczytaj o tych najbardziej przydatnych!
Niemal 90% osób jest niezadowolonych ze swojej pracy. Jak dołączyć do pozostałych 10%? Przeczytaj, jakie cechy powinna mieć Twoja wymarzona praca!