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

Ha webszűrőt használsz, győződj meg róla, hogy a *.kastatic.org és a *.kasandbox.org nincsenek blokkolva.

Fő tartalom

Bill Mills, fizikus és interdiszciplináris programozó

Bill Mills fényképe
Szia, Bill Mills vagyok!

Min dolgozol?

Mostanában azon, hogyan tehetné a tudományt vonzóbbá és fejlődését gyorsabbá a jó programozási gyakorlat, felhasználói interfész és felhasználói élmény. A kanadai nemzeti atomfizikai laboratóriumban, a TRIUMF-ban dolgozom a GRIFFIN kísérletben a webes technológia specialistájaként, ahol projektvezető vagyok. A GRIFFIN élvonalbeli új gammasugár spektrométer, ami radioaktív részecskék adatgyűjtését végzi a korábbi berendezéseknél sokkal hatékonyabban és nagyobb gyakorisággal. Mindez az atommag eddiginél sokkal részletesebb képének megalkotását teszi lehetővé.
A GRIFFIN-nél munkám lényege modernizálni a kutatók kísérleteikkel való interakcióját. Az én területemen azelőtt a kutatók az épp zajló kísérleteik aktuális állapotáról kezdetleges megjelenítéssel kapták az adatokat; különböző helyeken szétszórt táblázatokba rendezett hosszú számsorokat képzelj el, melyekbe további táblázatok vannak beágyazva. Ez a több évtizeddel korábbi helyzetben még megfelelt, mert ekkor még viszonylag kevés és egyszerű műszert használtak a kísérletekben, de a modern kísérletekben több ezer érzékelő és adatfolyam is előfordulhat (csak a GRIFFIN-en belül 200TB adat keletkezik hetente), és ehhez hatalmas támogató infrastruktúra épült ki.
Kísérleteink túl naggyá és túl bonyolulttá váltak ahhoz, hogy rosszul szervezett interfészeken és leegyszerűsített jelentéseken keresztül lehessen vezérelni őket. Ráadásul rendszeresen különböző kutatócsoportok repülnek ide, hogy a GRIFFIN-t használják – nincs arra szabad kapacitásuk, hogy a kísérletek kivitelezése mellett még bonyolult felhasználói felületek kezelését is megtanulják. Ezért a GRIFFIN felhasználói felületének a lehető legkönnyebben használhatónak kell lennie anélkül, hogy ez a részletek vagy a teljesítőképesség rovására menjen. Pontosan e miatt dolgoztam ki az elmúlt évben egy felhasználói interfészt a JavaScript közösség menő ötleteit és technológiáit felhasználva, ami lehetővé teszi a kutatók számára, hogy a laboratóriumba érkezve minél előbb kutatási témájukkal kezdhessenek foglalkozni.
A GRIFFIN SPICE detektorához általam írt eredménykijelző első online tesztje
Detektorhatékonyság-kalkulátor a weben a GRIFFIN-hez és a többi, hozzá hasonló detektorhoz, ami kézzel(!) végzett számításokat helyettesít.
Felhasználói interfészes munkámon túl segítek a kutatóknak abban, hogy felhasználják a szoftverfejlesztők által kidolgozott eszközöket és így modernizálják saját programozási technikájukat. A kutatási folyamatnak a számítástechnika oly mértékben részévé vált, hogy nem lehet ma valaki komoly fizikus anélkül, hogy egy csomó programot ne írna – de a fizikusok egyelőre le vannak maradva az informatikai oktatás és a programozási technológia terén. A legtöbb fizikus úgy tanul meg programozni, hogy addig próbálkozik, amíg nem talál valamit, ami (úgy-ahogy) működik. A verziókövetés és a nyílt forráskódú együttműködés stratégiáját a programozók azért találták ki, hogy megkönnyítsék a fejlesztés folyamatát; ha a kutatók alkalmazni tudnák ezt a stratégiát, akkor nem csak a tudományos kutatási módszereket tehetnénk hatékonyabbá, hanem az egész folyamat is nyitottabbá és reprodukálhatóbbá válna. A kutatólaboratóriumoknak minden területen szükség van olyan emberekre, akik a szokásos területeken kívülről friss ötleteket tudnak behozni, amivel elősegítik a tudományos technológia fejlődését, és pont ez az, amire én törekszem a fizika és az informatika között.

Hogyan tanultál meg programozni?

Posztgraduális diákként kezdődött a programozói karrierem, amikor a CERN-ben az LCH-n folyó ATLAS kísérleten dolgoztam – ami nagy kudarcba fulladt! A diplomám megszerzését megelőzően összesen egy programozási kurzuson vettem részt – amiből megbuktam. Semmit sem tudtam a kódolásról, és meg voltam győződve arról, hogy ez nekem egyáltalán nem megy – és egyszer csak hirtelen a doktori iskola hallgatójaként teljes munkaidőben programokat írtam. Öt év alatt összeeszkábáltam egy bonyolult elemző programcsomagot, mely a disszertációm alapját képezte – de nem ekkor tanultam meg igazán programozni. A doktori iskolában végzett munkám során vált igazán világossá számomra, hogy mennyire elveszett és tanácstalan a tudományos kutatói közösség – már ami a jó programozási kultúra területét illeti, és milyen hatalmas előrelépést eredményezne, ha megtanulnánk jól használni azt.
Igazán a doktori iskola után tanultam meg programozni. A kutatói területre jellemző módon csak elvétve akadt munkalehetőség tudományos témában a doktori elvégzése után. Miközben munkát kerestem, a társam, aki a vancouveri webfejlesztő közösség elismert tagja, azt javasolta, hogy képezzem magam JavaScriptben, és kapcsolódjak be helyi szoftver csoportok összejöveteleibe. Ez remek ötletnek bizonyult, mert Vancouverben élénk szoftver startup élet volt (és van ma is), ahol tárt karokkal fogadtak, és támogattak a webdizájn és -fejlesztés alapjainak elsajátításában. A vancouveri társasággal kiépített kapcsolat során rájöttem, hogy gazdag kultúrája van nemcsak a technológiának, hanem a módszertannak is. Ez a kifinomult szakmaiság az, ami hiányzik a tudományos terület számítástechnikájából, és azóta is azon dolgozom, hogy ezt a két területet összekovácsoljam.

Mit csinálsz, amikor éppen nem programozol?

Amikor nem programozom, akkor valószínűleg éppen programozni tanítok! Mentoráltam a Programozás nőknek oktatási felületen, ami a programozás iránt érdeklődő nők korlátait hivatott lebontani, és nagy megelégedéssel tölt el, hogy nemsokára megszerzek egy képesítést, mely lehetővé teszi, hogy taníthassak a kutatók számára programozást oktató Szoftver Ácsműhely felületen.
Ezzel párhuzamosan egy ingyenes oldalt építek, amely önkéntes fejlesztők és programozási mentort kereső kutatók egymásra találását célozza meg. Keresem annak lehetőségét, hogy behozzam a „csináld magad” mozgalmat a laborba azáltal, hogy segítek az ökológia és a mezőgazdaság területén dolgozó kollégáimnak megismerni az Arduino prototípuskészítést és a kísérletek modernizálását elősegítő nyílt hardverlehetőségeket.
Megpróbálok a lehető legtöbb konferenciára eljutni, ahol programozókkal arról tárgyalunk, hogyan tudunk annak érdekében együttműködni, hogy a kutatómunka gyorsabb és eredményesebb legyen – a videón 2013-ban, Portugáliában vagyok a lisszaboni LXJS-en a nagyszerű Angelina Fabbróval, és arról beszélünk, hogyan tudnak a kutatók és a programozók együttműködni:
Khan Academy video wrapper
LXJS 2013 - Bill Mills and Angelina Fabbro - JavaScript for ScienceVideóátirat megtekintése
Amikor nem vagyok számítógépközelben, akkor megpróbálok időt szakítani arra, hogy részt vegyek a környékemen tevékenykedő környezetvédelmi csoportok által szervezett önkéntes munkában; szívügyem az ember természettel való kapcsolatának javítása. Egy ideje kutatómunkát végzek és cikkeket írok a vancouveri SPEC számára.

Mit tanácsolsz az új programozóknak?

Soha ne feledd, hogy született képesség nem létezik. Könnyű a nagy programozók mellett inkompetensnek érezned magad, úgy érezni, hogy belőled soha nem lesz „igazi" programozó. Alkalmam volt a ma élő legjobb webes programozók közül néhánnyal találkoznom, és mindegyikük ugyanarról számolt be: amikor kezdők voltak, mindannyian csalónak és szélhámosnak érezték magukat, és egyikük se gondolta az induláskor, hogy könnyű lesz, annak ellenére, hogy most már úgy tűnhet, nekik könnyedén megy. Ha leírtál valaha egyetlen programsort, akkor már igazi programozó vagy – és ha tovább folytatod a programírást és a tanulást, akkor egy nap mesterré válsz.

Szeretnél részt venni a beszélgetésben?

Még nincs hozzászólás.
Tudsz angolul? Kattints ide, ha meg szeretnéd nézni, milyen beszélgetések folynak a Khan Academy angol nyelvű oldalán.