Bill Mills, Fizikçi ve Disiplinler Arası Programcı

Merhaba, ben Bill Mills!

Neyin üzerinde çalışıyorsunuz?

Bugünlerde, iyi programlama, kullanıcı arayüzleri, ve bilgisayar kullanıcılarının deneyimlerinin bilimin daha hızlı ilerlemesi ve daha eğlenceli olmasını sağlayabilecek birçok yolu üzerinde çalışıyorum! TRIUMF'da, Kanada’nın ulusal nükleer fizik laboratuvarında, GRIFFIN deneyi için web teknolojisi uzmanı ve yazılım proje yöneticisi olarak çalışıyorum. GRIFFIN son teknolojili yeni bir gamma ışını spektrometresidir, 2014 sonunda TRIUMF'da çevrimiçi olarak sunulmuştur, radyoaktif parçacıklarla ilgili verileri, önceki diğer deneylerden daha verimli ve daha yüksek hızda kaydetmek üzere tasarlanmıştır, ve bu şekilde atomun çekirdeğinin öncekilerden çok daha detaylı bir resmini elde etmemiz mümkün olmuştur.
GRIFFIN'deki çalışmalarım bilim insanlarının deneyleriyle etkileşim yolunu modernize etmeye odaklanıyor. Alanımdaki önceki deneyler, bilim insanlarına deneylerinde o anda olanları iletmek için ilkel görüntülere dayanıyordu; birçok yerlere dağılmış tablolarla iç içe başka tablolarda uzun sayı listelerini hayal edin. Bu on yıllarca önce, bir deneyde daha az sayıda basit aygıt varken problem oluşturmuyordu - ama modern deneylerde binlerce dedektör ve veri akışı (sadece GRIFFIN her hafta 200 TB veri üretir), ve bunun üzerine destek alt yapısı olabilir.
Deneylerimiz, dağınık arayüzler ve basit raporlamayla yönetilemeyecek kadar büyüdü ve karmaşıklaştı. Ve bu yeterince kötü değilmiş gibi, değişik bilim insanlarından oluşan ekipler GRIFFIN'i kullanmak için gelecekler - deneylerini yapmanın yanı sıra karmaşık bir kullanıcı arayüzü öğrenmek için bant genişlikleri yoktur. Bu nedenle,detay ve güçten feragat etmeden, GRIFFIN'in sezgisel ve mümkün olduğunca kullanımı kolay bir kullanıcı arayüzü olmalıdır; işte bu yüzden, geçtiğimiz yıl boyunca, JavaScript topluluğunun oluşturduğu bütün bu süper fikirleri ve teknolojileri kullanarak, bilim insanları laboratuvarlara geldiğinde onların mümkün olan en hızlı şekilde bilimle ilgilenmesini sağlayan bir kullanıcı arayüzü oluşturmaya çalışıyorum.
Kullanıcı arayüzüyle çalışmamız yanı sıra, gerçek yazılım geliştiricilerinin kullandığı araçları kullanmalarını sağlayarak bilim insanlarının kod yazılımlarını modernize etmeye çalışıyorum. Bilgisayarla hesaplama yöntemlerimizin merkezine o kadar yerleşti ki, bugün kod yazmadan ciddi bir fizikçi olamazsınız - ancak, şimdiye kadar, fizik toplumu, hala iyi bilgisayar eğitimi ve tekniklerinin gerisinde bulunmaktadır. Birçok fizikçi, (bir şekilde) çalışan bir şey elde edene kadar, tahminde bulunmak suretiyle programcılık öğrenir. Sürüm denetimi ve açık kaynak yazılım işbirliği gibi stratejiler, programcılar tarafından geliştirme sürecini hızlandırmak için geliştirilmiştir; bilim insanları da bu stratejilerden ders alabilseydi, sadece bilimi nasıl yaptığımızı süper güçlendirmek değil, onu daha açık ve tekrarlanabilir hale getirirdik. Her alandaki laboratuvarların, kendi alışılagelmiş çevrelerinin dışında taze fikirler getirecek insanlara ihtiyacı olur, böylece, bilimsel teknikler büyüyebilir ve gelişebilir, işte ben, günümüzde, fizik ve bilgisayar bilimi arasında tam da bunu yapmaya çalışıyorum.

Programlamayı nasıl öğrendin?

Programlama hayatıma CERN'de LHC'deki ATLAS deneyinde çalışan bir lisans üstü öğrencisi olarak başladım - ve bu bir felaketti! Lisans hayatımda sadece tek bir programlama dersi aldım ve ondan da kaldım. Kodlama konusunda en ufak bir fikrim yoktu ve kodlamada son derece kötü olduğuma inanmıştım ama aniden tam zamanlı olarak kod yazan bir doktora öğrencisi haline geldim. Beş yıl boyunca tezimin temelini oluşturan karmaşık bir analiz pakedini yazmaya çalıştım ama programlamayı aslında bu esnada öğrenmedim. Yüksek lisans tecrübelerimden öğrendiğim, iyi programlama kültürü bakımından profesyonel bilimin ne kadar kayıp ve başıboş olduğu ve aslında doğru yapmayı öğrenirsek ileri ne kadar büyük bir sıçrama gerçekleştirebileceğimizdi.
Programlamayı gerçekten öğrenmem, yüksek lisans sonrasındaydı. Profesyonel akademik görevlerin çoğunda olduğu gibi, lisans üstü çalışmadan sonra bilimle ilgili işler az ve seyrekti. İş ararken, Vancouver web geliştirme çevresinde önemli bir web geliştiricisi olan eşim, kendi kendime JavaScript öğrenmemi, ve şehir çapındaki yazılım grup toplantılarına katılmaya başlamamı salık verdi. Bu harika bir tavsiye oldu, çünkü Vancouver'ın beni kollarını açarak karşılayan canlı bir yazılım başlatma çevresinin olduğunu gördüm, bu çevre, web tasarımı ve geliştirimini kendi kendime öğrenirken beni destekledi. Vancouver'daki çevreyle etkileşimde bulunarak, sadece bilgisayar teknolojisi değil, teknik alanında da son derece zengin bir kültür olduğunun farkına vardım. Bilimde bu bilgisayar bilimindeki incelikli sanatçılık eksikti ve o zamandan beri bu iki dünyayı bir araya getirmeye çalışıyorum.

Çalışmadığın zamanlarda neler yapıyorsun?

Programlama yapmıyorsam, muhtemelen programlama hakkında eğitim veriyorumdur! Kod yazmakla ilgilenen kadınların engellerini yıkmaya yardım etmeyi hedefleyen eğitimsel bir sosyal yardım programı olan Kod Öğrenen Bayanlarda ders verdim ve bilim insanlarına kodlama öğretmek üzere tasarlanmış bir acemi çalıştay programı olan Yazılım Marangozluğunda öğretmenlik yapmak için gerekli şartları neredeyse tamamladığım için çok heyecanlıyım. Ayrıca, şu anda InterdisciplinaryProgramming.com'u oluşturmaktayım, bu gönüllü geliştiricileri kodlama danışmanı arayan bilim insanlarıyla eşleştiren ücretsiz bir hizmettir ve ekoloji ve tarımdaki meslektaşlarıma deneylerini modernleştirmek için Arduino elektronik prototipleştirme ve başka açık donanım seçeneklerini öğretmek için, yapma hareketini laboratuvara getirme olasılığını araştırıyorum.
Programcılara bilimi daha hızlı ve iyi kılmak için birlikte çalışmaktan bahsetmek için, mümkün olduğunca fazla konferansa katılmaya çalışıyorum - burada, 2013'te Portekiz Lizbon'da harika Angelina Fabbro ile birlikteyim, bilim insanları ve programcılarla ekip oluşturmak üzerine konuşmuştuk:
Gerçekten bilgisayarımdan uzakta olduğumda, çevremdeki çevre gruplarında gönüllü çalışmak için zaman yaratmaya çalışırım; doğayla olan ilişkimizi düzeltmek için çok istekliyim ve bir süre boyunca, Vancouver'daki SPEC için içerik ve araştırma yazdım.

Yeni başlayan programcılara tavsiyen nedir?

Şunu unutmayın ki hiçbir beceriye doğuştan sahip olmazsınız. Harika programcılara bakıp gerçekten yetersiz hissetmek kolaydır, ‘gerçek’ programcı olacak kadar hiçbir zaman iyi olmayacağınızı düşünebilirsiniz. Ancak, günümüzün en iyi programcılarından bazılarıyla webde tanışmak ayrıcalığına eriştim, ve hepsinin de deneyimi aynıdır - başlangıçta hepsi sahte ve taklitçi olarak hissetmiştir, ve şimdi ne kadar kolay olsa da, hiçbiri ilk başta kolay olduğunu düşünmemiştir. Bir tek satır kod bile yazmış olsanız, gerçek bir programcısınız demektir - ve kodlamaya ve öğrenmeye devam ederseniz, bir gün siz de uzmanlaşırsınız.
Yükleniyor