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

Ако си зад уеб филтър, моля, увери се, че домейните *. kastatic.org и *. kasandbox.org са разрешени.

Основно съдържание

Бил Милс, физик и интердисциплинарен програмист

Снимка на Бил Милс
Здравей, аз съм Бил Милс!

Върху какво работиш?

Днес работата ми е свързана изцяло с начините, по които доброто програмиране, потребителските интерфейси и потребителското преживяване могат да помогнат на науката да се движи по-бързо и да я направи по-забавна! Работя за TRIUMF, националната лаборатория по ядрена физика в Канада, като специалист по уеб технологии и софтуерен мениджър на проекти за експеримента GRIFFIN. GRIFFIN е последно поколение спектрометър за гама лъчи, който се появява онлайн в мрежата в TRIUMF в края на 2014. Проектиран е да записва данните за радиоактивни частици по-ефективно от предишния експеримент и ни позволява да получим по-подробна картина на ядрото на атома от всички други досега.
В GRIFFIN работата ми се фокусира върху осъвременяването на начина, по който учените взаимодействат със своя експеримент. Предишните експерименти в моята област са разчитали на елементарно онагледяване, за да се съобщи на учените какво се случва в момента с техния експеримент; представи си дълъг списък от числа, подредени в таблици, вложени в други таблици, разхвърляни на няколко различни места. Това е работило преди десетилетия, когато експериментите са включвали само малък брой прости устройства – но съвременните експерименти могат да имат хиляди детектори и потоци от данни (само GRIFFIN произвежда 200 TB данни за седмица) и огромна инфраструктура за поддръжка на всичко това.
Нашите експерименти са станали прекалено големи и прекалено сложни, за да се управляват с неорганизирани интерфейси и прости доклади. И на всичко отгоре, най-различни групи учени летят до Канада, за да използват GRIFFIN през цялото време – и нямат времето тепърва да изучават някакъв сложен интерфейс, за да провеждат своите експерименти. Следователно GRIFFIN трябва да има интерфейс, който е интуитивен и лесен за употреба, без това да е за сметка на детайлите и на мощността му; ето защо през последната година използвам всички добри идеи от общността на JavaScript, за да направя потребителски интерфейс, който да позволи на учените да започват научната си работа възможно най-скоро след като пристигнат в лабораторията.
Тестова версия на табло, което направих за GRIFFIN, от първия онлайн тест на детектора SPICE.
Уеб базиран калкулатор на ефективност на GRIFFIN и неговите сестри-детектори, които заменят изчисляването ѝ с лист и химикал (!).
В допълнение към работата ми по потребителския интерфейс, се опитвам да модернизирам и начина, по който учените пишат код, като ги карам да свикват с инструментите, използвани от истинските софтуерни разработчици. Програмирането е толкова централно в нашата методология, че просто не можеш да си физик без да пишеш много код – но досега обществото на физиците не разполагаше с добро образование и техники за програмиране. Повечето физици се учат да програмират като опитват, докато нещо не заработи (горе долу). Стратегии като контрол на версиите и софтуер с отворен код се разработват от програмистите, за да опростят процеса на разработка; ако учените овладеят тези стратегии, не само че можем да засилим правенето на наука, но и да я направим по-отворена и възпроизведима. Лабораториите във всички области се нуждаят от хора, които да внесат свежи идеи, извън обичайната им сфера, за да могат научните способи да продължават да растат и да се развиват, а това е точно нещото, което се опитвам да направя днес с физиката и програмирането.

Как се научи да програмираш?

Започнах да програмирам като докторант към експеримента ATLAS в LHC в CERN – и това беше ужасно! Имах точно един курс по програмиране като бакалавър – в който се провалих. Не знаех нищо за това как се пише код и бях убеден, че се справях ужасно – а след това като докторант изведнъж започнах да пиша код по цял ден. В продължение на пет години се мъчех с писане на сложен аналитичен пакет, които стана основа за моята дисертация – но всъщност не тогава се научих да програмирам. От опита си в университета научих колко загубена и безпътна е науката по отношение на доброто програмиране – и каква огромна крачка можем да направим, ако се научим да го използваме правилно.
Научих се да програмирам след университета. Както е при много професионални академици, работните места за учени бяха малко. Докато си търсех работа, моят партньор, изявен уеб разработчик във Ванкувър, ми предложи да науча малко JavaScript и да започна да посещавам местните срещи в града. Това беше брилянтен съвет, тъй като се оказа, че във Ванкувър има (и все още има) жива сцена за софтуерни стартъпи, която ме приветства с отворени обятия, подкрепи ме през основите на уеб дизайна и разработката. Чрез контактите си със софтуерното общество във Ванкувър разбрах, че не само в компютърните технологии има богата култура, но и в техниката. Това беше онзи фин майсторлък, който липсваше при програмирането в академичния свят. И така започнах да работя по това да събера тези два свята.

Какво правиш, когато не програмираш?

Когато не програмирам, обикновено преподавам програмиране! Бил съм ментор за Ladies Learning Code, образователна програма, която помага да се махнат бариерите пред жените, които се интересуват от програмиране, и се вълнувам много, защото скоро ще получа сертификат за преподавател в Software Carpentry, уъркшоп програма, в която учени се учат как да програмират. Също така изграждам InterdisciplinaryProgramming.com, безплатна услуга, която свързва доброволци разработчици с учени, които търсят ментори в програмирането, и изследвам възможността да представя изобретателската култура в лабораторията, като помагам на своите колеги в областта на екологията и земеделието да се научат да използват прототипи на Ардуино, както и други възможности с отворен код, които да се използват за модернизиране на експериментите.
Освен това ходя на колкото се може повече конференции, на които говоря на програмистите как могат да работят заедно с учените, за да направят науката по-бърза и по-добра – ето ме тук на LXJS в Лисабон, Португалия, през 2013, с брилянтната Анжелина Фабро, с която говорим за съвместната работа на програмисти и учени:
Видео плейър на видеоклиповете в Кан Академия
LXJS 2013 - Bill Mills and Angelina Fabbro - JavaScript for ScienceВиж видео транскрипцията
Когато съм достатъчно далеч от компютър, се опитвам да намеря време като доброволец в екологични организации в своята общност; вълнувам се от поправянето на нашата връзка с природата, за известно време пишех статии и правих изследвания за SPEC във Ванкувър.

Какъв съвет ще дадеш на един начинаещ програмист?

Никога не забравяй, че няма такова нещо като вродено умение. Лесно е да гледаш постиженията на велики програмисти и да се чувстваш зле, все едно никога няма да можеш да се мериш с тях и да си ‘истински’ програмист. Имам привилегията да съм се срещал с някои от най-добрите уеб програмисти в днешно време и те всички имат еднакъв опит – чувствали са се като новаци, когато са започвали и за никого не е било лесно в началото, без значение колко лесно изглежда сега. Ако напишеш дори един ред код – тогава си истински програмист – ако продължаваш да пишеш код и да се учиш, някой ден и ти ще станеш майстор.

Искаш ли да се присъединиш към разговора?

Все още няма публикации.
Разбираш ли английски? Натисни тук, за да видиш още дискусии в английския сайт на Кан Академия.