Aralikli olsa da gunden geri kalanlari paylasmaya devam edelim. Bugun, uzun zamandir ogrenmeye niyetli oldugum birkac seye egilme firsatim oldu…
Bir suredir cesitli programlama problemleri cozerken gittikce daha da fazla ihtiyacini duymaya basladigim, uzun zamandir sadece
print
statement’lar ile ‘gunu kurtardigim’ gercegini asmak adina, sonunda en temelinden “debugger” kulllanmayi ogrenmeye karar verdim. Ilk olarak C++ iicn kullanilangdb
‘ye biraz goz atip, Youtube’de Hintli bir arkadasin 12 dakikada onemli hemen herseyini uygulamali anlattigi video epey isimi gordu.breakpoint
olusturmadan,stack frame
kavramina her seyi super ozetlemis videoda. Yillardir aklimda neredeymis diye kendime sorup durdum. Ardindangdb
‘nin Python muadilipdb
‘ye gectim. Real Python’un her zamanki gibi harika hazirlanmis tutorial’larindan birini takip edip yine yaklasik 20 dakikada bu debugger da cepteydi. Ustelik iki debugger arasindaki benzerlik isim benzerliginin isaret ettigi uzere, ust duzeyde. Bundan sonrasini zorlu ‘bug’lar dusunsun!Haziran ayinin baslamasiyla, bir suredir problem cozme egzersizleri yaptigim LeetCode’da June 2020 Challange basladi bugun itibariyle. Sitede her gun yeni bir algoritma problem yayinlaniyor ve ucretsiz olarak bunu cozup sisteme gonderebiliyorsunuz. Cozumleri de yayinliyorlar ama onlar ‘Premium’ uyelere ozel. Bugunku problem, verilen bir
binary tree
‘yi tersine cevirmek seklindeydi. Ufak birrecursive
trick ile kolaylikla problemi cozdum.Tree
yapilarini cok tanimiyor olsam da problem sayesinde ufak bir arastirma da yapmis oldum. Yarindan itibaren muhtemelen LeetCode’a Premum uyeligi de yapip hem cozumlere hem de ekstra kaynaklara da ulasmayi planliyorum. Problem ve cozumu surada:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def invertTree(self, root: TreeNode) -> TreeNode:
if(root):
if(root.right != None or root.left != None):
temp = root.right
root.right = root.left
root.left = temp
self.invertTree(root.right)
self.invertTree(root.left)
return root
Coursera’da takip ettigim “Accelerated Computer Scince” specialization’in ikinci dersinin bu haftaki projesi epey kallavi bir
Linked List
problemi uzerniyedi. Verilen siralanmis birlinked list
‘e sirayi bozmayacak sekilde yeni birnode
eklemek ve verilen sirasiz bir listeyemerge sort
ile siralamak seklinde iki problemden ilkini cozdum, ikincisi ilerleyen gunlerde ellerimden oper…Bugun Real Python’un podcast yayininda, gecenlerde PyCon 2020 konusmasina denk geldigim Anthony Shaw konuktu: Episode 11: Advice on Getting Started on Testing with Python. Konu bu sefer
pytest
modu ve genel olarak test kavramiydi. “Production level kod” olayinin onemli bir parcasini olusturdugunu sezinledigim test kavramina dair epey guzel noktalara degindiler programda. “Test coverage”, “continous integration” vs. gibi kavramlar da cabasi.Ogrendigim programlama becerilerini “pratige” dokmenin en guzel yolu muhtemelen acik kaynak bir projeye katki koymak diye dusunuyorum. Bunun icin sonunda kollari sivadim. Tabi bu kararimda, Columbia’dan derslerini takip ettigim Andreas Mueller’in gecen gunler yayinladigi genel tanitim videosu ve bunlarin somut olarak uygulandigi
scikit-learn
‘e ilk contribution nasil yapilir temali video epey bir etkili oldu. Ben de son zamanlarda en cok kullandigim ve ic isleyisini ogrenmeye can attigimscikit-learn
venumpy
kutuphanelerine mutevazi de olsa katki koymak icin fork’larimi yaptim, kendime issue secmeye basladim. Ilk basta dokumantasyonla ilgili de olsa ufak bir katki ile baslamayi umuyorum, bakalim.Iki takip edilesi online ders:
- MIT Fundementals of Statistics - epey saglam duruyor; duzenli odevlerle takip etmeyi dusunuyorum.
- Practical Python Programming - sifirdan gorunse de epey saglam bir alt yapi kuran, web tabanli, bol uygulamali, odevli bir ders. Ufak ufak ilerlemeyi planliyorum.
Agustos ayinda Ingiltere’de (uzaktan) katilacagim bir egiitim programi var Science to Data Science (S2DS) adinda; bilim PhD’lilere sektorde olanaklar yaratmak konusunda danismanlik yapip, egitimler yapiyorlar. Bes haftalik programin ilk duyurulari bugun e-posta kutuma geldi. Slack kanalina uyeligimizi yaptik, Github hesaplarimizi verdik, bir sonraki asamayi bekliyoruz. Program kafamda bir suredir sekillendirdigim bilimden, veri bilimine gecisim konusunda epey etkili olacagini dusunuyorum, bakalim gorecegiz…
Yarin, korona mevzulari nedeniyle bir suredir pek gerceklesmeyen is gorusmelerinden birini yapacagim Almanya Munih’ten epey buyuk bir sigorta sirketinin “Data Scientist” pozisyonu icin. Bu ilk gorusme olacak fakat ilk gorusmeyi direkt “Head of Data Science” bir istatistik PhD’li, universitelerde ders veren bir amca ile yapmak gozumu korkutmuyor degil. Fingers crossed!