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

თუ ვებფილტრს იყენებთ, დარწმუნდით, რომ *.kastatic.org და *.kasandbox.org დომენები არ არის დაბლოკილი.

ძირითადი მასალა

კურსი: კომპიუტერული პროგრამირება > თემა 8

გაკვეთილი 1: გაიცანით პროფესიონალი

ბილ მილსი, ფიზიკოსი და ინტერდისციპლინარული პროგრამისტი

ბილ მილსის ფოტო
გამარჯობა, მე ბილ მილსი ვარ!

რაზე მუშაობთ?

დღესდღეობით მე ვმუშაობ იმ გზების განვითარებაზე, რომელთა საშუალებითაც კარგი პროგრამირება, მომხმარებლის გარემო (ინტერფეისი) და კომპიუტინგის მომხმარებლის პრაქტიკა ხელს შეუწყობს მეცნიერების უფრო სწრაფად წინსვლას და აქცევს მას უფრო სახალისოდ! მე ვმუშაობ TRIUMF-ისთვის. GRIFFIN არის გამა სხივის უახლესი სპექტრომეტრი, რომელსაც TRIUMF იყენებს გვიანი 2014 წლიდან. ის შექმნილია რადიოაქტიული ნაწილაკების შესახებ მონაცემების უფრო ეფექტურად და გაცილებით უფრო სწრაფი ტემპით ჩასაწერად, ვიდრე ნებისმიერი წინა ექსპერიმენტი, რაც საშუალებას გვაძლევს, მივიღოთ ატომის ბირთვის იმაზე უფრო დეტალური სურათი, ვიდრე აქამდე გვქონდა.
GRIFFIN-ისთვის ჩემი სამუშაოს კონცენტრაცია არის მეცნიერების თავიანთ ექსპერიმენტებთან ინტერაქციის მოდერნიზება. ჩემს სფეროში წინა ექსპერიმენტები ეფუძნებოდა ელემენტარულ ჩვენებებს მეცნიერებთან საკომუნიკაციოდ იმის შესახებ, თუ რა ხდებოდა მოცემულ მომენტში მათ ექსპერიმენტში; წარმოიდგინეთ ცხრილებში ჩასმულ ცხრილებში განთავსებული რიცხვების გრძელი სიები, რომლებიც გაბნეულია სხვადასხვა ადგილას. ეს მისაღები იყო ათწლეულების წინ, როდესაც ექსპერიმენტში ჩართული იყო მარტივი მოწყობილობების შედარებით მცირე რაოდენობა, მაგრამ თანამედროვე ექსპერიმენტებში ვხვდებით ათასობით დეტექტორს და მონაცემთა ნაკადს (მხოლოდ GRIFFIN აწარმოებს მონაცემთა 200 TB-ს (ტერაბაიტს) ყოველკვირეულად), ასევე ინფრასტრუქტურის უზარმაზარ მხარდაჭერას.
ჩვენი ექსპერიმენტები ზედმეტად დიდი და კომპლექსურია არაორგანიზებული და პრიმიტიული შეტყობინებებით მართვისათვის. და, თითქოს ეს საკმარისად ცუდი არაა, მეცნიერთა სხვადასხვა გუნდი მოფრინდება GRIFFIN-ის გამოსაყენებლად განუწყვეტლივ - მათ არ აქვთ საკმარისი დრო და რესურსი ექსპერიმენტის ჩატარებისას მომხმარებლის გართულებული გარემოს შესასწავლად. ასე რომ, ძალისა და დეტალების შეწირვის გარეშე GRIFFIN-ს უნდა ჰქონდეს მომხმარებლის ინტუიციური და გამოსაყენებლად ადვილი გარემო; სწორედ ამიტომ ყველა მაგარ იდეასა და ტექნოლოგიას, რომელიც JavaScript-ის თემმა შექმნა, ვიყენებ მომხმარებლის ინტერფეისის შესაქმნელად, რომელიც საშუალებას მისცემს მეცნიერებს, დაიწყონ მეცნიერებაზე მუშაობა რაც შეიძლება სწრაფად მას შემდეგ, რაც ლაბორატორიაში მივლენ.
ჩემ მიერ GRIFFIN-ისთვის შექმნილი მართვის პანელის დეველოპერული ვერსია SPICE დეტექტორის პირველი ონლაინ ტესტიდან.
ვებზე დაფუძნებული დეტექტორის ეფექტურობის კალკულატორი გრიფინისა და მისი დობილი დეტექტორებისათვის, რომელმაც ჩაანაცვლა ანალოგიური გამოთვლების ჩატარება კალმითა და ფურცლით (!)
მომხმარებლის ინტერფეისზე მუშაობასთან ერთად აგრეთვე ვეხმარები მეცნიერებს ნამდვილი პროგრამული უზრუნველყოფის ინჟინრების მიერ გამოყენებულ საშუალებებთან შეჩვევაში, რათა ხელი შევუწყო მათი კოდის წერის გზის მოდერნიზებას. კომპიუტინგი იმდენად მნიშვნელოვანი გახდა ჩვენს მეთოდოლოგიაში, რომ დღეს სერიოზული ფიზიკოსი, უბრალოდ, ვერ იქნები ბევრი კოდის წერის გარეშე — მაგრამ, ამ დროისთვის, ფიზიკის თემი ჯერ კიდევ ვერ დაეწია კომპიუტინგის კარგ განათლებასა და ტექნიკებს. ფიზიკოსთა უმრავლესობა სწავლობს დაპროგრამებას ვარაუდთა ცდის მეთოდით მანამ, სანამ არ მიიღებენ ისეთ რამეს, რაც (თითქოს) მუშაობს. სტრატეგიები, როგორებიცაა ვერსიის კონტროლი და ღია პროგრამული წყაროს კოლაბორაცია, პროგრამისტებმა შეიმუშავეს განვითარების პროცესის გასაუმჯობესებლად; თუ მეცნიერები ისწავლიან ამ სტრატეგიებიდან, ჩვენ არა მხოლოდ ძალიან შევცვლით მეცნიერებაზე მუშაობის პროცესს, არამედ მას უფრო ღიასა და განახლებადს გავხდით. ყველა სფეროს ლაბორატორიებს ესაჭიროება ადამიანები, რომლებსაც მოაქვთ ახალი იდეები მათი სფეროს გარედან, რათა ეს მეცნიერული ტექნიკები გაიზარდოს და განვითარდეს — მეც სწორედ ამის გაკეთებას ვცდილობ ფიზიკასა და კომპიუტინგს შორის დღეს.

როგორ ისწავლეთ დაპროგრამება?

ჩემი პროგრამისტული ცხოვრება დავიწყე ბაკალავრიატის შემდეგ. ვმუშაობდი ATLAS-ის ექსპერიმენტზე LHC-ზე CERN-ში — და ეს კატასტროფა იყო! უნივერსიტეტში გავლილი მქონდა პროგრამირების ზუსტად ერთი საგანი, რომელშიც ჩავიჭერი. კოდის წერის შესახებ საერთოდ არაფერი ვიცოდი და დარწმუნებული ვიყავი, რომ ამაში ძალიან სუსტი ვიყავი. მოგვიანებით კი, დოქტორანტურის სტუდენტობისას, უეცრად უკვე მუდმივად ვწერდი კოდს. 5 წლის განმავლობაში თავს ვართმევდი ჩახლართული ანალიზის პაკეტის დაწერას, რომელმაც ჩამოაყალიბა ჩემი დისერტაციის ბირთვი, მაგრამ მაშინ დაპროგრამება ნამდვილად არ მისწავლია. რაც ვისწავლე უმაღლესში იყო ის, თუ რამდენად დაკარგული და დინებას მიყოლილი იყო პროფესიონალური მეცნიერება კარგი კომპიუტინგის კულტურის მხრივ და რამდენად დიდი ნაბიჯის გადადგმა შეგვეძლო წინ, თუ ამის სწორად კეთებას ვისწავლიდით.
რეალურად, დაპროგრამება უმაღლესი სასწავლებლის შემდეგ ვისწავლე. როგორც ბევრი პროფესიონალი მეცნიერის შემთხვევაში ხდებოდა, სამეცნიერო სამსახურები იყო ცოტა და შორს უმაღლესი სასწავლებლიდან. სანამ სამსახურს ვეძებდი, ჩემმა მეგობარმა, მაღალი დონის ვებდეველოპერმა ვანკუვერის ვებდეველოპმენტის სცენაზე, შემომთავაზა, ჩემით შემესწავლა მცირეოდენი JavaScript და დამეწყო პროგრამული უზრუნველყოფის ადგილობრივი შეხვედრების ჯგუფებში სიარული. ეს დიდებული რჩევა იყო, რადგან, როგორც აღმოჩნდა, ვანკუვერს ჰქონდა (და კვლავ აქვს) პროგრამული უზრუნველყოფის სტარტაპის ენერგიული სცენა, რომელმაც სიხარულით მიმიღო და დამეხმარა ვებდიზაინისა და დეველოპმენტის საფუძვლების შესწავლაში. ვანკუვერის ჯგუფებთან ინტერაქციით გავიაზრე, რომ არსებობდა არამხოლოდ კომპიუტინგის ტექნოლოგიის ძალიან მდიდარი კულტურა, არამედ - ტექნიკაც. სწორედ ამ დახვeწილი პროფესიონალიზმის ნაკლებობას განიცდიდა მეცნიერებაში კომპიუტინგი და მე ამ ორი სამყაროს ერთმანეთთან შეხვედრაზე ვმუშაობ.

რას აკეთებთ, როცა არ მუშაობთ?

როდესაც პროგრამირებით არ ვარ დაკავებული, სავარაუდოდ, ვასწავლი პროგრამირების შესახებ! მე მენტორობას ვუწევდი კოდის შემსწავლელ ქალებს, განათლების გამავრცელებელ პროგრამას ქალებისთვის, რომელთაც კოდის შესწავლა აინტერესებთ, და მე ძალიან მიხარია, რომ მალე ავიღებ სერთიფიკატს პროგრამული უზრუნველყოფის დურგლობის სწავლებისთვის — ეს არის პრაქტიკული შემეცნების ბანაკის პროგრამა, რომელიც გათვლილია მეცნიერებისათვის კოდის წერის შესასწავლად. გარდა ამისა, ამჟამად ვქმნი InterdisciplinaryProgramming.com-ს — უფასო სერვისს, რომელიც ერთმანეთთან აკავშირებს მოხალისე დეველოპერებსა და მეცნიერებს, რომლებიც ეძებენ კოდის წერის მენტორს, და შევისწავლი „შემქმნელთა კულტურის“ (კულტურა, რომელიც გულისხმობს კონკრეტული საქმეების კეთებას ფასიანი ექსპერტისგან დახმარების მიღების გარეშე) ლაბორატორიაში მოყვანის შესაძლებლობას ეკოლოგიისა და სოფლის მეურნეობის სფეროებში მოღვაწე ჩემი კოლეგებისათვის იმაში დახმარების გაწევით, რომ ისწავლონ Arduino ელექტრონიკის პროტოტიპების შექმნა და სხვა ღია წყაროს მოწყობილობების მიერ მოცემული შესაძლებლობები მათი ექსპერიმენტების მოდერნიზიბისათვის.
მე, აგრეთვე, ხშირად ვცდილობ, მოვხვდე რაც შეიძლება ბევრ კონფერენციაზე, რათა პროგრამისტებს დაველაპარაკო მეცნიერების უფრო ასაჩქარებლად და გასაუმჯობესებლად ერთად მუშაობაზე - ეს მე ვარ LXJS-ში ლისაბონში (პორტუგალია), 2013-ში, დიდებულ ანჯელინა ფაბროსთან ერთად, ვსაუბრობთ მეცნიერებისა და პროგრამისტების ჯგუფურ მუშაობაზე.
ხანის აკადემიის ვიდეოების მომთავსებელი
LXJS 2013 - Bill Mills and Angelina Fabbro - JavaScript for Scienceვიდეოს ტრანსკრიპტის ნახვა
როდესაც კომპიუტერიდან ნამდვილად შორს ვარ, ვცდილობ, გამოვნახო დრო ბუნების დამცველ ჯგუფებთან მოხალისედ წასვლისთვის; ძალიან მინდა, ბუნების მიმართ ჩვენი დამოკიდებულება გამოვასწორო. დავწერე მასალა და ჩავატარე კვლევა SPEC-ისთვის ვანკუვერში.

რა არის თქვენი ერთი რჩევა დამწყები პროგრამისტებისთვის?

არასოდეს დაგავიწყდეთ, რომ არ არსებობს თანდაყოლილი ოსტატობა. ადვილია, შეხედოთ დიდებულ პროგრამისტებს და თავი იგრძნოთ ძალიან არასრულფასოვნად, თითქოს მათ დონეს ვერასოდეს მიაღწევთ ან ვერ გახდებით 'ნამდვილი' პროგრამისტი. მაგრამ მე მქონდა ბედნიერება, შევხვედროდი რამდენიმე საუკეთესო ვებ პროგრამისტს და მათ ყველას ჰქონდათ იგივენაირი გამოცდილება - თითოეული მათგანი თვითმარქვიად მიიჩნევდა თავს, როდესაც ახალი დაწყებული ჰქონდათ პროგრამირება და არც ერთი მათგანი არ თვლიდა, რომ პროგრამისტობა ადვილია (მიუხედავად იმისა, რამდენად ადვილად მოგვაჩვენებენ ხოლმე ისინი ამას ახლა). თუკი კოდის ერთი ხაზი მაინც დაგიწერიათ, მაშინ ნამდვილი პროგრამისტი ხართ - და თუ გააგრძელებთ კოდის წერასა და სწავლას, ერთ დღეს ოსტატიც გახდებით.

გსურთ, შეუერთდეთ დისკუსიას?

პოსტები ჯერ არ არის.
გესმით ინგლისური? დააწკაპუნეთ აქ და გაეცანით განხილვას ხანის აკადემიის ინგლისურენოვან გვერდზე.