If you're seeing this message, it means we're having trouble loading external resources on our website.

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Bill Mills, Fizyk i programista interdyscyplinarny

Zdjęcie Billa Millsa
Cześć, jestem Bill Mills!

Nad czym pracujesz?

Obecnie moja praca polega na doskonaleniu sposobów mogących umożliwić nauce szybszy postęp poprzez odpowiednie oprogramowanie, interfejsy użytkownika oraz dostosowywanie się do wymagań użytkownika komputerów. Pracuję dla TRIUMF, kanadyjskiego krajowego laboratorium fizyki jądrowej, jako specjalista ds. technologii internetowych i jako kierownik projektu oprogramowania dla eksperymentu GRIFFIN. GRIFFIN to najnowocześniejszy spektrometr promieniowania gamma, zaprojektowany do rejestrowania danych o cząstkach radioaktywnych w sposób bardziej wydajny i doskonalszy niż dotychczas stosowane narzędzie. Dzięki niemu możemy uzyskać bardziej szczegółowy obraz jądra atomu.
W GRIFFIN moja praca opiera się na unowocześnianiu sposobów, w jaki naukowcy wchodzą w interakcję ze swoimi eksperymentami. Poprzednie eksperymenty w mojej dziedzinie opierały się na podstawowych narzędziach wyświetlających, które informowały naukowców co w danej chwili działo się z ich eksperymentem. Wyobraźcie sobie długie listy liczb ułożonych w tabele wsadzone w kolejne tabele, porozrzucanych w wielu różnych miejscach. Tego typu metody były dobre kilkadziesiąt lat temu, gdy doświadczenia dotyczyły tylko względnie małej liczby prostych urządzeń - ale współczesne eksperymenty potrafią mieć tysiące czujników i strumieni danych (sam GRIFFIN produkuje 200 TB danych co tydzień), a do tego olbrzymią ilość infrastruktury wspierającej te urządzenia.
Nasze doświadczenia zbyt się rozrosły i skomplikowały, aby zarządzać nimi za pomocą niezorganizowanych interfejsów i prostego sposobu raportowania. A gdyby tego było mało, różne zespoły naukowe będą chciały korzystać z GRIFFINa - a nie posiadają zasobów, aby uczyć się skomplikowanych interfejsów użytkownika, aby przeprowadzać swoje eksperymenty. Z tego powodu GRIFFIN musi mieć interfejs który jest bardzo intuicyjny i tak łatwy w użyciu, jak to tylko możliwe, nie tracąc jednocześnie na szczegółowości oraz mocy; z tego powodu przez ostatni rok starałem się wykorzystać wszystkie ciekawe pomysły i technologie pozyskane od środowiska JavaScript aby stworzyć interfejs użytkownika który pozwoli naukowcom wziąć się za swoje badania gdy tylko znajdą się w naszym laboratorium.
Wersja robocza panelu sterowania który zbudowałem dla GRIFFIN dla pierwszego testu online detektora SPICE.
Oparty na technologii webowej kalkulator wydajności dla GRIFFINa oraz siostrzanych czujników, które zastąpiły wcześniejsze obliczenia, robione metodą kartki i ołówka(!).
Oprócz mojej pracy przy interfejsach użytkownika, staram się także pomóc naukowcom zmodernizować ich techniki pisania kodu, zachęcając ich do używania narzędzi wykorzystywanych przez prawdziwych programistów. Informatyka stała się tak ważna dla naszej metodologii, że aktualnie nie można traktować poważnie fizyka, który nie pisze dużo kodu - ale wciąż środowiska fizyków muszą nadgonić kwestie dobrych praktyk i technik pracy za pomocą komputerów. Większość fizyków uczy się obsługi programów próbując różnych rzeczy, aż znajdą coś co (do pewnego stopnia) działa. Rzeczy takie jak kontrola wersji oraz współpraca przy otwartym oprogramowaniu zostały stworzone przez programistów by usprawnić proces rozwoju: jeżeli naukowcy mogliby opanować te taktyki, nie tylko moglibyśmy znacząco przyspieszyć nasze metody, ale dodatkowo udostępnić je i odtwarzać. Laboratoria badające wszystkie dziedziny potrzebują ludzi, którzy przyniosą z zewnątrz swoje świeże pomysły, tak aby techniki naukowe mogły rozwijać się i ewoluować. I to właśnie staram się osiągnąć balansując między fizyką a informatyką.

Jak to się stało, że umiesz programować?

Zacząłem moje życie jako programista jako student ostatniego roku pracując nad eksperymentem ATLAS przy Wielkim Zderzaczu Hadronów w CERN - to była katastrofa! Miałem dokładnie jeden kurs z programowania na pierwszym stopniu studiów - który oblałem. Nie wiedziałem nic na temat programowania, za to byłem przekonany, ze nic w tej kwestii nie umiem - po czym nagle podczas doktoratu pracowałem jako programista na pełen etat. Przez pięć lat męczyłem się z napisaniem wyszukanej biblioteki do badań, która była podstawą mojej pracy doktoranckiej - ale tak na prawdę to nie wtedy nauczyłem się programować. To, z czego zdałem sobie sprawę podczas studiów doktoranckich, to jak bardzo nauka była zacofana w kwestii dobrego zarządzania sprzętem komputerowym - oraz jak wielki krok naprzód moglibyśmy zrobić, gdybyśmy nauczyli się wykorzystywać ten sprzęt poprawnie.
Dopiero po doktoracie nauczyłem się programować. Jak w przypadku wielu nauczycielu akademickich, pracy powiązanej z nauką było mało po zdobyciu tytułu. Gdy szukałem pracy, mój przyjaciel, znany programista z sceny web-developerów w Vancouver zasugerował, żebym zapoznał się z JavaScriptem, po czym zaczął pojawiać się na lokalnych spotkaniach programistów odbywających się w mieście. To był genialny pomysł, gdyż jak się okazało Vancouver miało (i wciąż ma) bardzo żywa scenę start-upów programistycznych, która powitała mnie z otwartymi ramionami, wspierając mnie następnie przy nauce podstaw projektowania i tworzenia aplikacji webowych. Poprzez współpracę z ludźmi z Vancouver zdałem sobie sprawę, że istnieje wiele naprawdę różnorodnych środowisk nie tylko powiązanych z informatyką, ale ogółem z techniką. To właśnie tego wspaniałego połączenia tworzenia z pracą ludzką brakowało w informatyce wykorzystywanej naukowo. Od tego czasu staram się połączyć te dwa światy ze sobą.

Co robisz, gdy nie pracujesz?

Kiedy nie zajmuję się programowaniem, zwykle uczę programowania! Jestem mentorem w programie edukacyjnym „Ladies Learning Code”, który pomaga przełamać bariery kobietom zainteresowanym nauką programowania. Ponadto bardzo mnie cieszy bliska perspektywa uzyskania certyfikatu pozwalającego nauczać w Software Carpentry, czyli w ramach cyklu warsztatów nauki programowania dla naukowców.
Obecnie tworzę również bezpłatne narzędzie, umożliwiające skomunikowanie się programistów-wolontariuszy z naukowcami poszukującymi mentora w zakresie programowania. Badam również możliwości przeniesienia kultury makerów do laboratorium, zaznajamiając moich kolegów zajmujących ekologią i rolnictwem z Arduino i innymi szeroko dostępnymi opcjami rozbudowy sprzętowej pozwalającymi na unowocześnianie ich eksperymentów.
Staram się także wybierać na tyle konferencji, jak to tylko możliwe. Rozmawiam na nich z programistami na temat współpracy w celu uczynienia badań naukowych szybszych i lepszych - oto ja na LXJS w Lisbonie, Portugalii w 2013 z genialną Angeliną Fabbro, mówiącą na temat współpracy naukowców z programistami;
Filmy wideo na Khan Academy
LXJS 2013 - Bill Mills and Angelina Fabbro - JavaScript for ScienceZobacz transkrypcję filmu
Gdy jednak naprawdę jestem z dala od komputera, staram się znaleźć czas aby udzielać się w grupach zajmujących się środowiskiem z mojego otoczenia; jestem wielkim zwolennikiem idei poprawienia naszych relacji z naturą, a przez pewien czas tworzyłem materiały edukacyjne i przeprowadzałem badania dla SPEC w Vancouver.

Jaka jest twoja porada dla nowych programistów?

Nigdy nie zapominaj, że nie istnieje coś takiego jak umiejętność wrodzona. Łatwo jest patrząc na świetnego programistę czuć się gorszym, tak jakbyś sam nie był w stanie nigdy osiągnąć jego poziomu lub zostać ‘prawdziwym’ programistą. Miałem okazję spotkać niektórych z najlepszych programistów współczesnych technologii webowych i wszyscy oni czuli to samo - na początku wydawało im się, że nic nie potrafią a jedynie udają. Żaden z nich nie myślał też, że to co robią jest łatwe, pomimo tego jaki to teraz dla nich banał. Jeżeli napisałeś chociaż jedną linię kodu, jesteś prawdziwym programistą - a jeśli będziesz pisał i uczył się coraz więcej, pewnego dnia sam też staniesz się mistrzem.

Chcesz dołączyć do dyskusji?

Na razie brak głosów w dyskusji
Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.